From c03ed6d977488c14f2b08a718414d875ca80bf78 Mon Sep 17 00:00:00 2001 From: ym Date: Tue, 22 Oct 2013 10:33:56 +0800 Subject: [PATCH 01/10] add plugin for javascript --- .../__MACOSX/js/._jquery.js" | Bin 0 -> 190 bytes .../jquery-plug-ichoose/index.html" | 78 ++++++ .../jquery-plug-ichoose/js/data.user.json" | 46 ++++ .../jquery-plug-ichoose/js/jquery.js" | 2 + .../jquery-plug-ichoose/js/mod.udatas.js" | 56 ++++ .../jquery-plug-ichoose/js/plug.choose.js" | 243 ++++++++++++++++++ .../demo.html" | 188 ++++++++++++++ 7 files changed, 613 insertions(+) create mode 100644 "\346\216\247\344\273\266/jquery-plug-ichoose/__MACOSX/js/._jquery.js" create mode 100644 "\346\216\247\344\273\266/jquery-plug-ichoose/index.html" create mode 100644 "\346\216\247\344\273\266/jquery-plug-ichoose/js/data.user.json" create mode 100644 "\346\216\247\344\273\266/jquery-plug-ichoose/js/jquery.js" create mode 100644 "\346\216\247\344\273\266/jquery-plug-ichoose/js/mod.udatas.js" create mode 100644 "\346\216\247\344\273\266/jquery-plug-ichoose/js/plug.choose.js" create mode 100644 "\346\216\247\344\273\266/\351\200\217\346\230\216\344\270\213\346\213\211\346\241\206/demo.html" diff --git "a/\346\216\247\344\273\266/jquery-plug-ichoose/__MACOSX/js/._jquery.js" "b/\346\216\247\344\273\266/jquery-plug-ichoose/__MACOSX/js/._jquery.js" new file mode 100644 index 0000000000000000000000000000000000000000..e8ec86bc44d2a3dc4f6e454352682cf8f5d26b1e GIT binary patch literal 190 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aSsrK`1^pE2;dkJ5(HHS(lG;w)zGvt zBE&_L^K + + + + 基于jQuery实现类似Google+圈子选择功能插件(支持键盘事件)@Mr.Think + + + + + + + + + + + + +
+

Mr.Think的博客可自由转载及使用,但请注明出处.

+

RSS Feed@专注Web前端技术, 热爱PHP, 崇尚简单生活的凡夫俗子.

+
+ + +
+ +
+ +
+ + 添加用户名 + +
+
+ +
+ + +
+
+ + + + + + + + + + \ No newline at end of file diff --git "a/\346\216\247\344\273\266/jquery-plug-ichoose/js/data.user.json" "b/\346\216\247\344\273\266/jquery-plug-ichoose/js/data.user.json" new file mode 100644 index 0000000..2db6eb6 --- /dev/null +++ "b/\346\216\247\344\273\266/jquery-plug-ichoose/js/data.user.json" @@ -0,0 +1,46 @@ +[ + { + "mid":"3987436", + "realname":"秦始皇" + }, + { + "mid":"3987437", + "realname":"秦庄襄王" + }, + { + "mid":"3987438", + "realname":"秦孝文王" + }, + { + "mid":"3987439", + "realname":"秦昭王" + }, + { + "mid":"3987440", + "realname":"秦武王" + }, + { + "mid":"3987441", + "realname":"秦惠王" + }, + { + "mid":"3987442", + "realname":"秦孝公" + }, + { + "mid":"3987443", + "realname":"秦献公" + }, + { + "mid":"3987444", + "realname":"秦出子" + }, + { + "mid":"3987445", + "realname":"秦惠公" + }, + { + "mid":"3987446", + "realname":"秦穆公" + } +] \ No newline at end of file diff --git "a/\346\216\247\344\273\266/jquery-plug-ichoose/js/jquery.js" "b/\346\216\247\344\273\266/jquery-plug-ichoose/js/jquery.js" new file mode 100644 index 0000000..bc3fbc8 --- /dev/null +++ "b/\346\216\247\344\273\266/jquery-plug-ichoose/js/jquery.js" @@ -0,0 +1,2 @@ +/*! jQuery v1.8.2 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.2",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,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(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return a!=null?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
t
",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||p.guid++:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c=0)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.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,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j=0:p.find(m,this,null,[f]).length),h[m]&&j.push(l);j.length&&u.push({elem:f,matches:j})}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bc(a,b,c,d){c=c||[],b=b||r;var e,f,i,j,k=b.nodeType;if(!a||typeof a!="string")return c;if(k!==1&&k!==9)return[];i=g(b);if(!i&&!d)if(e=P.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&h(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return w.apply(c,x.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&_&&b.getElementsByClassName)return w.apply(c,x.call(b.getElementsByClassName(j),0)),c}return bp(a.replace(L,"$1"),b,c,d,i)}function bd(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function be(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bf(a){return z(function(b){return b=+b,z(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function bg(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bh(a,b){var c,d,f,g,h,i,j,k=C[o][a];if(k)return b?0:k.slice(0);h=a,i=[],j=e.preFilter;while(h){if(!c||(d=M.exec(h)))d&&(h=h.slice(d[0].length)),i.push(f=[]);c=!1;if(d=N.exec(h))f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=d[0].replace(L," ");for(g in e.filter)(d=W[g].exec(h))&&(!j[g]||(d=j[g](d,r,!0)))&&(f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=g,c.matches=d);if(!c)break}return b?h.length:h?bc.error(a):C(a,i).slice(0)}function bi(a,b,d){var e=b.dir,f=d&&b.dir==="parentNode",g=u++;return b.first?function(b,c,d){while(b=b[e])if(f||b.nodeType===1)return a(b,c,d)}:function(b,d,h){if(!h){var i,j=t+" "+g+" ",k=j+c;while(b=b[e])if(f||b.nodeType===1){if((i=b[o])===k)return b.sizset;if(typeof i=="string"&&i.indexOf(j)===0){if(b.sizset)return b}else{b[o]=k;if(a(b,d,h))return b.sizset=!0,b;b.sizset=!1}}}else while(b=b[e])if(f||b.nodeType===1)if(a(b,d,h))return b}}function bj(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function bk(a,b,c,d,e){var f,g=[],h=0,i=a.length,j=b!=null;for(;h-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==l)||((b=c).nodeType?j(a,c,d):k(a,c,d))}];for(;i1&&bj(m),i>1&&a.slice(0,i-1).join("").replace(L,"$1"),c,i0,f=a.length>0,g=function(h,i,j,k,m){var n,o,p,q=[],s=0,u="0",x=h&&[],y=m!=null,z=l,A=h||f&&e.find.TAG("*",m&&i.parentNode||i),B=t+=z==null?1:Math.E;y&&(l=i!==r&&i,c=g.el);for(;(n=A[u])!=null;u++){if(f&&n){for(o=0;p=a[o];o++)if(p(n,i,j)){k.push(n);break}y&&(t=B,c=++g.el)}d&&((n=!p&&n)&&s--,h&&x.push(n))}s+=u;if(d&&u!==s){for(o=0;p=b[o];o++)p(x,q,i,j);if(h){if(s>0)while(u--)!x[u]&&!q[u]&&(q[u]=v.call(k));q=bk(q)}w.apply(k,q),y&&!h&&q.length>0&&s+b.length>1&&bc.uniqueSort(k)}return y&&(t=B,l=z),x};return g.el=0,d?z(g):g}function bo(a,b,c,d){var e=0,f=b.length;for(;e2&&(j=h[0]).type==="ID"&&b.nodeType===9&&!f&&e.relative[h[1].type]){b=e.find.ID(j.matches[0].replace(V,""),b,f)[0];if(!b)return c;a=a.slice(h.shift().length)}for(g=W.POS.test(a)?-1:h.length-1;g>=0;g--){j=h[g];if(e.relative[k=j.type])break;if(l=e.find[k])if(d=l(j.matches[0].replace(V,""),R.test(h[0].type)&&b.parentNode||b,f)){h.splice(g,1),a=d.length&&h.join("");if(!a)return w.apply(c,x.call(d,0)),c;break}}}return i(a,m)(d,b,f,c,R.test(a)),c}function bq(){}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=String,r=a.document,s=r.documentElement,t=0,u=0,v=[].pop,w=[].push,x=[].slice,y=[].indexOf||function(a){var b=0,c=this.length;for(;be.cacheLength&&delete a[b.shift()],a[c]=d},a)},B=A(),C=A(),D=A(),E="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",G=F.replace("w","w#"),H="([*^$|!~]?=)",I="\\["+E+"*("+F+")"+E+"*(?:"+H+E+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+G+")|)|)"+E+"*\\]",J=":("+F+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+I+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+E+"*((?:-\\d)?\\d*)"+E+"*\\)|)(?=[^-]|$)",L=new RegExp("^"+E+"+|((?:^|[^\\\\])(?:\\\\.)*)"+E+"+$","g"),M=new RegExp("^"+E+"*,"+E+"*"),N=new RegExp("^"+E+"*([\\x20\\t\\r\\n\\f>+~])"+E+"*"),O=new RegExp(J),P=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,Q=/^:not/,R=/[\x20\t\r\n\f]*[+~]/,S=/:not\($/,T=/h\d/i,U=/input|select|textarea|button/i,V=/\\(?!\\)/g,W={ID:new RegExp("^#("+F+")"),CLASS:new RegExp("^\\.("+F+")"),NAME:new RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:new RegExp("^("+F.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+E+"*(even|odd|(([+-]|)(\\d*)n|)"+E+"*(?:([+-]|)"+E+"*(\\d+)|))"+E+"*\\)|)","i"),needsContext:new RegExp("^"+E+"*[>+~]|"+K,"i")},X=function(a){var b=r.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},Y=X(function(a){return a.appendChild(r.createComment("")),!a.getElementsByTagName("*").length}),Z=X(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),$=X(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),_=X(function(a){return a.innerHTML="",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),ba=X(function(a){a.id=o+0,a.innerHTML="
",s.insertBefore(a,s.firstChild);var b=r.getElementsByName&&r.getElementsByName(o).length===2+r.getElementsByName(o+0).length;return d=!r.getElementById(o),s.removeChild(a),b});try{x.call(s.childNodes,0)[0].nodeType}catch(bb){x=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}bc.matches=function(a,b){return bc(a,null,null,b)},bc.matchesSelector=function(a,b){return bc(b,null,null,[a]).length>0},f=bc.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=f(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=f(b);return c},g=bc.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},h=bc.contains=s.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:s.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc.attr=function(a,b){var c,d=g(a);return d||(b=b.toLowerCase()),(c=e.attrHandle[b])?c(a):d||$?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},e=bc.selectors={cacheLength:50,createPseudo:z,match:W,attrHandle:Z?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:d?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:Y?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:ba&&function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:_&&function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(V,""),a[3]=(a[4]||a[5]||"").replace(V,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||bc.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&bc.error(a[0]),a},PSEUDO:function(a){var b,c;if(W.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(b=a[4])O.test(b)&&(c=bh(b,!0))&&(c=b.indexOf(")",b.length-c)-b.length)&&(b=b.slice(0,c),a[0]=a[0].slice(0,c)),a[2]=b;return a.slice(0,3)}},filter:{ID:d?function(a){return a=a.replace(V,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(V,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(V,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=B[o][a];return b||(b=B(a,new RegExp("(^|"+E+")"+a+"("+E+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return function(d,e){var f=bc.attr(d,a);return f==null?b==="!=":b?(f+="",b==="="?f===c:b==="!="?f!==c:b==="^="?c&&f.indexOf(c)===0:b==="*="?c&&f.indexOf(c)>-1:b==="$="?c&&f.substr(f.length-c.length)===c:b==="~="?(" "+f+" ").indexOf(c)>-1:b==="|="?f===c||f.substr(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d){return a==="nth"?function(a){var b,e,f=a.parentNode;if(c===1&&d===0)return!0;if(f){e=0;for(b=f.firstChild;b;b=b.nextSibling)if(b.nodeType===1){e++;if(a===b)break}}return e-=d,e===c||e%c===0&&e/c>=0}:function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b){var c,d=e.pseudos[a]||e.setFilters[a.toLowerCase()]||bc.error("unsupported pseudo: "+a);return d[o]?d(b):d.length>1?(c=[a,a,"",b],e.setFilters.hasOwnProperty(a.toLowerCase())?z(function(a,c){var e,f=d(a,b),g=f.length;while(g--)e=y.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:z(function(a){var b=[],c=[],d=i(a.replace(L,"$1"));return d[o]?z(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)if(f=g[h])a[h]=!(b[h]=f)}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:z(function(a){return function(b){return bc(a,b).length>0}}),contains:z(function(a){return function(b){return(b.textContent||b.innerText||f(b)).indexOf(a)>-1}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!e.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},header:function(a){return T.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:bd("radio"),checkbox:bd("checkbox"),file:bd("file"),password:bd("password"),image:bd("image"),submit:be("submit"),reset:be("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return U.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement},first:bf(function(a,b,c){return[0]}),last:bf(function(a,b,c){return[b-1]}),eq:bf(function(a,b,c){return[c<0?c+b:c]}),even:bf(function(a,b,c){for(var d=0;d=0;)a.push(d);return a}),gt:bf(function(a,b,c){for(var d=c<0?c+b:c;++d",a.querySelectorAll("[selected]").length||e.push("\\["+E+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),X(function(a){a.innerHTML="

",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+E+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=new RegExp(e.join("|")),bp=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a))){var i,j,k=!0,l=o,m=d,n=d.nodeType===9&&a;if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){i=bh(a),(k=d.getAttribute("id"))?l=k.replace(c,"\\$&"):d.setAttribute("id",l),l="[id='"+l+"'] ",j=i.length;while(j--)i[j]=l+i[j].join("");m=R.test(a)&&d.parentNode||d,n=i.join(",")}if(n)try{return w.apply(f,x.call(m.querySelectorAll(n),0)),f}catch(p){}finally{k||d.removeAttribute("id")}}return b(a,d,f,g,h)},h&&(X(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),f.push("!=",J)}catch(c){}}),f=new RegExp(f.join("|")),bc.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!g(b)&&!f.test(c)&&(!e||!e.test(c)))try{var i=h.call(b,c);if(i||a||b.document&&b.document.nodeType!==11)return i}catch(j){}return bc(c,null,null,[b]).length>0})}(),e.pseudos.nth=e.pseudos.eq,e.filters=bq.prototype=e.pseudos,e.setFilters=new bq,bc.attr=p.attr,p.find=bc,p.expr=bc.selectors,p.expr[":"]=p.expr.pseudos,p.unique=bc.uniqueSort,p.text=bc.getText,p.isXMLDoc=bc.isXML,p.contains=bc.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
","
"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(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){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{ck=f.href}catch(cy){ck=e.createElement("a"),ck.href="",ck=ck.href}cj=ct.exec(ck.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:ck,isLocal:cn.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=(c||y)+"",k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase())||!1,l.crossDomain=i&&i.join(":")+(i[3]?"":i[1]==="http:"?80:443)!==cj.join(":")+(cj[3]?"":cj[1]==="http:"?80:443)),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e=this.createTween(a,b),f=cQ.exec(b),g=e.cur(),h=+g||0,i=1,j=20;if(f){c=+f[2],d=f[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&h){h=p.css(e.elem,a,!0)||c||1;do i=i||".5",h=h/i,p.style(e.elem,a,h+d);while(i!==(i=e.cur()/g)&&i!==1&&--j)}e.unit=d,e.start=h,e.end=f[1]?h+(f[1]+1)*c:c}return e}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git "a/\346\216\247\344\273\266/jquery-plug-ichoose/js/mod.udatas.js" "b/\346\216\247\344\273\266/jquery-plug-ichoose/js/mod.udatas.js" new file mode 100644 index 0000000..f9f34b9 --- /dev/null +++ "b/\346\216\247\344\273\266/jquery-plug-ichoose/js/mod.udatas.js" @@ -0,0 +1,56 @@ +/* + * 用户信息 + */ +var PinYin = {"a":"\u554a\u963f\u9515","ai":"\u57c3\u6328\u54ce\u5509\u54c0\u7691\u764c\u853c\u77ee\u827e\u788d\u7231\u9698\u8bf6\u6371\u55f3\u55cc\u5ad2\u7477\u66a7\u7839\u953f\u972d","an":"\u978d\u6c28\u5b89\u4ffa\u6309\u6697\u5cb8\u80fa\u6848\u8c19\u57ef\u63de\u72b4\u5eb5\u6849\u94f5\u9e4c\u9878\u9eef","ang":"\u80ae\u6602\u76ce","ao":"\u51f9\u6556\u71ac\u7ff1\u8884\u50b2\u5965\u61ca\u6fb3\u5773\u62d7\u55f7\u5662\u5c99\u5ed2\u9068\u5aaa\u9a9c\u8071\u87af\u93ca\u9ccc\u93d6","ba":"\u82ad\u634c\u6252\u53ed\u5427\u7b06\u516b\u75a4\u5df4\u62d4\u8dcb\u9776\u628a\u8019\u575d\u9738\u7f62\u7238\u8307\u83dd\u8406\u636d\u5c9c\u705e\u6777\u94af\u7c91\u9c85\u9b43","bai":"\u767d\u67cf\u767e\u6446\u4f70\u8d25\u62dc\u7a17\u859c\u63b0\u97b4","ban":"\u6591\u73ed\u642c\u6273\u822c\u9881\u677f\u7248\u626e\u62cc\u4f34\u74e3\u534a\u529e\u7eca\u962a\u5742\u8c73\u94a3\u7622\u764d\u8228","bang":"\u90a6\u5e2e\u6886\u699c\u8180\u7ed1\u68d2\u78c5\u868c\u9551\u508d\u8c24\u84a1\u8783","bao":"\u82de\u80de\u5305\u8912\u96f9\u4fdd\u5821\u9971\u5b9d\u62b1\u62a5\u66b4\u8c79\u9c8d\u7206\u52f9\u8446\u5b80\u5b62\u7172\u9e28\u8913\u8db5\u9f85","bo":"\u5265\u8584\u73bb\u83e0\u64ad\u62e8\u94b5\u6ce2\u535a\u52c3\u640f\u94c2\u7b94\u4f2f\u5e1b\u8236\u8116\u818a\u6e24\u6cca\u9a73\u4eb3\u8543\u5575\u997d\u6a97\u64d8\u7934\u94b9\u9e41\u7c38\u8ddb","bei":"\u676f\u7891\u60b2\u5351\u5317\u8f88\u80cc\u8d1d\u94a1\u500d\u72c8\u5907\u60eb\u7119\u88ab\u5b5b\u9642\u90b6\u57e4\u84d3\u5457\u602b\u6096\u789a\u9e4e\u8919\u943e","ben":"\u5954\u82ef\u672c\u7b28\u755a\u574c\u951b","beng":"\u5d29\u7ef7\u752d\u6cf5\u8e66\u8ff8\u552a\u5623\u750f","bi":"\u903c\u9f3b\u6bd4\u9119\u7b14\u5f7c\u78a7\u84d6\u853d\u6bd5\u6bd9\u6bd6\u5e01\u5e87\u75f9\u95ed\u655d\u5f0a\u5fc5\u8f9f\u58c1\u81c2\u907f\u965b\u5315\u4ef3\u4ffe\u8298\u835c\u8378\u5421\u54d4\u72f4\u5eb3\u610e\u6ed7\u6fde\u5f3c\u59a3\u5a62\u5b16\u74a7\u8d32\u7540\u94cb\u79d5\u88e8\u7b5a\u7b85\u7be6\u822d\u895e\u8df8\u9ac0","bian":"\u97ad\u8fb9\u7f16\u8d2c\u6241\u4fbf\u53d8\u535e\u8fa8\u8fa9\u8fab\u904d\u533e\u5f01\u82c4\u5fed\u6c74\u7f0f\u7178\u782d\u78a5\u7a39\u7a86\u8759\u7b3e\u9cca","biao":"\u6807\u5f6a\u8198\u8868\u5a4a\u9aa0\u98d1\u98d9\u98da\u706c\u9556\u9573\u762d\u88f1\u9cd4","bie":"\u9cd6\u618b\u522b\u762a\u8e69\u9cd8","bin":"\u5f6c\u658c\u6fd2\u6ee8\u5bbe\u6448\u50a7\u6d5c\u7f24\u73a2\u6ba1\u8191\u9554\u9acc\u9b13","bing":"\u5175\u51b0\u67c4\u4e19\u79c9\u997c\u70b3\u75c5\u5e76\u7980\u90b4\u6452\u7ee0\u678b\u69df\u71f9","bu":"\u6355\u535c\u54fa\u8865\u57e0\u4e0d\u5e03\u6b65\u7c3f\u90e8\u6016\u62ca\u535f\u900b\u74ff\u6661\u949a\u91ad","ca":"\u64e6\u5693\u7924","cai":"\u731c\u88c1\u6750\u624d\u8d22\u776c\u8e29\u91c7\u5f69\u83dc\u8521","can":"\u9910\u53c2\u8695\u6b8b\u60ed\u60e8\u707f\u9a96\u74a8\u7cb2\u9eea","cang":"\u82cd\u8231\u4ed3\u6ca7\u85cf\u4f27","cao":"\u64cd\u7cd9\u69fd\u66f9\u8349\u8279\u5608\u6f15\u87ac\u825a","ce":"\u5395\u7b56\u4fa7\u518c\u6d4b\u5202\u5e3b\u607b","ceng":"\u5c42\u8e6d\u564c","cha":"\u63d2\u53c9\u832c\u8336\u67e5\u78b4\u643d\u5bdf\u5c94\u5dee\u8be7\u7339\u9987\u6c4a\u59f9\u6748\u6942\u69ce\u6aab\u9497\u9538\u9572\u8869","chai":"\u62c6\u67f4\u8c7a\u4faa\u8308\u7625\u867f\u9f87","chan":"\u6400\u63ba\u8749\u998b\u8c17\u7f20\u94f2\u4ea7\u9610\u98a4\u5181\u8c04\u8c36\u8487\u5edb\u5fcf\u6f7a\u6fb6\u5b71\u7fbc\u5a75\u5b17\u9aa3\u89c7\u7985\u9561\u88e3\u87fe\u8e94","chang":"\u660c\u7316\u573a\u5c1d\u5e38\u957f\u507f\u80a0\u5382\u655e\u7545\u5531\u5021\u4f25\u9b2f\u82cc\u83d6\u5f9c\u6005\u60dd\u960a\u5a3c\u5ae6\u6636\u6c05\u9cb3","chao":"\u8d85\u6284\u949e\u671d\u5632\u6f6e\u5de2\u5435\u7092\u600a\u7ec9\u6641\u8016","che":"\u8f66\u626f\u64a4\u63a3\u5f7b\u6f88\u577c\u5c6e\u7817","chen":"\u90f4\u81e3\u8fb0\u5c18\u6668\u5ff1\u6c89\u9648\u8d81\u886c\u79f0\u8c0c\u62bb\u55d4\u5bb8\u741b\u6987\u809c\u80c2\u789c\u9f80","cheng":"\u6491\u57ce\u6a59\u6210\u5448\u4e58\u7a0b\u60e9\u6f84\u8bda\u627f\u901e\u9a8b\u79e4\u57d5\u5d4a\u5fb5\u6d48\u67a8\u67fd\u6a18\u665f\u584d\u77a0\u94d6\u88ce\u86cf\u9172","chi":"\u5403\u75f4\u6301\u5319\u6c60\u8fdf\u5f1b\u9a70\u803b\u9f7f\u4f88\u5c3a\u8d64\u7fc5\u65a5\u70bd\u50ba\u5880\u82aa\u830c\u640b\u53f1\u54e7\u557b\u55e4\u5f73\u996c\u6cb2\u5ab8\u6555\u80dd\u7719\u7735\u9e31\u761b\u892b\u86a9\u87ad\u7b1e\u7bea\u8c49\u8e05\u8e1f\u9b51","chong":"\u5145\u51b2\u866b\u5d07\u5ba0\u833a\u5fe1\u61a7\u94f3\u825f","chou":"\u62bd\u916c\u7574\u8e0c\u7a20\u6101\u7b79\u4ec7\u7ef8\u7785\u4e11\u4fe6\u5733\u5e31\u60c6\u6eb4\u59af\u7633\u96e0\u9c8b","chu":"\u81ed\u521d\u51fa\u6a71\u53a8\u8e87\u9504\u96cf\u6ec1\u9664\u695a\u7840\u50a8\u77d7\u6410\u89e6\u5904\u4e8d\u520d\u61b7\u7ecc\u6775\u696e\u6a17\u870d\u8e70\u9edc","chuan":"\u63e3\u5ddd\u7a7f\u693d\u4f20\u8239\u5598\u4e32\u63be\u821b\u60f4\u9044\u5ddb\u6c1a\u948f\u9569\u8221","chuang":"\u75ae\u7a97\u5e62\u5e8a\u95ef\u521b\u6006","chui":"\u5439\u708a\u6376\u9524\u5782\u9672\u68f0\u69cc","chun":"\u6625\u693f\u9187\u5507\u6df3\u7eaf\u8822\u4fc3\u83bc\u6c8c\u80ab\u6710\u9e51\u877d","chuo":"\u6233\u7ef0\u851f\u8fb6\u8f8d\u955e\u8e14\u9f8a","ci":"\u75b5\u8328\u78c1\u96cc\u8f9e\u6148\u74f7\u8bcd\u6b64\u523a\u8d50\u6b21\u8360\u5472\u5d6f\u9e5a\u8785\u7ccd\u8d91","cong":"\u806a\u8471\u56f1\u5306\u4ece\u4e1b\u506c\u82c1\u6dd9\u9aa2\u742e\u7481\u679e","cu":"\u51d1\u7c97\u918b\u7c07\u731d\u6b82\u8e59","cuan":"\u8e7f\u7be1\u7a9c\u6c46\u64ba\u6615\u7228","cui":"\u6467\u5d14\u50ac\u8106\u7601\u7cb9\u6dec\u7fe0\u8403\u60b4\u7480\u69b1\u96b9","cun":"\u6751\u5b58\u5bf8\u78cb\u5fd6\u76b4","cuo":"\u64ae\u6413\u63aa\u632b\u9519\u539d\u811e\u9509\u77ec\u75e4\u9e7e\u8e49\u8e9c","da":"\u642d\u8fbe\u7b54\u7629\u6253\u5927\u8037\u54d2\u55d2\u601b\u59b2\u75b8\u8921\u7b2a\u977c\u9791","dai":"\u5446\u6b79\u50a3\u6234\u5e26\u6b86\u4ee3\u8d37\u888b\u5f85\u902e\u6020\u57ed\u7519\u5454\u5cb1\u8fe8\u902f\u9a80\u7ed0\u73b3\u9edb","dan":"\u803d\u62c5\u4e39\u5355\u90f8\u63b8\u80c6\u65e6\u6c2e\u4f46\u60ee\u6de1\u8bde\u5f39\u86cb\u4ebb\u510b\u5369\u840f\u5556\u6fb9\u6a90\u6b9a\u8d55\u7708\u7605\u8043\u7baa","dang":"\u5f53\u6321\u515a\u8361\u6863\u8c20\u51fc\u83ea\u5b95\u7800\u94db\u88c6","dao":"\u5200\u6363\u8e48\u5012\u5c9b\u7977\u5bfc\u5230\u7a3b\u60bc\u9053\u76d7\u53e8\u5541\u5fc9\u6d2e\u6c18\u7118\u5fd1\u7e9b","de":"\u5fb7\u5f97\u7684\u951d","deng":"\u8e6c\u706f\u767b\u7b49\u77aa\u51f3\u9093\u5654\u5d9d\u6225\u78f4\u956b\u7c26","di":"\u5824\u4f4e\u6ef4\u8fea\u654c\u7b1b\u72c4\u6da4\u7fdf\u5ae1\u62b5\u5e95\u5730\u8482\u7b2c\u5e1d\u5f1f\u9012\u7f14\u6c10\u7c74\u8bcb\u8c1b\u90b8\u577b\u839c\u837b\u5600\u5a23\u67e2\u68e3\u89cc\u7825\u78b2\u7747\u955d\u7f9d\u9ab6","dian":"\u98a0\u6382\u6ec7\u7898\u70b9\u5178\u975b\u57ab\u7535\u4f43\u7538\u5e97\u60e6\u5960\u6dc0\u6bbf\u4e36\u963d\u576b\u57dd\u5dc5\u73b7\u765c\u766b\u7c1f\u8e2e","diao":"\u7889\u53fc\u96d5\u51cb\u5201\u6389\u540a\u9493\u8c03\u8f7a\u94de\u8729\u7c9c\u8c82","die":"\u8dcc\u7239\u789f\u8776\u8fed\u8c0d\u53e0\u4f5a\u57a4\u581e\u63f2\u558b\u6e2b\u8f76\u7252\u74de\u8936\u800b\u8e40\u9cbd\u9cce","ding":"\u4e01\u76ef\u53ee\u9489\u9876\u9f0e\u952d\u5b9a\u8ba2\u4e22\u4ec3\u5576\u738e\u815a\u7887\u753a\u94e4\u7594\u8035\u914a","dong":"\u4e1c\u51ac\u8463\u61c2\u52a8\u680b\u4f97\u606b\u51bb\u6d1e\u578c\u549a\u5cbd\u5cd2\u5902\u6c21\u80e8\u80f4\u7850\u9e2b","dou":"\u515c\u6296\u6597\u9661\u8c46\u9017\u75d8\u8538\u94ad\u7aa6\u7aac\u86aa\u7bfc\u9161","du":"\u90fd\u7763\u6bd2\u728a\u72ec\u8bfb\u5835\u7779\u8d4c\u675c\u9540\u809a\u5ea6\u6e21\u5992\u828f\u561f\u6e0e\u691f\u6a50\u724d\u8839\u7b03\u9ad1\u9ee9","duan":"\u7aef\u77ed\u953b\u6bb5\u65ad\u7f0e\u5f56\u6934\u7145\u7c16","dui":"\u5806\u5151\u961f\u5bf9\u603c\u619d\u7893","dun":"\u58a9\u5428\u8e72\u6566\u987f\u56e4\u949d\u76fe\u9041\u7096\u7818\u7905\u76f9\u9566\u8db8","duo":"\u6387\u54c6\u591a\u593a\u579b\u8eb2\u6735\u8dfa\u8235\u5241\u60f0\u5815\u5484\u54da\u7f0d\u67c1\u94ce\u88f0\u8e31","e":"\u86fe\u5ce8\u9e45\u4fc4\u989d\u8bb9\u5a25\u6076\u5384\u627c\u904f\u9102\u997f\u5669\u8c14\u57a9\u57ad\u82ca\u83aa\u843c\u5443\u6115\u5c59\u5a40\u8f6d\u66f7\u816d\u786a\u9507\u9537\u9e57\u989a\u9cc4","en":"\u6069\u84bd\u6441\u5514\u55ef","er":"\u800c\u513f\u8033\u5c14\u9975\u6d31\u4e8c\u8d30\u8fe9\u73e5\u94d2\u9e38\u9c95","fa":"\u53d1\u7f5a\u7b4f\u4f10\u4e4f\u9600\u6cd5\u73d0\u57a1\u781d","fan":"\u85e9\u5e06\u756a\u7ffb\u6a0a\u77fe\u9492\u7e41\u51e1\u70e6\u53cd\u8fd4\u8303\u8d29\u72af\u996d\u6cdb\u8629\u5e61\u72ad\u68b5\u6535\u71d4\u7548\u8e6f","fang":"\u574a\u82b3\u65b9\u80aa\u623f\u9632\u59a8\u4eff\u8bbf\u7eba\u653e\u531a\u90a1\u5f77\u94ab\u822b\u9c82","fei":"\u83f2\u975e\u5561\u98de\u80a5\u532a\u8bfd\u5420\u80ba\u5e9f\u6cb8\u8d39\u82be\u72d2\u60b1\u6ddd\u5983\u7ecb\u7eef\u69a7\u8153\u6590\u6249\u7953\u7829\u9544\u75f1\u871a\u7bda\u7fe1\u970f\u9cb1","fen":"\u82ac\u915a\u5429\u6c1b\u5206\u7eb7\u575f\u711a\u6c7e\u7c89\u594b\u4efd\u5fff\u6124\u7caa\u507e\u7035\u68fc\u610d\u9cbc\u9f22","feng":"\u4e30\u5c01\u67ab\u8702\u5cf0\u950b\u98ce\u75af\u70fd\u9022\u51af\u7f1d\u8bbd\u5949\u51e4\u4ff8\u9146\u8451\u6ca3\u781c","fu":"\u4f5b\u5426\u592b\u6577\u80a4\u5b75\u6276\u62c2\u8f90\u5e45\u6c1f\u7b26\u4f0f\u4fd8\u670d\u6d6e\u6daa\u798f\u88b1\u5f17\u752b\u629a\u8f85\u4fef\u91dc\u65a7\u812f\u8151\u5e9c\u8150\u8d74\u526f\u8986\u8d4b\u590d\u5085\u4ed8\u961c\u7236\u8179\u8d1f\u5bcc\u8ba3\u9644\u5987\u7f1a\u5490\u5310\u51eb\u90db\u8299\u82fb\u832f\u83a9\u83d4\u544b\u5e5e\u6ecf\u8274\u5b5a\u9a78\u7ec2\u6874\u8d59\u9efb\u9efc\u7f58\u7a03\u99a5\u864d\u86a8\u8709\u8760\u876e\u9eb8\u8dba\u8dd7\u9cc6","ga":"\u5676\u560e\u86e4\u5c2c\u5477\u5c15\u5c1c\u65ee\u9486","gai":"\u8be5\u6539\u6982\u9499\u76d6\u6e89\u4e10\u9654\u5793\u6224\u8d45\u80f2","gan":"\u5e72\u7518\u6746\u67d1\u7aff\u809d\u8d76\u611f\u79c6\u6562\u8d63\u5769\u82f7\u5c34\u64c0\u6cd4\u6de6\u6f89\u7ec0\u6a44\u65f0\u77f8\u75b3\u9150","gang":"\u5188\u521a\u94a2\u7f38\u809b\u7eb2\u5c97\u6e2f\u6206\u7f61\u9883\u7b7b","gong":"\u6760\u5de5\u653b\u529f\u606d\u9f9a\u4f9b\u8eac\u516c\u5bab\u5f13\u5de9\u6c5e\u62f1\u8d21\u5171\u857b\u5efe\u54a3\u73d9\u80b1\u86a3\u86e9\u89e5","gao":"\u7bd9\u768b\u9ad8\u818f\u7f94\u7cd5\u641e\u9550\u7a3f\u544a\u777e\u8bf0\u90dc\u84bf\u85c1\u7f1f\u69d4\u69c1\u6772\u9506","ge":"\u54e5\u6b4c\u6401\u6208\u9e3d\u80f3\u7599\u5272\u9769\u845b\u683c\u9601\u9694\u94ec\u4e2a\u5404\u9b32\u4ee1\u54ff\u5865\u55dd\u7ea5\u643f\u8188\u784c\u94ea\u9549\u88bc\u988c\u867c\u8238\u9abc\u9ac2","gei":"\u7ed9","gen":"\u6839\u8ddf\u4e98\u831b\u54cf\u826e","geng":"\u8015\u66f4\u5e9a\u7fb9\u57c2\u803f\u6897\u54fd\u8d53\u9ca0","gou":"\u94a9\u52fe\u6c9f\u82df\u72d7\u57a2\u6784\u8d2d\u591f\u4f5d\u8bdf\u5ca3\u9058\u5abe\u7f11\u89cf\u5f40\u9e32\u7b31\u7bdd\u97b2","gu":"\u8f9c\u83c7\u5495\u7b8d\u4f30\u6cbd\u5b64\u59d1\u9f13\u53e4\u86ca\u9aa8\u8c37\u80a1\u6545\u987e\u56fa\u96c7\u560f\u8bc2\u83f0\u54cc\u5d2e\u6c69\u688f\u8f71\u726f\u727f\u80cd\u81cc\u6bc2\u77bd\u7f5f\u94b4\u9522\u74e0\u9e2a\u9e44\u75fc\u86c4\u9164\u89da\u9cb4\u9ab0\u9e58","gua":"\u522e\u74dc\u5250\u5be1\u6302\u8902\u5366\u8bd6\u5471\u681d\u9e39","guai":"\u4e56\u62d0\u602a\u54d9","guan":"\u68fa\u5173\u5b98\u51a0\u89c2\u7ba1\u9986\u7f50\u60ef\u704c\u8d2f\u500c\u839e\u63bc\u6dab\u76e5\u9e73\u9ccf","guang":"\u5149\u5e7f\u901b\u72b7\u6844\u80f1\u7592","gui":"\u7470\u89c4\u572d\u7845\u5f52\u9f9f\u95fa\u8f68\u9b3c\u8be1\u7678\u6842\u67dc\u8dea\u8d35\u523d\u5326\u523f\u5e8b\u5b84\u59ab\u6867\u7085\u6677\u7688\u7c0b\u9c91\u9cdc","gun":"\u8f8a\u6eda\u68cd\u4e28\u886e\u7ef2\u78d9\u9ca7","guo":"\u9505\u90ed\u56fd\u679c\u88f9\u8fc7\u9998\u8803\u57da\u63b4\u5459\u56d7\u5e3c\u5d1e\u7313\u6901\u8662\u951e\u8052\u872e\u873e\u8748","ha":"\u54c8","hai":"\u9ab8\u5b69\u6d77\u6c26\u4ea5\u5bb3\u9a87\u54b4\u55e8\u988f\u91a2","han":"\u9163\u61a8\u90af\u97e9\u542b\u6db5\u5bd2\u51fd\u558a\u7f55\u7ff0\u64bc\u634d\u65f1\u61be\u608d\u710a\u6c57\u6c49\u9097\u83e1\u6496\u961a\u701a\u6657\u7113\u9894\u86b6\u9f3e","hen":"\u592f\u75d5\u5f88\u72e0\u6068","hang":"\u676d\u822a\u6c86\u7ed7\u73e9\u6841","hao":"\u58d5\u568e\u8c6a\u6beb\u90dd\u597d\u8017\u53f7\u6d69\u8585\u55e5\u5686\u6fe0\u704f\u660a\u7693\u98a2\u869d","he":"\u5475\u559d\u8377\u83cf\u6838\u79be\u548c\u4f55\u5408\u76d2\u8c89\u9602\u6cb3\u6db8\u8d6b\u8910\u9e64\u8d3a\u8bc3\u52be\u58d1\u85ff\u55d1\u55ec\u9616\u76cd\u86b5\u7fee","hei":"\u563f\u9ed1","heng":"\u54fc\u4ea8\u6a2a\u8861\u6052\u8a07\u8605","hong":"\u8f70\u54c4\u70d8\u8679\u9e3f\u6d2a\u5b8f\u5f18\u7ea2\u9ec9\u8ba7\u836d\u85a8\u95f3\u6cd3","hou":"\u5589\u4faf\u7334\u543c\u539a\u5019\u540e\u5820\u5f8c\u9005\u760a\u7bcc\u7cc7\u9c8e\u9aba","hu":"\u547c\u4e4e\u5ffd\u745a\u58f6\u846b\u80e1\u8774\u72d0\u7cca\u6e56\u5f27\u864e\u552c\u62a4\u4e92\u6caa\u6237\u51b1\u553f\u56eb\u5cb5\u7322\u6019\u60da\u6d52\u6ef9\u7425\u69f2\u8f77\u89f3\u70c0\u7173\u623d\u6248\u795c\u9e55\u9e71\u7b0f\u9190\u659b","hua":"\u82b1\u54d7\u534e\u733e\u6ed1\u753b\u5212\u5316\u8bdd\u5290\u6d4d\u9a85\u6866\u94e7\u7a1e","huai":"\u69d0\u5f8a\u6000\u6dee\u574f\u8fd8\u8e1d","huan":"\u6b22\u73af\u6853\u7f13\u6362\u60a3\u5524\u75ea\u8c62\u7115\u6da3\u5ba6\u5e7b\u90c7\u5942\u57b8\u64d0\u571c\u6d39\u6d63\u6f36\u5bf0\u902d\u7f33\u953e\u9ca9\u9b1f","huang":"\u8352\u614c\u9ec4\u78fa\u8757\u7c27\u7687\u51f0\u60f6\u714c\u6643\u5e4c\u604d\u8c0e\u968d\u5fa8\u6e5f\u6f62\u9051\u749c\u8093\u7640\u87e5\u7bc1\u9cc7","hui":"\u7070\u6325\u8f89\u5fbd\u6062\u86d4\u56de\u6bc1\u6094\u6167\u5349\u60e0\u6666\u8d3f\u79fd\u4f1a\u70e9\u6c47\u8bb3\u8bf2\u7ed8\u8bd9\u8334\u835f\u8559\u54d5\u5599\u96b3\u6d04\u5f57\u7f0b\u73f2\u6656\u605a\u867a\u87ea\u9ebe","hun":"\u8364\u660f\u5a5a\u9b42\u6d51\u6df7\u8be8\u9984\u960d\u6eb7\u7f17","huo":"\u8c41\u6d3b\u4f19\u706b\u83b7\u6216\u60d1\u970d\u8d27\u7978\u6509\u56af\u5925\u94ac\u952a\u956c\u8020\u8816","ji":"\u51fb\u573e\u57fa\u673a\u7578\u7a3d\u79ef\u7b95\u808c\u9965\u8ff9\u6fc0\u8ba5\u9e21\u59ec\u7ee9\u7f09\u5409\u6781\u68d8\u8f91\u7c4d\u96c6\u53ca\u6025\u75be\u6c72\u5373\u5ac9\u7ea7\u6324\u51e0\u810a\u5df1\u84df\u6280\u5180\u5b63\u4f0e\u796d\u5242\u60b8\u6d4e\u5bc4\u5bc2\u8ba1\u8bb0\u65e2\u5fcc\u9645\u5993\u7ee7\u7eaa\u5c45\u4e0c\u4e69\u525e\u4f76\u4f74\u8114\u58bc\u82a8\u82b0\u8401\u84ba\u857a\u638e\u53fd\u54ad\u54dc\u5527\u5c8c\u5d74\u6d0e\u5f50\u5c50\u9aa5\u757f\u7391\u696b\u6b9b\u621f\u6222\u8d4d\u89ca\u7284\u9f51\u77f6\u7f81\u5d47\u7a37\u7620\u7635\u866e\u7b08\u7b04\u66a8\u8dfb\u8dfd\u9701\u9c9a\u9cab\u9afb\u9e82","jia":"\u5609\u67b7\u5939\u4f73\u5bb6\u52a0\u835a\u988a\u8d3e\u7532\u94be\u5047\u7a3c\u4ef7\u67b6\u9a7e\u5ac1\u4f3d\u90cf\u62ee\u5cac\u6d43\u8fe6\u73c8\u621b\u80db\u605d\u94d7\u9553\u75c2\u86f1\u7b33\u8888\u8dcf","jian":"\u6b7c\u76d1\u575a\u5c16\u7b3a\u95f4\u714e\u517c\u80a9\u8270\u5978\u7f04\u8327\u68c0\u67ec\u78b1\u7877\u62e3\u6361\u7b80\u4fed\u526a\u51cf\u8350\u69db\u9274\u8df5\u8d31\u89c1\u952e\u7bad\u4ef6\u5065\u8230\u5251\u996f\u6e10\u6e85\u6da7\u5efa\u50ed\u8c0f\u8c2b\u83c5\u84b9\u641b\u56dd\u6e54\u8e47\u8b07\u7f23\u67a7\u67d9\u6957\u620b\u622c\u726e\u728d\u6bfd\u8171\u7751\u950f\u9e63\u88e5\u7b15\u7bb4\u7fe6\u8dbc\u8e3a\u9ca3\u97af","jiang":"\u50f5\u59dc\u5c06\u6d46\u6c5f\u7586\u848b\u6868\u5956\u8bb2\u5320\u9171\u964d\u8333\u6d1a\u7edb\u7f30\u729f\u7913\u8029\u7ce8\u8c47","jiao":"\u8549\u6912\u7901\u7126\u80f6\u4ea4\u90ca\u6d47\u9a84\u5a07\u56bc\u6405\u94f0\u77eb\u4fa5\u811a\u72e1\u89d2\u997a\u7f34\u7ede\u527f\u6559\u9175\u8f7f\u8f83\u53eb\u4f7c\u50ec\u832d\u6322\u564d\u5ce4\u5fbc\u59e3\u7e9f\u656b\u768e\u9e6a\u86df\u91ae\u8de4\u9c9b","jie":"\u7a96\u63ed\u63a5\u7686\u79f8\u8857\u9636\u622a\u52ab\u8282\u6854\u6770\u6377\u776b\u7aed\u6d01\u7ed3\u89e3\u59d0\u6212\u85c9\u82a5\u754c\u501f\u4ecb\u75a5\u8beb\u5c4a\u5048\u8ba6\u8bd8\u5588\u55df\u736c\u5a55\u5b51\u6840\u7352\u78a3\u9534\u7596\u88b7\u9889\u86a7\u7faf\u9c92\u9ab1\u9aeb","jin":"\u5dfe\u7b4b\u65a4\u91d1\u4eca\u6d25\u895f\u7d27\u9526\u4ec5\u8c28\u8fdb\u9773\u664b\u7981\u8fd1\u70ec\u6d78\u5c3d\u537a\u8369\u5807\u5664\u9991\u5ed1\u5997\u7f19\u747e\u69ff\u8d46\u89d0\u9485\u9513\u887f\u77dc","jing":"\u52b2\u8346\u5162\u830e\u775b\u6676\u9cb8\u4eac\u60ca\u7cbe\u7cb3\u7ecf\u4e95\u8b66\u666f\u9888\u9759\u5883\u656c\u955c\u5f84\u75c9\u9756\u7adf\u7ade\u51c0\u522d\u5106\u9631\u83c1\u734d\u61ac\u6cfe\u8ff3\u5f2a\u5a67\u80bc\u80eb\u8148\u65cc","jiong":"\u70af\u7a98\u5182\u8fe5\u6243","jiu":"\u63ea\u7a76\u7ea0\u7396\u97ed\u4e45\u7078\u4e5d\u9152\u53a9\u6551\u65e7\u81fc\u8205\u548e\u5c31\u759a\u50e6\u557e\u9604\u67e9\u6855\u9e6b\u8d73\u9b0f","ju":"\u97a0\u62d8\u72d9\u75bd\u9a79\u83ca\u5c40\u5480\u77e9\u4e3e\u6cae\u805a\u62d2\u636e\u5de8\u5177\u8ddd\u8e1e\u952f\u4ff1\u53e5\u60e7\u70ac\u5267\u5028\u8bb5\u82e3\u82f4\u8392\u63ac\u907d\u5c66\u741a\u67b8\u6910\u6998\u6989\u6a58\u728b\u98d3\u949c\u9514\u7aad\u88fe\u8d84\u91b5\u8e3d\u9f83\u96ce\u97ab","juan":"\u6350\u9e43\u5a1f\u5026\u7737\u5377\u7ee2\u9104\u72f7\u6d93\u684a\u8832\u9529\u954c\u96bd","jue":"\u6485\u652b\u6289\u6398\u5014\u7235\u89c9\u51b3\u8bc0\u7edd\u53a5\u5282\u8c32\u77cd\u8568\u5658\u5d1b\u7357\u5b53\u73cf\u6877\u6a5b\u721d\u9562\u8e76\u89d6","jun":"\u5747\u83cc\u94a7\u519b\u541b\u5cfb\u4fca\u7ae3\u6d5a\u90e1\u9a8f\u6343\u72fb\u76b2\u7b60\u9e87","ka":"\u5580\u5496\u5361\u4f67\u5494\u80e9","ke":"\u54af\u5777\u82db\u67ef\u68f5\u78d5\u9897\u79d1\u58f3\u54b3\u53ef\u6e34\u514b\u523b\u5ba2\u8bfe\u5ca2\u606a\u6e98\u9a92\u7f02\u73c2\u8f72\u6c2a\u778c\u94b6\u75b4\u7aa0\u874c\u9ac1","kai":"\u5f00\u63e9\u6977\u51ef\u6168\u5240\u57b2\u8488\u5ffe\u607a\u94e0\u950e","kan":"\u520a\u582a\u52d8\u574e\u780d\u770b\u4f83\u51f5\u83b0\u83b6\u6221\u9f9b\u77b0","kang":"\u5eb7\u6177\u7ce0\u625b\u6297\u4ea2\u7095\u5751\u4f09\u95f6\u94aa","kao":"\u8003\u62f7\u70e4\u9760\u5c3b\u6832\u7292\u94d0","ken":"\u80af\u5543\u57a6\u6073\u57a0\u88c9\u9880","keng":"\u542d\u5fd0\u94ff","kong":"\u7a7a\u6050\u5b54\u63a7\u5025\u5d06\u7b9c","kou":"\u62a0\u53e3\u6263\u5bc7\u82a4\u853b\u53e9\u770d\u7b58","ku":"\u67af\u54ed\u7a9f\u82e6\u9177\u5e93\u88e4\u5233\u5800\u55be\u7ed4\u9ab7","kua":"\u5938\u57ae\u630e\u8de8\u80ef\u4f89","kuai":"\u5757\u7b77\u4fa9\u5feb\u84af\u90d0\u8489\u72ef\u810d","kuan":"\u5bbd\u6b3e\u9acb","kuang":"\u5321\u7b50\u72c2\u6846\u77ff\u7736\u65f7\u51b5\u8bd3\u8bf3\u909d\u5739\u593c\u54d0\u7ea9\u8d36","kui":"\u4e8f\u76d4\u5cbf\u7aa5\u8475\u594e\u9b41\u5080\u9988\u6127\u6e83\u9997\u532e\u5914\u9697\u63c6\u55b9\u559f\u609d\u6126\u9615\u9035\u668c\u777d\u8069\u8770\u7bd1\u81fe\u8dec","kun":"\u5764\u6606\u6346\u56f0\u6083\u9603\u7428\u951f\u918c\u9cb2\u9ae1","kuo":"\u62ec\u6269\u5ed3\u9614\u86de","la":"\u5783\u62c9\u5587\u8721\u814a\u8fa3\u5566\u524c\u647a\u908b\u65ef\u782c\u760c","lai":"\u83b1\u6765\u8d56\u5d03\u5f95\u6d9e\u6fd1\u8d49\u7750\u94fc\u765e\u7c41","lan":"\u84dd\u5a6a\u680f\u62e6\u7bee\u9611\u5170\u6f9c\u8c30\u63fd\u89c8\u61d2\u7f06\u70c2\u6ee5\u5549\u5c9a\u61d4\u6f24\u6984\u6593\u7f71\u9567\u8934","lang":"\u7405\u6994\u72fc\u5eca\u90ce\u6717\u6d6a\u83a8\u8497\u5577\u9606\u9512\u7a02\u8782","lao":"\u635e\u52b3\u7262\u8001\u4f6c\u59e5\u916a\u70d9\u6d9d\u5520\u5d02\u6833\u94d1\u94f9\u75e8\u91aa","le":"\u52d2\u4e50\u808b\u4ec2\u53fb\u561e\u6cd0\u9cd3","lei":"\u96f7\u956d\u857e\u78ca\u7d2f\u5121\u5792\u64c2\u7c7b\u6cea\u7fb8\u8bd4\u837d\u54a7\u6f2f\u5ad8\u7f27\u6a91\u8012\u9179","ling":"\u68f1\u51b7\u62ce\u73b2\u83f1\u96f6\u9f84\u94c3\u4f36\u7f9a\u51cc\u7075\u9675\u5cad\u9886\u53e6\u4ee4\u9143\u5844\u82d3\u5464\u56f9\u6ce0\u7eeb\u67c3\u68c2\u74f4\u8046\u86c9\u7fce\u9cae","leng":"\u695e\u6123","li":"\u5398\u68a8\u7281\u9ece\u7bf1\u72f8\u79bb\u6f13\u7406\u674e\u91cc\u9ca4\u793c\u8389\u8354\u540f\u6817\u4e3d\u5389\u52b1\u783e\u5386\u5229\u5088\u4f8b\u4fd0\u75e2\u7acb\u7c92\u6ca5\u96b6\u529b\u7483\u54e9\u4fea\u4fda\u90e6\u575c\u82c8\u8385\u84e0\u85dc\u6369\u5456\u5533\u55b1\u7301\u6ea7\u6fa7\u9026\u5a0c\u5ae0\u9a8a\u7f21\u73de\u67a5\u680e\u8f79\u623e\u783a\u8a48\u7f79\u9502\u9e42\u75a0\u75ac\u86ce\u870a\u8821\u7b20\u7be5\u7c9d\u91b4\u8dde\u96f3\u9ca1\u9ce2\u9ee7","lian":"\u4fe9\u8054\u83b2\u8fde\u9570\u5ec9\u601c\u6d9f\u5e18\u655b\u8138\u94fe\u604b\u70bc\u7ec3\u631b\u8539\u5941\u6f4b\u6fc2\u5a08\u740f\u695d\u6b93\u81c1\u81a6\u88e2\u880a\u9ca2","liang":"\u7cae\u51c9\u6881\u7cb1\u826f\u4e24\u8f86\u91cf\u667e\u4eae\u8c05\u589a\u690b\u8e09\u9753\u9b49","liao":"\u64a9\u804a\u50da\u7597\u71ce\u5be5\u8fbd\u6f66\u4e86\u6482\u9563\u5ed6\u6599\u84fc\u5c25\u5639\u7360\u5bee\u7f2d\u948c\u9e69\u8022","lie":"\u5217\u88c2\u70c8\u52a3\u730e\u51bd\u57d2\u6d0c\u8d94\u8e90\u9b23","lin":"\u7433\u6797\u78f7\u9716\u4e34\u90bb\u9cde\u6dcb\u51db\u8d41\u541d\u853a\u5d99\u5eea\u9074\u6aa9\u8f9a\u77b5\u7cbc\u8e8f\u9e9f","liu":"\u6e9c\u7409\u69b4\u786b\u998f\u7559\u5218\u7624\u6d41\u67f3\u516d\u62a1\u507b\u848c\u6cd6\u6d4f\u905b\u9a9d\u7efa\u65d2\u7198\u950d\u954f\u9e68\u938f","long":"\u9f99\u804b\u5499\u7b3c\u7abf\u9686\u5784\u62e2\u9647\u5f04\u5785\u830f\u6cf7\u73d1\u680a\u80e7\u783b\u7643","lou":"\u697c\u5a04\u6402\u7bd3\u6f0f\u964b\u55bd\u5d5d\u9542\u7618\u8027\u877c\u9ac5","lu":"\u82a6\u5362\u9885\u5e90\u7089\u63b3\u5364\u864f\u9c81\u9e93\u788c\u9732\u8def\u8d42\u9e7f\u6f5e\u7984\u5f55\u9646\u622e\u5786\u6445\u64b8\u565c\u6cf8\u6e0c\u6f09\u7490\u680c\u6a79\u8f73\u8f82\u8f98\u6c07\u80ea\u9565\u9e2c\u9e6d\u7c0f\u823b\u9c88","lv":"\u9a74\u5415\u94dd\u4fa3\u65c5\u5c65\u5c61\u7f15\u8651\u6c2f\u5f8b\u7387\u6ee4\u7eff\u634b\u95fe\u6988\u8182\u7a06\u891b","luan":"\u5ce6\u5b6a\u6ee6\u5375\u4e71\u683e\u9e3e\u92ae","lue":"\u63a0\u7565\u950a","lun":"\u8f6e\u4f26\u4ed1\u6ca6\u7eb6\u8bba\u56f5","luo":"\u841d\u87ba\u7f57\u903b\u9523\u7ba9\u9aa1\u88f8\u843d\u6d1b\u9a86\u7edc\u502e\u8366\u645e\u7321\u6cfa\u6924\u8136\u9559\u7630\u96d2","ma":"\u5988\u9ebb\u739b\u7801\u8682\u9a6c\u9a82\u561b\u5417\u551b\u72b8\u5b37\u6769\u9ebd","mai":"\u57cb\u4e70\u9ea6\u5356\u8fc8\u8109\u52a2\u836c\u54aa\u973e","man":"\u7792\u9992\u86ee\u6ee1\u8513\u66fc\u6162\u6f2b\u8c29\u5881\u5e54\u7f26\u71b3\u9558\u989f\u87a8\u9cd7\u9794","mang":"\u8292\u832b\u76f2\u5fd9\u83bd\u9099\u6f2d\u6726\u786d\u87d2","meng":"\u6c13\u840c\u8499\u6aac\u76df\u9530\u731b\u68a6\u5b5f\u52d0\u750d\u77a2\u61f5\u791e\u867b\u8722\u8813\u824b\u8268\u9efe","miao":"\u732b\u82d7\u63cf\u7784\u85d0\u79d2\u6e3a\u5e99\u5999\u55b5\u9088\u7f08\u7f2a\u676a\u6dfc\u7707\u9e4b\u8731","mao":"\u8305\u951a\u6bdb\u77db\u94c6\u536f\u8302\u5192\u5e3d\u8c8c\u8d38\u4f94\u88a4\u52d6\u8306\u5cc1\u7441\u6634\u7266\u8004\u65c4\u61cb\u7780\u86d1\u8765\u87ca\u9ae6","me":"\u4e48","mei":"\u73ab\u679a\u6885\u9176\u9709\u7164\u6ca1\u7709\u5a92\u9541\u6bcf\u7f8e\u6627\u5bd0\u59b9\u5a9a\u5776\u8393\u5d4b\u7338\u6d7c\u6e44\u6963\u9545\u9e5b\u8882\u9b45","men":"\u95e8\u95f7\u4eec\u626a\u739f\u7116\u61d1\u9494","mi":"\u772f\u919a\u9761\u7cdc\u8ff7\u8c1c\u5f25\u7c73\u79d8\u89c5\u6ccc\u871c\u5bc6\u5e42\u8288\u5196\u8c27\u863c\u5627\u7315\u736f\u6c68\u5b93\u5f2d\u8112\u6549\u7cf8\u7e3b\u9e8b","mian":"\u68c9\u7720\u7ef5\u5195\u514d\u52c9\u5a29\u7f05\u9762\u6c94\u6e4e\u817c\u7704","mie":"\u8511\u706d\u54a9\u881b\u7bfe","min":"\u6c11\u62bf\u76bf\u654f\u60af\u95fd\u82e0\u5cb7\u95f5\u6cef\u73c9","ming":"\u660e\u879f\u9e23\u94ed\u540d\u547d\u51a5\u8317\u6e9f\u669d\u7791\u9169","miu":"\u8c2c","mo":"\u6478\u6479\u8611\u6a21\u819c\u78e8\u6469\u9b54\u62b9\u672b\u83ab\u58a8\u9ed8\u6cab\u6f20\u5bde\u964c\u8c1f\u8309\u84e6\u998d\u5aeb\u9546\u79e3\u763c\u8031\u87c6\u8c8a\u8c98","mou":"\u8c0b\u725f\u67d0\u53b6\u54de\u5a7a\u7738\u936a","mu":"\u62c7\u7261\u4ea9\u59c6\u6bcd\u5893\u66ae\u5e55\u52df\u6155\u6728\u76ee\u7766\u7267\u7a46\u4eeb\u82dc\u5452\u6c90\u6bea\u94bc","na":"\u62ff\u54ea\u5450\u94a0\u90a3\u5a1c\u7eb3\u5185\u637a\u80ad\u954e\u8872\u7bac","nai":"\u6c16\u4e43\u5976\u8010\u5948\u9f10\u827f\u8418\u67f0","nan":"\u5357\u7537\u96be\u56ca\u5583\u56e1\u6960\u8169\u877b\u8d67","nao":"\u6320\u8111\u607c\u95f9\u5b6c\u57b4\u7331\u7459\u7847\u94d9\u86f2","ne":"\u6dd6\u5462\u8bb7","nei":"\u9981","nen":"\u5ae9\u80fd\u6798\u6041","ni":"\u59ae\u9713\u502a\u6ce5\u5c3c\u62df\u4f60\u533f\u817b\u9006\u6eba\u4f32\u576d\u730a\u6029\u6ee0\u6635\u65ce\u7962\u615d\u7768\u94cc\u9cb5","nian":"\u852b\u62c8\u5e74\u78be\u64b5\u637b\u5ff5\u5eff\u8f87\u9ecf\u9c87\u9cb6","niang":"\u5a18\u917f","niao":"\u9e1f\u5c3f\u8311\u5b32\u8132\u8885","nie":"\u634f\u8042\u5b7d\u556e\u954a\u954d\u6d85\u4e5c\u9667\u8616\u55eb\u8080\u989e\u81ec\u8e51","nin":"\u60a8\u67e0","ning":"\u72de\u51dd\u5b81\u62e7\u6cde\u4f5e\u84e5\u549b\u752f\u804d","niu":"\u725b\u626d\u94ae\u7ebd\u72c3\u5ff8\u599e\u86b4","nong":"\u8113\u6d53\u519c\u4fac","nu":"\u5974\u52aa\u6012\u5476\u5e11\u5f29\u80ec\u5b65\u9a7d","nv":"\u5973\u6067\u9495\u8844","nuan":"\u6696","nuenue":"\u8650","nue":"\u759f\u8c11","nuo":"\u632a\u61e6\u7cef\u8bfa\u50a9\u6426\u558f\u9518","ou":"\u54e6\u6b27\u9e25\u6bb4\u85d5\u5455\u5076\u6ca4\u6004\u74ef\u8026","pa":"\u556a\u8db4\u722c\u5e15\u6015\u7436\u8469\u7b62","pai":"\u62cd\u6392\u724c\u5f98\u6e43\u6d3e\u4ff3\u848e","pan":"\u6500\u6f58\u76d8\u78d0\u76fc\u7554\u5224\u53db\u723f\u6cee\u88a2\u897b\u87e0\u8e52","pang":"\u4e53\u5e9e\u65c1\u802a\u80d6\u6ec2\u9004","pao":"\u629b\u5486\u5228\u70ae\u888d\u8dd1\u6ce1\u530f\u72cd\u5e96\u812c\u75b1","pei":"\u5478\u80da\u57f9\u88f4\u8d54\u966a\u914d\u4f69\u6c9b\u638a\u8f94\u5e14\u6de0\u65c6\u952b\u9185\u9708","pen":"\u55b7\u76c6\u6e53","peng":"\u7830\u62a8\u70f9\u6f8e\u5f6d\u84ec\u68da\u787c\u7bf7\u81a8\u670b\u9e4f\u6367\u78b0\u576f\u580b\u562d\u6026\u87db","pi":"\u7812\u9739\u6279\u62ab\u5288\u7435\u6bd7\u5564\u813e\u75b2\u76ae\u5339\u75de\u50fb\u5c41\u8b6c\u4e15\u9674\u90b3\u90eb\u572e\u9f19\u64d7\u567c\u5e80\u5ab2\u7eb0\u6787\u7513\u7765\u7f74\u94cd\u75e6\u7656\u758b\u868d\u8c94","pian":"\u7bc7\u504f\u7247\u9a97\u8c1d\u9a88\u728f\u80fc\u890a\u7fe9\u8e41","piao":"\u98d8\u6f02\u74e2\u7968\u527d\u560c\u5ad6\u7f25\u6b8d\u779f\u87b5","pie":"\u6487\u77a5\u4e3f\u82e4\u6c15","pin":"\u62fc\u9891\u8d2b\u54c1\u8058\u62da\u59d8\u5ad4\u6980\u725d\u98a6","ping":"\u4e52\u576a\u82f9\u840d\u5e73\u51ed\u74f6\u8bc4\u5c4f\u4fdc\u5a09\u67b0\u9c86","po":"\u5761\u6cfc\u9887\u5a46\u7834\u9b44\u8feb\u7c95\u53f5\u9131\u6ea5\u73c0\u948b\u94b7\u76a4\u7b38","pou":"\u5256\u88d2\u8e23","pu":"\u6251\u94fa\u4ec6\u8386\u8461\u83e9\u84b2\u57d4\u6734\u5703\u666e\u6d66\u8c31\u66dd\u7011\u530d\u5657\u6fee\u749e\u6c06\u9564\u9568\u8e7c","qi":"\u671f\u6b3a\u6816\u621a\u59bb\u4e03\u51c4\u6f06\u67d2\u6c8f\u5176\u68cb\u5947\u6b67\u7566\u5d0e\u8110\u9f50\u65d7\u7948\u7941\u9a91\u8d77\u5c82\u4e5e\u4f01\u542f\u5951\u780c\u5668\u6c14\u8fc4\u5f03\u6c7d\u6ce3\u8bab\u4e9f\u4e93\u573b\u8291\u840b\u847a\u5601\u5c7a\u5c90\u6c54\u6dc7\u9a90\u7eee\u742a\u7426\u675e\u6864\u69ed\u6b39\u797a\u61a9\u789b\u86f4\u871e\u7da6\u7dae\u8dbf\u8e4a\u9ccd\u9e92","qia":"\u6390\u6070\u6d3d\u845c","qian":"\u7275\u6266\u948e\u94c5\u5343\u8fc1\u7b7e\u4edf\u8c26\u4e7e\u9ed4\u94b1\u94b3\u524d\u6f5c\u9063\u6d45\u8c34\u5811\u5d4c\u6b20\u6b49\u4f65\u9621\u828a\u82a1\u8368\u63ae\u5c8d\u60ad\u614a\u9a9e\u6434\u8930\u7f31\u6920\u80b7\u6106\u94a4\u8654\u7b9d","qiang":"\u67aa\u545b\u8154\u7f8c\u5899\u8537\u5f3a\u62a2\u5af1\u6a2f\u6217\u709d\u9516\u9535\u956a\u8941\u8723\u7f9f\u8deb\u8dc4","qiao":"\u6a47\u9539\u6572\u6084\u6865\u77a7\u4e54\u4fa8\u5de7\u9798\u64ac\u7fd8\u5ced\u4fcf\u7a8d\u5281\u8bee\u8c2f\u835e\u6100\u6194\u7f32\u6a35\u6bf3\u7857\u8df7\u9792","qie":"\u5207\u8304\u4e14\u602f\u7a83\u90c4\u553c\u60ec\u59be\u6308\u9532\u7ba7","qin":"\u94a6\u4fb5\u4eb2\u79e6\u7434\u52e4\u82b9\u64d2\u79bd\u5bdd\u6c81\u82a9\u84c1\u8572\u63ff\u5423\u55ea\u5659\u6eb1\u6a8e\u8793\u887e","qing":"\u9752\u8f7b\u6c22\u503e\u537f\u6e05\u64ce\u6674\u6c30\u60c5\u9877\u8bf7\u5e86\u5029\u82d8\u570a\u6aa0\u78ec\u873b\u7f44\u7b90\u8b26\u9cad\u9ee5","qiong":"\u743c\u7a77\u909b\u8315\u7a79\u7b47\u928e","qiu":"\u79cb\u4e18\u90b1\u7403\u6c42\u56da\u914b\u6cc5\u4fc5\u6c3d\u5def\u827d\u72b0\u6e6b\u9011\u9052\u6978\u8d47\u9e20\u866c\u86af\u8764\u88d8\u7cd7\u9cc5\u9f3d","qu":"\u8d8b\u533a\u86c6\u66f2\u8eaf\u5c48\u9a71\u6e20\u53d6\u5a36\u9f8b\u8da3\u53bb\u8bce\u52ac\u8556\u8627\u5c96\u8862\u9612\u74a9\u89d1\u6c0d\u795b\u78f2\u766f\u86d0\u883c\u9eb4\u77bf\u9ee2","quan":"\u5708\u98a7\u6743\u919b\u6cc9\u5168\u75ca\u62f3\u72ac\u5238\u529d\u8be0\u8343\u737e\u609b\u7efb\u8f81\u754e\u94e8\u8737\u7b4c\u9b08","que":"\u7f3a\u7094\u7638\u5374\u9e4a\u69b7\u786e\u96c0\u9619\u60ab","qun":"\u88d9\u7fa4\u9021","ran":"\u7136\u71c3\u5189\u67d3\u82d2\u9aef","rang":"\u74e4\u58e4\u6518\u56b7\u8ba9\u79b3\u7a70","rao":"\u9976\u6270\u7ed5\u835b\u5a06\u6861","ruo":"\u60f9\u82e5\u5f31","re":"\u70ed\u504c","ren":"\u58ec\u4ec1\u4eba\u5fcd\u97e7\u4efb\u8ba4\u5203\u598a\u7eab\u4ede\u834f\u845a\u996a\u8f6b\u7a14\u887d","reng":"\u6254\u4ecd","ri":"\u65e5","rong":"\u620e\u8338\u84c9\u8363\u878d\u7194\u6eb6\u5bb9\u7ed2\u5197\u5d58\u72e8\u7f1b\u6995\u877e","rou":"\u63c9\u67d4\u8089\u7cc5\u8e42\u97a3","ru":"\u8339\u8815\u5112\u5b7a\u5982\u8fb1\u4e73\u6c5d\u5165\u8925\u84d0\u85b7\u5685\u6d33\u6ebd\u6fe1\u94f7\u8966\u98a5","ruan":"\u8f6f\u962e\u670a","rui":"\u854a\u745e\u9510\u82ae\u8564\u777f\u868b","run":"\u95f0\u6da6","sa":"\u6492\u6d12\u8428\u5345\u4ee8\u6332\u98d2","sai":"\u816e\u9cc3\u585e\u8d5b\u567b","san":"\u4e09\u53c1\u4f1e\u6563\u5f61\u9993\u6c35\u6bf5\u7cc1\u9730","sang":"\u6851\u55d3\u4e27\u6421\u78c9\u98a1","sao":"\u6414\u9a9a\u626b\u5ac2\u57fd\u81ca\u7619\u9ccb","se":"\u745f\u8272\u6da9\u556c\u94e9\u94ef\u7a51","sen":"\u68ee","seng":"\u50e7","sha":"\u838e\u7802\u6740\u5239\u6c99\u7eb1\u50bb\u5565\u715e\u810e\u6b43\u75e7\u88df\u970e\u9ca8","shai":"\u7b5b\u6652\u917e","shan":"\u73ca\u82eb\u6749\u5c71\u5220\u717d\u886b\u95ea\u9655\u64c5\u8d61\u81b3\u5584\u6c55\u6247\u7f2e\u5261\u8baa\u912f\u57cf\u829f\u6f78\u59d7\u9a9f\u81bb\u9490\u759d\u87ee\u8222\u8dda\u9cdd","shang":"\u5892\u4f24\u5546\u8d4f\u664c\u4e0a\u5c1a\u88f3\u57a7\u7ef1\u6b87\u71b5\u89de","shao":"\u68a2\u634e\u7a0d\u70e7\u828d\u52fa\u97f6\u5c11\u54e8\u90b5\u7ecd\u52ad\u82d5\u6f72\u86f8\u7b24\u7b72\u8244","she":"\u5962\u8d4a\u86c7\u820c\u820d\u8d66\u6444\u5c04\u6151\u6d89\u793e\u8bbe\u538d\u4f58\u731e\u7572\u9e9d","shen":"\u7837\u7533\u547b\u4f38\u8eab\u6df1\u5a20\u7ec5\u795e\u6c88\u5ba1\u5a76\u751a\u80be\u614e\u6e17\u8bdc\u8c02\u5432\u54c2\u6e16\u6939\u77e7\u8703","sheng":"\u58f0\u751f\u7525\u7272\u5347\u7ef3\u7701\u76db\u5269\u80dc\u5723\u4e1e\u6e11\u5ab5\u771a\u7b19","shi":"\u5e08\u5931\u72ee\u65bd\u6e7f\u8bd7\u5c38\u8671\u5341\u77f3\u62fe\u65f6\u4ec0\u98df\u8680\u5b9e\u8bc6\u53f2\u77e2\u4f7f\u5c4e\u9a76\u59cb\u5f0f\u793a\u58eb\u4e16\u67ff\u4e8b\u62ed\u8a93\u901d\u52bf\u662f\u55dc\u566c\u9002\u4ed5\u4f8d\u91ca\u9970\u6c0f\u5e02\u6043\u5ba4\u89c6\u8bd5\u8c25\u57d8\u83b3\u84cd\u5f11\u5511\u9963\u8f7c\u8006\u8d33\u70bb\u793b\u94c8\u94ca\u87ab\u8210\u7b6e\u8c55\u9ca5\u9cba","shou":"\u6536\u624b\u9996\u5b88\u5bff\u6388\u552e\u53d7\u7626\u517d\u624c\u72e9\u7ef6\u824f","shu":"\u852c\u67a2\u68b3\u6b8a\u6292\u8f93\u53d4\u8212\u6dd1\u758f\u4e66\u8d4e\u5b70\u719f\u85af\u6691\u66d9\u7f72\u8700\u9ecd\u9f20\u5c5e\u672f\u8ff0\u6811\u675f\u620d\u7ad6\u5885\u5eb6\u6570\u6f31\u6055\u500f\u587e\u83fd\u5fc4\u6cad\u6d91\u6f8d\u59dd\u7ebe\u6bf9\u8167\u6bb3\u956f\u79eb\u9e6c","shua":"\u5237\u800d\u5530\u6dae","shuai":"\u6454\u8870\u7529\u5e05\u87c0","shuan":"\u6813\u62f4\u95e9","shuang":"\u971c\u53cc\u723d\u5b40","shui":"\u8c01\u6c34\u7761\u7a0e","shun":"\u542e\u77ac\u987a\u821c\u6042","shuo":"\u8bf4\u7855\u6714\u70c1\u84b4\u6420\u55cd\u6fef\u5981\u69ca\u94c4","si":"\u65af\u6495\u5636\u601d\u79c1\u53f8\u4e1d\u6b7b\u8086\u5bfa\u55e3\u56db\u4f3a\u4f3c\u9972\u5df3\u53ae\u4fdf\u5155\u83e5\u549d\u6c5c\u6cd7\u6f8c\u59d2\u9a77\u7f0c\u7940\u7960\u9536\u9e36\u801c\u86f3\u7b25","song":"\u677e\u8038\u6002\u9882\u9001\u5b8b\u8bbc\u8bf5\u51c7\u83d8\u5d27\u5d69\u5fea\u609a\u6dde\u7ae6","sou":"\u641c\u8258\u64de\u55fd\u53df\u55d6\u55fe\u998a\u6eb2\u98d5\u778d\u953c\u878b","su":"\u82cf\u9165\u4fd7\u7d20\u901f\u7c9f\u50f3\u5851\u6eaf\u5bbf\u8bc9\u8083\u5919\u8c21\u850c\u55c9\u612b\u7c0c\u89eb\u7a23","suan":"\u9178\u849c\u7b97","sui":"\u867d\u968b\u968f\u7ee5\u9ad3\u788e\u5c81\u7a57\u9042\u96a7\u795f\u84d1\u51ab\u8c07\u6fc9\u9083\u71e7\u772d\u7762","sun":"\u5b59\u635f\u7b0b\u836a\u72f2\u98e7\u69ab\u8de3\u96bc","suo":"\u68ad\u5506\u7f29\u7410\u7d22\u9501\u6240\u5522\u55e6\u5a11\u686b\u7743\u7fa7","ta":"\u584c\u4ed6\u5b83\u5979\u5854\u736d\u631e\u8e4b\u8e0f\u95fc\u6ebb\u9062\u69bb\u6c93","tai":"\u80ce\u82d4\u62ac\u53f0\u6cf0\u915e\u592a\u6001\u6c70\u90b0\u85b9\u80bd\u70b1\u949b\u8dc6\u9c90","tan":"\u574d\u644a\u8d2a\u762b\u6ee9\u575b\u6a80\u75f0\u6f6d\u8c2d\u8c08\u5766\u6bef\u8892\u78b3\u63a2\u53f9\u70ad\u90ef\u8548\u6619\u94bd\u952c\u8983","tang":"\u6c64\u5858\u642a\u5802\u68e0\u819b\u5510\u7cd6\u50a5\u9967\u6e8f\u746d\u94f4\u9557\u8025\u8797\u87b3\u7fb0\u91a3","thang":"\u5018\u8eba\u6dcc","theng":"\u8d9f\u70eb","tao":"\u638f\u6d9b\u6ed4\u7ee6\u8404\u6843\u9003\u6dd8\u9676\u8ba8\u5957\u6311\u9f17\u5555\u97ec\u9955","te":"\u7279","teng":"\u85e4\u817e\u75bc\u8a8a\u6ed5","ti":"\u68af\u5254\u8e22\u9511\u63d0\u9898\u8e44\u557c\u4f53\u66ff\u568f\u60d5\u6d95\u5243\u5c49\u8351\u608c\u9016\u7ee8\u7f07\u9e48\u88fc\u918d","tian":"\u5929\u6dfb\u586b\u7530\u751c\u606c\u8214\u8146\u63ad\u5fdd\u9617\u6b84\u754b\u94bf\u86ba","tiao":"\u6761\u8fe2\u773a\u8df3\u4f7b\u7967\u94eb\u7a95\u9f86\u9ca6","tie":"\u8d34\u94c1\u5e16\u841c\u992e","ting":"\u5385\u542c\u70c3\u6c40\u5ef7\u505c\u4ead\u5ead\u633a\u8247\u839b\u8476\u5a77\u6883\u8713\u9706","tong":"\u901a\u6850\u916e\u77b3\u540c\u94dc\u5f64\u7ae5\u6876\u6345\u7b52\u7edf\u75db\u4f5f\u50ee\u4edd\u833c\u55f5\u6078\u6f7c\u783c","tou":"\u5077\u6295\u5934\u900f\u4ea0","tu":"\u51f8\u79c3\u7a81\u56fe\u5f92\u9014\u6d82\u5c60\u571f\u5410\u5154\u580d\u837c\u83df\u948d\u9174","tuan":"\u6e4d\u56e2\u7583","tui":"\u63a8\u9893\u817f\u8715\u892a\u9000\u5fd2\u717a","tun":"\u541e\u5c6f\u81c0\u9968\u66be\u8c5a\u7a80","tuo":"\u62d6\u6258\u8131\u9e35\u9640\u9a6e\u9a7c\u692d\u59a5\u62d3\u553e\u4e47\u4f57\u5768\u5eb9\u6cb1\u67dd\u7823\u7ba8\u8204\u8dce\u9f0d","wa":"\u6316\u54c7\u86d9\u6d3c\u5a03\u74e6\u889c\u4f64\u5a32\u817d","wai":"\u6b6a\u5916","wan":"\u8c4c\u5f2f\u6e7e\u73a9\u987d\u4e38\u70f7\u5b8c\u7897\u633d\u665a\u7696\u60cb\u5b9b\u5a49\u4e07\u8155\u525c\u8284\u82cb\u83c0\u7ea8\u7efe\u742c\u8118\u7579\u873f\u7ba2","wang":"\u6c6a\u738b\u4ea1\u6789\u7f51\u5f80\u65fa\u671b\u5fd8\u5984\u7f54\u5c22\u60d8\u8f8b\u9b4d","wei":"\u5a01\u5dcd\u5fae\u5371\u97e6\u8fdd\u6845\u56f4\u552f\u60df\u4e3a\u6f4d\u7ef4\u82c7\u840e\u59d4\u4f1f\u4f2a\u5c3e\u7eac\u672a\u851a\u5473\u754f\u80c3\u5582\u9b4f\u4f4d\u6e2d\u8c13\u5c09\u6170\u536b\u502d\u504e\u8bff\u9688\u8473\u8587\u5e0f\u5e37\u5d34\u5d6c\u7325\u732c\u95f1\u6ca9\u6d27\u6da0\u9036\u5a13\u73ae\u97ea\u8ece\u709c\u7168\u71a8\u75ff\u8249\u9c94","wen":"\u761f\u6e29\u868a\u6587\u95fb\u7eb9\u543b\u7a33\u7d0a\u95ee\u520e\u6120\u960c\u6c76\u74ba\u97eb\u6b81\u96ef","weng":"\u55e1\u7fc1\u74ee\u84ca\u8579","wo":"\u631d\u8717\u6da1\u7a9d\u6211\u65a1\u5367\u63e1\u6c83\u83b4\u5e44\u6e25\u674c\u809f\u9f8c","wu":"\u5deb\u545c\u94a8\u4e4c\u6c61\u8bec\u5c4b\u65e0\u829c\u68a7\u543e\u5434\u6bcb\u6b66\u4e94\u6342\u5348\u821e\u4f0d\u4fae\u575e\u620a\u96fe\u6664\u7269\u52ff\u52a1\u609f\u8bef\u5140\u4ef5\u9622\u90ac\u572c\u82b4\u5e91\u6003\u5fe4\u6d6f\u5be4\u8fd5\u59a9\u9a9b\u727e\u7110\u9e49\u9e5c\u8708\u92c8\u9f2f","xi":"\u6614\u7199\u6790\u897f\u7852\u77fd\u6670\u563b\u5438\u9521\u727a\u7a00\u606f\u5e0c\u6089\u819d\u5915\u60dc\u7184\u70ef\u6eaa\u6c50\u7280\u6a84\u88ad\u5e2d\u4e60\u5ab3\u559c\u94e3\u6d17\u7cfb\u9699\u620f\u7ec6\u50d6\u516e\u96b0\u90d7\u831c\u8478\u84f0\u595a\u550f\u5f99\u9969\u960b\u6d60\u6dc5\u5c63\u5b09\u73ba\u6a28\u66e6\u89cb\u6b37\u71b9\u798a\u79a7\u94b8\u7699\u7a78\u8725\u87cb\u823e\u7fb2\u7c9e\u7fd5\u91af\u9f37","xia":"\u778e\u867e\u5323\u971e\u8f96\u6687\u5ce1\u4fa0\u72ed\u4e0b\u53a6\u590f\u5413\u6380\u846d\u55c4\u72ce\u9050\u7455\u7856\u7615\u7f45\u9ee0","xian":"\u9528\u5148\u4ed9\u9c9c\u7ea4\u54b8\u8d24\u8854\u8237\u95f2\u6d8e\u5f26\u5acc\u663e\u9669\u73b0\u732e\u53bf\u817a\u9985\u7fa1\u5baa\u9677\u9650\u7ebf\u51bc\u85d3\u5c98\u7303\u66b9\u5a34\u6c19\u7946\u9e47\u75eb\u86ac\u7b45\u7c7c\u9170\u8df9","xiang":"\u76f8\u53a2\u9576\u9999\u7bb1\u8944\u6e58\u4e61\u7fd4\u7965\u8be6\u60f3\u54cd\u4eab\u9879\u5df7\u6a61\u50cf\u5411\u8c61\u8297\u8459\u9977\u5ea0\u9aa7\u7f03\u87d3\u9c9e\u98e8","xiao":"\u8427\u785d\u9704\u524a\u54ee\u56a3\u9500\u6d88\u5bb5\u6dc6\u6653\u5c0f\u5b5d\u6821\u8096\u5578\u7b11\u6548\u54d3\u54bb\u5d24\u6f47\u900d\u9a81\u7ee1\u67ad\u67b5\u7b71\u7bab\u9b48","xie":"\u6954\u4e9b\u6b47\u874e\u978b\u534f\u631f\u643a\u90aa\u659c\u80c1\u8c10\u5199\u68b0\u5378\u87f9\u61c8\u6cc4\u6cfb\u8c22\u5c51\u5055\u4eb5\u52f0\u71ee\u85a4\u64b7\u5ee8\u7023\u9082\u7ec1\u7f2c\u69ad\u698d\u6b59\u8e9e","xin":"\u85aa\u82af\u950c\u6b23\u8f9b\u65b0\u5ffb\u5fc3\u4fe1\u8845\u56df\u99a8\u8398\u6b46\u94fd\u946b","xing":"\u661f\u8165\u7329\u60fa\u5174\u5211\u578b\u5f62\u90a2\u884c\u9192\u5e78\u674f\u6027\u59d3\u9649\u8347\u8365\u64e4\u60bb\u784e","xiong":"\u5144\u51f6\u80f8\u5308\u6c79\u96c4\u718a\u828e","xiu":"\u4f11\u4fee\u7f9e\u673d\u55c5\u9508\u79c0\u8896\u7ee3\u83a0\u5cab\u9990\u5ea5\u9e3a\u8c85\u9af9","xu":"\u589f\u620c\u9700\u865a\u5618\u987b\u5f90\u8bb8\u84c4\u9157\u53d9\u65ed\u5e8f\u755c\u6064\u7d6e\u5a7f\u7eea\u7eed\u8bb4\u8be9\u5729\u84ff\u6035\u6d2b\u6e86\u987c\u6829\u7166\u7809\u76f1\u80e5\u7cc8\u9191","xuan":"\u8f69\u55a7\u5ba3\u60ac\u65cb\u7384\u9009\u7663\u7729\u7eda\u5107\u8c16\u8431\u63ce\u9994\u6ceb\u6d35\u6e32\u6f29\u7487\u6966\u6684\u70ab\u714a\u78b9\u94c9\u955f\u75c3","xue":"\u9774\u859b\u5b66\u7a74\u96ea\u8840\u5671\u6cf6\u9cd5","xun":"\u52cb\u718f\u5faa\u65ec\u8be2\u5bfb\u9a6f\u5de1\u6b89\u6c5b\u8bad\u8baf\u900a\u8fc5\u5dfd\u57d9\u8340\u85b0\u5ccb\u5f87\u6d54\u66db\u7aa8\u91ba\u9c9f","ya":"\u538b\u62bc\u9e26\u9e2d\u5440\u4e2b\u82bd\u7259\u869c\u5d16\u8859\u6daf\u96c5\u54d1\u4e9a\u8bb6\u4f22\u63e0\u5416\u5c88\u8fd3\u5a05\u740a\u6860\u6c29\u7811\u775a\u75d6","yan":"\u7109\u54bd\u9609\u70df\u6df9\u76d0\u4e25\u7814\u8712\u5ca9\u5ef6\u8a00\u989c\u960e\u708e\u6cbf\u5944\u63a9\u773c\u884d\u6f14\u8273\u5830\u71d5\u538c\u781a\u96c1\u5501\u5f66\u7130\u5bb4\u8c1a\u9a8c\u53a3\u9765\u8d5d\u4fe8\u5043\u5156\u8ba0\u8c33\u90fe\u9122\u82ab\u83f8\u5d26\u6079\u95eb\u960f\u6d07\u6e6e\u6edf\u598d\u5ae3\u7430\u664f\u80ed\u814c\u7131\u7f68\u7b75\u917d\u9b47\u990d\u9f39","yang":"\u6b83\u592e\u9e2f\u79e7\u6768\u626c\u4f6f\u75a1\u7f8a\u6d0b\u9633\u6c27\u4ef0\u75d2\u517b\u6837\u6f3e\u5f89\u600f\u6cf1\u7080\u70ca\u6059\u86d8\u9785","yao":"\u9080\u8170\u5996\u7476\u6447\u5c27\u9065\u7a91\u8c23\u59da\u54ac\u8200\u836f\u8981\u8000\u592d\u723b\u5406\u5d3e\u5fad\u7039\u5e7a\u73e7\u6773\u66dc\u80b4\u9e5e\u7a88\u7e47\u9cd0","ye":"\u6930\u564e\u8036\u7237\u91ce\u51b6\u4e5f\u9875\u6396\u4e1a\u53f6\u66f3\u814b\u591c\u6db2\u8c12\u90ba\u63f6\u9980\u6654\u70e8\u94d8","yi":"\u4e00\u58f9\u533b\u63d6\u94f1\u4f9d\u4f0a\u8863\u9890\u5937\u9057\u79fb\u4eea\u80f0\u7591\u6c82\u5b9c\u59e8\u5f5d\u6905\u8681\u501a\u5df2\u4e59\u77e3\u4ee5\u827a\u6291\u6613\u9091\u5c79\u4ebf\u5f79\u81c6\u9038\u8084\u75ab\u4ea6\u88d4\u610f\u6bc5\u5fc6\u4e49\u76ca\u6ea2\u8be3\u8bae\u8c0a\u8bd1\u5f02\u7ffc\u7fcc\u7ece\u5208\u5293\u4f7e\u8bd2\u572a\u572f\u57f8\u61ff\u82e1\u858f\u5f08\u5955\u6339\u5f0b\u5453\u54a6\u54bf\u566b\u5cc4\u5db7\u7317\u9974\u603f\u6021\u6092\u6f2a\u8fe4\u9a7f\u7f22\u6baa\u8d3b\u65d6\u71a0\u9487\u9552\u9571\u75cd\u7617\u7654\u7fca\u8864\u8734\u8223\u7fbf\u7ff3\u914f\u9edf","yin":"\u8335\u836b\u56e0\u6bb7\u97f3\u9634\u59fb\u541f\u94f6\u6deb\u5bc5\u996e\u5c39\u5f15\u9690\u5370\u80e4\u911e\u5819\u831a\u5591\u72fa\u5924\u6c24\u94df\u763e\u8693\u972a\u9f88","ying":"\u82f1\u6a31\u5a74\u9e70\u5e94\u7f28\u83b9\u8424\u8425\u8367\u8747\u8fce\u8d62\u76c8\u5f71\u9896\u786c\u6620\u5b34\u90e2\u8314\u83ba\u8426\u6484\u5624\u81ba\u6ee2\u6f46\u701b\u745b\u748e\u6979\u9e66\u763f\u988d\u7f42","yo":"\u54df\u5537","yong":"\u62e5\u4f63\u81c3\u75c8\u5eb8\u96cd\u8e0a\u86f9\u548f\u6cf3\u6d8c\u6c38\u607f\u52c7\u7528\u4fd1\u58c5\u5889\u6175\u9095\u955b\u752c\u9cd9\u9954","you":"\u5e7d\u4f18\u60a0\u5fe7\u5c24\u7531\u90ae\u94c0\u72b9\u6cb9\u6e38\u9149\u6709\u53cb\u53f3\u4f51\u91c9\u8bf1\u53c8\u5e7c\u5363\u6538\u4f91\u83b8\u5466\u56ff\u5ba5\u67da\u7337\u7256\u94d5\u75a3\u8763\u9c7f\u9edd\u9f2c","yu":"\u8fc2\u6de4\u4e8e\u76c2\u6986\u865e\u611a\u8206\u4f59\u4fde\u903e\u9c7c\u6109\u6e1d\u6e14\u9685\u4e88\u5a31\u96e8\u4e0e\u5c7f\u79b9\u5b87\u8bed\u7fbd\u7389\u57df\u828b\u90c1\u5401\u9047\u55bb\u5cea\u5fa1\u6108\u6b32\u72f1\u80b2\u8a89\u6d74\u5bd3\u88d5\u9884\u8c6b\u9a6d\u79ba\u6bd3\u4f1b\u4fe3\u8c00\u8c15\u8438\u84e3\u63c4\u5581\u5704\u5709\u5d5b\u72f3\u996b\u5ebe\u9608\u59aa\u59a4\u7ea1\u745c\u6631\u89ce\u8174\u6b24\u65bc\u715c\u71e0\u807f\u94b0\u9e46\u7610\u7600\u7ab3\u8753\u7afd\u8201\u96e9\u9f89","yuan":"\u9e33\u6e0a\u51a4\u5143\u57a3\u8881\u539f\u63f4\u8f95\u56ed\u5458\u5706\u733f\u6e90\u7f18\u8fdc\u82d1\u613f\u6028\u9662\u586c\u6c85\u5a9b\u7457\u6a7c\u7230\u7722\u9e22\u8788\u9f0b","yue":"\u66f0\u7ea6\u8d8a\u8dc3\u94a5\u5cb3\u7ca4\u6708\u60a6\u9605\u9fa0\u6a3e\u5216\u94ba","yun":"\u8018\u4e91\u90e7\u5300\u9668\u5141\u8fd0\u8574\u915d\u6655\u97f5\u5b55\u90d3\u82b8\u72c1\u607d\u7ead\u6b92\u6600\u6c32","za":"\u531d\u7838\u6742\u62f6\u5482","zai":"\u683d\u54c9\u707e\u5bb0\u8f7d\u518d\u5728\u54b1\u5d3d\u753e","zan":"\u6512\u6682\u8d5e\u74d2\u661d\u7c2a\u7ccc\u8db1\u933e","zang":"\u8d43\u810f\u846c\u5958\u6215\u81e7","zao":"\u906d\u7cdf\u51ff\u85fb\u67a3\u65e9\u6fa1\u86a4\u8e81\u566a\u9020\u7682\u7076\u71e5\u5523\u7f2b","ze":"\u8d23\u62e9\u5219\u6cfd\u4ec4\u8d5c\u5567\u8fee\u6603\u7b2e\u7ba6\u8234","zei":"\u8d3c","zen":"\u600e\u8c2e","zeng":"\u589e\u618e\u66fe\u8d60\u7f2f\u7511\u7f7e\u9503","zha":"\u624e\u55b3\u6e23\u672d\u8f67\u94e1\u95f8\u7728\u6805\u69a8\u548b\u4e4d\u70b8\u8bc8\u63f8\u5412\u54a4\u54f3\u600d\u781f\u75c4\u86b1\u9f44","zhai":"\u6458\u658b\u5b85\u7a84\u503a\u5be8\u7826","zhan":"\u77bb\u6be1\u8a79\u7c98\u6cbe\u76cf\u65a9\u8f97\u5d2d\u5c55\u8638\u6808\u5360\u6218\u7ad9\u6e5b\u7efd\u8c35\u640c\u65c3","zhang":"\u6a1f\u7ae0\u5f70\u6f33\u5f20\u638c\u6da8\u6756\u4e08\u5e10\u8d26\u4ed7\u80c0\u7634\u969c\u4ec9\u9123\u5e5b\u5d82\u7350\u5adc\u748b\u87d1","zhao":"\u62db\u662d\u627e\u6cbc\u8d75\u7167\u7f69\u5146\u8087\u53ec\u722a\u8bcf\u68f9\u948a\u7b0a","zhe":"\u906e\u6298\u54f2\u86f0\u8f99\u8005\u9517\u8517\u8fd9\u6d59\u8c2a\u966c\u67d8\u8f84\u78d4\u9e67\u891a\u8707\u8d6d","zhen":"\u73cd\u659f\u771f\u7504\u7827\u81fb\u8d1e\u9488\u4fa6\u6795\u75b9\u8bca\u9707\u632f\u9547\u9635\u7f1c\u6862\u699b\u8f78\u8d48\u80d7\u6715\u796f\u755b\u9e29","zheng":"\u84b8\u6323\u7741\u5f81\u72f0\u4e89\u6014\u6574\u62ef\u6b63\u653f\u5e27\u75c7\u90d1\u8bc1\u8be4\u5ce5\u94b2\u94ee\u7b5d","zhi":"\u829d\u679d\u652f\u5431\u8718\u77e5\u80a2\u8102\u6c41\u4e4b\u7ec7\u804c\u76f4\u690d\u6b96\u6267\u503c\u4f84\u5740\u6307\u6b62\u8dbe\u53ea\u65e8\u7eb8\u5fd7\u631a\u63b7\u81f3\u81f4\u7f6e\u5e1c\u5cd9\u5236\u667a\u79e9\u7a1a\u8d28\u7099\u75d4\u6ede\u6cbb\u7a92\u536e\u965f\u90c5\u57f4\u82b7\u646d\u5e19\u5fee\u5f58\u54ab\u9a98\u6809\u67b3\u6800\u684e\u8f75\u8f7e\u6534\u8d3d\u81a3\u7949\u7957\u9ef9\u96c9\u9e37\u75e3\u86ed\u7d77\u916f\u8dd6\u8e2c\u8e2f\u8c78\u89ef","zhong":"\u4e2d\u76c5\u5fe0\u949f\u8877\u7ec8\u79cd\u80bf\u91cd\u4ef2\u4f17\u51a2\u953a\u87bd\u8202\u822f\u8e35","zhou":"\u821f\u5468\u5dde\u6d32\u8bcc\u7ca5\u8f74\u8098\u5e1a\u5492\u76b1\u5b99\u663c\u9aa4\u5544\u7740\u501c\u8bf9\u836e\u9b3b\u7ea3\u80c4\u78a1\u7c40\u8233\u914e\u9cb7","zhu":"\u73e0\u682a\u86db\u6731\u732a\u8bf8\u8bdb\u9010\u7af9\u70db\u716e\u62c4\u77a9\u5631\u4e3b\u8457\u67f1\u52a9\u86c0\u8d2e\u94f8\u7b51\u4f4f\u6ce8\u795d\u9a7b\u4f2b\u4f8f\u90be\u82ce\u8331\u6d19\u6e1a\u6f74\u9a7a\u677c\u69e0\u6a65\u70b7\u94e2\u75b0\u7603\u86b0\u7afa\u7bb8\u7fe5\u8e85\u9e88","zhua":"\u6293","zhuai":"\u62fd","zhuan":"\u4e13\u7816\u8f6c\u64b0\u8d5a\u7bc6\u629f\u556d\u989b","zhuang":"\u6869\u5e84\u88c5\u5986\u649e\u58ee\u72b6\u4e2c","zhui":"\u690e\u9525\u8ffd\u8d58\u5760\u7f00\u8411\u9a93\u7f12","zhun":"\u8c06\u51c6","zhuo":"\u6349\u62d9\u5353\u684c\u7422\u8301\u914c\u707c\u6d4a\u502c\u8bfc\u5ef4\u855e\u64e2\u555c\u6d5e\u6dbf\u6753\u712f\u799a\u65ab","zi":"\u5179\u54a8\u8d44\u59ff\u6ecb\u6dc4\u5b5c\u7d2b\u4ed4\u7c7d\u6ed3\u5b50\u81ea\u6e0d\u5b57\u8c18\u5d6b\u59ca\u5b73\u7f01\u6893\u8f8e\u8d40\u6063\u7726\u9531\u79ed\u8014\u7b2b\u7ca2\u89dc\u8a3e\u9cbb\u9aed","zong":"\u9b03\u68d5\u8e2a\u5b97\u7efc\u603b\u7eb5\u8159\u7cbd","zou":"\u90b9\u8d70\u594f\u63cd\u9139\u9cb0","zu":"\u79df\u8db3\u5352\u65cf\u7956\u8bc5\u963b\u7ec4\u4fce\u83f9\u5550\u5f82\u9a75\u8e74","zuan":"\u94bb\u7e82\u6525\u7f35","zui":"\u5634\u9189\u6700\u7f6a","zun":"\u5c0a\u9075\u6499\u6a3d\u9cdf","zuo":"\u6628\u5de6\u4f50\u67de\u505a\u4f5c\u5750\u5ea7\u961d\u963c\u80d9\u795a\u9162","cou":"\u85ae\u6971\u8f8f\u8160","nang":"\u652e\u54dd\u56d4\u9995\u66e9","o":"\u5594","dia":"\u55f2","chuai":"\u562c\u81aa\u8e39","cen":"\u5c91\u6d94","diu":"\u94e5","nou":"\u8028","fou":"\u7f36","bia":"\u9adf"}; +function ZhToPinyin(l1) { + var l2 = l1.length; + var I1 = ""; + var reg = new RegExp('[a-zA-Z0-9\- ]'); + for (var i = 0; i < l2; i++) { + var val = l1.substr(i, 1); + var name = arraySearch(val, PinYin); + if (reg.test(val)) { + I1 += val; + } else if (name !== false) { + I1 += name; + } + } + I1 = I1.replace(/ /g, '-'); + while (I1.indexOf('--') > 0) { + I1 = I1.replace('--', '-'); + } + return I1; +} +function arraySearch(l1, l2) { + for (var name in PinYin) { + if (PinYin[name].indexOf(l1) != -1) { + return ucfirst(name); + break; + } + } + return false; +} +function ucfirst(l1) { + if (l1.length > 0) { + var first = l1.substr(0, 1).toUpperCase(); + var spare = l1.substr(1, l1.length); + return first + spare; + } +} +//数据队列 +$.ajax({ + url:'js/data.user.json', + timeout:3000, + async:false, + dataType:'json', + success:function (data) { + UDatas = $.map(data, function (v, k) { + return{ + 'mid':v.mid, + 'name':v.realname, + 'realInfo':v.realname + '(' + v.mid + '),' + ZhToPinyin(v.realname), + 'filterName':v.realname+ZhToPinyin(v.realname) + } + }); + } +}); \ No newline at end of file diff --git "a/\346\216\247\344\273\266/jquery-plug-ichoose/js/plug.choose.js" "b/\346\216\247\344\273\266/jquery-plug-ichoose/js/plug.choose.js" new file mode 100644 index 0000000..29b555e --- /dev/null +++ "b/\346\216\247\344\273\266/jquery-plug-ichoose/js/plug.choose.js" @@ -0,0 +1,243 @@ +/******************************* + * @Author:Mr.Think + * @Creation date:13-1-24 上午10:50 + * @Description:jQuery.Choose + *******************************/ +; +(function ($) { + $.fn.iChoose = function (options) { + var SELF=this; + var iset = $.extend({}, $.fn.iChoose.defaults, options); + var _h,pull=null; + var main=$(iset.choMain); + var chose=$(iset.choCls,main); + var input=$(SELF); + var tips=$(iset.tips,main); + var cls=iset.selCls; + var ids=$(iset.chsIds); + var _l=iset.limit; + //若无列表数据则中断 + if(iset.data.length==0){return false} + //初始化下拉列表 + var tpl='
    '; + var tplArr=[]; + $.each(iset.data,function(k,v){ + tplArr.push('
  • '+ v.name+'
  • '); + }); + tpl=tpl+tplArr.join('')+'
'; + if(pull==null){ + main.append(tpl); + } + pull=$('.'+iset.pullCls,main); + _h=pull.find('li').outerHeight(true); + pull.width(main.width()-2); + //操作函数 + var Action={ + init:function(){ + //列表鼠标划过 + pull.delegate('li.hook_visible','mouseover',function(){ + $(this).addClass(cls).siblings().removeClass(cls); + }); + //选择列表 + pull.delegate('li.hook_visible','click',function(){ + Action.choose($(this)); + }); + //点击弹出列表 + chose.click(function(){ + Action.show(); + }); + //移除已选择 + chose.delegate('.'+iset.removeEl,'click',function(){ + Action.undock($(this)); + }); + }, + move: function(dir) { + //上下移动 - 上::str=up | 下::step=down; + var index; + var item=pull.find('li.hook_visible').filter(':visible'); + var cur=item.filter('.'+cls); + cur.size()==0 ? index=-1 : index=item.index(cur); + item.eq(dir=='up' ? (index<1 ? 0 : index-1) : index+1).addClass(cls).siblings().removeClass(cls); + //移动时跟随滚动 + if(item.size()>_l){ + //下翻滚动 + if(dir=='down'){ + pull.scrollTop((index+2-_l)*_h); + } + //上翻滚动 + if(dir=='up'){ + pull.scrollTop((index-1)*_h); + } + } + }, + choose:function(el){ + //列表选择 + var mid=el.attr('data-mid'); + var name=el.text(); + tips.before('
'+name+'x
'); + input.focus(); + el.hide().removeClass('hook_visible'); + //返回选中列表id + ids.val() =='' ? ids.val(mid) : ids.val(ids.val()+','+mid); + pull.find('li.hook_visible:first').addClass(cls).siblings().removeClass(cls); + this.upstyle(); + }, + undock:function(el){ + //删除已选 + var mid=el.attr('data-mid'); + var idsArr=ids.val().split(','); + input.focus(); + el.parent().remove(); + idsArr=$.grep(idsArr,function(v,k){ + return v != mid; + }); + ids.val(idsArr.join(',')); + pull.find('li.hook_'+mid).show().addClass('hook_visible'); + this.upstyle(); + }, + show:function(){ + //显示列表 + pull.slideDown(100,function(){Action.match('')}); + pull.find('li.hook_visible:first').addClass(cls).siblings().removeClass(cls); + $(SELF).focus(); + tips.hide(); + input.addClass(iset.inputWCls); + }, + hide:function(){ + //隐藏列表 + pull.slideUp(100); + $(SELF).blur(); + tips.show(); + input.removeClass(iset.inputWCls); + }, + upstyle:function(type){ + //更新下拉列表样式 - 当已选换行时 -- + var len=pull.find('li.hook_visible').size(); + if(type=='match'){ + len=pull.find('li:visible').size(); + } + if(len<_l){ + pull.height(_h*len); + if(len==0){ + this.hide(); + } + }else{ + pull.height(_h*_l); + } + pull.css('top',chose.outerHeight()); + }, + match:function(str){ + //过滤选择 - 拼音选择须插件支持 + var visible=pull.find('li.hook_visible'); + visible.each(function(){ + var name=$(this).attr('data-name'); + name.match(str.toUpperCase())!=null ? $(this).show() : $(this).hide(); + }); + if(visible.size()==0 && $('.'+iset.noResCls).size()==0){ + pull.find('li:first').before('
  • 暂无可选择列表
  • ') + } + this.upstyle('match'); + }, + blur:function(str){ + //非选择区域点击隐藏 + pull.find('li.hook_visible').each(function(){ + var name=$(this).text(); + if(name == str){ + Action.choose($(this)); + } + }); + input.val(''); + } + } + Action.init(); + //键盘控制 - 绑定输入表单 + $(this).on({ + //键盘弹起 + 'keyup change':function(){ + var val= $.trim(input.val()); + Action.match(val); + }, + //失去焦点 + 'blur':function(){ + var val= $.trim(input.val()); + Action.blur(val); + }, + //键盘按下 -- 捕获键盘值,以执行对应事件 + /* + 8 - delete; + 27 - esc; + 38 - up; + 40 - down; + 9 - tab; + 13 - enter + */ + 'keydown':function(e){ + switch (e.keyCode) { + case 8: + if($.trim(input.val())==''){ + e.preventDefault(); + var last=chose.find('.'+iset.removeEl+':last'); + if(last.size()>0){ + Action.undock(last); + } + } + break; + case 27: + e.preventDefault(); + Action.hide(); + break; + case 38: + e.preventDefault(); + Action.move('up'); + break; + case 40: + e.preventDefault(); + Action.move('down') + break; + case 9: + case 13: + e.preventDefault(); + Action.choose(pull.find('.'+cls)); + break; + default: + $.noop(); + } + } + }); + //点击非当前区域隐藏弹出层 + main.click(function(e){ + e.stopPropagation(); + }); + $(document).click(function(){ + Action.hide(); + }); + } + $.fn.iChoose.defaults = { + /* + data:传入值,可以实时ajax传上,演示中是json值,具体格式可参考mod.udatas.js中的$.map(...) + limit:每次显示的条数,其他滚动显示 + choMain:载入区域id + pullCls:弹出列表的class + choCls:已选择列表的外围class + selItemCls:已选择的单个元素class + removeEl:删除元素的class + selCls:列表高亮的class + inputWCls:input的class + tips:默认提示值元素钩子 + noResCls:列表中无结果时的cls + chsIds:已选择列表的id值,传给后端用的。(此值亦可用回调函数把值从插件中回传出来) + */ + data:UDatas, + limit:5, + choMain:'#iChooseMain', + pullCls:'icm-list', + choCls:'.icm-box', + selItemCls:'icm-item', + removeEl:'icm-delete', + selCls:'selected', + inputWCls:'icm-input-w', + tips:'.icm-cur-txt', + noResCls:'hook_noresult', + chsIds:'#iChooseIds' + } +})(jQuery); \ No newline at end of file diff --git "a/\346\216\247\344\273\266/\351\200\217\346\230\216\344\270\213\346\213\211\346\241\206/demo.html" "b/\346\216\247\344\273\266/\351\200\217\346\230\216\344\270\213\346\213\211\346\241\206/demo.html" new file mode 100644 index 0000000..4093570 --- /dev/null +++ "b/\346\216\247\344\273\266/\351\200\217\346\230\216\344\270\213\346\213\211\346\241\206/demo.html" @@ -0,0 +1,188 @@ + + +统一下拉列表样式并实现select样式高度自定义的jQuery插件@Mr.Think + + + + + + + + + + + + + + +
    +

    +

    +

    + +

    +

    +

    + + + +
    + + + + + + \ No newline at end of file From 440b2e5cf438db61f44d8807bc7a25e3b95c1ac0 Mon Sep 17 00:00:00 2001 From: ym Date: Tue, 22 Oct 2013 11:48:44 +0800 Subject: [PATCH 02/10] add plugin for javascript --- .../css/163css.css" | 18 ++ .../css/163css_v.css" | 19 ++ .../images/seabg.gif" | Bin 0 -> 1288 bytes .../images/seabtn.gif" | Bin 0 -> 2051 bytes .../index.html" | 60 ++++ .../index_v.html" | 73 +++++ .../js/jquery.min.js" | 4 + .../timelinr/biggerdot.png" | Bin 0 -> 1016 bytes "\346\217\222\344\273\266/timelinr/dot.gif" | Bin 0 -> 1098 bytes .../timelinr/index.html" | 92 ++++++ .../timelinr/jquery.mousewheel.js" | 117 +++++++ .../timelinr/jquery.timelinr-0.9.53.js" | 279 +++++++++++++++++ .../timelinr/jquery.timelinr.js" | 290 ++++++++++++++++++ "\346\217\222\344\273\266/timelinr/main.css" | 25 ++ .../timelinr/mousewheel.html" | 98 ++++++ .../timelinr/vertical.html" | 97 ++++++ 16 files changed, 1172 insertions(+) create mode 100644 "\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/css/163css.css" create mode 100644 "\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/css/163css_v.css" create mode 100644 "\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/images/seabg.gif" create mode 100644 "\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/images/seabtn.gif" create mode 100644 "\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/index.html" create mode 100644 "\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/index_v.html" create mode 100644 "\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/js/jquery.min.js" create mode 100644 "\346\217\222\344\273\266/timelinr/biggerdot.png" create mode 100644 "\346\217\222\344\273\266/timelinr/dot.gif" create mode 100644 "\346\217\222\344\273\266/timelinr/index.html" create mode 100644 "\346\217\222\344\273\266/timelinr/jquery.mousewheel.js" create mode 100644 "\346\217\222\344\273\266/timelinr/jquery.timelinr-0.9.53.js" create mode 100644 "\346\217\222\344\273\266/timelinr/jquery.timelinr.js" create mode 100644 "\346\217\222\344\273\266/timelinr/main.css" create mode 100644 "\346\217\222\344\273\266/timelinr/mousewheel.html" create mode 100644 "\346\217\222\344\273\266/timelinr/vertical.html" diff --git "a/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/css/163css.css" "b/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/css/163css.css" new file mode 100644 index 0000000..7212fd6 --- /dev/null +++ "b/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/css/163css.css" @@ -0,0 +1,18 @@ +/* CSS Document */ +body,h1,h2,h3,h4,h5,h6,p,ul,ol,li,form,img,dl,dt,dd,table,th,td,blockquote,fieldset,div,strong,label,em{margin:0;padding:0;border:0;} +ul,ol,li{list-style:none;} +input,button{margin:0;font-size:12px;vertical-align:middle;} +body{font-size:12px;font-family:Arial, Helvetica, sans-serif; text-align:center; margin:0 auto; } +table{border-collapse:collapse;border-spacing:0;} +a{ color:#333; text-decoration:none;} + +.box_163css{ width:448px; font-size:14px; margin:20px auto; color:#666; font-size:14px; text-align:left;} +.key{ position:relative; width:76px; float:left; padding-top:4px;} +.mkey{ display:block; padding-left:16px; width:60px; height:35px; background:url(../images/seabg.gif) no-repeat; line-height:35px;float:left; cursor:pointer;} +.keyul{ position:absolute; left:0; top:38px; z-index:10; background:#fff; width:74px; border:1px solid #d0d0d0; border-top:none; border-bottom:none; display:none;} +.keyul li{ padding-left:17px; width:57px; height:30px; float:left; font-size:12px; border-bottom:1px solid #ccc; line-height:30px; cursor:pointer;} +.keyul li:hover,.keyul li.on{ background:#fff6dd; color:#e77802;} +.keyul li a:hover{background:#fff6dd; color:#e77802; text-decoration:underline;} +.seatext{ padding-left:15px; font-size:14px; color:#666; width:283px; height:31px; line-height:31px; margin-top:4px; border:1px solid #c1c1c1; float:left; border-left:none;} +.seabtn{ display:block; background:url(../images/seabtn.gif) no-repeat 0 4px; border:none; cursor:pointer; width:71px; height:43px; float:left; text-indent:-999em;} +.seabtn:hover{ background-position:-1px -63px;} \ No newline at end of file diff --git "a/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/css/163css_v.css" "b/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/css/163css_v.css" new file mode 100644 index 0000000..e3ad897 --- /dev/null +++ "b/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/css/163css_v.css" @@ -0,0 +1,19 @@ +/* CSS Document */ +body,h1,h2,h3,h4,h5,h6,p,ul,ol,li,form,img,dl,dt,dd,table,th,td,blockquote,fieldset,div,strong,label,em{margin:0;padding:0;border:0;} +ul,ol,li{list-style:none;} +input,button{margin:0;font-size:12px;vertical-align:middle;} +body{font-size:12px;font-family:Arial, Helvetica, sans-serif; text-align:center; margin:0 auto; } +table{border-collapse:collapse;border-spacing:0;} +a{ color:#333; text-decoration:none;} + +.box_163css{ width:448px; font-size:14px; margin:20px auto; color:#666; text-align:left;} + +.key{ position:relative; width:76px; float:left; padding-top:4px;} +.mkey{ display:block; padding-left:16px; width:60px; height:35px; background:url(../images/seabg.gif) no-repeat; line-height:35px;float:left; cursor:pointer;} +.keyul{ position:absolute; left:0; top:38px; z-index:10; background:#fff; width:74px; border:1px solid #d0d0d0; border-top:none; border-bottom:none; display:none;} +.keyul li{ padding-left:17px; width:57px; height:30px; float:left; font-size:12px; border-bottom:1px solid #ccc; line-height:30px; cursor:pointer;} +.keyul li:hover,.keyul li.on{ background:#fff6dd; color:#e77802;} +.keyul li a:hover{background:#fff6dd; color:#e77802; text-decoration:underline;} +.seatext{ padding-left:15px; font-size:14px; color:#666; width:283px; height:31px; line-height:31px; margin-top:4px; border:1px solid #c1c1c1; float:left; border-left:none;} +.seabtn{ display:block; background:url(../images/seabtn.gif) no-repeat 0 4px; border:none; cursor:pointer; width:71px; height:43px; float:left; text-indent:-999em;} +.seabtn:hover{ background-position:-1px -63px;} \ No newline at end of file diff --git "a/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/images/seabg.gif" "b/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/images/seabg.gif" new file mode 100644 index 0000000000000000000000000000000000000000..d1d34a854cf19aba215764614c75f9d92b45995d GIT binary patch literal 1288 zcmZ?wbhEHb^kGnD*v!E2zlGu7zkk1f|Nipj%h|JMFJ8R(=g*%TH*S3U_U-Tg|2J>m zJb3Wn|Ns9PU_kLdcZ6?%f=gmaB9OMRuP8`N&Q2{+NJ>r5%(GQ`zk9!uLS~AsQn;zF zfp39xYDT6>~zjAN>wn`Gtf;oFf&jvGt@IQHZeCh*HJJsFf`CNFw!?P z(ls=7yetOgf{R2HP_2c;J0mlh?b0+lO+ ztSYc_E=o--$uA1Y&(DE{Vn9ZINq%ugeu08>u&F|LW?o8uc`;bEudkJ7UU5lcUUI6Z zi>(q+zg}i$ij|X@rKy{Ng}I}No0FlTtC5ANftjn5vzwc-xwE5%u^UXUOMY@`Zfaf$ zOm7N8uLVxMpoEZH0JPa9wJ5VJHN~wcKUV?lVXI8sZZXAa9#n4%Znv1>)TklMZiSO`2XMEKfizd{PF$U*Ds$xef;qL-P<>>U%h}$>=IY|?ZLCB9*0>)!u(_kWFCfrp4t{~p$&mBvQ%b=6C{ zCIzkM(Jotc*KYScRf`&#$?eZRb222bFsW?QT5ERlVNOL?oI2~1BJG-5&ieAIP_J5} zj@*vwuI{9XlTxQl&6qyJzInFeta-i*7Mjgn(z$%j;+00r)|eZtx8&yFGTdY;EWdlt K-hE<%4AuZODdlqj literal 0 HcmV?d00001 diff --git "a/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/images/seabtn.gif" "b/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/images/seabtn.gif" new file mode 100644 index 0000000000000000000000000000000000000000..30bba5f9aeb5503e0d63536dc6b513edf1dedc75 GIT binary patch literal 2051 zcmbtUYd{lM79NI(K?D)0PaZ=+3n+O)fK-r>5C}GGswh}1CM2T?kW5TM35XhsQ9-wW zT0t!}B2^KK3TQwm5AAMwNW}+56hu%Sf-aBpRAHL9V)w_gfA;*Cx%bZZednCH-@Sos zmX|j_5QqYrTmZED4*Ixgbn-2lVup_Pqc88HZ%5zhc<=JRn5fA>r`}97Xwj_sZz~d~ z+e#;!^3f9})2FP*JL{)Asz(Q&PhFypwf!>I_XK_2I`OCoMW-fv9!#BbMF-o*hx)GVCCg_wLLU;kdaP9@_DqG2Tz z3GWn3eQ*P1l{iQ&^udLBaEKfk0~U#c66Em4gpg1{LbSkJh+F3ityR%f5}5>6@*$NZ zMyjBxd~kdr5((4vW5Y552fc?VqkV96!w1NalYz)#$OBJw6A-CHh)TkfDDIw~o@*d7 zkwhdA$pjMFjpRwAkZD9B^dWHiY;xfa+6E@;LoWTy2PaZ0Wi$dIE-nrqN5LcVodlA% zx3@uqOm@>F+!XOrC12$xRXENlFkyv2E|w|9h!ip?@*|O0r4LSD>Azc$$Ue$S75Mk< z;01_;pyJC2Bs|g3(hQKp`QK29)*8kY%nI*k<48xD6)lWX!9+v98 zF4vpd2%VmK_x8=?#Q50g$REQ)g9HD1{i?t3Wp7V+*Nf+!9nadIwzWQa-14aT_ojyr z?%!*?`&+}E`nuYhU;p`!UvA&3uBxo~xxDOVX^HN}_2Qz!Ygexn{B$}0Qr^W2=YPyS zmvdHo=7;R>PoFxOm3iX3q^EuR_alc>Qw|+GpxK}NO_F-w-aU!C6XI2IU&ksH z@?A1SDv61X5{q{3fQ5ocK5u)(wy(B+xg|Vo^QO>^8@}NFErj#=`e1fYAS-~$@TdE& z^YvN#8O__vlj`A4A?ptm-fhilR~P3`SFLn%#5q9rcD6PvmM>enWbr4~i>ww}F0e44 zZ#K^qJJ)0m#uzjL0EbD8{^z0?ks#$U8Z^1j{vcm6{hAd2Z#=Rc;pR zO&6}LkN+yN?t6C8`G(V8ioVv`q6>G?Gk(eQY=et0-a8j`%ynB`ao&Rq+;hR%!PhS} z<%btVwbfnEZ@$92ooc)O#^shG(F6G=UX?mUCwpF(y`YusgO0bYz~xOu(5`Kq8k z;x!LcgSM>Ie!FsX1MOAGX7(ZFB|~72`5^VT^3p$g0HP&#y8Py7|DyEM;d_5Bi|eo` zR-hqIcLTu68=2eNrxM=`y?VYP?n*?(ROd)XW}1vwoor&$+Ou`tQw$Tda zRN18D9_oT|7AxoXdcjABY%LuioYT_uIpHUI;CQTiqdMzTqGgSVw2%Fxx=QS##%T8H zdiGc<9jgu=xRuh2WPtMOgtU3sYH)=+JK{oSVPI6=cR4A2C+P)sFV7YfF7Mydv4ysJ zcS}n`bo@O|b6-KTgJ-rF&{CgVt662XRif+K@eP>4>24{0xVdbZC?{hqjCVM;|F!P0 Z$5@t0OsS^1wD`zaXO}GF6 literal 0 HcmV?d00001 diff --git "a/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/index.html" "b/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/index.html" new file mode 100644 index 0000000..34936e5 --- /dev/null +++ "b/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/index.html" @@ -0,0 +1,60 @@ + + + + +΢°ɫЧ_ʾҳ_زĿ + + + + + +
    +
    + ΢ +
      +
    • ΢
    • +
    • +
    • ͼƬ
    • +
    • +
    • Ƶ
    • +
    • ֪ʶ
    • +
    • >>
    • +
    +
    + + +
    + + \ No newline at end of file diff --git "a/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/index_v.html" "b/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/index_v.html" new file mode 100644 index 0000000..2728290 --- /dev/null +++ "b/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/index_v.html" @@ -0,0 +1,73 @@ + + + + +΢°ɫЧ_ʾҳ_JSվ + + + + + + + +
    +
    + ΢ +
      +
    • ΢
    • +
    • +
    • ͼƬ
    • +
    • +
    • Ƶ
    • +
    • ֪ʶ
    • +
    • >>
    • +
    +
    + + +
    + + \ No newline at end of file diff --git "a/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/js/jquery.min.js" "b/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/js/jquery.min.js" new file mode 100644 index 0000000..3ca5e0f --- /dev/null +++ "b/\346\216\247\344\273\266/jquery\344\273\277\346\226\260\346\265\252\345\276\256\345\215\232\346\226\260\347\211\210\346\220\234\347\264\242\344\270\213\346\213\211\347\211\271\346\225\210/js/jquery.min.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/\346\217\222\344\273\266/timelinr/biggerdot.png" "b/\346\217\222\344\273\266/timelinr/biggerdot.png" new file mode 100644 index 0000000000000000000000000000000000000000..66324b66b430b8f644c6c77db4a1e5345e060e4c GIT binary patch literal 1016 zcmaJ=%TE(Q9A2piLWqr;;3FoJCE;ZE)fe4#rLbG1ktJAaY@!KHcc*j%yR+;Lbm5}W zgAz{s4<0-bPKIbAn&82M2d|nK!T}R62G1OvEp72&-DGy=H~GHr_nh^a>DvQ+*ZLTS z87NF@MY{KftM?rJ?_GGeLAR?UUnaA-O6t%<%$SKQ2o!8MkBSJIt4p6ymSG~SRVtIR zJ|!F2=3t270^6l*hRKcwE;JSp0TncFISTvh?Jf%}Q(^BXbwPJkRI?`6JT$vDT{6}d zjEu>S-U8V`rUEu15Crz3oY*b9s)^Dh#5jk04b3Z zdiB&a#5RT`l6P?)(CNBp0C&ITs_WVZ=M%3 znM|l5Nim9u`Ku0rLCo=oS_&HS4bO6kg&hzo!U|p{3QHqBNx^p8vX0*@6D=4YK$jOe zAxx48MJZLq0p5ps~&;`dnJq)TUDH?VS@b{ zc7ZyZ1UfVt|kwaQs^OT$F$PGuqcBy9#dDaRtCp>I}M#{3)IhJ@wy(ZV}9801jm#4w- zVPpSlbnA*vPk3yPEj8MMj~qJf9v$n0ozFY;Nh}t$u~P80a{RbD9ErYSmIk8_x{m7L zd(Ym--0^1jIIg#cFVINM%8) zeo$(0erZv1Dp0vH$f^P>=c3falKi5O{QMkPC+XvUCm4#%^aPaEu0JuT@5Uqj4hlkjT}u)91Wb! zoGf5^UGkGlb5rw5V0u#!dYy3U1to>t0-((Enm@@7}(7{p#h5=g*!#dHm?%gZuaH-no72=8fyuu3ou(>Eea+=gyuved^?i(;JWy=vu(<;#{XS-fcBg8B32&Y3-H=8Wmn zrcRkWY2t+bzTTehuFj73w$_&BrpAW)y4srRs>+J;veJ^`qQZjwyxg4Ztjvt`wA7U3 zq{M{yxY(HJsK|)$u+Wg;puhlsKVKhjFHaA5H&+*DCr1Z+J6juTD@zM=GgA{|BVd-& z)78<|($r8_Q&mw`QdE$ala-N{l9Uh^6BQ8_5)|O) + + + + + +演示1:jQuery时间轴插件:jQuery Timelinr + + + + + + + + + + +
    +

    jQuery Timelinr,一款jQuery打造的时间轴插件

    +

    Demo1:水平自动滚动    Demo2:垂直滚动    Demo3:滚轮滚动

    +
    + +
      +
    • +

      2005 闪亮登场

      +

      2005年,呱呱坠地。界面清爽、功能俱全、操作简单易上手,是大家都喜爱的网络家园。出生不久,就有越来越多的朋友到我这里分享自己的生活。

      +
    • +
    • +

      2006 扬帆起航

      +

      2006年,咿呀学语。面对每天千万级的用户访问,技术GG帮我优化了架构,设计师MM帮我设计了欢迎动画等个性化装扮,“妈妈再也不担心我404了”!

      +
    • +
    • +

      2007 内外兼修

      +

      2007年,初长成。咱推出了信息中心和好友圈,开始向SNS社区转型;首创4.0全屏模式,更加美观大方。

      +
    • +
    • +

      2008 厚积薄发

      +

      2008年,十八变。当年推出的个人中心,正式标志着我从传统博客向SNS社区的转变,注册用户和分享量稳居国内第一;每天都有超多用户在我这里分享生活中的新鲜事。

      +
    • +
    • +

      2009 百花齐放

      +

      2009年,百花齐放。引入众多国民级应用,其中最出名的QQ农场,给了好多人一个深夜上网的理由,也为拉近老爸老妈老婆老公的关系做出了卓越的贡献。

      +
    • +
    • +

      2010 新体验、新起点

      +

      2010年,强化内功。致力于在产品体验不断的精雕细琢。因为经历了飞速发展的5年,我明白只有不断的自我修炼,才能让大家真正把咱当成网络的家。

      +
    • +
    • +

      2011 我的空间 我的家

      +

      2011年,培养内涵。更优质的宽屏体验、更丰富的应用、更热闹的个人中心,都是我不断培养内涵的结果。让网络上的家越来越上流,是我追求的目标。

      +
    • +
    • +

      2012 分享生活 留住感动

      +

      2012年,蜕变,不变。和大家一起经历的7年,是我生命中最美好的7年。你们在这7年里,有的从学生步入社会,有的成立家庭,有的有了孩子。时光流转,我们都在成长,但唯一不变的,就是QQ空间——你永远的家!

      +
    • +
    +
    +
    + + + diff --git "a/\346\217\222\344\273\266/timelinr/jquery.mousewheel.js" "b/\346\217\222\344\273\266/timelinr/jquery.mousewheel.js" new file mode 100644 index 0000000..9d65c71 --- /dev/null +++ "b/\346\217\222\344\273\266/timelinr/jquery.mousewheel.js" @@ -0,0 +1,117 @@ +/*! Copyright (c) 2013 Brandon Aaron (http://brandonaaron.net) + * Licensed under the MIT License (LICENSE.txt). + * + * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. + * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. + * Thanks to: Seamus Leahy for adding deltaX and deltaY + * + * Version: 3.1.3 + * + * Requires: 1.2.2+ + */ + +(function (factory) { + if ( typeof define === 'function' && define.amd ) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS style for Browserify + module.exports = factory; + } else { + // Browser globals + factory(jQuery); + } +}(function ($) { + + var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll']; + var toBind = 'onwheel' in document || document.documentMode >= 9 ? ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll']; + var lowestDelta, lowestDeltaXY; + + if ( $.event.fixHooks ) { + for ( var i = toFix.length; i; ) { + $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks; + } + } + + $.event.special.mousewheel = { + setup: function() { + if ( this.addEventListener ) { + for ( var i = toBind.length; i; ) { + this.addEventListener( toBind[--i], handler, false ); + } + } else { + this.onmousewheel = handler; + } + }, + + teardown: function() { + if ( this.removeEventListener ) { + for ( var i = toBind.length; i; ) { + this.removeEventListener( toBind[--i], handler, false ); + } + } else { + this.onmousewheel = null; + } + } + }; + + $.fn.extend({ + mousewheel: function(fn) { + return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel"); + }, + + unmousewheel: function(fn) { + return this.unbind("mousewheel", fn); + } + }); + + + function handler(event) { + var orgEvent = event || window.event, + args = [].slice.call(arguments, 1), + delta = 0, + deltaX = 0, + deltaY = 0, + absDelta = 0, + absDeltaXY = 0, + fn; + event = $.event.fix(orgEvent); + event.type = "mousewheel"; + + // Old school scrollwheel delta + if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta; } + if ( orgEvent.detail ) { delta = orgEvent.detail * -1; } + + // New school wheel delta (wheel event) + if ( orgEvent.deltaY ) { + deltaY = orgEvent.deltaY * -1; + delta = deltaY; + } + if ( orgEvent.deltaX ) { + deltaX = orgEvent.deltaX; + delta = deltaX * -1; + } + + // Webkit + if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY; } + if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = orgEvent.wheelDeltaX * -1; } + + // Look for lowest delta to normalize the delta values + absDelta = Math.abs(delta); + if ( !lowestDelta || absDelta < lowestDelta ) { lowestDelta = absDelta; } + absDeltaXY = Math.max(Math.abs(deltaY), Math.abs(deltaX)); + if ( !lowestDeltaXY || absDeltaXY < lowestDeltaXY ) { lowestDeltaXY = absDeltaXY; } + + // Get a whole value for the deltas + fn = delta > 0 ? 'floor' : 'ceil'; + delta = Math[fn](delta / lowestDelta); + deltaX = Math[fn](deltaX / lowestDeltaXY); + deltaY = Math[fn](deltaY / lowestDeltaXY); + + // Add event and delta to the front of the arguments + args.unshift(event, delta, deltaX, deltaY); + + return ($.event.dispatch || $.event.handle).apply(this, args); + } + +})); diff --git "a/\346\217\222\344\273\266/timelinr/jquery.timelinr-0.9.53.js" "b/\346\217\222\344\273\266/timelinr/jquery.timelinr-0.9.53.js" new file mode 100644 index 0000000..7a2e579 --- /dev/null +++ "b/\346\217\222\344\273\266/timelinr/jquery.timelinr-0.9.53.js" @@ -0,0 +1,279 @@ +/* ---------------------------------- +jQuery Timelinr 0.9.53 +tested with jQuery v1.6+ + +Copyright 2011, CSSLab.cl +Free under the MIT license. +http://www.opensource.org/licenses/mit-license.php + +instructions: http://www.csslab.cl/2011/08/18/jquery-timelinr/ +---------------------------------- */ + +jQuery.fn.timelinr = function(options){ + // default plugin settings + settings = jQuery.extend({ + orientation: 'horizontal', // value: horizontal | vertical, default to horizontal + containerDiv: '#timeline', // value: any HTML tag or #id, default to #timeline + datesDiv: '#dates', // value: any HTML tag or #id, default to #dates + datesSelectedClass: 'selected', // value: any class, default to selected + datesSpeed: 'normal', // value: integer between 100 and 1000 (recommended) or 'slow', 'normal' or 'fast'; default to normal + issuesDiv: '#issues', // value: any HTML tag or #id, default to #issues + issuesSelectedClass: 'selected', // value: any class, default to selected + issuesSpeed: 'fast', // value: integer between 100 and 1000 (recommended) or 'slow', 'normal' or 'fast'; default to fast + issuesTransparency: 0.2, // value: integer between 0 and 1 (recommended), default to 0.2 + issuesTransparencySpeed: 500, // value: integer between 100 and 1000 (recommended), default to 500 (normal) + prevButton: '#prev', // value: any HTML tag or #id, default to #prev + nextButton: '#next', // value: any HTML tag or #id, default to #next + arrowKeys: 'false', // value: true | false, default to false + startAt: 1, // value: integer, default to 1 (first) + autoPlay: 'false', // value: true | false, default to false + autoPlayDirection: 'forward', // value: forward | backward, default to forward + autoPlayPause: 2000 // value: integer (1000 = 1 seg), default to 2000 (2segs) + + }, options); + + $(function(){ + // setting variables... many of them + var howManyDates = $(settings.datesDiv+' li').length; + var howManyIssues = $(settings.issuesDiv+' li').length; + var currentDate = $(settings.datesDiv).find('a.'+settings.datesSelectedClass); + var currentIssue = $(settings.issuesDiv).find('li.'+settings.issuesSelectedClass); + var widthContainer = $(settings.containerDiv).width(); + var heightContainer = $(settings.containerDiv).height(); + var widthIssues = $(settings.issuesDiv).width(); + var heightIssues = $(settings.issuesDiv).height(); + var widthIssue = $(settings.issuesDiv+' li').width(); + var heightIssue = $(settings.issuesDiv+' li').height(); + var widthDates = $(settings.datesDiv).width(); + var heightDates = $(settings.datesDiv).height(); + var widthDate = $(settings.datesDiv+' li').width(); + var heightDate = $(settings.datesDiv+' li').height(); + // set positions! + if(settings.orientation == 'horizontal') { + $(settings.issuesDiv).width(widthIssue*howManyIssues); + $(settings.datesDiv).width(widthDate*howManyDates).css('marginLeft',widthContainer/2-widthDate/2); + var defaultPositionDates = parseInt($(settings.datesDiv).css('marginLeft').substring(0,$(settings.datesDiv).css('marginLeft').indexOf('px'))); + } else if(settings.orientation == 'vertical') { + $(settings.issuesDiv).height(heightIssue*howManyIssues); + $(settings.datesDiv).height(heightDate*howManyDates).css('marginTop',heightContainer/2-heightDate/2); + var defaultPositionDates = parseInt($(settings.datesDiv).css('marginTop').substring(0,$(settings.datesDiv).css('marginTop').indexOf('px'))); + } + + $(settings.datesDiv+' a').click(function(event){ + event.preventDefault(); + // first vars + var whichIssue = $(this).text(); + var currentIndex = $(this).parent().prevAll().length; + // moving the elements + if(settings.orientation == 'horizontal') { + $(settings.issuesDiv).animate({'marginLeft':-widthIssue*currentIndex},{queue:false, duration:settings.issuesSpeed}); + } else if(settings.orientation == 'vertical') { + $(settings.issuesDiv).animate({'marginTop':-heightIssue*currentIndex},{queue:false, duration:settings.issuesSpeed}); + } + $(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},{queue:false, duration:settings.issuesSpeed}).removeClass(settings.issuesSelectedClass).eq(currentIndex).addClass(settings.issuesSelectedClass).fadeTo(settings.issuesTransparencySpeed,1); + // prev/next buttons now disappears on first/last issue | bugfix from 0.9.51: lower than 1 issue hide the arrows | bugfixed: arrows not showing when jumping from first to last date + if(howManyDates == 1) { + $(settings.prevButton+','+settings.nextButton).fadeOut('fast'); + } else if(howManyDates == 2) { + if($(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass)) { + $(settings.prevButton).fadeOut('fast'); + $(settings.nextButton).fadeIn('fast'); + } + else if($(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass)) { + $(settings.nextButton).fadeOut('fast'); + $(settings.prevButton).fadeIn('fast'); + } + } else { + if( $(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass) ) { + $(settings.nextButton).fadeIn('fast'); + $(settings.prevButton).fadeOut('fast'); + } + else if( $(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass) ) { + $(settings.prevButton).fadeIn('fast'); + $(settings.nextButton).fadeOut('fast'); + } + else { + $(settings.nextButton+','+settings.prevButton).fadeIn('slow'); + } + } + // now moving the dates + $(settings.datesDiv+' a').removeClass(settings.datesSelectedClass); + $(this).addClass(settings.datesSelectedClass); + if(settings.orientation == 'horizontal') { + $(settings.datesDiv).animate({'marginLeft':defaultPositionDates-(widthDate*currentIndex)},{queue:false, duration:'settings.datesSpeed'}); + } else if(settings.orientation == 'vertical') { + $(settings.datesDiv).animate({'marginTop':defaultPositionDates-(heightDate*currentIndex)},{queue:false, duration:'settings.datesSpeed'}); + } + }); + + $(settings.nextButton).bind('click', function(event){ + event.preventDefault(); + if(settings.orientation == 'horizontal') { + var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginLeft').substring(0,$(settings.issuesDiv).css('marginLeft').indexOf('px'))); + var currentIssueIndex = currentPositionIssues/widthIssue; + var currentPositionDates = parseInt($(settings.datesDiv).css('marginLeft').substring(0,$(settings.datesDiv).css('marginLeft').indexOf('px'))); + var currentIssueDate = currentPositionDates-widthDate; + if(currentPositionIssues <= -(widthIssue*howManyIssues-(widthIssue))) { + $(settings.issuesDiv).stop(); + $(settings.datesDiv+' li:last-child a').click(); + } else { + if (!$(settings.issuesDiv).is(':animated')) { + $(settings.issuesDiv).animate({'marginLeft':currentPositionIssues-widthIssue},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li.'+settings.issuesSelectedClass).removeClass(settings.issuesSelectedClass).next().fadeTo(settings.issuesTransparencySpeed, 1).addClass(settings.issuesSelectedClass); + $(settings.datesDiv).animate({'marginLeft':currentIssueDate},{queue:false, duration:'settings.datesSpeed'}); + $(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().next().children().addClass(settings.datesSelectedClass); + } + } + } else if(settings.orientation == 'vertical') { + var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginTop').substring(0,$(settings.issuesDiv).css('marginTop').indexOf('px'))); + var currentIssueIndex = currentPositionIssues/heightIssue; + var currentPositionDates = parseInt($(settings.datesDiv).css('marginTop').substring(0,$(settings.datesDiv).css('marginTop').indexOf('px'))); + var currentIssueDate = currentPositionDates-heightDate; + if(currentPositionIssues <= -(heightIssue*howManyIssues-(heightIssue))) { + $(settings.issuesDiv).stop(); + $(settings.datesDiv+' li:last-child a').click(); + } else { + if (!$(settings.issuesDiv).is(':animated')) { + $(settings.issuesDiv).animate({'marginTop':currentPositionIssues-heightIssue},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li.'+settings.issuesSelectedClass).removeClass(settings.issuesSelectedClass).next().fadeTo(settings.issuesTransparencySpeed, 1).addClass(settings.issuesSelectedClass); + $(settings.datesDiv).animate({'marginTop':currentIssueDate},{queue:false, duration:'settings.datesSpeed'}); + $(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().next().children().addClass(settings.datesSelectedClass); + } + } + } + // prev/next buttons now disappears on first/last issue | bugfix from 0.9.51: lower than 1 issue hide the arrows + if(howManyDates == 1) { + $(settings.prevButton+','+settings.nextButton).fadeOut('fast'); + } else if(howManyDates == 2) { + if($(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass)) { + $(settings.prevButton).fadeOut('fast'); + $(settings.nextButton).fadeIn('fast'); + } + else if($(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass)) { + $(settings.nextButton).fadeOut('fast'); + $(settings.prevButton).fadeIn('fast'); + } + } else { + if( $(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass) ) { + $(settings.prevButton).fadeOut('fast'); + } + else if( $(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass) ) { + $(settings.nextButton).fadeOut('fast'); + } + else { + $(settings.nextButton+','+settings.prevButton).fadeIn('slow'); + } + } + }); + + $(settings.prevButton).click(function(event){ + event.preventDefault(); + if(settings.orientation == 'horizontal') { + var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginLeft').substring(0,$(settings.issuesDiv).css('marginLeft').indexOf('px'))); + var currentIssueIndex = currentPositionIssues/widthIssue; + var currentPositionDates = parseInt($(settings.datesDiv).css('marginLeft').substring(0,$(settings.datesDiv).css('marginLeft').indexOf('px'))); + var currentIssueDate = currentPositionDates+widthDate; + if(currentPositionIssues >= 0) { + $(settings.issuesDiv).stop(); + $(settings.datesDiv+' li:first-child a').click(); + } else { + if (!$(settings.issuesDiv).is(':animated')) { + $(settings.issuesDiv).animate({'marginLeft':currentPositionIssues+widthIssue},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li.'+settings.issuesSelectedClass).removeClass(settings.issuesSelectedClass).prev().fadeTo(settings.issuesTransparencySpeed, 1).addClass(settings.issuesSelectedClass); + $(settings.datesDiv).animate({'marginLeft':currentIssueDate},{queue:false, duration:'settings.datesSpeed'}); + $(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().prev().children().addClass(settings.datesSelectedClass); + } + } + } else if(settings.orientation == 'vertical') { + var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginTop').substring(0,$(settings.issuesDiv).css('marginTop').indexOf('px'))); + var currentIssueIndex = currentPositionIssues/heightIssue; + var currentPositionDates = parseInt($(settings.datesDiv).css('marginTop').substring(0,$(settings.datesDiv).css('marginTop').indexOf('px'))); + var currentIssueDate = currentPositionDates+heightDate; + if(currentPositionIssues >= 0) { + $(settings.issuesDiv).stop(); + $(settings.datesDiv+' li:first-child a').click(); + } else { + if (!$(settings.issuesDiv).is(':animated')) { + $(settings.issuesDiv).animate({'marginTop':currentPositionIssues+heightIssue},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li.'+settings.issuesSelectedClass).removeClass(settings.issuesSelectedClass).prev().fadeTo(settings.issuesTransparencySpeed, 1).addClass(settings.issuesSelectedClass); + $(settings.datesDiv).animate({'marginTop':currentIssueDate},{queue:false, duration:'settings.datesSpeed'},{queue:false, duration:settings.issuesSpeed}); + $(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().prev().children().addClass(settings.datesSelectedClass); + } + } + } + // prev/next buttons now disappears on first/last issue | bugfix from 0.9.51: lower than 1 issue hide the arrows + if(howManyDates == 1) { + $(settings.prevButton+','+settings.nextButton).fadeOut('fast'); + } else if(howManyDates == 2) { + if($(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass)) { + $(settings.prevButton).fadeOut('fast'); + $(settings.nextButton).fadeIn('fast'); + } + else if($(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass)) { + $(settings.nextButton).fadeOut('fast'); + $(settings.prevButton).fadeIn('fast'); + } + } else { + if( $(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass) ) { + $(settings.prevButton).fadeOut('fast'); + } + else if( $(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass) ) { + $(settings.nextButton).fadeOut('fast'); + } + else { + $(settings.nextButton+','+settings.prevButton).fadeIn('slow'); + } + } + }); + // keyboard navigation, added since 0.9.1 + if(settings.arrowKeys=='true') { + if(settings.orientation=='horizontal') { + $(document).keydown(function(event){ + if (event.keyCode == 39) { + $(settings.nextButton).click(); + } + if (event.keyCode == 37) { + $(settings.prevButton).click(); + } + }); + } else if(settings.orientation=='vertical') { + $(document).keydown(function(event){ + if (event.keyCode == 40) { + $(settings.nextButton).click(); + } + if (event.keyCode == 38) { + $(settings.prevButton).click(); + } + }); + } + } + // default position startAt, added since 0.9.3 + $(settings.datesDiv+' li').eq(settings.startAt-1).find('a').trigger('click'); + // autoPlay, added since 0.9.4 + if(settings.autoPlay == 'true') { + setInterval("autoPlay()", settings.autoPlayPause); + } + }); +}; + +// autoPlay, added since 0.9.4 +function autoPlay(){ + var currentDate = $(settings.datesDiv).find('a.'+settings.datesSelectedClass); + if(settings.autoPlayDirection == 'forward') { + if(currentDate.parent().is('li:last-child')) { + $(settings.datesDiv+' li:first-child').find('a').trigger('click'); + } else { + currentDate.parent().next().find('a').trigger('click'); + } + } else if(settings.autoPlayDirection == 'backward') { + if(currentDate.parent().is('li:first-child')) { + $(settings.datesDiv+' li:last-child').find('a').trigger('click'); + } else { + currentDate.parent().prev().find('a').trigger('click'); + } + } +} \ No newline at end of file diff --git "a/\346\217\222\344\273\266/timelinr/jquery.timelinr.js" "b/\346\217\222\344\273\266/timelinr/jquery.timelinr.js" new file mode 100644 index 0000000..9ae4693 --- /dev/null +++ "b/\346\217\222\344\273\266/timelinr/jquery.timelinr.js" @@ -0,0 +1,290 @@ +/* ---------------------------------- +jQuery Timelinr 0.9.53 +tested with jQuery v1.6+ + +Copyright 2011, CSSLab.cl +Free under the MIT license. +http://www.opensource.org/licenses/mit-license.php + +instructions: http://www.csslab.cl/2011/08/18/jquery-timelinr/ +---------------------------------- */ + +jQuery.fn.timelinr = function(options){ + // default plugin settings + settings = jQuery.extend({ + orientation: 'horizontal', // value: horizontal | vertical, default to horizontal + containerDiv: '#timeline', // value: any HTML tag or #id, default to #timeline + datesDiv: '#dates', // value: any HTML tag or #id, default to #dates + datesSelectedClass: 'selected', // value: any class, default to selected + datesSpeed: 'normal', // value: integer between 100 and 1000 (recommended) or 'slow', 'normal' or 'fast'; default to normal + issuesDiv: '#issues', // value: any HTML tag or #id, default to #issues + issuesSelectedClass: 'selected', // value: any class, default to selected + issuesSpeed: 'fast', // value: integer between 100 and 1000 (recommended) or 'slow', 'normal' or 'fast'; default to fast + issuesTransparency: 0.2, // value: integer between 0 and 1 (recommended), default to 0.2 + issuesTransparencySpeed: 500, // value: integer between 100 and 1000 (recommended), default to 500 (normal) + prevButton: '#prev', // value: any HTML tag or #id, default to #prev + nextButton: '#next', // value: any HTML tag or #id, default to #next + arrowKeys: 'false', // value: true | false, default to false + startAt: 1, // value: integer, default to 1 (first) + autoPlay: 'false', // value: true | false, default to false + autoPlayDirection: 'forward', // value: forward | backward, default to forward + autoPlayPause: 2000, // value: integer (1000 = 1 seg), default to 2000 (2segs) + mousewheel: 'false' // value: true | false, default to false + }, options); + + $(function(){ + // setting variables... many of them + var howManyDates = $(settings.datesDiv+' li').length; + var howManyIssues = $(settings.issuesDiv+' li').length; + var currentDate = $(settings.datesDiv).find('a.'+settings.datesSelectedClass); + var currentIssue = $(settings.issuesDiv).find('li.'+settings.issuesSelectedClass); + var widthContainer = $(settings.containerDiv).width(); + var heightContainer = $(settings.containerDiv).height(); + var widthIssues = $(settings.issuesDiv).width(); + var heightIssues = $(settings.issuesDiv).height(); + var widthIssue = $(settings.issuesDiv+' li').width(); + var heightIssue = $(settings.issuesDiv+' li').height(); + var widthDates = $(settings.datesDiv).width(); + var heightDates = $(settings.datesDiv).height(); + var widthDate = $(settings.datesDiv+' li').width(); + var heightDate = $(settings.datesDiv+' li').height(); + // set positions! + if(settings.orientation == 'horizontal') { + $(settings.issuesDiv).width(widthIssue*howManyIssues); + $(settings.datesDiv).width(widthDate*howManyDates).css('marginLeft',widthContainer/2-widthDate/2); + var defaultPositionDates = parseInt($(settings.datesDiv).css('marginLeft').substring(0,$(settings.datesDiv).css('marginLeft').indexOf('px'))); + } else if(settings.orientation == 'vertical') { + $(settings.issuesDiv).height(heightIssue*howManyIssues); + $(settings.datesDiv).height(heightDate*howManyDates).css('marginTop',heightContainer/2-heightDate/2); + var defaultPositionDates = parseInt($(settings.datesDiv).css('marginTop').substring(0,$(settings.datesDiv).css('marginTop').indexOf('px'))); + } + + $(settings.datesDiv+' a').click(function(event){ + event.preventDefault(); + // first vars + var whichIssue = $(this).text(); + var currentIndex = $(this).parent().prevAll().length; + // moving the elements + if(settings.orientation == 'horizontal') { + $(settings.issuesDiv).animate({'marginLeft':-widthIssue*currentIndex},{queue:false, duration:settings.issuesSpeed}); + } else if(settings.orientation == 'vertical') { + $(settings.issuesDiv).animate({'marginTop':-heightIssue*currentIndex},{queue:false, duration:settings.issuesSpeed}); + } + $(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},{queue:false, duration:settings.issuesSpeed}).removeClass(settings.issuesSelectedClass).eq(currentIndex).addClass(settings.issuesSelectedClass).fadeTo(settings.issuesTransparencySpeed,1); + // prev/next buttons now disappears on first/last issue | bugfix from 0.9.51: lower than 1 issue hide the arrows | bugfixed: arrows not showing when jumping from first to last date + if(howManyDates == 1) { + $(settings.prevButton+','+settings.nextButton).fadeOut('fast'); + } else if(howManyDates == 2) { + if($(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass)) { + $(settings.prevButton).fadeOut('fast'); + $(settings.nextButton).fadeIn('fast'); + } + else if($(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass)) { + $(settings.nextButton).fadeOut('fast'); + $(settings.prevButton).fadeIn('fast'); + } + } else { + if( $(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass) ) { + $(settings.nextButton).fadeIn('fast'); + $(settings.prevButton).fadeOut('fast'); + } + else if( $(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass) ) { + $(settings.prevButton).fadeIn('fast'); + $(settings.nextButton).fadeOut('fast'); + } + else { + $(settings.nextButton+','+settings.prevButton).fadeIn('slow'); + } + } + // now moving the dates + $(settings.datesDiv+' a').removeClass(settings.datesSelectedClass); + $(this).addClass(settings.datesSelectedClass); + if(settings.orientation == 'horizontal') { + $(settings.datesDiv).animate({'marginLeft':defaultPositionDates-(widthDate*currentIndex)},{queue:false, duration:'settings.datesSpeed'}); + } else if(settings.orientation == 'vertical') { + $(settings.datesDiv).animate({'marginTop':defaultPositionDates-(heightDate*currentIndex)},{queue:false, duration:'settings.datesSpeed'}); + } + }); + + $(settings.nextButton).bind('click', function(event){ + event.preventDefault(); + if(settings.orientation == 'horizontal') { + var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginLeft').substring(0,$(settings.issuesDiv).css('marginLeft').indexOf('px'))); + var currentIssueIndex = currentPositionIssues/widthIssue; + var currentPositionDates = parseInt($(settings.datesDiv).css('marginLeft').substring(0,$(settings.datesDiv).css('marginLeft').indexOf('px'))); + var currentIssueDate = currentPositionDates-widthDate; + if(currentPositionIssues <= -(widthIssue*howManyIssues-(widthIssue))) { + $(settings.issuesDiv).stop(); + $(settings.datesDiv+' li:last-child a').click(); + } else { + if (!$(settings.issuesDiv).is(':animated')) { + $(settings.issuesDiv).animate({'marginLeft':currentPositionIssues-widthIssue},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li.'+settings.issuesSelectedClass).removeClass(settings.issuesSelectedClass).next().fadeTo(settings.issuesTransparencySpeed, 1).addClass(settings.issuesSelectedClass); + $(settings.datesDiv).animate({'marginLeft':currentIssueDate},{queue:false, duration:'settings.datesSpeed'}); + $(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().next().children().addClass(settings.datesSelectedClass); + } + } + } else if(settings.orientation == 'vertical') { + var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginTop').substring(0,$(settings.issuesDiv).css('marginTop').indexOf('px'))); + var currentIssueIndex = currentPositionIssues/heightIssue; + var currentPositionDates = parseInt($(settings.datesDiv).css('marginTop').substring(0,$(settings.datesDiv).css('marginTop').indexOf('px'))); + var currentIssueDate = currentPositionDates-heightDate; + if(currentPositionIssues <= -(heightIssue*howManyIssues-(heightIssue))) { + $(settings.issuesDiv).stop(); + $(settings.datesDiv+' li:last-child a').click(); + } else { + if (!$(settings.issuesDiv).is(':animated')) { + $(settings.issuesDiv).animate({'marginTop':currentPositionIssues-heightIssue},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li.'+settings.issuesSelectedClass).removeClass(settings.issuesSelectedClass).next().fadeTo(settings.issuesTransparencySpeed, 1).addClass(settings.issuesSelectedClass); + $(settings.datesDiv).animate({'marginTop':currentIssueDate},{queue:false, duration:'settings.datesSpeed'}); + $(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().next().children().addClass(settings.datesSelectedClass); + } + } + } + // prev/next buttons now disappears on first/last issue | bugfix from 0.9.51: lower than 1 issue hide the arrows + if(howManyDates == 1) { + $(settings.prevButton+','+settings.nextButton).fadeOut('fast'); + } else if(howManyDates == 2) { + if($(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass)) { + $(settings.prevButton).fadeOut('fast'); + $(settings.nextButton).fadeIn('fast'); + } + else if($(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass)) { + $(settings.nextButton).fadeOut('fast'); + $(settings.prevButton).fadeIn('fast'); + } + } else { + if( $(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass) ) { + $(settings.prevButton).fadeOut('fast'); + } + else if( $(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass) ) { + $(settings.nextButton).fadeOut('fast'); + } + else { + $(settings.nextButton+','+settings.prevButton).fadeIn('slow'); + } + } + }); + + $(settings.prevButton).click(function(event){ + event.preventDefault(); + if(settings.orientation == 'horizontal') { + var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginLeft').substring(0,$(settings.issuesDiv).css('marginLeft').indexOf('px'))); + var currentIssueIndex = currentPositionIssues/widthIssue; + var currentPositionDates = parseInt($(settings.datesDiv).css('marginLeft').substring(0,$(settings.datesDiv).css('marginLeft').indexOf('px'))); + var currentIssueDate = currentPositionDates+widthDate; + if(currentPositionIssues >= 0) { + $(settings.issuesDiv).stop(); + $(settings.datesDiv+' li:first-child a').click(); + } else { + if (!$(settings.issuesDiv).is(':animated')) { + $(settings.issuesDiv).animate({'marginLeft':currentPositionIssues+widthIssue},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li.'+settings.issuesSelectedClass).removeClass(settings.issuesSelectedClass).prev().fadeTo(settings.issuesTransparencySpeed, 1).addClass(settings.issuesSelectedClass); + $(settings.datesDiv).animate({'marginLeft':currentIssueDate},{queue:false, duration:'settings.datesSpeed'}); + $(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().prev().children().addClass(settings.datesSelectedClass); + } + } + } else if(settings.orientation == 'vertical') { + var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginTop').substring(0,$(settings.issuesDiv).css('marginTop').indexOf('px'))); + var currentIssueIndex = currentPositionIssues/heightIssue; + var currentPositionDates = parseInt($(settings.datesDiv).css('marginTop').substring(0,$(settings.datesDiv).css('marginTop').indexOf('px'))); + var currentIssueDate = currentPositionDates+heightDate; + if(currentPositionIssues >= 0) { + $(settings.issuesDiv).stop(); + $(settings.datesDiv+' li:first-child a').click(); + } else { + if (!$(settings.issuesDiv).is(':animated')) { + $(settings.issuesDiv).animate({'marginTop':currentPositionIssues+heightIssue},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},{queue:false, duration:settings.issuesSpeed}); + $(settings.issuesDiv+' li.'+settings.issuesSelectedClass).removeClass(settings.issuesSelectedClass).prev().fadeTo(settings.issuesTransparencySpeed, 1).addClass(settings.issuesSelectedClass); + $(settings.datesDiv).animate({'marginTop':currentIssueDate},{queue:false, duration:'settings.datesSpeed'},{queue:false, duration:settings.issuesSpeed}); + $(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().prev().children().addClass(settings.datesSelectedClass); + } + } + } + // prev/next buttons now disappears on first/last issue | bugfix from 0.9.51: lower than 1 issue hide the arrows + if(howManyDates == 1) { + $(settings.prevButton+','+settings.nextButton).fadeOut('fast'); + } else if(howManyDates == 2) { + if($(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass)) { + $(settings.prevButton).fadeOut('fast'); + $(settings.nextButton).fadeIn('fast'); + } + else if($(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass)) { + $(settings.nextButton).fadeOut('fast'); + $(settings.prevButton).fadeIn('fast'); + } + } else { + if( $(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass) ) { + $(settings.prevButton).fadeOut('fast'); + } + else if( $(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass) ) { + $(settings.nextButton).fadeOut('fast'); + } + else { + $(settings.nextButton+','+settings.prevButton).fadeIn('slow'); + } + } + }); + // keyboard navigation, added since 0.9.1 + if(settings.arrowKeys=='true') { + if(settings.orientation=='horizontal') { + $(document).keydown(function(event){ + if (event.keyCode == 39) { + $(settings.nextButton).click(); + } + if (event.keyCode == 37) { + $(settings.prevButton).click(); + } + }); + } else if(settings.orientation=='vertical') { + $(document).keydown(function(event){ + if (event.keyCode == 40) { + $(settings.nextButton).click(); + } + if (event.keyCode == 38) { + $(settings.prevButton).click(); + } + }); + } + } + // default position startAt, added since 0.9.3 + $(settings.datesDiv+' li').eq(settings.startAt-1).find('a').trigger('click'); + // autoPlay, added since 0.9.4 + if(settings.autoPlay == 'true') { + setInterval("autoPlay()", settings.autoPlayPause); + } + //-------------------Added by helloweba.com 20130326------------- + if(settings.mousewheel=="true") { //支持滚轮 + + $(settings.containerDiv).mousewheel(function(event, delta, deltaX, deltaY){ + if(delta==1){ + $(settings.prevButton).click(); + }else{ + $(settings.nextButton).click(); + } + }); + } + }); +}; + +// autoPlay, added since 0.9.4 +function autoPlay(){ + var currentDate = $(settings.datesDiv).find('a.'+settings.datesSelectedClass); + if(settings.autoPlayDirection == 'forward') { + if(currentDate.parent().is('li:last-child')) { + $(settings.datesDiv+' li:first-child').find('a').trigger('click'); + } else { + currentDate.parent().next().find('a').trigger('click'); + } + } else if(settings.autoPlayDirection == 'backward') { + if(currentDate.parent().is('li:first-child')) { + $(settings.datesDiv+' li:last-child').find('a').trigger('click'); + } else { + currentDate.parent().prev().find('a').trigger('click'); + } + } +} \ No newline at end of file diff --git "a/\346\217\222\344\273\266/timelinr/main.css" "b/\346\217\222\344\273\266/timelinr/main.css" new file mode 100644 index 0000000..54bc06d --- /dev/null +++ "b/\346\217\222\344\273\266/timelinr/main.css" @@ -0,0 +1,25 @@ +@charset "utf-8"; +/* CSS Document */ +html,body,div,span,h1,h2,h3,h4,h5,h6,p,pre,a,code,em,img,small,strong,sub,sup,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent} +a{color:#007bc4/*#424242*/; text-decoration:none;} +a:hover{text-decoration:underline} +ol,ul{list-style:none} +table{border-collapse:collapse;border-spacing:0} +body{height:100%; font:12px/18px "Microsoft Yahei", Tahoma, Helvetica, Arial, Verdana, "\5b8b\4f53", sans-serif; color:#51555C; background:#162934 url(../images/body_bg.gif) repeat-x} +img{border:none} + + +#header{width:910px; height:92px; margin:0 auto;} +#logo{width:240px; height:90px; background:url(../images/logo_demo.gif) no-repeat} +#logo h1{text-indent:-999em} +#logo h1 a{display:block; width:240px; height:90px} + +#main{width:910px; min-height:600px; margin:30px auto 0 auto; background:#fff; -moz-border-radius:12px;-khtml-border-radius: 12px;-webkit-border-radius: 12px; border-radius:12px;} +h2.top_title{margin:4px 20px; padding-top:15px; padding-left:20px; padding-bottom:10px; border-bottom:1px solid #d3d3d3; font-size:18px; color:#a84c10; background:url(../images/arrL.gif) no-repeat 2px 14px} + +#footer{height:60px;} +#footer p{ padding:10px 2px; line-height:24px; text-align:center} +#footer p a:hover{color:#51555C} + +.google_ad{width:728px; height:90px; margin:50px auto} +.ad_76090,.ad_demo{width:760px; height:90px; margin:40px auto} diff --git "a/\346\217\222\344\273\266/timelinr/mousewheel.html" "b/\346\217\222\344\273\266/timelinr/mousewheel.html" new file mode 100644 index 0000000..a1da0cb --- /dev/null +++ "b/\346\217\222\344\273\266/timelinr/mousewheel.html" @@ -0,0 +1,98 @@ + + + + + + +演示3:jQuery时间轴插件:jQuery Timelinr - sucaiweb.com + + + + + + + + + + + +
    +

    jQuery Timelinr,一款jQuery打造的时间轴插件

    +

    Demo1:水平滚动    Demo2:垂直滚动    Demo3:滚轮滚动

    +
    + +
      +
    • +

      2005 闪亮登场

      +

      2005年,呱呱坠地。界面清爽、功能俱全、操作简单易上手,是大家都喜爱的网络家园。出生不久,就有越来越多的朋友到我这里分享自己的生活。

      +
    • +
    • +

      2006 扬帆起航

      +

      2006年,咿呀学语。面对每天千万级的用户访问,技术GG帮我优化了架构,设计师MM帮我设计了欢迎动画等个性化装扮,“妈妈再也不担心我404了”!

      +
    • +
    • +

      2007 内外兼修

      +

      2007年,初长成。咱推出了信息中心和好友圈,开始向SNS社区转型;首创4.0全屏模式,更加美观大方。

      +
    • +
    • +

      2008 厚积薄发

      +

      2008年,十八变。当年推出的个人中心,正式标志着我从传统博客向SNS社区的转变,注册用户和分享量稳居国内第一;每天都有超多用户在我这里分享生活中的新鲜事。

      +
    • +
    • +

      2009 百花齐放

      +

      2009年,百花齐放。引入众多国民级应用,其中最出名的QQ农场,给了好多人一个深夜上网的理由,也为拉近老爸老妈老婆老公的关系做出了卓越的贡献。

      +
    • +
    • +

      2010 新体验、新起点

      +

      2010年,强化内功。致力于在产品体验不断的精雕细琢。因为经历了飞速发展的5年,我明白只有不断的自我修炼,才能让大家真正把咱当成网络的家。

      +
    • +
    • +

      2011 我的空间 我的家

      +

      2011年,培养内涵。更优质的宽屏体验、更丰富的应用、更热闹的个人中心,都是我不断培养内涵的结果。让网络上的家越来越上流,是我追求的目标。

      +
    • +
    • +

      2012 分享生活 留住感动

      +

      2012年,蜕变,不变。和大家一起经历的7年,是我生命中最美好的7年。你们在这7年里,有的从学生步入社会,有的成立家庭,有的有了孩子。时光流转,我们都在成长,但唯一不变的,就是QQ空间——你永远的家!

      +
    • +
    + + +
    +
    + + + diff --git "a/\346\217\222\344\273\266/timelinr/vertical.html" "b/\346\217\222\344\273\266/timelinr/vertical.html" new file mode 100644 index 0000000..b5b4322 --- /dev/null +++ "b/\346\217\222\344\273\266/timelinr/vertical.html" @@ -0,0 +1,97 @@ + + + + + + +演示2:jQuery时间轴插件:jQuery Timelinr + + + + + + + + + + +
    +

    jQuery Timelinr,一款jQuery打造的时间轴插件

    +

    Demo1:水平滚动    Demo2:垂直滚动    Demo3:滚轮滚动

    +
    + +
      +
    • +

      2005 闪亮登场

      +

      2005年,呱呱坠地。界面清爽、功能俱全、操作简单易上手,是大家都喜爱的网络家园。出生不久,就有越来越多的朋友到我这里分享自己的生活。

      +
    • +
    • +

      2006 扬帆起航

      +

      2006年,咿呀学语。面对每天千万级的用户访问,技术GG帮我优化了架构,设计师MM帮我设计了欢迎动画等个性化装扮,“妈妈再也不担心我404了”!

      +
    • +
    • +

      2007 内外兼修

      +

      2007年,初长成。咱推出了信息中心和好友圈,开始向SNS社区转型;首创4.0全屏模式,更加美观大方。

      +
    • +
    • +

      2008 厚积薄发

      +

      2008年,十八变。当年推出的个人中心,正式标志着我从传统博客向SNS社区的转变,注册用户和分享量稳居国内第一;每天都有超多用户在我这里分享生活中的新鲜事。

      +
    • +
    • +

      2009 百花齐放

      +

      2009年,百花齐放。引入众多国民级应用,其中最出名的QQ农场,给了好多人一个深夜上网的理由,也为拉近老爸老妈老婆老公的关系做出了卓越的贡献。

      +
    • +
    • +

      2010 新体验、新起点

      +

      2010年,强化内功。致力于在产品体验不断的精雕细琢。因为经历了飞速发展的5年,我明白只有不断的自我修炼,才能让大家真正把咱当成网络的家。

      +
    • +
    • +

      2011 我的空间 我的家

      +

      2011年,培养内涵。更优质的宽屏体验、更丰富的应用、更热闹的个人中心,都是我不断培养内涵的结果。让网络上的家越来越上流,是我追求的目标。

      +
    • +
    • +

      2012 分享生活 留住感动

      +

      2012年,蜕变,不变。和大家一起经历的7年,是我生命中最美好的7年。你们在这7年里,有的从学生步入社会,有的成立家庭,有的有了孩子。时光流转,我们都在成长,但唯一不变的,就是QQ空间——你永远的家!

      +
    • +
    + + +
    +
    + + + + From fe687ac3f98545fae90a85c528f5452b09333a4e Mon Sep 17 00:00:00 2001 From: ym Date: Tue, 22 Oct 2013 14:40:55 +0800 Subject: [PATCH 03/10] add plugin for javascript --- .../index.html" | 62 +++++++ .../inputmail.js" | 127 +++++++++++++ .../jquery-1.4.4.min.js" | 167 ++++++++++++++++++ .../readme.html" | 39 ++++ .../readme.txt" | 15 ++ ...47\264\240\346\235\220web\347\275\221.url" | 5 + 6 files changed, 415 insertions(+) create mode 100644 "\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/index.html" create mode 100644 "\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/inputmail.js" create mode 100644 "\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/jquery-1.4.4.min.js" create mode 100644 "\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/readme.html" create mode 100644 "\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/readme.txt" create mode 100644 "\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/\347\264\240\346\235\220web\347\275\221.url" diff --git "a/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/index.html" "b/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/index.html" new file mode 100644 index 0000000..648298a --- /dev/null +++ "b/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/index.html" @@ -0,0 +1,62 @@ + + + + +jquery输入框邮箱下拉提示层 - 懒人素材 + + + + + + + +

    jquery输入框邮箱下拉提示层

    + +
    + + + + + + +
    +









    +









    +
    +

    适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗.

    +

    来源:懒人素材

    +
    + + \ No newline at end of file diff --git "a/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/inputmail.js" "b/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/inputmail.js" new file mode 100644 index 0000000..517c786 --- /dev/null +++ "b/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/inputmail.js" @@ -0,0 +1,127 @@ +// JavaScript Document +(function($){ + $.fn.extend({ + "changeTips":function(value){ + value = $.extend({ + divTip:"" + },value) + + var $this = $(this); + var indexLi = 0; + + //点击document隐藏下拉层 + $(document).click(function(event){ + if($(event.target).attr("class") == value.divTip || $(event.target).is("li")){ + var liVal = $(event.target).text(); + $this.val(liVal); + blus(); + }else{ + blus(); + } + }) + + //隐藏下拉层 + function blus(){ + $(value.divTip).hide(); + } + + //键盘上下执行的函数 + function keychang(up){ + if(up == "up"){ + if(indexLi == 1){ + indexLi = $(value.divTip).children().length-1; + }else{ + indexLi--; + } + }else{ + if(indexLi == $(value.divTip).children().length-1){ + indexLi = 1; + }else{ + indexLi++; + } + } + $(value.divTip).children().eq(indexLi).addClass("active").siblings().removeClass(); + } + + //值发生改变时 + function valChange(){ + var tex = $this.val();//输入框的值 + var fronts = "";//存放含有“@”之前的字符串 + var af = /@/; + var regMail = new RegExp(tex.substring(tex.indexOf("@")));//有“@”之后的字符串,注意正则字面量方法,是不能用变量的。所以这里用的是new方式。 + + + //让提示层显示,并对里面的LI遍历 + if($this.val()==""){ + blus(); + }else{ + $(value.divTip). + show(). + children(). + each(function(index) { + var valAttr = $(this).attr("email"); + if(index==1){$(this).text(tex).addClass("active").siblings().removeClass();} + //索引值大于1的LI元素进处处理 + if(index>1){ + //当输入的值有“@”的时候 + if(af.test(tex)){ + //如果含有“@”就截取输入框这个符号之前的字符串 + fronts = tex.substring(tex.indexOf("@"),0); + $(this).text(fronts+valAttr); + //判断输入的值“@”之后的值,是否含有和LI的email属性 + if(regMail.test($(this).attr("email"))){ + $(this).show(); + }else{ + if(index>1){ + $(this).hide(); + } + } + + } + //当输入的值没有“@”的时候 + else{ + $(this).text(tex+valAttr); + } + } + }) + } + } + + + //输入框值发生改变的时候执行函数,这里的事件用判断处理浏览器兼容性; + if($.browser.msie){ + $(this).bind("propertychange",function(){ + valChange(); + }) + }else{ + $(this).bind("input",function(){ + valChange(); + }) + } + + + //鼠标点击和悬停LI + $(value.divTip).children(). + hover(function(){ + indexLi = $(this).index();//获取当前鼠标悬停时的LI索引值; + if($(this).index()!=0){ + $(this).addClass("active").siblings().removeClass(); + } + }) + + + //按键盘的上下移动LI的背景色 + $this.keydown(function(event){ + if(event.which == 38){//向上 + keychang("up") + }else if(event.which == 40){//向下 + keychang() + }else if(event.which == 13){ //回车 + var liVal = $(value.divTip).children().eq(indexLi).text(); + $this.val(liVal); + blus(); + } + }) + } + }) +})(jQuery) \ No newline at end of file diff --git "a/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/jquery-1.4.4.min.js" "b/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/jquery-1.4.4.min.js" new file mode 100644 index 0000000..2bd4cbb --- /dev/null +++ "b/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/jquery-1.4.4.min.js" @@ -0,0 +1,167 @@ +/*! + * jQuery JavaScript Library v1.4.4 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Nov 11 19:04:53 2010 -0500 + */ +(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= +h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;kd)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, +"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, +e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, +"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ +a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, +C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, +s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, +j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, +toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== +-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; +if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", +b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& +!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& +l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H
    a";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), +k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, +scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= +false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= +1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="
    ";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="
    t
    ";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= +"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= +c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); +else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; +if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, +attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& +b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; +c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, +arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= +d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ +c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== +8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== +"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ +d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= +B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== +"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== +0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); +(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; +break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, +q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= +l;g.sort(w);if(h)for(var i=1;i0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, +m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== +true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== +g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return in[3]-0},nth:function(g,i,n){return n[3]- +0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== +i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; +if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, +g);else if(typeof g.length==="number")for(var p=g.length;n";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); +n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& +function(){var g=k,i=t.createElement("div");i.innerHTML="

    ";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| +p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= +t.createElement("div");g.innerHTML="
    ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? +function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n0)for(var h=d;h0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= +h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): +c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, +2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, +b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& +e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/\s]+\/)>/g,P={option:[1, +""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div
    ","
    "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(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,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; +else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1>");try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", +prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| +b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]===""&&!x?r.childNodes:[];for(o=k.length- +1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); +d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, +jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, +zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), +h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); +if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= +d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; +e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/)<[^<]*)*<\/script>/gi, +ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== +"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("
    ").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& +!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, +getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", +script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| +!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= +false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; +A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", +b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& +c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| +c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= +encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", +[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), +e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); +if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", +3),a,b,d);else{d=0;for(var e=this.length;d=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, +d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* +Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} +var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; +this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| +this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= +c.timers,b=0;b-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, +e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& +c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); +c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ +b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); \ No newline at end of file diff --git "a/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/readme.html" "b/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/readme.html" new file mode 100644 index 0000000..2dc0ee0 --- /dev/null +++ "b/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/readme.html" @@ -0,0 +1,39 @@ + + + + + +素材WEB|专注素材,做天下人的移动素材库 + + + + + + +
    +

    素材WEB|专注素材,做天下人的移动素材库

    +

    素材web【www.sucaiweb.com】素材web专注于提供免费素材下载,所有素材都是经过精挑细选的,包括特效代码、素材、UI设计、教程等各种设计素材,致力于做天下人的移动素材库,希望每位设计师都能在这里找到想要的素材!

    +

    下载声明:

    +

    1、本站所有素材资源(包括素材、软件、学习资料等)仅供学习与参考,请勿用于商业用途。如本站不慎侵犯您的版权请联系我们,我们将及时处理,并撤下相关内容!

    +

    2、访问本站的用户必须明白,本站对所提供下载的软件和程序代码不拥有任何权利,其版权归该软件和程序代码的合法拥有者所有,请用户在下载使用前必须详细阅读并遵守软件作者的“使用许可协议”。本站仅仅是一个软件使用交流的平台。

    +

    3、为节约资源,有部分PSD文件已关闭全部图层,下载后请使用Photoshop打开图层眼睛即可。

    +

    4、如下载的压缩包需要解压密码,若无特殊说明,那么文件的解压密码则为:sucaiweb.com。

    + +

    关键词:素材web,UI设计,网页素材,网页素材下载,JQuery,CSS3,HTML5,DIV+CSS,Web素材,JS素材,JS代码,JS插件,JQuery素材,JQuery插件,psd素材,PNG图标,ico图标,网页特效,菜单导航,素材库

    +
    Copyright © 2013 sucaiweb.com All rights reserved.
    +
    + + diff --git "a/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/readme.txt" "b/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/readme.txt" new file mode 100644 index 0000000..096008b --- /dev/null +++ "b/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/readme.txt" @@ -0,0 +1,15 @@ +ļڣزweb -- www.sucaiweb.com + + +ز/Ч/ͼ/ƷȨ + +زwebרעṩزأزĶǾϸѡģЧ롢زġUIơ̵̳ȸزģ˵ƶزĿ⣬ϣÿλʦҵҪزģ + +ز/Ч/ͼ/ƷȨԭУվοѧϰҵ;ҵ;ԭϵΪȨףվκ + + +лĺ + +زweb(sucaiweb) +www.sucaiweb.com +زWEB|רעز,˵ƶزĿ diff --git "a/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/\347\264\240\346\235\220web\347\275\221.url" "b/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/\347\264\240\346\235\220web\347\275\221.url" new file mode 100644 index 0000000..b7eb384 --- /dev/null +++ "b/\346\216\247\344\273\266/\350\276\223\345\205\245\346\241\206\351\202\256\347\256\261\344\270\213\346\213\211\346\217\220\347\244\272\345\261\202-jquery/\347\264\240\346\235\220web\347\275\221.url" @@ -0,0 +1,5 @@ +[InternetShortcut] +URL=http://www.sucaiweb.com/ +IconFile=C:\Windows\system32\SHELL32.dll +IconIndex=23 +Modified=A071428F87DECD0115 From 36b4cf88b36f24eab96def70d0fe928e39906494 Mon Sep 17 00:00:00 2001 From: ym Date: Wed, 23 Oct 2013 11:31:47 +0800 Subject: [PATCH 04/10] add plugin for javascript --- .../css/css.css" | 103 + .../images/active_bg.jpg" | Bin 0 -> 1501 bytes .../images/dangdang.jpg" | Bin 0 -> 1814 bytes .../images/dp/1.jpg" | Bin 0 -> 23598 bytes .../images/dp/4.jpg" | Bin 0 -> 21032 bytes .../images/dp/dp_bg1.jpg" | Bin 0 -> 3913 bytes .../images/dp/dp_bg2.jpg" | Bin 0 -> 4705 bytes .../images/dp/huangguan.jpg" | Bin 0 -> 1944 bytes .../images/dp/lanzuan.jpg" | Bin 0 -> 1900 bytes .../images/dp/logo1.jpg" | Bin 0 -> 3053 bytes .../images/dp/logo2.jpg" | Bin 0 -> 3779 bytes .../images/dp/money_bg.png" | Bin 0 -> 1105 bytes .../images/fc_bg.jpg" | Bin 0 -> 1284 bytes .../images/li_bg.jpg" | Bin 0 -> 2020 bytes .../images/page1/1hao.png" | Bin 0 -> 9103 bytes .../images/page1/24quan.png" | Bin 0 -> 6426 bytes .../images/page1/360buy.png" | Bin 0 -> 13313 bytes .../images/page1/58.png" | Bin 0 -> 5305 bytes .../images/page1/dangdang.png" | Bin 0 -> 8764 bytes .../images/page1/dida.png" | Bin 0 -> 7266 bytes .../images/page1/hover.jpg" | Bin 0 -> 2156 bytes .../images/page1/joyo.png" | Bin 0 -> 9620 bytes .../images/page1/jumei.png" | Bin 0 -> 3489 bytes .../images/page1/kaixin.png" | Bin 0 -> 5878 bytes .../images/page1/kuba.png" | Bin 0 -> 5149 bytes .../images/page1/lashou.png" | Bin 0 -> 5552 bytes .../images/page1/lefeng.png" | Bin 0 -> 5506 bytes .../images/page1/meituan.png" | Bin 0 -> 5105 bytes .../images/page1/mengbasha.png" | Bin 0 -> 12916 bytes .../images/page1/newegg.png" | Bin 0 -> 11044 bytes .../images/page1/suning.png" | Bin 0 -> 4620 bytes .../images/page1/taobao.png" | Bin 0 -> 9875 bytes .../images/page1/vancl.png" | Bin 0 -> 14390 bytes .../images/page1/vjia.png" | Bin 0 -> 5731 bytes .../images/page1/yintai.png" | Bin 0 -> 11248 bytes .../images/page1/yixun.png" | Bin 0 -> 8159 bytes .../images/pinpai/1.jpg" | Bin 0 -> 20761 bytes .../images/pinpai/2.jpg" | Bin 0 -> 21178 bytes .../images/pinpai/3.jpg" | Bin 0 -> 16165 bytes .../images/pinpai/4.jpg" | Bin 0 -> 42411 bytes .../images/pinpai/5.jpg" | Bin 0 -> 25609 bytes .../images/pinpai/6.jpg" | Bin 0 -> 22183 bytes .../images/pinpai/7.jpg" | Bin 0 -> 16978 bytes .../images/pinpai/8.jpg" | Bin 0 -> 22297 bytes .../images/pinpai/9.jpg" | Bin 0 -> 24703 bytes .../images/rx/1.jpg" | Bin 0 -> 16372 bytes .../images/rx/big.jpg" | Bin 0 -> 51920 bytes .../images/rx/big_bg.png" | Bin 0 -> 2004 bytes .../images/rx/m_bg.png" | Bin 0 -> 1109 bytes .../images/search_bg.jpg" | Bin 0 -> 3506 bytes .../images/sousuo_btn.jpg" | Bin 0 -> 2741 bytes .../images/suning.jpg" | Bin 0 -> 1870 bytes .../images/taobao.jpg" | Bin 0 -> 1926 bytes .../images/yh/1.jpg" | Bin 0 -> 63804 bytes .../images/yh/2.jpg" | Bin 0 -> 63699 bytes .../images/yh/3.jpg" | Bin 0 -> 43868 bytes .../images/yh/4.jpg" | Bin 0 -> 56880 bytes .../images/yh/5.jpg" | Bin 0 -> 49682 bytes .../images/yh/6.jpg" | Bin 0 -> 43560 bytes .../index.html" | 849 ++++ .../js/cfcoda.js" | 160 + .../js/jquery.js" | 4241 +++++++++++++++++ 62 files changed, 5353 insertions(+) create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/css/css.css" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/active_bg.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dangdang.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/1.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/4.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/dp_bg1.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/dp_bg2.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/huangguan.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/lanzuan.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/logo1.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/logo2.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/money_bg.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/fc_bg.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/li_bg.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/1hao.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/24quan.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/360buy.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/58.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/dangdang.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/dida.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/hover.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/joyo.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/jumei.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/kaixin.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/kuba.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/lashou.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/lefeng.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/meituan.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/mengbasha.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/newegg.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/suning.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/taobao.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/vancl.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/vjia.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/yintai.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/yixun.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/1.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/2.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/3.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/4.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/5.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/6.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/7.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/8.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/9.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/rx/1.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/rx/big.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/rx/big_bg.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/rx/m_bg.png" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/search_bg.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/sousuo_btn.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/suning.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/taobao.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/yh/1.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/yh/2.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/yh/3.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/yh/4.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/yh/5.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/yh/6.jpg" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/index.html" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/js/cfcoda.js" create mode 100644 "\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/js/jquery.js" diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/css/css.css" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/css/css.css" new file mode 100644 index 0000000..b804ef1 --- /dev/null +++ "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/css/css.css" @@ -0,0 +1,103 @@ +@charset "utf-8"; + +html,body,div,ul,li,p,a,span,input{margin:0px;padding:0px;} +body{font-family:Tahoma, Geneva, sans-serif,"宋体";} +.dot{font-size:14px;font-family:"宋体";color:#333333;} +ul,li{list-style:none;} + +/*页脚导航*/ +#footer{background:#FFF;bottom:0;position:fixed;width:100%;height:54px;} +#footer-content{background:url(../images/fc_bg.jpg) repeat-x;height:54px;width:100%;} +#toolbar{height:100%;list-style:none;margin:0 auto;display:block;width:410px;} +#toolbar li{float:left;display:block;width:82px;height:54px;line-height:54px;text-align:center;} + +.inactive{display:block;width:82px;height:54px;float:left;line-height:54px;text-align:center;cursor:pointer;font-size:14px;} +.inactive a{font-size:14px;color:#333333;text-decoration:none;} +#footer .active{background:url(../images/li_bg.jpg) no-repeat;color:#4998fa;display:block;width:82px;height:54px;float:left;line-height:54px;text-align:center;cursor:pointer;} +#footer .active a{font-size:14px;color:#4998fa;text-decoration:none;} +img{border:none;} +#footer li a{display:block;width:82px;height:54px;} + +/*省钱好站*/ +.page1{width:973px;margin:0 auto;height:100%} +.head{width:900px;height:95px;border-bottom:#e2e2e2 1px solid;margin:0 auto;margin-bottom:27px;position:relative;} +.page1 .content{width:973px;height:426px;} +.title{font-size:30px;font-family:"微软雅黑";padding-top:35px;width:200px;position:absolute;left:0px;} + +.page1 ul li{list-style:none;width:139px;height:122px;display:block;float:left;font-size:12px;} +.tu a:hover{background:url(../images/page1/hover.jpg) no-repeat;} +.page1 ul{display:block;width:973px;height:122px;} +.page1 .tu{width:87px;height:87px;margin:0 auto;} +.tu a{display:block;width:87px;height:87px;} +.page1 .bt{width:139px;text-align:center;color:#0063dc;height:21px;line-height:21px;font-size:12px;font-family:"宋体";} +.page1 .fx{width:139px;height:14px;line-height:14px;text-align:center;font-size:12px;font-family:Tahoma,"宋体";color:#66666;} +.page1 .fx span{color:#ff4e00;} + +/*品牌推荐*/ +.page2{width:900px;height:100%;margin:0 auto;} +.page2 .content{width:900px;height:448px;position:relative;} +.page2 .mask{background:#000;position:absolute;left:0;top:0;} +.page2 .m1{width:160px;height:210px;} +.page2 .m2{width:346px;height:210px;} + +/*优惠活动*/ +.page3{width:900px;height:100%;margin:0 auto;} +.page3 .content{width:900px;height:468px;position:relative;} +.page3 .mask{position:absolute;background:#000;left:0;top:0;width:444px;height:148px;} + +/*热销单品*/ +.page4{width:900px;height:100%;margin:0 auto;} +.page4 .content{width:900px;height:380px;position:relative;} +.page4 .mask{position:absolute;background:#000;left:0;top:0;} +.page4 .m1{width:250px;height:250px;} +.page4 .m2{width:120px;height:120px;} +.page4 .item1{display:block;width:250px;height:250px;} +.page4 .item2{display:block;width:120px;height:120px;} +.page4 .item2 .mhover{width:120px;height:20px;background:url(../images/rx/m_bg.png) no-repeat;position:absolute;bottom:0;font-size:12px;font-family:Arial, Helvetica, sans-serif,"宋体";line-height:20px;text-align:center;color:#FFF;display:none;} +.page4 .mhover span{color:#ff0000;font-weight:bold;} +.page4 .item1 .mhover{width:250px;height:40px;background:url(../images/rx/big_bg.png) no-repeat;position:absolute;bottom:0;font-size:20px;font-family:Arial, Helvetica, sans-serif,"宋体";color:#FFF;display:none;} +.page4 .item1 .mleft{width:114px;height:40px;float:left;text-align:right;line-height:40px;padding-right:38px;} +.page4 .item1 .mleft span{color:#ff0000;font-size:30px;font-weight:bold;} +.page4 .item1 .mright{width:97px;height:40px;float:left;line-height:40px;text-align:left;} +.page4 .item1 .mright span{color:#ff0000;font-size:30px;font-weight:bold;} + +/*优质网店*/ +.page5{width:911px;height:100%;margin:0 auto;} +.page5 .content{width:911px;height:454px;position:relative;} +.page5 .dp{width:452px;height:222px;background:url(../images/dp/dp_bg1.jpg) no-repeat;} +.page5 .dp1{width:452px;height:222px;background:url(../images/dp/dp_bg2.jpg) no-repeat;} +.page5 .wai{width:415px;height:184px;padding:20px 19px;} +.page5 .xinxi{width:415px;height:40px;padding-bottom:14px;} +.page5 .dplogo{width:40px;height:40px;float:left;padding-right:10px;} +.page5 .name{width:365px;height:40px;float:left;} +.page5 .name .bt{width:365px;height:23px;font-size:14px;} +.page5 .name .bt a{font-size:14px;color:#333333;text-decoration:none;} +.page5 .name .bt a:hover{text-decoration:underline;} +.page5 .name .bt span{color:#ff4e00;} +.page5 .zuan{width:365px;height:17px;} +.page5 .tjpic{width:414px;height:130px;} +.page5 .tjpic .tu{width:130px;height:130px;float:left;position:relative;} +.page5 .tu .money{width:60px;height:20px;position:absolute;bottom:5px;right:0px;background:url(../images/dp/money_bg.png) no-repeat;color:#FFF; +font-size:12px;font-family:Arial, Helvetica, sans-serif;text-align:center;line-height:20px;} +.page5 .tu .money span{color:#ff0000;font-weight:bold;} + +/*搜索*/ +.search{width:253px;height:33px;background:url(../images/search_bg.jpg) no-repeat;float:right;margin-top:37px;} +.search .active1{width:36px;height:22px;margin:2px;float:left;display:block;cursor:pointer;padding:8px 0px 0px 7px;background:url(../images/active_bg.jpg) no-repeat;} +.sousuo{width:139px;height:19px;border:none;margin:2px 0px;color:#999999;font-family:"宋体";font-size:12px;padding:5px;float:left;} +.search-button{width:56px;height:33px;float:right;border:none;background:#4998fa;font-size:15px;font-family:"微软雅黑";color:#FFF;cursor:pointer;} +.xiala{width:71px;height:87px;border:#e2e2e2 1px solid;position:absolute;top:74px;left:647px;background:#FFF;display:none;z-index:99999;} +.xiala ul li{display:block;cursor:pointer;clear:both;font-size:12px;} +.xiala .taobao{width:63px;height:19px;padding:10px 0px 0px 8px;} +.xiala .xlogo{width:16px;height:19px;float:left;padding-right:6px;} +.xiala .suning{width:63px;height:22px;padding:7px 0px 0px 8px;} +.xiala .dangdang{width:68px;height:24px;padding:5px 0px 0px 8px;} + +/*外套*/ +#frame {overflow: hidden;margin: 0 auto;width: 100%;position:fixed;top:122px;} +#scroller {width: 1024px;margin: 0 auto;overflow: hidden;} +#content {width: 6144px;} +.section {width: 1024px;float: left;height: 100%;} +.wrapper{position:fixed;top:0px;width:100%;} + +.page4 .content a{text-decoration:none;} \ No newline at end of file diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/active_bg.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/active_bg.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..32e1beb23ee7a431edcbdbe84d7f56aab419b9a9 GIT binary patch literal 1501 zcma)6U1%It6uz^Qtx2shYlAiqfnh4vpYG1j?qoAVx9QH#t}gAGkOsOj6r9Z5WQWcC zbY`}@$wOhGAgvfRFIsFwkRldBDYA%2YY~h8Vjh$>5!*iWMN5lTL9004S@$Pm3_UP# z=G^mr-#Pc*bG=L6HLxvR(WU^%W*-Ngpl#j_5RyttaTZ{p1BF!pyleP-1=qC%iZYyt zteTTBqL?~Wku8de&=lA;RIy~G2wh?lPHRSjy!HMEB%!GZ@&K2kb5;r#w5R55xPR{H zF=ei(@G3d9o7hzmD!QdZS0*a@jNu5C1X(8+kne{nlBlP+#RQr3Rf&9Vgh-h-B)AA2 zR_Fnm7+@kyG!~D?cM>ek&=k#53>#+RLX;I~nrIk_)NFN17?m;&E%cWl8%>qVw-ny6fEV}!1^vK@C6wu@hv-x-^=AT6hwUNhtw$y7=@G~BF|AWJ1p71$)7VcArgjf-5GVHi>52M4*B$g>>J zr{k$6!CD~Fil_*ij!Q|2r#VrK4KPfa8I+QAIu;kDXeNay#3nXtIIe6c&=>WwS{sY9 zHoyug8_KR}kD2C7^EQnXOxJV@rbVRobHoA7P|dRAA2eb{jY`ng4ns9#n>tb7b3t22 zo#Dh-G?|KuNlC0%K0q@WCMNNc$ix9BaQs$lKJpxeNPu2t|8901E=F18?SbYzl$^eoto?_CW7L zTOZsO`VYig0b3AvAcTj&5V&$NP~G#!$fLcRgTbMji`SRGTm33BapslZhyQr;S>iAL z(?z_mcKnx<|4Pdw(ndb+S8l= m@P)m!-5pYJ9AJUadP!qu1S%>=4R@ABV0da;23 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dangdang.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dangdang.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..911a5afe62121144e10a797449476438003aa5c1 GIT binary patch literal 1814 zcmb7E4Qvx-82+wZ_k*y|0irncxH+6cd%bJBt_NlGdM%q!V1H~FLAu`2)wXwC?@HTE zP?8CP{0x7XMBG48VGDv7CV>SRB0`*j5g9*&$Y2i90WrYXB3kdp)?q@3zR4xu_rCA* zJn#E`-+R%s(GKv0HSAstKyK~}AQ22%v>Pa?pwklp5Qr1qGyu^Kd1IL%_z4tcd9{P) zN*T42^PypfAH~!f6im$y`yEaXBfzDM%gvgQn+Lu@U^i_-iuHDl-EU#a+&L8irl4YW zp|ir{G}1`+Gbj#MsUDkpO@u{unFlWC&abnMiIC_Mevvqv!n`_*yq9)F2KNg zwMOOCWNP3{OpR%E27_TTjB79rs=-kVS78Q1ixV0RJYa~Z7N8ds`IK!yOWc`|fu=&C zkUFGQa{(8M8I4AX1IJZjhKi4{f+MVA`Lsa>is79Bw_k8`EG#iPO1Yq5Lc~h%x8U>V zyIo}hA0vP0i3R#|r2Ym`cKf3dK3^=G7xI~*;vdS-7e@RHn$PfDFyLgw^t1=09xWs# z4)j3S9RUv`-lEOn<(d9~-A>FAi+8gQFU2{7K86)?DH9S5x@iJ88*MmlvEl|&Z^bZ- zB#l{FdL3!R^+u!BU>PKM5GZP?X%TCoNCTCnAxTn~iD6dEj8irdjcK$7Ol!l9gVB?G3OUX@_?qUHaRSGeaemlRpofdyEX{>@>7qquu~CW% zxR)@rEx`HU{xc`s4^by^inLg5HXTlqQrBi9X0YLUjn-nZWf}Bh*Y~mX|2{5MtOS+b z*aL5F&?P=(X&IX!aTA+Ch83?YAWm5H21xFo8$cftCmD*igDL?1casg7JZ1xM83c(@ z@rwoi>mqsxC=l~D8u-~fO)PZ}w@r8;7v zc$qv-k&p-}lSE3fDn*=3J`j}2Aw^tDJWx)+#+dU)r6CE;_~__)FkFe{sAh2yJtZK|I0>AKs?v!``_N2aGw%#Z9@wDWhvwt~rBJLaXg zojlmC?L3-yIhC5fJWm%-&8a)yH~Wish|eY>dcNoOx(kbou6D0BtqoPKtStY!L;h94 zl}Y!g1DGMXp?TSqk2dH!S6If)cD2{uS=x~dog%kXMp}9!{vFrW zSImc}?@ioW`?hcAx%Ra=CuZ)S&^#~T#Tya+nKriK>Z0v!y58L*%)^JZ&`tT5su8CA z*(b}p$JI>m)X+bzS{SZ6xbf5^D*4^khRt{LM&GR~scp)-*m{sxwO!x$S4+{;nfomF zrgYVRJ}xQPyQOtO~`VbTb@eYT8-&G9((3FPw7jKS52?Dv_08=TEFL) z8$W-t`PS*4StY-2zRe<201#$0rx1~vs`W=!skU!Wja_tQ!_vD)M~!*0oSNBtOqNi1 zEDDOMdopU9`l29p-nGoX``Er+7b@3WpK1^KPHsBSo^Lpn@+=jHPLhb05M5U!2kdN literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/1.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/1.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..75745eb03a080d75b75f25033c04b9babd6b84a2 GIT binary patch literal 23598 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�{x9^yW+$J;B62 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 K>5si^7ykjckR^iv literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/huangguan.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/huangguan.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..598da29c667a202fa1738fbe598d31d689972d20 GIT binary patch literal 1944 zcmb7E3rtgI6#m=tsu;B@@-W*@c3#zueuFlL^|fQ2}XmP|kcK9t)8fTxFXG}Ym-$$327&NY~bWRz

    *B9~KZubanV52ZLP3XamN%3h&c%2pF3$`)~< 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 OId7ZhE{^>3|0V$17lKg$ literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/logo1.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/logo1.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..b249c8e310efd764a53022e5702b46ec5fab44ef GIT binary patch literal 3053 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 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/money_bg.png" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/dp/money_bg.png" new file mode 100644 index 0000000000000000000000000000000000000000..79b88fc3ebd9c6dc90e3fa18e5dc0878806c5ba2 GIT binary patch literal 1105 zcmb7D&ui0A9Pii^9os?JMK3@pZ1v5ui)}E$m^4f+rc`l+=!$%GTzQ(mA2RgBd`@!~cg7=Phn%?oiQ+#go z4%o<4Mi64^f-D?HshVlrgjZ$z{953^#Doqs?!>9KvkOd;U?B0Z=)npE6~v=bS(fG7 zK!gYiP!y0@M6y~ERS3cK;h0+Dch!bfn`*I>#`P(URY4e!$Nad&lcXmgMNx7NQ7kfx zVtN!&H!DWz`i#NCsh0#X4M+rXMz=#oRO6VZCn1D!Bk1*MIwz0PX|h<_gv^Zv#6uyO z*yQoeP>ypkA`Iu&DQ)0W=g;L&n@2Gg8aO4R#A8+LuAh;*SSUA~#-KWGGQg~gHFuce z$q&a-?=$Cv$Q@e58-+NcbxY$$qrg{1U8#wpX^XNU*$5%SP^wj_Y$&3nD7I|Q2+jhT z7Vk5xTt%X7*fm2}7}Q3(Rf1-v1Z!qRF?1x(u=OaVZsg%yG{**~So=b(Y9`pFBxw>d zoORP~pHPzaNes+A3ABR9C*w3PG-GCgS~v*~v0qC_2qrmKgLBkT8KRO@u2!pto=2^h z6vMJAWoSUls7Ng86RiK==@OVHLf&I%dTw^b8adz2Cx{*9Gl(NrvV=`oS$ny}rc&Zf)xVG?Z>*m7e Oe8}tej`hxX`1CI)|51Se literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/fc_bg.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/fc_bg.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..46cb49061d1836c2199b92e48c0143297a6d7edb GIT binary patch literal 1284 zcmb7EOK;Oa5MI|5Dg+2$5XY4(E{OP*IIgXl%CCqV3{_evSJ&PqR${MZJH+jozW`@` z1s4wVz)#@7Lqh7g2!4Xu4SAHRs>(>VW@qP{Z)SI9>o4^QxbIc*0RY|ZL$C&xQvU>; zI}V43fC1NtIRcfz+)GYFF z>QW9(-lDAVrN0dwoFk|TQX`bw5^T$Y+-zx@_6RDHEQyjL%1T4ljHY5p5}XN7*z)MW z=((L47g?G7tfpG30C=KG#C=Syys2XXpK9As{BFy8gjByHS#9$wf zOOq#={w*QNdU1bH7K`8)o>)Hhq4mvCzJEC)NfzEk*+a|ZFN|O89%e}Fp#qQd5E1wF zGgOxoQO8*gh9BfZL~gMYj0!Z}@O|SMNj^@4k&DA|g3_|zZCwrcCHBFmnvD{i}^Ha*L7ttR=+vE8&N zgET~xlw#v0mJnTnHJls;CC+y-9?iRHdw@$^3~&aW9To1yX@n;Qy=W4d6zZZpeubh= zjuSXNb0fZh-D_FuhO1hxWb3qQ%d%v2x7>}Jd&Qf7k7Jh;c!E{7|NYmtU`BD&t5g39|2tmb&9G9Xv41?n)V%2C%DW0pmdZguuu#X6|)F2<0V}tkC~c7MDS^Mj2^>;>I<_BhM5@-#{`;j%$7+WwH@YQVcHqunCrOa*zLAtWF3X$7wv*4%-)1#C)wDxn8T4sS%9~ zfy3Nvl5v?xGZ7LEacz@a`HWm#LlY(!MH?xqJbasStdxsltdtYfR31jLz z@?+;kCd^-q2!dU}Y*vFSPi%^t=7-lb0|wYaN#j%mUZ;l#{&Imuc2DK>g0-|O=azw*A1zu z`CqQs=I<nKV5SC!ti!H|9|0UHy>19>9p58 zx#J|>A4#|+>%ZO8+Ie&B*#q6=@UB0G6aB@%Xzw-DHFVj_*0iqON%tiW?R#N`NuY7m z2Z8;NcE1dliE*swgO_QT$>}N})n5>Y{#@;E$uHdO zs~?p%Dx?brN?tp$o3!qD`HRZ0T5uUc2YNd62M2_)f7d)3y#syV8E8 zQnu;_pyE=>yZsQf7u$dEUerE^GA^*^xA@}xk=7mFl-?t5Vr$~;>&N2DYDSATrg)0o zSGNT2x__+uh;U{|nsSHyEdlr4Sh3V}_%dIWYD~@jQ eOMa-#OF#~9Nuk=1@AKoIN@M8`HnnJ{%#IXr9%Y$PNkJOz1aji;;jQ_*>b@pR6@ zuKwFV4wun|Yr-ty?q<#qBndFg973yLZ)OG2fS7?jodzHxNJyw

    ?QMS4COK0%p%? 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 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/24quan.png" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/24quan.png" new file mode 100644 index 0000000000000000000000000000000000000000..0d16290a438f6edd3d322656698a36faba3a6fb9 GIT binary patch literal 6426 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 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/58.png" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/58.png" new file mode 100644 index 0000000000000000000000000000000000000000..d56c855ce8e87ddf06922ee0238d0a49fdb5d323 GIT binary patch literal 5305 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 Z5I`)`5H?3VO6lxpq7GVLvlL}V`ac4ioZbKc literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/dangdang.png" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/dangdang.png" new file mode 100644 index 0000000000000000000000000000000000000000..c9add6a5c9a48c2144d977e0c07440f803160064 GIT binary patch literal 8764 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 LrBtC{9rFJG%@riT literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/dida.png" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/dida.png" new file mode 100644 index 0000000000000000000000000000000000000000..1fa0308a78fb2cdc8b0cffd9dd6e2cfed6a871a5 GIT binary patch literal 7266 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 Tmfx`a`Rk_+(}C71*+u>jz2`nw literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/hover.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/hover.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..6275d1cfe8f08c04da10c14711c2cd3bd0aed403 GIT binary patch literal 2156 zcmcgrX;4#F6n-Hrp{#KMMJ12WTC|e9BtS?cAY`GzK~StvK%AI7Btr7S%fkdgQK^a> zQf+~{;D3-bv*%Wa_hM++QMQqa-8o;sA@mIf@H*@cK-}jw!?mgGs zZ0-am3AOT601%630wiD*<{p47$daaK0|dYp56b|++)12~hG8l$ovu{VBr;?vOp_uC zx>lm1GiVSU2no}wB+_&k1DC?f`C;LJWuwG3gAZKZDI>F}V-~T0zCLp|Vu&0)fby3*Ygm)}}NX z4Nb$MA?PwXgTvuiJeW*>oZ+v|R$>yZzf$cx>>z;EQdF+OQxyu!0Swuyu?6sGz3((uFU(fK^aZdQ$wH+tPWQElRa`y_OE3go zh#(omrx=@tV2C;mQGxupKrmjelpz}R5IZ`WD^{v8iBbxS1w1OQr^)3qE)xn03>O76 zBRE1PgCS%D2aALvric+391$EK6hXsU0V2&(z)EabD;w3a#?)E{L7~Dk3t&{f0+xwT zL;(&p%$1K_3pA#mRVy327RH!bI$jLja;%GYaAeta2Ly0so7CBR}4EVXghyDSZC;oyV_ZfuB|V zv7*?M9Y0AzWlqRk`=tl@UqQ^th zUpG0Y!^dQxlnl^CDK8AUsKbN5=3XtS>!VCvJCL{IIs7DdqaL&pL6dDf;EdhHGvf8Z4*C9ZRea%pcV?b>?gToF`z zvX(PvdX+I2+*>oKG6SZQXkWrU!9%8D7s)NBos-a1NYUxmlhnK(JuJ3ui&yQgs4PmxN$&D8Ok4vf>q|1ugLf>g2voc+D1?0;& z*=4l>tFK>Qa@FBTVtl6WC1Xm?{7wAAFmWon{!Y{W>*sGRUR1YPGqbGpWM_)uagRS| zZ~Of^xjOyqv15HT$Mr8DaD)3WlG`}if$Aw}`JP7}!m_{{E)%n>F&jed5Je9xSORa9^=}+Ynlw(HY z;qBi%S^xSwSD*GnUsXOmV85ZR(mQhbDths?>=~vL>2fNDo+xU3NS=5uJmjeK@Fnl0 zYqyK?=J|2E|9Pse&kh85FG+q-e&k5`!5|TS-^+Uf&-zTtqD)1)u)?m+*ILt$Zl7cQ zYw|s7INO4ocTLIrzM@pmDqgeYGJN6igoDAG{PNLx&3p8YTZl6Tw>0qOub#R4<crSST3p(%YC3(8p;ywX?8@74dPJBKc0W6o z&=p=k;9n7@u8h<-)6>D+;ugw@R^NL)o>fJmb2GNL8_A}Ar&a^yqw2`s6$LK`?Tj+F z9c?}@W(#sxt?RFF{)LqmXZ3r%1ivZ``s6D9by!XG}7)v sEU)FS?F-|j%+j`>=X5;?x;btg-UWf820b*P{J8lI4KV`^0*bliZ)B40R{#J2 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/joyo.png" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/joyo.png" new file mode 100644 index 0000000000000000000000000000000000000000..39b04c3e92325bea50385dcfd696d4ff8722329d GIT binary patch literal 9620 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 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/kuba.png" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/kuba.png" new file mode 100644 index 0000000000000000000000000000000000000000..d65973f6c3e071b12889805b162534ee64e42800 GIT binary patch literal 5149 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 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/lashou.png" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/lashou.png" new file mode 100644 index 0000000000000000000000000000000000000000..ddca258bf171d3dfdb385a178e852bd550233aa8 GIT binary patch literal 5552 zcmb7IXHZky+D5ve9}p>mF?1yf351wXLlTNqsR02g2@)U#k{}>TM+7MHhor#I1h-^t< z5R8q`u2c%d`IinPfZ}tAW@1v;3h;4u^&~NXE~HCjZw=7Ki$)NTOw<6`AdHoaeXt~V zvi=ns$>NHMrRx<>R}>MXr3q9IKpzrNNDOCS0L9Cjjtlb7LBKy$7@iuS z|2Rc3HUna*G!hU2Q3AUvsVV_gVGx+I3KEG_1j3bIN>C*@6b1*wkZ5H%T1g4`=LI^n zMkBhR&2hSa+B)26fZQ1jA2bx|@9z)sSB6k&m!L2d3iXQv4hJ777oGIS2V-Nj>7nyvZ)YzY)zyze@@5#|G(diSWFi`lLFvNbSUeo5gTTXJ zFdZG#*|P{09TXgaLgA6vzX<*fJhTNN9%8XbI96Fl39o~~BVaH*45Ooi#UL>%DkxQ$ zu8xZ8UswZgI>Xu9mGsN#FD&^VEbf0|(O4SEnL(vlQmI~lb(5Jpl|iMuQ+`kQl(|;BEkohoB9EnE0Od{&is1)EIIY*QKi*=<#Pf@x^CEPFH52MClFfbiuC9Ez& z6@|cHkf1-Y#Q%4?pogA7fA!eEdhRdLVI%)q{yjm5o4;p}?nbnGGo?6u=S^^kZ_{qFug0AZ_68-Qx%Bg|JY?C;$%cA1gWFmdXF=&0Ow&sq? zzMRJH!NIkii9~A2?&L=y{(-ne!;rXk{jO(B@t zg#Bq#wr4!4Y?kFcz~DQ+ zk2|wy*BXRJ&j&YTD%#ZwRh|67=gLKrb!_4c7~>a+svD`vS2UF z{Sgmu4#7jQk)!8H{+jKN`YB_Rp5nac?w>c$$qkEGc#61xwRJu>gZRdrni@HOd42v$ z|7ku5jvm439%G75oLbt&czB-tIj$ddX$Zw9#P$J;fiNKl#%!Kev>^~}LUMW>sTOLw z@)2^Ug1~uC;oT!y88^CE@H(tlmz2db_%%40jfRp(7Wk&4aYi3X7<+aey8#vYZo)!S zj4Of&pVS7h{?ntZhGWUOOqOZ)(b%@G#iZiL>M5bF=W>1L%yJbIaU8!vN-rywdf(OG6F0Yv;8VPCD`JcPIEIV4(!IifkW$E|ZSXpTUSB_0j6lz4h_gv@8HbM*1PRp=~()l>IOwh6^ zudKNdH7QkR9yb7TOTwGNXeD1?dfumtCfS8dXw$il^V)Dblry7~`w!+t2KDCZWXFVg zbH~3|DC=D}f30_$no%?{<_X!lv@w{FXm~vFa1Pja;4GKx$DH~)&VEF&?;Hq>n}QJ^ zV$XDseV^RE=vAV8uc2v2* zEf*SUYg)CbJ$*IalwGy*=aZT3pMDn82ll_SYi1JCYR9W;)KnyIw%C}uyiUD07HqX< z&XLvk0OWKn_f7HBFk|@SquU*BVp(VxwTaF5575r&H7yVZh6-p z6px!#F2 zwiS@hkZ)Vb%{M=0tZrmp4mC*Gm#v)7rm^?}8tPx#4!>XJ8BAr4a^;7r2Y*W1Y;zmRe)S+BlYRvnEjz;iko2L{gTc z8^XmiAX?t#pg1{ueq7a9S@8!ED|v12$3i z-Hk$pk>8ild$ty@f}ZdsKh+SHi9-8)Vx*<&=i7>Q|BS9C*uvWeslq&dY9TpaILC<@ zB8%D1x8i!O6_`bg0M$Rcp7klVCHsCc(+B|K+exY{zfC7kLrsm#Nixj)X zUO`Ef2=ViF;H8p8a~uwAp3*+EV^Umcscq@CW%JPE1AV}jscfiazR-OvM+whC9p~3k zyDi7<-m2Q!OiN+sJwVUBR%A~X4)2w(eGc0PSADzuZjZzA*`omdZ4W>dB8V`(+S+Wd$zIg`WjpfT z&`DC{o%nsGtdqy5wLiX0R0R(Dqw-v?2Y;Rg3k3yZQQgXUy23xKZEq`X4~tjiN{p*f zRc>}!w#=Vm>Zb9CnQcaaP2#ea&fIzMS>IJnYVXr#v02^NtErYW`Ms4s-S2DzZ3~GJ z*dFKByG3Q(N)PfYcL*4a+dJi5#2H7A@AeCt<$nBoYhHaS7pTjtY0IoV<9KThDWihP zUTXrDKGO$-pAJXNz$W z3a?`;C4+YhJ`C3EsC*f*a36IX%S4_kh^s7l^mgNmscKarWc*Wc(X4%UaGsOX&_<#u zD%5uRwnVX5IsHq0Yu>6f_v;RXp+vV)q2ZC*qy;wdubJUj-&a>l>i1?yy_iDb+ldI_ zsDzjt4n(p*o1FmT72uij8u-#RCHGC7Sc4bOIqvh0T~chF&6n4t&H>%t-SMvI3__<9 zUdy&{ZEtrv3UhH!lpbet@%4jOInLvullBgj8a8J;Wx%Dp3hh|u7s=}*FQ=}jY0L55 z&Dpyz;AAZ6xvsC^mSFf0csox{X^?9=*o(R)Viw4J^wKGSU2mMvGOFCRL>3@(pw7)1 zp)i8nb}eecyk}V&LtYPZjCMN2$vC+HnCstU{WN zZFc-3h1Y$wg3wTJdS35}@s41_0yF5_*K4C>CnmjmGj2!~Nwcbz<6KHDo--`tECIXS zo8HUbsafsnGUPKrQ_ikl-BjOjW#coR-1mySS)%bVn_k-fzGH2p)J*nVgloIU=x|L1Nhov-@(WX-0v${&j)At?^U5fyG*DP+CGyAr*i%_D}}U+++-99JhUr?9s;N>W4# z6GyA@dr-&HE`T?Mxz!p1GZa{Tx4e8pp8V;=c78e{ifOKhNbXT$2wcvtA@jT zQ^PL?I<38vR;JLNs>tkSdh*M}o~!usac71ZOv_)lL*i{4i)OK3P=B>X`@0Qyl%G{=Jqt z!$4gjq{vuz^n+}KaHyKE(nve@7mUDkOYOzp|Kr#|_#Q=|qZ zy%m?ml~AQ8GX@*3de7~A5KQ`HVP>&==bYIZr9bnFkT(LSCS9Q+ z5c?t;WW^fgkdiaE)YRwMO(8X)KIDJkcB;E8$R?88O9VRhf@l{***4`a_J@5JH<)L` z{EQ>WtOEW{-;*zvtu46a*EY>t*k}W~5*Y#AIVo#4h z?yBQc24g4d({%<^x3wlU0tmiN3q9J`=vMH;>n+()d<_R8%^xN9yP9p$EY zV;#!1ygn$KcU?iecd{YRi0;}9kiWrcJdxiV($foy*H+<@3o=a)NXo+eL|g>kaB=Tj z1y#Ydl1l6f9y`0_Df*+TD?68BBJ37`<1Rj5# zSERJw>w2*+#w`&0uuWlb}V%G%LhXdKTnEE(sLWI1buzc4idv-ksw>R3B-h`kMqD^ z2=&KVg_>HshI+ZGV?jFFVp_o(R01Cy86y_#AP+K`r~w8C1qCSuDJv2D-N8_Gb@dYt7)+5Wp-2kxC1ZjWeMu63 zGZ^4VuKsu;8Bg#PJ7L7Q5CX_Z5Y^Iux!^;z#JhWtN&k@hlKu)7HEiHu3=s@ff`I-1 zlsWP5Z)u{3A^wTjKt0{D0*qS%(mDU`rf{5a91h&7zycf2jK3icSRo@8!o)gt9F{l5wR6G+vigr#C32m@6FMA=YJ-B1+@HH7NHVJhl|C<7xs zRXwN?O!;rDu`h{?@pZ+WC_TaA|BW^HpI8lje;kHP@V6!qy#KBya}NTUK=L3E#q_P< zVzzi+EFp+=l4vS3)lmbSKRytLHS#C;i2WIJ4g7!8uBWH3ZiIjsoY+qF8ihhZ^^_s{ zMsQViI0}UT{e{K;zrzKlS^_?)vHz&Kzn7?md@}u~gQySx^dQccnlgWChXpyAmjM9W zUd9F}>)_dShim56=LL_4(E!vRWipRs8vPOrYB6*e8wc9yaE0t%R9|RWWzU=C1b-WYa>_Qin+xv!6sUS$h8k~^z zzVbc?-<&fZ1Cpm)eJv{9kq#RQ$IY!!l1Qsh{BLKaNM!0kH(eMg;tc%k`54KN8}A-r z87S)d3`*HA#a}spUVgb`F2=*n+;rWxh1OxNwX~g+Z?1)Vpf;LFoOkXxGVdL!3Fnb( zQkUp^&w3@wB2Z>=jm(wPBFNelqTx$p>?pHX_N9s8+~=Ywp@%DcY29(On=-Id zZay-L<%yTnbF}k_B`Rs>b`8&|YRx>;_5eoDYd_`aee~8V)w~ZVlj7*pyZ0~Np5(v# zAu9h5A2i+WQG!=>*OHiVdY?07%Qn+o+GI{%3g~l6+g<03UCoDcLO%zM(%qV5PQ6~Y z1bg)iMfz#1YZp-5Jx~*SL4|F(H|ccQCQhr7xxS_tx$2%?WH*nZ{A}1@HD>^D?9C5| zEJ2=Xr`>(2VCpH;X39Ppz%w`1ts!4sHJr%nmOCQ?|Fa zWe|wQg;l5)yWnlfYw-EavxtOG`^*g)029ULGEcV$?5t#nW}OFbgI@;^#5R z&|e2ohqmw;`6fw8$;^U+VJ79EO?2o+!}Odk??#Hq`=E2nZ?fdAEi5{J#@YrE*>7Nj z#*1LEMoro8NANXitDrVr+hZ$TlWe|=rS!W$O3vT<^nF-omG%47HG)NWcuVL}61c5U z^!l&cPNF)I;q8-Z9z%u_eZwWrjL16|+i&u2F#u|7YptD}%o=^)uh}*}d`RJxgTd0l zT{$^t97XB6^rHCA-!0i>!~(k$HjS{bU!mV+>Nk63iOES;Wt3#?iUkV8V6rxWyZ z?KgL%bHo6egn6ywwg(U5eCJy}+w=y0)`m|`j5f61d34zA6OeGPh3$}hjQ4C>(4Co? zQSn>ujx3Otl(cYjlbW2I9DSW3O{eN19s-QE5BBguqt8~Mo6~zzh5J)RcfU-ln}yQx zpJr4Py`U@ceRcTZt0ex43`cA033smMkM;ua8&)q$ZnLT$M=Kp|I(_gUHB?Qus!rXh zn3j{3gC$Ct<*$Fg`}*~39$wy8wrp(kg(}mY4IHd?%*l2(Hhf=sG??)2MkSS%1JdWa zat<@5rfk|&+y`jya@9O*>%F~RcYkc}NgN{31DkNie)?OR+azw%INmP5xwa(k~ zGEAo_?l0}Tf?Wh&+LtI2MM~@IGrr@d?6juGqltnRwqKnML+>EK4@g{$rM>fvzAA{=oeqBYQ2Y}h_G61{Ff-)%P;8XjkifZ)ZQb(@^nwPb} zha=hPI^&fEgkl>;B7eiEOk!EjFV-Kve=tqF^Olg#WuW^WFj&ccU4%=Q{pNGpz*qEr zBdO772=koMz~=LSFLTwycaFv4g?bu%6^)$n*NiI z_v@I%y4B`Wbt67u-fDx#y{d^nC&SBs4(fbHy$UcoouIOZ(Y&&8oLC(BBI;aO^GKxD zf~X1W!nOOJJo{|NnI-GXh5)w4UVdpHf@L##3LM9L%p0J^PB*&~MCR?+mXIh}XcNh} zxnGz#Hm0r3gk+91vA>N&+w*c3Qj-AeFD^{glu`6#UN5-LTFo9P-JR! z()j&=Afgd&bvVgd{vwRxJ2hp_{$}G^i9>SdtbJZ~H z?KSrb6S}fcQKVFoV&5iToB>`h8(O*2U6N?hN^UPqUt{g}_}2Lz`^MN>>Qb>!&F>gX zAHna@%O_k@W^3;r_sm>m~{4pNl8S(Zq z^?|M1*okO9rBc-v`fwS%Mdv6z8#?Yl4+BD6UD!ba4hmKq7oBBkDEx3wsEwJ_q@4cE7l-E4NA<8r^QkAT_Gj{^d2Z(@YMo}NaFzYQvJzEu8x2qcx1R;)v;-LYVbCVB|yqF9+; zNUU#~7HAJXrs)u4t|zUUBAkiB8A(;UrN$WtJ#_Y|S#&1+f~lpC`$icu_<=@j$0~@N zV&n%J_AUUo<-}Ac02+LKL${*LB)6xN;ei-5A;!o3%9X70QP3QdV3fr~zIcZ+*N4Ns zcLa4}-^x;CcO3V2cWb-^0KIV-Yu^9Ft2&#&&D0U5fZQsBsM6AVJelf+Wy7>#dQHW$6H@t$_-y%*}NxY^s)51xJ*E1wu5>!BFx|jBC1=SNg&2A10z$ zE?l~_k_kn_u=gvfI9+L-_r5L+NAvob*ACQHLUp0y0O6MBp}U@qSHvoj+t?A9hn#jS zW7l|;DhNS&pvd7@7~i29vsn6fv?5{&$N2T3HVtD;RE#xU2!j|w0 zO@=R{nc81wz1*H+%|=M+pQ)?5*68nC^k8);ZzUIaTll6IQ`;+Syie95{-E7M$fw9@ z(dnQ*ex~j4V{W)*n&-CG+x^R))pkGhNF82)#n%0KlIEK1TBqd8MVhT@hZl3%54TQ< z0eGiG1l#cAQjTBW*1DpBodx!@+(&@7%*dC+H*HoNw^Zu+>H&hC-@)jn4l4t_@q(*E zleEB;xSQ+2tHQp?_1s{en=V~9*>}G6ijMCuTptd3o8h+jomL^39}b8ALI$Eik~hwt zRTG--UQ+i^M59Ik*+_cIZ-CmT4;zgOAEzPELa~F1u3c$<%4O1(txDBIL0)6c!1cu! zvg=K6`rpXn{ZBb%Gp58batS%k>hiM=lRCDJ-F8hPK@X2jkxZ(x(Az>)uafvi&rOL) zZEXcn1k(KKlkrka_ZoP+g3;Y7Zche*TAWqb;k@2k(JmlejNKL4amywnPO|;C$FW|k z_WfE>TM+yGvCv(OF@$Zo+-JQ6d9GNbR?yST;nktsOIDWYvTV7)iN?U&o!*7)LI_Bj zo244vFYhIF!8>ZGU755&$gM>4X0&|m%5vY>*Oaa%(k?()e14C>|BCrJL?ZNQLH0n+tCFm)U%qZw(Ge3$Xcs2KbMU4_9XD0 zy80<^)cqzh`;LH;>1D!n!}4q?&tTJ*f;O>krMjd;#+u^-XyF;1F)(KBq1&y^7yFn4 zRVK4ng`cV9m;|I$1isGJX z5NU4D%oHNH^YZf4EbS^|5rqm^&E9lpc%y;r^BeJ_y47cnm%p(H>lf5%THCV4)Br_B zp*wQtdBS5j=RDfjV2(@kSYfj(Yn=_1Ti{-Nd&b%1kLhC_@@B49-`EI(j@%tLOPd|r zXm5b&&WbDvqH6%xidsK?`3j*w-E9z?bRNPaYSH7w{e)@#66q)+H|_Os-!640!6^Pk z!@GiS+q?W$dJMMltG|h~Ys_J((e-lo1SWnHPpLFLXLH=qnJtU0h^n%t Z03u*N6Y-sIj8Aq&jSWo=s`Z>>{tt?q!$AN5 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/meituan.png" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/meituan.png" new file mode 100644 index 0000000000000000000000000000000000000000..f6d206152699b59c331e9bc00407aaba284b8060 GIT binary patch literal 5105 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 M2}SWbQKR7h15k5PlK=n! literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/newegg.png" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/newegg.png" new file mode 100644 index 0000000000000000000000000000000000000000..e0cf72a6cf604504ae3f071b9355c3194fc936ee GIT binary patch literal 11044 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 SY=@oyGd5@k%M#S7=>G#?8Z`?z=zU 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 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/vjia.png" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/vjia.png" new file mode 100644 index 0000000000000000000000000000000000000000..2d609b8e668da0a38b3afd689616090bb5d3b843 GIT binary patch literal 5731 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 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/yintai.png" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/page1/yintai.png" new file mode 100644 index 0000000000000000000000000000000000000000..8fb14ef7c3407e5192bc5f690333a8edf1ee2e03 GIT binary patch literal 11248 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

    KK5rHT7SfEy0=$U^DsMKoG_uv(d~T$Ey>of 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 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/1.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/1.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..fd4e4306c40d63b47ca33a108128bc585e5286ee GIT binary patch literal 20761 zcmb5VWmH_vvOhey1r3tm1oz+)+$H$n7J@U(;2sDNED+pXf(|hFFlb27KyYVp4elPo z%X98M=iU$hb=P|9Lr?GSs$W%gSNHDS)BQO2xCVHk=<8?)0H~^R0I&i7LyrdlVg)a2 zkRJdAfc{i$0suU&p}`$IJzd3lc_AJ=RyHp0ZF#I+z`VXzuDpCauXzCy(!Q=%)*xF? z`uDc>ju6RL$8FzU(L35mzA_Zjc&*_oZ|mTw;_q&&=dTI0_6J#u*}RgLqL=U$_XWFx zZ9T2%eZkHU4{=|~SN{SRf6D(;%=?P|Uo4&=$yc)fXr(vO(59Dnakr%x;(5(&{aW}n zy)YjSpMaoA!V7JxRX$ zZ>M~Ge0Y2WcwF4=dHKY|#QwqH=jVRn;P&u?cv|^#Lp&J&ji6xbVeRhd>gnhLq5lWb z>b;AXr{t?AOaIFSu&b`4y@RL6f588rE$03&o`3xNx0Hs)|1ALq|A*VdQ`h!?jQ@Y) zdjS1hZFzNVJzTupt!NjQ{O}xQ3NG$o8ohm8_gSZ2wiEp&_pIWV|E9 z%2~n1+6!z8@l;iieC6fkXd})qE2hNHFR#ciA}6HC$HylpCnhQ?Bq%4wFC-?WC?fxF zfd4J{q>IPqNmfo&KtxtifKN_V^hr{YPfkpbUtU32QIt1Sg{*TwP0%CFs3c`Y~;+|G%4y_sJ68e`4%^#oWJ(o&x!w?0-hk)5Cwppe^L7%iNzv*y9m^;9uhgVAJ(9 zl2IO!fG_~ce+cy{hl=`?J|+J}XsBpU^pv3gLueTPBCLN1`#jY$0u4^Ktg7ox=fV4(xhpAvjLj3+Zt0H|oh z=on8(m`_MpI#$?j{G=gCj5sHS-^b-bizWn;CsW80>(=V^1RM3qMP8mV39(Q-E&!gP zJ&6*d5d)+FP0zXF=yqq(%|mbn2TsRiA+_IYibCxXkc5{`7eKpy z+wYmXxYCw2qyYMojduoavkhC6ZC$9_*W+|!<70d?O~b_V8SpABuEAu#;(c9S4i$6X zDm9L3o@(-7DpJZctMrJ)Lcot3S;LbMrlPJ#qu=KlYFfZyVjNF5hyf@~=}Xx1N(2Q` zhE0Q;4?=CoL>Q#n!s;IZTU#_5g#6mwG+2XFj-9Xs3=T~gwb8(yk3Jk8mx9ZhONE6z zux^&9@e@#mhG!214!odAWx$wbh%xg$Y*W_#xDx(BIb&bwrp25YW!!H zrjaJ3&FnPu7IU@ES>X>DxwOs2AFm`)=S+dQDmL>WrJ7n_gS0W8M&rY=d~?)q)DFlol(Qp{7cC`4sjAmUlq4X8$*lR5*1?(?Tv{AgKxh>rF*lMCL;#g zY$$>b?(QD}n#cELZlU>=BP^=cj&9ghy!)`k4FsjxHx1QF;?NW-P?i1<(gFv;Y_ncZ z3;`DI0tfOP8}nX;gX@mGm1br!kqN5+on-k(0MswQl|qug+Fk9dCDmK+c+;p08m}-? z;;v9B@$^7+j~+!1AVuHRaeYg~)FXiC+9rE^ar-$^lQ7g?U;|=4vt-lllc`gEXv(~J z#0h@JJfMl7v*pk$WHxgg%mG!Ej9~Mn7LAU2&?n{L`kR3!yghhDcH78$>-QaNRNR_~ zV63;&O7+aWFnZ3HOau-^=w2z5Dbcv6ut@0Uk1?-2EZvPjIqa9)PDNULB~$b<4PS-x zzD^FMN>7%!voRl*ek{WHAnH_&(K(5yT@;KaiveGRBo9Rr65d}B$+1~S4t`9QE9Z5L z(N9vQ!#y99m328KI_|Tt>s)HiRw88kk@@XbBNA)i7{A@bojY1CUHm=j4N(PcuuXz5 z+R02lEUn{0LB(tw7Arb+3vO1DhU~itOKBIk>ix(Gq1-2ajr}_l;YF#UiS_*bZt`I_ zVygnzYq^+#e4Qipg00X#7cClt8Mt%3m*()vtfq*0rpxzh=R||^r&M#}VTO;^1Kjl~ zi@hRa<;QX!Q+PJCG^$J(ths`{=by3wLRwbLe6vYf&1If0eqoh%To2#*4~)j|Os!?m z3rhsQ>DXdO{Fqh*?kUD`y#eOrDW^p>IgIiijl|H*k1{tt0(^zT?_x7z*?FrxEB~^V zCKUKx;O=?#3AJ%#gOX4avn^XJ^rEaG>qg#upk&uHYSa0!nU9U~?((w5X)mQL%^lAw zwtxk$8kiNVU1#%_vS}Mdl2$Y;)-ThDbH2438gr@i(ld}N$grMswpWJ!dM%frw=39H zqoya5L|TC1JM)HQ+et|8Bjth<+#ak2${jx3+GBMI2oxVhAikg?;MYe9R!Uxt#oTzl zL#rk1GI?<}V;-d$ahKzr;b^Lgs4;DLVz3!V&>Nq4asz?HcN7SZ>RFq{dvg&gkAaN- z{1CKh8`NU=RX==(GiCm5bdyy<8th_`J zeavl4Ht@IQh1MAjI_aB$b8sF-{=M}ziu-Ve={US8YMwd%YQTmn)PUQW8Dzwap`;e- zI1HSg1==#RZhw8_HDtMGVY1+*Nem3Dm>ibxuRNS}h5Hs@V75k7=p(-j|1khnx|fc7 z%FU%UvfU-#O)9jeJOWgk0L2eelOk7%?VR^=*G?p7QX7>9iS;dsaLy9h z?J3+bnGOA^nsw|Or-2+C zcqhm6+OsxSod(K<_6C-eY=|Vrt)6Y$E^P`&Of{JdjI2bd$ilALxMfwYvjw9El51OX zouJJ0?vfb7?$>qDC<;s^!=RrudbY2UGcAucNZLL4 z4l7Mp7n(d%_fvr+ukbpUph8=gA4!ARDG?Ehjj{bhIXhgrTS-I~RpXs2F13W0O{jTi zQci`r?rmaqA0xYj2B1XneK~h=U5}$mLeh)hGBxq^f<%^baxJKyMA~(K_&tN~>^6RIOUnxiQMN$N*sy>O7gjd;K;+Y?Va*Nfw*<%Y2mWEKw@HSHv zq)l3X|NF0VcK&&3XR~}x2bf@^qMeDX!mH7Wm(85OOH^gz4VYEH;);pBCzVt)fTd7{ zW$K>VI{nRo@vSqQyUxZl@U77hj?2v2RDF_^zQ^wL+uT;YIyJ<18DU(Hd*3VXgJUoi zd??aNe_?&1yTRORs-l^eL1-79k^n1sQe#jm(9FlU^7b44mczW79Wjz;V%>LRZu-;n zc&EB*2;wrgbfR?0w68d+c#7@gTfZje3@hQ{Djs?GqLL?0w2$rFHfOH2h(m@FD>z>0 zZ&@+-&94DF`Jc{ks(>l0~R{ZO+%d>OxDwSCfSXMn)=>dc@>O)s*7DzJ*$KvU zjKXI^Y7$B;VM!RW_YPVS^*Goprur(Rg&WD!xUl4Uii5f1c)H7m#OM5Ga; zpw89T4;4*3_bKZnb$`D5-rF$T&U~?OFEvY8av(LewH-@!Wnc+yoxI$KcfWQ#)o-D- z^*~1sIoa8!%}m~VBG%31f~7fr8og@&)9y9p;e#KFFCo{y|C&N&!duT0nHp`gzt!?q zS+C*?Tn5ZuS?szlb?9o*pXBFgQM?C_U9S>oxEWD&Y5d`jruQmPZg2XfVMf>`Ws=G) zO&h|^ANj&$ntqPT5WXt!ukpPvCvgkc>*=k1lc=G1nNtZ{==pQCO{@57`el!*bL%`^ zlXJX~79pk6j~}Ykdl<39X7W@TavtP{{3=?QJIzY{sHbkqm6783E`^sy(*rd%s{!Sx zv+Zn3jw8ir+J%Z?iTb#x4r2KFn?45QBxf8ow3h+hzTM#ZBWM1};qN%|pWQfo3PiW` zCQ`JCfCZ#dWYgD1=)c$+U*ZKBgmK6m!PmsnHq*JniL8x^&7zlf!)k{d4R!rne5=N{Z_TwSynT^(ATpt*`a~1imei205$Z}aHH{}6vd(b2-g~Jn_K$EO~EGZ%8=8E zP;9Zj-L7alw6C)0BM!ku4O7b9!DF)Avc(~q{$PyE#$d-$S&Woo^i%>2iEo;rc)kn_ z?5E{VZ#irgAv9TZ;xzuqQ?9zt+QSoELqaS2+_LddV5vsaj6t}_S<99V3X@(ujY@4~ z>X?_e%0Qzwk0O;=^UN;$qVqb4Krzv7VAJH#yGdY|oJ!TLivx?p4iPGsDJhgvka^Z_@+E@37_V3Ts<+%Lfc)v7Bi^7@s4W^I& z>>W*X$Gp=~SM{XN%EO`d+mG5t5#fPW$EONuB@PT11an&0T1Z@)?v`=Xa;KbBF#Yj$ zoQWl--|DN7G?RG*2&aT%<;XyZz4mxhh(+|G4_eo7%^Ly5A$yjd%;h{NNV*mZz znqjEj=u8r8Bc-~jq9g&BL{P=I@Rr27I3C3#eu3>|c@ETW$9ud{&wqcp{g(Pm(m_%L z`2u;9D85<>$%mdlUKO1=FO6vG_cP2~{w|&_iLk&jub5eOJ&=-{ohhaU#b!s|7fa+r zyyXdKLthpWQYwG6U;2@AjDT?mZIA7ny-+moo3y+jJHoVoGbxNuMdJDlf)8Gfa&R@0 zj$>#@P9#rZ5x$d~SRIH^g+qZE$%p9_ zEb#rcMt|9+5`xBcQsk#$HSLpXp}@!=CP}D~d5vw{g7@Ve!H)pqe8lwL#Zsxo+^SAV zBvF%s8tq*qiX@%JL#bS-{(4Drw<%7Y!FZF$Z$8(SM?i_*Zf)R^k7;`vr$X-Z{19_R zOr=H#d7@PbBJXr`wh zJ;r1?D%J}v#K9Q#aV(MPPvLoR!I~v2MU5GXXJ1_lzyW+u zsbhJiV*?y&P{+xJJV-z5p}#C2497cH@;j?c)RopOUFX4)&QR|gQ{g-{`{k-GQ3m(H zsBKKzto(pHFcb%@m)S&u6kVnC_2MI{d0{B7&?6%Q|1ax;P@@xzrDn_x)Lj=ilEr#v zu`sR3d@<7fEsKqCl8RoHL@Gwg>>w8`r+nNW(^i=ueX-! z9(vmve|8vi!Fp{8yX93Oa+y{=p4@}1u*iHV|F_MsP%Sp&UzWD11q#x6k~i#znb}FPo-*pkKlxUZG45H42|HEazgpFEXX7D!=&9KC7OtjGhS5 zimNyh&@&@!Q>&`3c?YgoKXfS8S>(Z-o13rgN;oJbD$R~2U%NyLRF!3SJ>@84Je~30 zYHAzFXe_T#CzmDY#eQ~ogYK`v~HCs(oI_pAu+#4<&PVf z;nBE8Zd?2+)VRq#ZnJX3D*}H61^{K;d)SxM5U9%Waz41q6)jV_k((=&5T&cqb`JZJj3tGwz zU+%`!YR)*5hab$C2=a+MKLR+BL(grAm-HZu z^Uj6rrp~mmXx6M0m4eBPr^!lHQK%-{%kB~2$lciFd~9np913)!yiTbmfyAYaS_0F9 zz7{IPQA>$~7>S<)ohTTO3^bFhVA1+qF2YNLjBaX1cVS6$hMBk+Or9tAVos;Yedcm? z^PC^m82T-<6zYfJqJI^tBI!adVpTc3SEKe!h&Ey*)i_jk^s1KqG4W+g7BTjBV&cUa zyqgX5xL7!cvBQ}#xK8K@gvKJ96d8R_%R)1y4dax7DU)ro(14m%WMwd2y1>wt=@w zHs<=>!ggUR4c|3rmyN=q1I>~|3r7V0y|%TH)XFMq?D%6*Z__n*f&>iz^VPsn~ zKfZVB;$RySnPthvKo*tvk;< zri$H0asvd3)+_v{&(|mhbLA~s>94XFwGJsI7EG?=LT(Hd zcf&rI)N|#l6yK^;Fhz%Kmpw$3)NhOHMiJAkEkbSos8UHrS{rJvh)mM;zgnozxiXNC zgT(%Q!$7!f4mV{SZi2m!q@a$QHKAhqP#mI*S)#}&2E;c=MoPrUczz@^iwzy2=|1-r zQBdW3krXLusCouuOK`js()x&#_VhW#ca17~p+Iwfq!x&DV;zPo$9TG>lT48g?a^jO zd2&MvSU<031?Gt(;NK(qbt~--Wb3sniM*|jVisrC!3{T-;Cmdr56y~w4A`P!pGQpI zDLL_r+eivIsRb$_+0Mx0Nn~IR*HzY*eT{Tm51U)7&3RIqOU9OsT?B ze41ms5WL`37TcQGx6tpKU2rpcV&|W`eM4^`;nHdZh74OTKNH{ zkSH+%t)%&CM4u$#>uDY+HTRLSDPhY`=(zLyV+E5u3X4OJ{l!6M9x@wOtQvH|n zUn3T$%9h@Xkz4c_`^BwP;yb1W%2hYmceSXy%Qtbzn73%b=VY14O1!kuhE5iGsBt%L zsS3trQhxVE>6tU&XrO5nN@C-jpfL8YfADgFoEhjRr9aodfQHDImCx$x#VDykvoOE2 zZ;QH)$)ZT!EwW!Z(AP?z(fgL>S`L*FsTs;nI&gg^1vq>z!kd^>m?(liEk2X?(4oA_ zBMB)?)m=%tappjY5DCuy;M2)OQN$QqIvHho_BG~p&VeBkvRWnmLEufENBeP)0s=`F z+2gbo^qKevo~D^0_qMg^#G0h)_e_mfiR z9x=#o_6XR^cSQ^EWe?7#kq2+7_h@kf&adAWB+BXR6s}GA<$f@y`QpG+qW{5AH-boW zkLOM3_3TmiqSWZ8gJ$=%XJlVM)SWEXUsm}3_zem5w#67+SMRz^zirknHAs)wRoRd& zYWe=1+U}En;5dv1W598#m(jarXFLuG!UpPU1A)XcFs9j~**7f?Hrc$I^AdOdDG6d( zhh%L6&-wjrTuJvnzJ^y^D|m*9a%AFwimN#!dX@1Vp6P1gzbql+T?Z>nWsGrZc$XaG zEeJXy857!?GGHTiNPUOwXk?grw{V;IAt5_~#Ex8+Zu*`l29tQud*A(hi**>1*?0E9 z)Mwr844GvnXlVXHYMAu$Ais^!ma0E?lcGvJuqwg!eQ;Z{F{^ojVEG}tCr|wbtdLh^ z%0Zl?rs1s?X`)DWxReEFw&i8Ro=!Xnc}m49#_2_GtHWr{U5|cm-iz&yUfQJx5nT6A zD$Y8ip90~e{POSnq!s z?C|_GQo$wlo~G>xBVrQ4N(c6Z5%M2mGA}r@lRPMI_Qx{xaBCF9Q_4fS`^|Z)t#Z30 z4k*Zv{6tVqa1-nqTEz#)bWLzjaB-EY`krKW6MVV(N_Ipg$1rAH4j1zZ5 zFCmesmd@8GsK@XmfEu*3-*J9Lt>E!OJt+w;F-&s!`e0E@riCE!{P5gPAMNi|=WnWz z`3MxO_iya|xUU6T;XC$k@(`1{)~lk(Q65f#q{-lLvmI`9MYZrR=ZDOrb)yL0CLLakSmrbu1ZSKdcMwiC*-sF4>o@l0h8$@sl~%RJ}-*8op5@s(Y4X{S{~4Wkurc zZYN}hpP(7^K1%s#bpqL}_{jOYB0c$Su&VRaY}X##Xe)r7xDd~Frh{C~oKrpIR{w22 zB=Gxvz}q3W3hzgNi!fC-rNCRYgd-gOdkhz5Qce?tGNPideNZ$b_5DAoE#>r++Z4Kt z6kMLG%BR3bz&aJh{PM~CE4yZ?VOMJJlglQZ>T{MggQ#?LMUN;oN_>CrVBdlY4(*#y zRU=xp8UpMr`=fFHta*cGr3J;Ma&j0+eT z!~f>MwACy-CoJs`M7qR04zR$Gu9s*bR$= z6G%Dr^mKMDnqv4CCcpcs!?hS|9Q0=AVVjculC69q*E|GQO4o`9rq9$$R!%Ep86Y&3 zFPtwWJ^Oj+tDl=jBSCi&z%@1#AZdt!d4jyl!<5$T7v5_UJzRB<;giTq)DGr2Do+X zy4h`{*kqhKn@QQQ+@6>t;v!hGb}Jp#cFjtFg}=(x$ChC8`?OJ77?5*Elkzf>OeNl{ z-EPDGD5hhvTcS>q=M+s4F563zJzduX{SNM_wp)M~a&L${?M_{jq%dXP0>cY?HTUZU5SoN83itmcFm%9#W6PL>g+-;0mIXF^wg5o0QWY zqw`3sumK%8Nm@)fI2-sAWus8mxUfW3fJ8DxNyS?KD}GvHabIN=KTj5$W;4j%>nH zSzPyXEOU>v{4je##rvHxo)_q(CX!6TsQ+a29}zw^EA2SiS^1c;=>{;U{Lf+J!EH7OmIm(?#K z%4DZuDWHYAGJ(YR=c#zgUQddHgTVH)EthvvbiKGpb0;hUaU_~GJ=~aFqamw@Rw*B ze^UN>O?`()A)&|eMHgQ3BO$n$j5MD!YCZD#9aNQa)0qD1r+j@=#AXX!Jo)!kkmdH2 zccY%7AZ0oJ5Fy280s{y74hw_-H*OX zcj4mWa$&$1gy@TrUZ)5^D?{u}!8jDP-W%Q9i}d zbI9pK!`n9ziu9XpKJOwfTc4G~Gbd>B$(oH~cN=K+@HlJ-HksG}jah6?^9^^7Qia-w z9p(+2ZRXaG0DQ|j_0;;SPrJ}@7Qu+kRK}k`_;02VEiv2@KPLr4Ar9N5n4w~k!}PMk z_Ed%emkPXcv@P-4^x>CULOo`J@zJg?roZdH5++?M5_fXKkYb{-=Mf||kH;0OFA}Su$4Z>FPU^S$}(3eQ^ zB(b1j1-b@}k9$G|}0mvT<;siQl1OI6vhJf(zPr=nU} zXSVXFxX?OCec%8tv8>HdK zrNt%XU+zPzuk!H&xaA}GVbEt{HL8ykzn44*x;RFgi_y2dV7Y6!uXA&R`^T%MSCjh3 z1k{o@)2QagyrV0_fHHt-lvhn1(=-0=-DcSU(a|xpE>&nMZxU-`IOZR;SiP*9tv5Gfv?icUAfvubPAaIzke@hTUs0*BLib!&Ay8r#BndyQ;lknc3Nx;@Bkw7qIWU zPPefnUl6zTQV>xTkmyY*r<};=LrEq2$_@az3^Qdn%p%N_*3+`b9c69%%hOc$@cP=0 z>iE`x>CR(wDr9-Hms;!>q}4nz*-r|b2tIKC>@;`nqNiwZjfid}W840X?x7jE|095n zU?^84Aa65w#^<4f9RFtJVDDMZ4t~_Hw}NwEx4PfnGghi*5$K*WIJ%3@t^PD#itljI zGy}=skj#wR_w!WJC679DZdt|Qg`0;91a4Jp9Co5 z&Uc&ICup5K^>EU}*UPy`aQzb}WNT=QO)W!LaYa|TUENM}SR+)udYDtoDtL)Vl7eU% zwKjbbJWVq&ydQp4_DzPrc4vrPqSjO90iK^so@>#(JIgdMjn&+TuGiM&Lo=N^o* z`(NTCzbH?H$~uBncG=2k+309Ia+=>0%vJvtA=`yijnDt>X$ZH5&)9^83yyI&j|0O= zG<@UyzgsNc)j$Jy_5>6eqvODEd!l^tggMgNkB(ZjCgD9OMg2$#v4v9QMekv?74x(s zESE*C@~glwTkkf0iMO-h8nePU>Dyn-(xq9-z|3ErSld+sE@+h7H{&{3&61a~(Mx&# z*7J${r;_a9fsGPBfMrnNy?Yzd|f)7IbaQVSGvdw($x>2iBj)RBFr-M*@!;Q-a z%;h5Bu095s0EN+oC-T8zm#{}qRU2DIg|Xya@~W4m8b@|%Qqjkin%cv?qfX2fAM?5Z z&|mJB!_>T8Ja0FU(?dW*nwGi1dyPm^RC91%+1&(3odsZTl*awV(|?-p`8D+20-I_A z(ru1*P?`^?nh&q%x8*~v9n2Yi)%WYKQ%9nZsX74-CW;)Cb!f%&(>~3_awpBov?9Ts z??eb8PYYOAYAd2myDLt~^$&t{j3h9FE877_p%eKLZnUE{m{3A9-!D`1w94L4dw*FRlN%)h+OrkyV1JZfWVss_Ib5&*?J^(~r^ z?N)Ft@eawlu^Zm^Eo^9UI|((_?y_{+rY5so;|u8@97WzVyqRB2E1ACsFI4F@4GDZ# ziBHPc6Br!JE8@s(h9}d66M;6rK#64>%|V5GI<;u6Aq<)QzXbK4w(i@4Hs93#+}M`v zKaNxFXn9Us*gP@-OJXUdfEE;`z2vwsrq%gg%tVPBhi1xYs!|m9$;+IRFd7`9x{AWU zu_3>v*Y|B}lD4w4UcXHS&nhxE`W#Zn;5L(Nu%f6aJx{+YlTX?S(PNyqY_qsN;EpDr zvdKznUohy1kuCc?4?fdj+QP}QwGz|nhTx>-E@(A%t;p!L4uEM{e2*=b`W>v2sJ z?5{Aa_pey95_0&kkD)&{*di>7*OUi-TU9EUZQJQd#zOtnRIS}wF)-&Vk*{0&!lM zQI{Lh?+eiP#)p?L5bUvplX~1`Uke$FiXSRSrZ` zUwvIB+FHN8WeyW%-%XsSy(A z==au5qM_FZGk!QaZz*5`upbiMRDn{3(DW&P4isun9z}u}NjF6ia{I3vner_6h^t80 zvoMwVpAE~^lNo6o)Vf7byw5tnIkC#4QFLWhH}r?s*5qOfyT)Z;f1GLYVtrDN=oT-) z+1U;Aw1myC7ZxI^8wTr5&e~fQwl^(YgqwQlRN3WlTF!!PAQ^XuD%<e=pHT_3ejm1vQ$SL{B08DF!nWkQnBZ zLU4(f!>(Tzy(b(eG%aos?(cxYG)C|~GCfK>YJhr8TTmB$*unyA@fkykTKV^+rzVWo z-5}d%9^Ih#rZ+TQW_6KFUvI<>x>uuOx7p*qI9NIFcDQA zon01g(S~g-2Uc8E`AIIhMd3u^2`mLS3Ac|(nbut4^v1D{#z*IuswwheX$U@OKW#ND zKq3*w-Zq^k4_0e7%Q6&Hi#h{N7M!A&lYLZFmGIoJ$}mw=r!)bb7zkaB9S7Kn*n7ce z36C)Mc~;no8I9K4#N9Hbmb=w?gkzlVi zO!$ODfmo~hhr{j8LG;XR_y5fqH(8M&R}#k zEej~PFCAad;q>WfsJApqemUguWh1}JboW){Mj6w7SN-QoTBPz!#cLmD?iY;(ktCsJ zM%-XI^$=T8rC;+DXna2lrE!0zX{yFUnxVStmb$xSx*fEz&ahHw31*d>@9x{L z3YCy)o0%+Fkf|Ti`ljFS&CWt~hwac8s@!CnreEzUeA0rQ(yn~^u4!kVFOr#eIn+}0 zr-(R&mQJ-cz;boQ`$$I%bst@{21D5IHqzQ1_4aqKMWo@>JN%vVBIf&ocKq29oayV* zI^eX;HYP*~$>AQj>?J8W8=$xX?-kSy+PfGru5Ks0xV#1K)B`oFyMR-(n@u|@;#aum zt{832xFQ5&2H3$Fy3g#B84%+}mzy}>J426)4A@lS?%g$`bI&npNG&19?LqyA%Q~6! zMdr?#F(WD&M+z|=yF-y>bg_86)>6mW z&r<^8tTN&~$PXfI%zznJ&LHMK$OKXeCag+vAIJTg_Z_;a^e4$qM|y%#4YR3!7LXLseP z37oP+8t!_(5%t#Km)D%_6r{Rgw?9Dg+7g%@Jo7Z`b>VAdkgLlgy*0L7In@nKaWT39 zofq!BFp``2SHc4 zN||w}O)|tMCK*%P#BN$sKfO6Q*>rQ%{L^p=b@YiR6{GzOvWR>?nX5O4!(xDc-bug` z>AK~Q_>zui`sVMgmvd@u-o$?v@Yh^ive4mYmFZvnLhX$BNECI3bS*!XWSY#J6&+dc zXMWvhDo0k{L9b={oiLBFTsu0B3GL1+C2LHe4?43@45@8%fDfX~zH3~o0l+6ZErX!8 zO`u$T=2?CbwW?VD^1lX@@@&*3R5Hpa59aDoO5^n*42jEZl`VcY9|&;<-RD8zZ$IDt z3?g9?*Ipfm#x;-YxVd6R|a=8Lb3}ibNPZ4{I?C(#V6WF zF~Rx*M<2ftY_@fDYPhfsQ1{m2@KXm(H^8x&dTV>+qt7Zf!|#$d^;s+CadoOy3Iu05 zN4_@#gR+;sR7-nb*%79_x_9e#zP0h5cUA3kInn2zy4{!CsF=w#1#u8C5lJeOPx?IeJNM6XrY(nue*YdYM@4vg^nhxhL6YY z$he^B^mWNp6nEMS?TYKDjQto5>0;l&-IsMa>wXn`+x9VcWsyPC!o08J1$;LS+M&2p zC^2Eqy3Nkgv;pIsJGBgJ<)@K7F_CKB!Q2CO45+n|s`;|HZTyY3^Zhdu^)?9a3+yI8J+e%jVzlXE?H#)r68wbo6GmKhuDOI z7YVxLs|6cVoSG&~V#Ryi&T1a$U2fm>;h)uWI>!sL{HE;}xx9q^G^!gDkbiAZ)Ce~z zaoD7t6TarHFDvri>uO+Kk`*b$jk{|NpH`)fGg$S?TlFV}L!;eviYatCeBG!8r=FIf zU)9NP4yrgM(_NbBFy&I;k8%_7xT?wE?0TgNUSg|2vlAw=8IPt+LDg&}rmU5R&zHjQ zn<3k9$kFf|@)vc{5+`jS=$SI)0{)H58$I05-`c#0?yDhv`X_ak5Shsxu3SzO+)-~> zy=bYv!!TdYN1p!NyBKmk{FvBMMF4ZA13?%&V-k`HUbkAD2(x#e6}n(|9hHg2agF#5 zSnF4~*~{M<(hujB%U96_p1svU%Y*qvkYn7GS zdxpBo8cx1rAwvl#+g?Ev>_slIBqd~tg!rAAHe_OfIkNDAQ3Z8xA zybXc3wSfm3mtRTslzT9=$LnMgFWD;c@~>;9PUYnXOEmQz^G(QknUb&cJ)~1rmxlk| z042;b|2*Pq&nMCA(rvvcw=%jqsJC@X^!R3-hJKNkk2IsKP$d=A(q})Ntn1f<5~wMT zfXMF+3xM%DPTHI|!C9{NjmO1Pc?=@$xb+R}$4^I%Qum$@g~s>Gk2{fK-y+iTD=u%GsS#;Rwz z_SUc%LMt-%-814p#^R*Cy;Ml`cH;c@HeHRR>=Q`GnQaW3I!S?A#TKJTTIp>Vw*D}3 z!18dlkO})a=uN4=u+yYRx2yR5;QfbYl2dHw#688pv=uh8vJBP`p;B8)r@Th-QjxTS zi_EK-ysh^r1G;t0KjALRuLsTCem!kQV6$tC%B!5e@JQ+6MqvLo7G#Vl6<#HhHAorv z{C-7qA8w>OFAc zPEkm%ed?4Bl|u~lhPw1~pR@*fxtyf3?8k96U{bS0A$Kqbtf*#s_x$-<359qo^Gg+A z|8@IO-cq}mch3Qg_8M9}x8(eO!@ae(xI(4&eZ1&H2RE~8i%$gft6vSEwkgqU>S+Ed_*F29wz+3q z^#`33g0XVaYxD(D+uSc3V&-X7V6!VcCa*sw4$c@qKPBpZlFE_uQ$po&IiA`JXPX;v-(VZ>lp^m5@xq{CiUig!rV3o22$wKC)oUt04LhhL^#c zQkHMW#6bZc13^m{^G8C`H=swrQNts^E`7O=dmhd!AYQw9Qflk&v9AYIdw`W~UT0T7;V zlfAcx4;O_`ibVcoJp%5l9s%>kE8Z^rhoS^BTe*YFJfH2BoJ^boMIi3PcvH;MY%<0| z_Yqaj0R&QO>!PLB%ibu%tQ)mLz>fHN+TF+oucg2IN6SkoTTE$Zb+HxrWF8rm9P5CJ zsRYatg})*%{f@3wIt6vXF9vhMV-@pz3#&JnvKQ^`|qhB!&@t z{L3amaphzgmm77p=d^JR#lG77bk|n_)kx(4rB0Sp-p} zyqbndbVZ616{V8|36RCV1Z^=Spcfh)HBN<9}-K#5!50SxjVLf$4|wc%zdjK&_sq2$c$p< zc(SG8+r3Ae2ZLZ98U_C~O`rI-=Q0rVd|@%?qCD%V;D^^{2{f2t zWcGd7130SfcHY%!TK#PUAKe9^NpMk9<#vJ#;-|^NT2&b@@eqDp7yCV!$7;Vnojd|S zT=&9<$&H=AtB{d22huGcjxY%mP4yfDU99$6Z3)-MA%s<`#c2lTwC~V7b;q*upb-ZT zHHhq&VE@^;=L0VkrMApWaAtLM&K5BQ>H>YqYM) zz@*R?v|GmP7-I=B=TX|5odPV>9aT$R<32fQ@@Er9+qHzJpm0I7_@Z=VhM;*So*ccX7rw zGck_<>-v0f^B*8i*1^i;LL$O%zit6Oe=urh7MChEvuHPU8chn!@*20OQz2ssO@(!A z$#p6xo(DV)T-9<_76 z`dg+^ad+NC+8{2o&{^a=6+iX;jlqyECsA!0l~}=|Dr@(h9g%0=bD@8F-)1Z-jY+CS z05`%;7=z`URK&BNmnZ0CiGLjmEh+b6#@n?irc6r$XbtzLpF7@7Q*w`}83k702;oR@ zj^^cJDJXtW8_Uj4Ju8)yYgJ~n5E@Sk6=!zTb_i7klj)8UJQaq@y&7Zy*RL$#W6fVX z+@f!h-z};cG2N>Ce*t(7hw)7b$`CeuQb$5ky|w0(9D9f?=A+LYCgD>nw*f=G)dI-^@|9Z}Nt6o9Ux zI#zFhr=_o=g6JKHz4&dBaYb&gEijnA36R=w%RrClKUxXs=+Y|Z}w7P?#; z^+MsL651UOJJ67q3zecYeHXde+2e8c(>*{j zzi!QAt>p&c=rDQJtwqX7S)!Mx_fMfInuC1^7xv@zmueI8nLbZ5pV!_(N$}H6!_ZA zk+{=dx4$KJ_8O5LT@MvMa*oJtD*azmtDv6%YphSQLcN*~~L%i~j&)@}F(D z{8S0EW-T#;Y?FAqZGA+HhT$GRLQtitaqSU@Qj$j!7a_+NU%I;Yn`rHq$m#;y%aO9+YstDqTdRdTpgtU;KzM2k2L{4n=B^-P>X(?+YrKt>rlTxl@Q+39hG)fMYW2S$k}5=WTSPeueKQ}ovT@UBaJ=+-U6)8y=xRtXCxwZEl^!Z^B=tX<_Tvb~+}Xfn z{9UYGqnv5M)BurB4aGmsX{tT5`qTGD;#@Cd$;W1J8T;?TMFe600EmN>kByHnIy+Vp z?ZE>^u()xJp5S|K+U>jS3$Whdv6xd?+^zornYfH@JjbT3=#L{Czb4-c(2i0P&r3#% zp*=^AxyFC4THD}k?${5hF_V_Md0jz4;iC4Jw0`sFa~|z>F28c-8!T&V%pf!e4_Yp7 z(1!Uq~|<6ZUt0MM>0@BaY5-saqQ%g(#g&7=bt zWG?4@%Ut6rcCCqlx-@a7rkdBx&;?^hzn<9`?a#RF=?!4)lt30#YeKt6qzN7@qRmQ0_u9@DIco+(mwLI<9&3WA5ww@6x2X z_r@W8+;+}$0jO(*qpTwz|@l)k8;dH+yWXn%9Nn5k8;tS4>4Iw_H-5bxIA? z0BDMyVIWst(~Y1Cub9;T05Sc!L_NC0aQOD*NQ-HJl(-yiwNdwokhOr~PwR3tuAs{~ z=7@yWcMogqSw>YJ((_JY*VdeEugz`gM0cAs;ME&@Lyj=(sX=Tkrh7^1390Go9BExoW2l&s%LF8d)9)#$>26^KKi5Y+J~ctQ ztn!ixbvytCTs%h;rBONp0FvDy6G2uUO2F}@dQO4}!kQS&wiQzGPf_vFpo(#oR?|); zAZdINuQOICgU{^!8Y0wSRTow|l%wNa7Zkn-(`p3?N{<@w14qY1+l3Lmo(L3Cp*5#~ z@TQt`sEH@{1fR}O5<0(XDgM=T`%Z|iHd5Q$95hH{c0XrgsR za^KPfyM2=X0I)J=;&7%)LQ=UH_D=MxdK3w4^hLMIMJ+ZU*&P_ zw7rH`N$JAzr>O&lOPU2J9a_twxR;j- zEIV(~#1A+qlHh7O3yMz;s?&uuzLTH-02S`y=r@Rvyn*l@n}GbZ8vNBq)vvTCp?xb$ zfHL~dw2sxTeJC8`c@vyK+&7bt8tY0|RSI3P;&C?vaqP)_$qZ| z`YooWgq3j=@EZ1@aRGe9r~7Bz%#(61b4~`!R$Ly`ze;9TAptcgJd&l*aHj!XL416i zjBbiM=Wk&SV_Si2metmMjpVbEON@9t%yp&TQC&VMO3i-lIT_+;n~_Ana8Mbx?`G|N zAq$H*TjobtJQRs8#&jRKT~*bqc2)8nQc2giPcw&7wrTspPbhO6nt|4w`t-Q~bIlwzi=cBLnDw zK5EvQeFdjE!f8QD8fcuC7}W)iWAD)=qg+K4v?x3WABK=!MAU;+V}$pr-4E)X9B3;| zAcWc?%$i!dss4_yMc$$-O4EjeN(WUi8w+q{dtWXh08f8hUGLi*M3~$o;cODhWp_Bk&ob69(2_Kx8>hy<6ypX` z%y|~uMC&X@uM<}?9A&M^ZLuchZgl#w$uIuRZn9A8LcBro)Mx-BM zI`u0@{&FAra`%V*rMLA1`N;3T`^t9LXYicI9I`?G01{=;;5?K+^^UZcB(N5+5G1FP zkH<*2_8YIg)FJ->o&JR2{cZm6)A~zq>Id_YUnbmn(>5C;zGP4shV;8L%u1ONG7z`! zGnMEu9w=Mx0<{7{(4^O-)h4>O>%P?Cv6%+X0C%X$(ypk~5On(rQEQ>TOIgc zzn|W}y8i$X-^Kp`)&Bs%`+7AEpVO$aZi!hB{>NjVy?@O2-d{h@{{ZKI{g3oM&aF)d z)4sKT{&Bef0Lx#x#QY!b{{Y8N@1Oaf{M6H|MCBFC{{VYT<@n$3eqY4>U$fz*pb*D! zzukLr_`lo}e;@HbzFYZ!)c%j#T`n~qblIf-^>zOM?>s-MH7+!m(43#$V*TfzKhdWO hb!uDx0DDLEk3M|7bP*uPpN#(i{{U0RpFISX|Jh~JeYXGr literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/2.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/2.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..4909f32117c37b4e94a60490cf4fb5d79806b3bc GIT binary patch literal 21178 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

    Z^r)H;{KR;qB#+|(2(}^acpg@PfH^rs_nNrh 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 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/3.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/3.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..81efba428d122cf6571ad0fc6761b4012c2fc6de GIT binary patch literal 16165 zcmb8WWmH_vvOhe71`-GmAc5fS&fxBYy9WpmWSAM;Ws=|t?k>Rz5@ZI4gb*M=AZTE4 zg1bAsJm=nX?)~szcdfTR^y=XcL2nS zUbYZF01$xnP;CYP+%I7w9X&l=#d&#Q9y~U7@YnV{ws0t~uZ=4&KMx--KvKrn)y5WL z?@9OC-oXhb#jxMn$w231C&geatjVY8s$lQvr0VZ(ukWvAVCxUD6|-ZIk*1UM759a@ zLhU_m=zO6rFb{EGDTaRu7k|kAQ_agj_b(Pth!lg|KU(QbG;(Ch8|E=qxB*pOG zM)~;o@c0Pwz}+2q`NhP<{*fUd!2Q6%?coRWwDIMJc`*K4f}*{Lt-F(}rxP4T_m4!I z*KjXSDTarZ{+9_*S3M^OM^BIc2>*ZfnEStY{;}`hC{4}(8v%v>hugzb&;EZJ|NoTl zVc_R#&#Pze0rzsZwSQn|{9mg6Z$ymq#yi1m zTomE9UQm0Or<$S^gO`_+ow$IUn6iL?f|7uUys#2KKfk=Zn5d|*ki3|Hu$Y*Vh{C@G z{BPicE*`rFtb&5Dg1m@;ki4Ae15$}!UO-V^;XxcoKu&~TNCEV3tQyS2(*|a1|Bupt zuulJj75qQ3;tKBeHlA>I1328}-?K@_5$*~1aD={tN#mY z_y4=QcpqBA`_CNvUvuu?RSy&SpX`5D&_m%rYtSC{Fl6ozE9`y`K=`k91F-9QSjoV9 zG$0fJ{10I~B+N#m2(^Ur+wS z@_%RUy8y(G0Hc6>Odv4;gBXZO47~piXnANK77!cwKN}G)&Lcd0Yybu(*5e12008d4 z(tke(Vqjw9;6B2_!zTg&F)^?)FmW(&aj>v(ALKkhh_M0mBsjSIkK}Zp*|;$Xkm9{1 zODK@nV-&>y^7Xa*JE7kSOwX5u$w7ySwu%PKFNlEvjDK*rSdVZp|E1%hM2tm`jl-`? zf-7g^_LkwkKkU)@us~-~ji&%xV+E32K~? zbLR%ow#w+#)D=+tN|nHzQ*lu!GK_0g53-++g-O-kJ9ZbVwTdQpfT7)=IdW^*pJf^v zB^GhpYZ<*OmW{^~Dr3#}xk&PhnMRF_XD}N>be?G0ID=D3ryt=Dl(CntAUN5X4NAi? zVeb($N(6kge3V^KGxL}3qs}Pf>Xogk{O1o zl4#0ANtOB;KCIhLoA-Q3Q$O|-Sv`w4@)myeVA`e3vN(G_+}ngci7b2R0X|-}G#FUH z!=)xU^2n5vL+>#srrK?Oh`kEONf&Q5GWiIc&CS#ga}uCL`j-h5v|*F3sJf1a5w?)Z zm1+PwR_b`N#00aNzxr{N7c)rKjV8!$lH!BA3KKnO>r_wxrdPk)=5vGittLrk7Vz>b z-Z_6#EdBm=38B$Uvg(+&F>7iL1K}1E8-k-~Nt`7;gkRv=e7jk3ch~~4thx_^PER|P zCgvL%1o0mcTz%jw=q1e;2g(QXQ4clyeE2@Q3?*3L9^28UR`e5qR;1d9e$QL2xhsQE zg6k&6fOH*+TaFkAp)$JnhzoNwCDnYI9b9VMRLs|jkoW;$QPC8CDyGerE5!}&3{ArT za596LsIWhM3D{Is1;M>xpFq5q)|!jk(;V|@Q8hxbbS%$!SFp;O0@km;r�sHh0(G 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 F{}0+wNz?!U literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/4.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/4.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..0b88b47f16ee036a93e2b808e2b75eaa55909531 GIT binary patch literal 42411 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 Qd203W<8|P%<7Jiq*&h}++yDRo literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/5.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/5.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..0bfa6f177a724f69b32d3124f3db590da61ddfe6 GIT binary patch literal 25609 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 Oz|2(G|64lFrvC%-Ef;qH literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/7.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/pinpai/7.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..c398cf00001406602a373142df9d707ee12d7701 GIT binary patch literal 16978 zcmb8VWmH_vvOhdQf&~Huhu{Qea2VX(ZP1`W!vHh5ySoN=*Pwv`La-1lxO;FCJh;Ql zbI!fz-VgtE*Lv$i@0O}xRdrYQ?%lhe=AYI9Br+aQD*!-20R%t?{0}`H0Pv(;&22pa zF90ad)%pOy(>gN3+Qr2|kewaw%w}p~Z)VA6ZVzMkFm+((WaD552#a|*n3~&Kx=@>0 zeuTnBXph@EX{n(WBDA_ZDjX^fQkK?Gc`qkRO)pg~b1z$S0Sj6&QEFiiK@XS%%+ke_ z+5=_>cNX*zq5T)Q;B)?;YIa)cf3djOiqJ~@qm^1uMV(s8-pP`hhmC{PoP(ExnwOJ} zlN-#($Hzj=#lgwJ&cVgb$;HaaC&#m~z0*f_P5}Xde=xYXSf4pqoju_$rXH+tXS)AJkhXL-cY->&K<(kw{~(&0*}J-k z&^}xGZx>(=5a>s17w7+g|37=o>0dnm`1jvZDk}fC1Pt~cZf6&W<^LG}|HOCJ@^r9d zhgdq>yE>U$KC{#PFIE4yqJJ3w%LhRfQzu)?=TVe3wR5)oSA&X*pxU$XP`Ig`w7t12 z%o6URAT2`c>I$_GHc(;o_6zk>TXzl#~?U=jQ=S3UKiV2*~hB{Wrk>7JSyl zX7Mb`A@R&3$s;K#!Oz9XDZ}|(=K6101-P?|Dcs!hAEp1uLjOlr z;{TKtlyb5(b+LESvbVSU?`TrDws*02wzhYmmeS;*)`h|??A@LJ8R%!^XGf(iouF=( z7P3zEFzSExxghlap`8cJ%fTnjC&14sDe;fj65Ilk($c(O4oMDaNnW03um3G;@&CKK z*q<$7|0l-&SIqr))pH>Kll{*OdM^BD4qC#Whs^1DhCLktaQ-!K02W=(Gx^2S5+DTd z;y;A+oI^r-PM?#16EYI=Gd(9L{}3|jzX8Q6dF!^)Rz)( zG|--b66!^#da}v66(!fC zKJBQsQ)trrm}VK6c_EhvJ{*<`sILd2%XJk!in27+ zM&Akx1FqF|QKdnd#Zv0>D7d!w9mDuMY<-Aog-UUUSB*hv_Hm3FV!CwX+WAPigX$`p z#u?dlHXXK6QNWjT9|0%?T95)`LVipdrur%i$Jz$+Gm{N$QZz^$n9mdCp9SBq%y94$6+)gXpVMpe6Q$Yr)x><3IhlAm#j z1*wE?y=;qPJuas*)YYa#+xk5LOKDEuD_L>soq*{MVp~16;qUTS8?O*?(^19r4Fxn3 z$b*VVkc46+8!a*7FE3KJbSixBB|kbXq$UL9y$SLtbZ*n?<(ft%NYGL*%*x8j=8al*25$LEwqI_S}1*ipAmxQ@RNvK~bJePDYapx*nuvL&GNk2anJ& zt{8IjDzJOmyDeAxl;4CKwwdwfXO*kiiz}dNP5Yn^m14gom>~P5fPxtpLhmiO;R$-} zIq+)+1IUC*Cy#M2;>-`wDpi0ml>VZ?7~bEGeXCd7J{fvxh@@J4_QqcDtlTu>XClLQpYlHn`YCB2n8O%atVuF~M3srkn=GLU%IHY?M zb>@6tkWTyr_&odft2LWYGWdS)q&f_fCEA_ezk({G*78NyzTal~$ zh2c8}NzUjc(DWh1Ta2)8AwMqaP;oy`3r(?a25YV-5N$ZB>^E12MPTSU8}0_Nq6)w9 zo}I4cK}zxG^}OQ;VQayeX}@^zLNZywZ=Vqz1aCs+!QAIJhlKIN4Y?!kHT#t7_W^EuNdE8dWp}HIp*N- z%D=_N_aphbn02P1ekwlK4^CJz zCWkUUn1TGQXsbxdW}(utcV?k}`iu<~t1AI{lbWxx9C-xg)#CC#c4BzDqF5I1l$FoM znruYj^p*7x6KGA#a8xr*PrAf1NbNiUB!U$fA!< zB`C}_%Zmpt9Uuv*-DnlHQW2l=Q!MrUF+ z|LD^T4nUR_lXHuf47GT5f-{?lMjZ>fKh9O;3Ohp;T-VOa=zM-c5<-OWx&H!nPkM7c ze`fhno<;eJWe$~w{n z-!F22m6F_VA4%w;)pz!0nN-_*oRoTd9OC#~D)`mwbc&zS%(xCC;7|-nU5`=>4orC4b`lSAo*@cBs7=FL`5SaF)uE|r z1xkfkzZDbfu8M97Dl`>OY%;fr(HK)U)<%yS_`>sw)aB#{2w2NlNjyJ$IW_9tTb!>Y zxi~nbTA(^2HW4M#e>0@ijJK#iVy{Vcf)0sNyg z`T+0wo; z(f>_1%{vQc_^BAALhcZ(4pQJ>hUxKWQy?*%Pc#twxAvOag%XzID_R3)mSg0X-xVn{1!|NLnr5`yyef($c-;b^%T&u5Wm4xOPtFFO#+E z2&Mi~et%|OQrQyJGlB~awRZo>bIndnJTnnhnyI?fSlM(N1pAx&b^*s4(`08=*D#vy zw(e*psiM=bbo#SZngu;7fln(Wd?7kCOKOr8RXq7!_%DS=5_FnD-ku666+-2+OYb@@ zMI0#zOdK9rax@ZO-k-Q2HVv%j}W~*}mHEc~&?P_{CY4E#Qzn`C$vF;eLRm7UPZ#XOYhz z6zEuqNP0Mbf##x32(K2kued$$QeoOXCsdli-R5IRA*VdLdh} zTmUFGkq`^oN2Lx(Q}k~uVN&Q?rGR|sQ=~}U>iNP-a(Ni*SoOpH$D|JwBat`uoi zv68Zrb_!1g&o z^t=SZ65qi^_#xa5UqXBs8g^v&qF#WUqUdP-3x^5iFrDYVl@Vm!=F& zN|l|sc1N#H-V@XP0c*tfD7NWr>&p;{iMj|R> zq549fpT)JAf*4|e_jfy$+{a1>)bCi^s zw2lb@3RFM=WC>o0o8k7mqI&O0(PJ+d>}8jJV`p%UQ1JO$TB=07=E=;A>(pUdwOHd+ zOHW_VTP#``8sOETQ(4?VTQ^mJK!Hs}p7vHF~ldk8;7%M?V5A;p^dD8i^=MAAed$fy%g41Ydz7 zx+>`+tw3s{zhcIQ3DeZvP&IHhH((5nHrUvNC4!l2k%dk~Z4l#;CLB#_e6K3i4^tRj z6@fK>V%&OD%60^`3PV5Vv+x2KsByXJmf{q4Uel3#H@%Q-2X5J;!7p&Rw76O(tjCJu z=r^zVJVNRjlrR+&YDI(Jk7m%j^m8o=BsV8%%(L~62!F0y%Jg;>ZTdpgrrofLidPWI zI~zD-si-0}N8VBz*OK!4hI-m123yDJwk5;ww zLbtbTp7#SCB)UAYK0%MGNo8-i`ibNvw0TM-gZsDXC>GUt+{Kswv`2sOGxE6KNa`*3 z(8;qY%NmI-!kf!8>wO#E%>cqtAowdF5YBo(vjWU)%{p!F-8boZy#c~%J002S+h%nq zUZ=^tQGhE4Ma4}+M!~6+<|eJ@?3KeNk9r;l7U}EAOIm|ZfD2vvg#n{ZALWpO@d9gs zC%_s0XKS<3EnJvZoR%rD|tqSD|nYZ6hZsb)aCNA7>mV;DM~zjJ?^J=v!{l5$x- zS~lBRV^LlD547M$?$S5>wOeNHQ7h)p=HQEWktb7W%EZv}AEV0nhd>CATaALMQ9Y#_ zfJ04&jlY^G{G)_=jV&Qk@l;tGsuqUK_`ytpqO~BNi52ddgf@u8QJUrbhy+HVoJm%@ zFfgnWm!M<(L=^)epg+#!?cC#}j9#ezqNPmM&YuGVP5As%nlc9x+pa9R-*5=6K_s*r zBor|&si2@x7T!q-J?l>D(6=e2L(aTP+m_uRvFkAwydw(qg2r7;mcOHP zMf@DAh1}^M`lg@iyE;$ic;PO=c1664FD}iKoJkgMK%8B!SQC^w@QEb~36gEehJD`? zqd_sJlK0z8m@_h86ko>){8`MF74SkgZri+1X+&vzZBzU$v5pP>>u(PPD@|!f ziK_dXE3I#ZZPLZXObNnePLvP))B3U$KlfgkyDMe+{i2@1P)KprELW_aOo%EI!NGZ? ze`U*mAA-=HKmcQo(K4E3Wd&Pr@YZ}rTWQ9IQl}_4(`xR+=~c!Ap9 zq~>_=U75Eb% zljw*#*rM;w-)utq)+YMKWWMcNX@x00@VwuG>2W6eq(zt}9GQl0+*+3>YXsx&YZflS z2_a^_bN}vclRMF`R^#05oF7xe`5}n!v^3O}tvV?W*F7eFhM)O_q6VGmR0Pd$=Va&o zx$oi@7v*4YvUYne*!(^3re@mW(;THm4t=u`id|>L07BK2iLk=^Y#7Xa#GUifZ)TRa zcFgZLxno_xotRm_A9RK9Ey5zg9omo_YudM*w7YvGV7706UuHKhSh}I>h5k_a$IrL< zWBenESXuo?znkA9J#U>zrNaRgVh_Wi$WH)U;>$-VJv4vL{>4gor@+#;kxAGF<=Kh$ z-r1-@rN;Za?<(@+#y(E~!dC{pTQkY#^7MB)=Fays@P^IB_-pkLKiJBFVY;KOR3=dh zO_K<9u+(Iz$0STtTVM9C;fAB(mD7FSQPOPvmwBeIzz4py6?daDYp2-0gEgmJ$2^!{ z7r}Z=$Rp%FU_&w48MTf{Rz#W~6|wpyE8y0qN8!4b-ualn=E|Vw!=FXu`f5(J%2|cW zx_0TN9KTA<`s0{TVz6ZG0)FEj)A9NA+)H{Ixx|oc-1{MJ8+zUZ`GPXTiU8xSrA$fE zG#k~T>OwSgH7lw(31x_S$P&cQD@FHvhA+QsEh?x=n)Ol&l0#LOo7_uZGp&7ZH_n8~ z)2x>aNv?QTOji6RRZr3}cG@~Bqp_gz4|;_t%C%_){iN3XLNTM8T~~2xSd%Uflegf< zFeA3l_)|SZjjbh=@{}NC)ejyqU?d(r0SFiEndtJ13*P3##AGJ5^`s4GE{k1#Oi+P> z0L~=QcQ5F2+`(aH`*3O}zYSgL_0F%Ru*m|^wI4{;`r4VohgzjBrJUr$j6^dqH-%*i zP$Sow>$2L);*wjcexsPssAJaBpmIX`#Q1D8{s2Tm!=L~IWm{6sG-i_)YE_0AIAPmW zIM8Wq+~UbSnG^1P(s3Bwcsw^(a^RW8{E4l`h-H@l&e?r+`>=xjmtIq$!APh5r?=o! zP+G!oQ0tqMkU0lR>O{#FeUG?f#%iY#hDSoSeiKBq>9=Nk`H9 zx{GqWf!}0=@!3T`vw}p&R=mHsACbfNVo`f(S3$4HV;kF8XP~eY+O^b~;tB=N(K}&jhrzt2t@C#vUyP5 z*o-mNK$@zq0rSWe!_(_U0NMRk=1?t99=T(6$c#8j@ttiXVx(%yY59$^U`?&R{Crf- z_cqd4QB!9J72}ULEL@$nl;K-!Y@2JhNN0yj(XAM86QFxbb;_sa(J0n-fvp!~1^usy zNtiRLdr)mcx8`*v^FWc0Hg}vf@zbCp6d>17aXAX!X2#n(%L;awddR+Hm2~kGdup*; zH$mKhq%*5Dqk^3O8{>4ZWwWBt;sltWAej4S>$O?_H`MAdVNO}R>cYtJ-Z#q^qq)nH z(|cu0BsCbjS!NI;C5a5G-GiUDeX?Zg*lU_?CtgP zY?1xYHu;8VAdSARjImcAk0C|Iw>7q9F-LL|(-6uCPKtkHwEy}7jJTF9vJlI`BnJR>o@ZbF5mr}K5b>s zfP2?kn&hnrCG8x@&f7!PytEt0vGvL9`0$02j39Kpfjcc5QPWyBe8T2_uhM1DN^$2t z2&-_PXQHO9vbq{1`Bgqdr;O?QMLj4Vk6d+Jz5Bfu(I)8+0!H2)Ei^W>v?}H}E`A!n z=BJ_1RklA#b!xck$UF=}36droJuN7w7fC>216imGg4No%v`Z6L;2-?Hv5 zj}~&0FUPSE_FAXw{N55xO5OJ|Zoya9(1bEWON=u;?;*D06b1!C^*?gT8ovx=uQXa% zdBWCyWAd97FqcF=)Uvsz+DzZ4$FZ`tRM6@UhZ2zSCpne>aemteVvLq5{~QuJUp{IO zrP5ooQ4Bqd#^Q~Ia_K%F)82CRygo@I=Pb;1{dvBorXoWmhw5~-+2V9+(BHi)-olR~ z9FQmXNLl4lrgxEK2m|umO3>B!zrr$Fsxf^vTwf#u4zUt7ycc%ZG?r8i~8DM`{1mpv}l5fc?YxsJ!@vTxC6YR@r^l zIcoAvbF}DhN3_+}BN~?X2?`DEP$ooVpLYjUgDU>XK@vkt5nnZ*0AcSR_Pz@Qj@(<7 zJOSK)zsC@9nsRb#SvaXza%z17yrc3Yn^u#vr};CEYg}mff?3BRpg>X%k=}LMfMIYX zV)VjBGlsYB#XxZmy@m5-j3v?^Ov@ptBG>UO|@C2MRGr{l#h@gc!4lD1# zg~-R|!HVz#=bXLcX?FUBW~!S!7>IIt#lYGSXK{JB(BKr-z^0D}Qq~$tIAayvv}Uzc z@}yA&xRhxvT<-7+I~q1S{aRhtQyBcVGSD{W{GRUb9Qh#|{|be_X$zf$Q$g4tvmTh& zKHE00qH_4`4?UZ^CSGz@R#y!v&k7)!L9{$=P;I`AOz2j#rdt<-*>U-(aUERlqrUO- zlzla=vt~}~607VhzS2H}Dy8}fw>*X|>NHh-4Gpzqbxj7*-*05Zjd+=n#5S~So$Zxm zzW?U+*12I7;<0g3RFC*vpjs`Xq?24BPKd8i3WBrqv_YEg$qR2Ry2>|<*ATvwTj=<6 z+Z0L0mUJw4G^&$PJxep7iWS(oWl?mn;Sa z%7!w<42o_B(eThIc@+qSCISfvO5`AF<_BGaQoe{U&+qXn4w%yO2aI6u=1OGZPk7n3LWs-$R{q8utm>`qhYEMS zrVqqIex)_pjIG-$NlyTQR!Xu9QqICdrJ>0P5h>FPjtSkclEA~hTO8SWvmwI3Pa$dX zir=Ypv%^1pYSiu(*0oJ(;y-Mq@@|2D()oGpUFdC*x^0+7@<$04EK6G;gB_JwVNpfk zy|SED1-50euXgD`GMl$2=Qp=-__MC=i$%ycyS%g~6S*tY8)4H1vTl<*)%gPB3}m?p zrAI}J$S+g9u0_nda4RIY+cvWq!)uH993;UTw5Xz zZM!K!%r!&3=-qCKw?y1mBve>|Bh?&7ZI zcqUo01i{GxlD2Dto55VN*-@)Qlq58}yg4X|RNDt$ak*$%DA(l=h2a+Z+8N_W5r5>q zEJPZOXE~sO1!#wNiYkDNUpZb?%X1Q$19*BG$ch=Md2?= znD$DCd?Bg}<9uz_ibMqW!XJ2LS%lnWvw|a2O@Z`;^zS)5qzu@31=)PEr4~|=c#-m1 zFLcBp1cuRAkt2xIVV;5(hQ#w;fIHePob9%L)2O0@H0dEDSM1x6g>=&MuO7VPiKNVG z8f}1}Qz=WyC)sKF6U;*PyYvgHptNJrtah;zqPb4{tD@D|Hfs(B6;omrI1yxn96UX^ zThq>b(gzVRVlKzPQr8-^UjF8JbF@27F3v<9PWaXV`aZhc%O=zy3!=&B%c54C z%)-^Qp>6U!^@=B4S6+Ir1{yumcG@2>=+r zoB8SqEISg~`09~H*c3`n&)9A)jNYGfxHWF`m1YD>>@Dy{D?xL9+-#PZ7*QUf>`WcH zlN_r}2*3$2bB3fLvUs&+0Wn(uC2=EnD zvmf)(!thp1_dYL?3NQ{_Ubz-CfRVYLk1NcoM;VwKw;ZjTMN0}}AN1wH!ygq*8~zfc z%cgD=D=9N3qe3Ka12?6jPPN;}wcKAKA2Q2J7(t3b6!MW{seFzglIt+u@MwHPK!ytOihKlR2zq2Aza(n#sr zWM0^5rfZ4DPESkOVjdh(>{s`^yW z3NP(yu%Kp@fi6m8D6QS(p(e8gDm^=`BX|ip?6cNFB=-BBJ*k{u2z&lzkrom5ldNo- zZ|)djHCihMl)u^S^tH{?tiMDLx7ry`_fCk}`z0@CISw2)R}1DjVmdWz!0f1#?x6wI z1l&Sdla;l0RMTh~R*wFapSlf*qg$-R2x0Gq0}&pNl--Fo_U=ahL%8hjq=ySjE3BiE zmJ{-dn=+1-^z5S!*;@+mKCT)b?F*jDvfO-M=xu}?C%l7x%lmSC0oP4`9{%o9=XtBa z*HQMhx`VQDDLs-)vPd-bXy2_sH32*gRh$XWPsLq?L{Ku=&@MG&-Ofit{Rr27BBD4bHG@x69%&o*+nm7JF zyhLhKN3S+L`f^85P8%7K`?h|eHPZfapmJmOv)FRk6M%Jt_0pN+4jzj+s4%`GW`_cKx;3U6sCTJ#RzyGdTx+8bO$ zg7yTkp!(D8M=M5fM>h@1Txoi_hlymH2!8xb<(UhVB?H1mmx22D2CVxf5W$bDr0ZOb z&CNY1DzEJ-Y@PrpQCdhZeL2K%^A1tGEf=R@H1a?P=)eW(#@peoR{kOJb%<7p?V?IC zjTf`DOa74~RfkroMp%APM3zw@;sPbeFL~U>TM5wSk^u>QqM#@g!{k!28%gknAndVuoH0c!Y3P_ zrzW&knpO;?JWW8VWDehGv8ySt-_wbYS1*ihKAO28=bCY9T4>i9U8ogZbDQ!BZPI)v z?f%{kGaZVs5GC^xoI{0rqG+ph{6Q6?A?7^_5Yj9{TPz$Hc^4J)3lU##RN_8QKIL}1 zvLYOeKxEGYf01k73B@+GXuMVB`l|_7R7;8!HB*oq$-n=hLBrqpSb;1>jU;s$Jm9O z2uqK>-H>^!f+%uj(`E=#@eNCC{xE=5RMaBq$dq(_9)B$LVevLE5hOpnDJP^j{c+yn zr2V+}bMm$?z8tS=gCl7VDTlf8^^HSy%nF}B(Nb|Siiq1v6mqxx55gD=h4U6^OxzOx6~ z#26?5QW!yGA5&~2z8Xe!J;$mNY1pDZepnajT&Eq)81@+0H&PHq^X*Ph5X2fd8BVyp zQ#sDrI4ID}!Z-2$QpfeXLZvof5Tfdm^0rgIBRk`Ko*x^?8Z95Ud=N( zEj^g})m2JN5;{3p7{fbG`@DJuF12*K0?f=h{M>@)g}U(1JP^1<=|skqRN&<*T%0r$JKjlIFEO}u>L zI}RgS4UF0K?;U?OcTUfqAlfysw@tq-)>MY9t$A`HE*gY?Gcr1*;RjX+EJ`3c=Gj;X zazF*s3qMTVp|aNeul_>x#+Tm)z8`x2_;m8{o2*smWR%-_0*G$SobaJY;bY0CH`dkO zi=f+;z;@}VeH>kJNG9INp(^r?ltPLJ)D~HoDzwPZ2fR;!v227G^9|aQcNhcvy1B?S zJPbBK6|^5QK*X45zVvP;Cv*An4cv-LKrCWBfGB0fT~CIqLP+2AI87ohc*nGifNHly zmwU4sE%^zs+v<*T-)o~`qPU&Ge>(0+<2E^-^(*0%HctEPy2KCK@l}+`^I`^4W^JcG zJ{&yBUgT@xR;-vm^QW3b(m77EJU@u*%91(CRsf)dp{UGrZ@hbYwXH>8$a2)sW3r?m z=Rv%^9rn$jY7#bss2a%_*z%wZ;-c8&@w7MONEiH0z(4S~4Y%n~i90n3gQB*;O! zYgH!m`gd4@@n9=K`CI*p`4r6;s8LUVsvo^LD(BraX+%pKb1nGc>P?8oCqSnR52gxw zzsBhz$8|BPlNy&j#Zt?_Xrx-HQuTMa|TfSwWINC?*?0wDwNR)zcZOy za!EZWIxNQ-en^01)CxUSB>(p{2P34FvBb2upVUirp`FP( zclWa|*h)C9d6_q-244(5jVx6{2ue^HhAsxBcF=m44RUf|LagB0jNFktm|b`i!u_8#WSB+g>7gE8?LzJ(utWN_P~y2vIg`yW zbrVn$ZjxfTu-6)OWm=yh)0LuW{=bFF2|trPz?hrI)+F|LQDukrw2vIKSj>qV_2bYN>11V57iMOg>&P z?G=%6=kEw`(Z<)QtUBT;uKrF4QBxL?hE+!GH2O?J=bC+F5?h$%$;5lX15gEpa)CRJ zz7${$Iv#DVe|xG;D_^@|ZrytSa&QYenEOaiHyY~zymM&03B~#0`gM0-Tz-s* zd?{dQSun)}N_uau!hxlQm_55c65_%wD(HG`{Cl2rX+c}hXgO-6JiOF&=$Wk)mK!_4>TQB09JNRw)hA}V1NtxCqrM<8s{~mRZw}9 zAuNyrY$d(@XM#z}()ViZTWU>qdwc^@q_bywN*mFT>u@Eqiaspy1>4mNG&CnbNq;<8 zLmFT^LFF+${ZK7Iu1p$d}D1rU(AmxD>E_ljebC^jPw!J z*`_AgE>T=Lo^{5*A6iV^%?vChbQQ784?F}NEe&PeWK<*y=4QT*#AN^VE35S`>Zmi} zSgE?_NFmytMldI2J-^XYz&-rVGiGnU9t%EQkwDY>lFclWQWHBC+iVJ3w- zsX~*u1i6A+bKOc=i}cCa@foNM{t>-(%Z7rehHkUDC0HtJhr5EMvRlpkDmMP?a{h5| zA8Q$d#CBs&B#5b0$zvzmb+bIHZTz}Bce|eex}V0AS2{S_FVhO*)VIQqu@4nEt(r|^ ztc**6SuRWybfHiz*PBtUNstOYW~G|qMw;i&gkDqo6?E1bfRf|`u%^FDiB0XH-@5Fz z1~~y@X^i$v89{M9ArOOu=nnL- zaiG%nGDI?~WH5T#x(f3q&p_F}4THysNR*!pc6>SzlJ;S_QjsB{$XD-xE^P>;`1 z=z1^LkdIc=ymp8k7fzktrMLMJ6KODnWj#ifv4w3W8vu ziN>kg_=*%y~og~FFkzR8M z$KpJ;a7cK7`U?em^+3ZDz6^19xVEj`yHqCnz_GjLRIS1s~PRb*t{o#Wz^l8dxhB)>u~P*yb7G2%_`O;mXS11L+F_s z_(!2P(eID?lu0eBrLuK(p@7Cvok-x{8cwN9INvWL6?eLbocuIARqI3?$~$ ze^;4uYKvNEnW3TMBSzyGlwk7LDCG_~@1dI{0fTfsUIxoy^_VW_zz%O02YgpBzE;`H z?ku{#^$FexR|!R23g@)!_bSg{9vHkz;opFy(5fXQSLnNJrMU3)>uv~3&cSBrxs{ka zs0_m-!gc1@t!x>;*>kOE)S8nR+*M;=O&IvA64eN=!Ld8Ma(A#3(Y)Kg!8P2T07P~} z#cn1xQow|_c|5Eg;b=d@rtzxWoCK#?TPR9-(dr(JiE+9v1FnO4pL99Ov9qTuz6`k6|pkW#zG696Pp(Lo?0 z68W*BN_Ms3uYb`}PURrZg2S?bvGdj7$tKs(l(9^Yyum(UoST`<6~2lCS6;zSE}7bU(2TzwnznQlZCBjYa1=4BMA zw{(LOIj6)SzX#)MIRyHvkl!>;;v!+iet0=fATXFjW~`Bm(Nsi7_SrS3b)C1^yn zqXhbBBx&9&&!Nnt%T$V^NrN;5|Bu(beZly9Y$^5cN1XdhEmYXt9a~D$-+uZ_H&sV!|wRm1=L($Sb(|>pSejGUH_ah0kJ>R^7*A5Fqb#=R@ zN_3i|e#|Y6HH~`P`(oLK4+~Nmp)HorKCVBSZX6D=TOa$0w7sv@Fk+=?l1$pTH<1Vb1=Bp+Xlz_HjAZjS|lWgACRP}&3Hm+kv#pkmdBI8CrQ@M zz!bmr=%sEmQGNd0n?wq%in(gV~vf%S%$RXOH~#n)qVeaK-l|FeBOH&h}U&9PYfjzu>dqDdnx}*XK3|UmadLAGw!hbv-R z9{H{SRz|wCUXH&t-CLt<5Av6k)7zd6_TCkD(}Pm30|qtG)4GSJ$D<`0}@oR0C>Kq5$wKFz(Jw@vDeC=e@#%Hp`J(dUHnlP7R)ib*cE~OIlU= zw#O3KDdnx~f_XycP{cRG(D1={>MxgO27!4j1q2g?nZD_@o8vbgcC^QSRILSHD`jjY z^fz;~s{8y@uEYP}?@mMaYB1|%&X4!x5^u_^4j&a4u7-I3Y~NM(+(jMY?WF#-S30w( zP*U|%($;TJ-*xhg?!SD8)FRg{;p3i3!Hr9riLjt$ABi`xTPrxpJzw%`r@Wl4Ct(-=jS6JLHI{p;?wr+^v zf9p?iBFC_B#4pJ8+dQFK7C?cfSRKx=Wgt{cbQF7RC&pA1K>6toQr;FHE@I~Oab@{! zPnPjTv-?%qK-`fZ`xoPyS1TXYf_IqI!bxW*L!p!T$S$|hp5tVk3>}BPo&?^p=P^Ef zA#y--CH*=7lpp5tWjzoRw=vJ9w=nn|ue@w28d;KH;3FkiBV5Rlo!zOdj7o;vV=S(g z{1Y?}ZWvbTbiVQrLkB4$N8FL#F`^xYxW)&QVB``NOh{iM$#5k{W|S zvhMi(>nxT^rytpGm~vSU)O~uI!^jIHO7LXb#{+AM)&on})gkXzwhlKD<^oi(qy3a1 z;n4j=N`f0s+@`=XNYeL7jQkQ+W_#W$gW&h(wgV@C`{$c1=k=JJKfEH*lbvfpjO^Dr z{!f4_;@5Wv(vJ&E{tNNf)Sh*B*ZTc1;vLWbm_y{xrtAfWr?w ztLRNC{QUJ(w0w0@Y+#Hv_FF*y6;qP(m5>IHC}UA40ruom7pN@ZjVpJ%}Ym6`Y&xj+FzYULt-5DCS$!ERs zAp@GcAHLIOTW?!l>C_ry7fpUQdePQwn`i+)VW<*rRzI(jq;!yVo$bZnSVU7$Kael) zEvlyF!oZTPW5VVv3w2h%JDw^n4KI@pF%c)23vUdWWHezs`u%$e9uHso)U3oM+$Phj zX#u>hj*4aFFWD0x-b&(p(I%5`o=yi(vtnZMHLpzCAB+xeB8#c#XFNYEV+xcQbbr2d zx&8YIuxiG5*|+pK?EiiBFNCzsaPB7VDrN1M`;`2YPSxN4mvI)lV7gP9b9x!6(%|@- zWb!tI2$fJOeLtMM|A1_A;tfC`mX6HQP>?~$DLXUmYtf`S^HL(bT9yAqe^$ZqyG>zH z27UG*e!0thv_Ks$;7L_YZVF)N1Tw*e$q-@y1-Wa<43}w zjw{<4EY&{@Sq~4b{SsS|8u}r5(pwxR> z`1N+p8bf@-@6q$I<7Ki}S|xi<(3kFAbQ|NmoV=ZfO=L;3v_kfPS94Nye;v#g+w$%|G8KFS z?OIfsofOziXzws|D|ITn#^WKcTH(~=jKczJap>JD7|XH&Y1|^%zAdz%xag((F6~5P z^Q8cis0c51c;_pAEsM*3czb6YKndeiOya`5J3r_B?)9zP{z-R9*}IOs{=Z!kUj7#x z^6V3HCu`#-{)^qzot;eqL058W{UOORzE1#qlt^Ek&UgR=;n~AC6oofAYIC7<^4a^> ze@#(Re&xl#z&Fd7FfqnpVmdv(h_9{KpF(GPcX{W!`}g`o(qbxI#cc;aZ@%u+!v6{5L^a=y95uGygcXL zbMF1{Uw5syKJ@P0Rlkz%sx@m(*Z#ZscLPAF5a47F0H~;N0WbmoLw}C}L=ayamp}j# z0QGs<7y$UYfzsyaD&bmJ{F*w;uG8uq11T;M4?HrwygS_l?f;4q)f?RCGY?-8`7+wa52e^5-+4)#8 z1h~1vyu||~nf|3*{CWP*GCvc;zeIdoB$;IYvC3emp~WEY?q$aS<`dwx5fBz&5C-xA z1%*UJM0glL0zd(N0T4eB#0wM=7X*n52r&FNF+E%Jvb7i2hA95Gt>-sMrvDDg-`}6l zUy#q;%Yh##CMNce4iJda$=&QU?Dj%5Lir1K}7!F3jR0n*%qJe zGZrWUk`n<7%gV`$f`C8;psc*Gyr_sM2qYi~5fS(wtP0HA#|ma+_m9zkuulJj75hK2 z;__a0RzB`ty6*0-|IQ{YM|U50Z%20z26-JYgMkyw*4^LxpM!qZ{2VC6&dbTq&Q{UO z-HqX2doJ$u|F8}g5*84Fh=_>-uX;(zvp z|DPQDUpe>hrRPNcXZoKCdVcv&4cft;kId`2!v3BD@c&ge0NcLjN=Ev-0*C-0{fCgB zXUNFUhYfqXvCZ3Ay)0!zA^_5}8dMYv6ci+^e;h#qAfphWG6IRwWT7PJR!pRxVW~wR zGK^o1%wK+BvTU5oXd^CP3Z_=`;D|!}b%1~__jJ+2 zRbgSK=Aoq}-)YIguj!T|twZwnEfu};s-`51j{0J>ENmpma0c@z>}#Z_x21fqyuaWu zP$;{|N2~fibs5I3=TY0;57{f%T%F1tpJYlFr>)4u5r*PJ3)n z`l;ON-|NR>*VHnw@sG$wLY(OVM>DDm$aTgh*#&Yw4FQ)RItU2M!q2qmg2pv zkQ52Af)w@KPqE<-%EsvHCN)Ysa@(rOC&Yxw*kx#aF{U`!dV7AW?6bLeS7ujfKma>W zhybddE4-R<%xK(@rH`8b(4k?^G;(rYg{pj z+^1?}+)9t|v^dd`y--Us8iAp8sP2PTY;#!~nGt>h8N?rfmzoVyr^wIBNTPpQ*0U%S ztK-0Gk0IEpke%j=UrS~Bh3vLTKX)@-X5t1m`0u1K5slH#Lk=dVnqXo=IiIc~E4ku0 zkP8-6q|qe8iGp@3UD$_5FqJ(_oSV=s<(D!-Pm1M9Itt+-Wh8(Q2ul4sQ{Agq;Yu&g z`F^&pv$?9jN@;fMONT=r4xC0REA@z68SK#d?FSt_G@zA8$_+b6Rewa(Y_{v}6)Tuy zygN&aR?Kcd&;o8dwmCobigO#xN}4~aygDiPY1zn}oq9D2__0dXY$P=;xZYC$bVugo zwA2gA^q=xMriRc0)!Q>7V5sw_Tp`=}y$O+8$h$B8h*KjWjS7UlE$t}9;rm*wuuKCh z84Y7n9i|**ViQ25uyh!t_7_8qgI-C7#}|@d&2~NVtbUV6k_tOBRYrL zVyW2Hhmdm)sqF37urMZAk?tY@V7$>7kTq@B98x&l>9jvt|5 zs|C~NZfm4%Jy{rr}L{ynqsKLw~4&TlZvGA;lu1b)Ee3dF@l7uK} z!K=CN6Lp_!5!De{8V^f3e?eO~Vk@mcaqk`PMAh!b9+4p4 zYO=K_US@PZ5OFr`cOFhSKOzQ2>G5%!2E7^t>k_k}qUIMDrnK-~x^b$lCTVPPdn

    $_kN2Gck%&&l?@_3CaTYih^W_-1?Ig+K7qV#SR9sip z9(2DqQaTsBuYb=s*BVbn`)d5Q*!bG~ zSr{B33D80M9o5|R&9#m6iF@|nfar<-Ut6q;2apuIQ+YdMRdCWmE+?D{JlW6+lhBJzdQA8 z=0KosMr~M+Wk#{5-Vp`fNGG7^NsF^u2&vG(3@zKw$dp>tiP2jk+G=&>u7rA7TglEw z6eok0sGyn3#F|&WM2w1d2cWAb2H8`Q6CnKtr&Onzytt1c^<8L}&(+^HU}wvDC%4L{ z_VY!LxgjFTB^9_vJH8-71;Q0_iB*R!6~vbD?3hWI4=jglECm;2(s)0G__K?jBj z&N$9=u5gScAg6IxcglTcD{45l&TNlpvh`fQ(5TO)-sXM{C8)B!r!0#zV^x=@#pe=- zHT8K=Q-(vaBT>EIPh!_z23F=dvM?Jze%_k(h3c6UCKu}Za*_2hprOh|-Cob~iB_MA z))X3NwLUF7J1;tsKIdkeO-3;T^TI}%c8g^rF1x_P%*KM8*X76lgXui;B4oIJl}^fL z1F0Z8=pvZMEV?kmr$`ggPB!NEt)MlTI~_|~y{d(A&f~zCz^X}xT@p1^w{Mt7GsMk} z*3sM8M1R58=Zv9n^A+oY0d9|)Wq}xOlO6n(1j28;q$n7{Uz$i~2^nj9u{<(90U`6X zDHQ36gCJW|}Be1c))ujsTBB*}LWl zcy)$sWo!(?hsuRr;*2;e)6)hFv>JDkszC)mmCboO@UWNIaKI=1+u<)Pzp`+zTw+Gq zn}`Pe;xsY^1F|u6x~#k9J%belu)daZ%$7~QUh=FmkarBx360&BX7qU7H^q2X^#HSG z8Lcm%>oZ6a&KN`+u`d4$a6U*G1VYLo2Qjl8u%c=MB4MZ;a-Kvi<%vwDSb^zfC(;`g zdv_xLf<0_*cgui z3>#6)Hb40G9FAtDX6E}Y89h5CdrX;({f?#sA`>l;z2NJ6L@wD++XpUhoeWt0HpALd zD$R#Ey62vFb0hChFfM^DiWLNORur>B-$BVegzkrtcoY(Hv7--QjSSag$klUU0 zFuX;fu6IFfhpy8!#&afN-9Qyw7c=>~wL>cR4Hl3&?y6Ub8^^4G!;^9L@>$T240? zM0!_Ujp!7@?NOM^Lv-*hz-GL%ody(&Kc-;Im$LeE$z@mbz{`xImKxPM-q(Ek5PsTj zcDe$KFQF{??0)lSq(4hcg4s{Q(z8RyKhWe64 zoZYq4RKh6FWSc5e;TslDN4aitM;tbs71+G#ofC3ecy1sx%yE&RYi@BTk=;(WYO`6T zP|{I_!ptzmtm~8JsbSod>VuUfYiZ317Sx3g1Id7M*jS%zd?trk4uM3(|?~`NH&(q?novX?-KyJ~>?A&|3DKiP>73VtJX>c?!#?W++_M6w9=Mf{n#& z7l{RjPxFt}m2It%W5gD|BS~2Nh7&!h)7x;lAOqNV`kFfPh0adEC(Es4 zsLLXGW6t&?4*p2zdvq8tM@^km#knKX1(U?5T#BG?lJ-gJY1lC}vzu~AGKE4Xt4SYA zJ7VUO*0Txl*9=b0N$dh92yzUxZ#L^K^m=R&G?|(o73-^F^5k-}M8<3<+dmfia=_V` z&=xsmJKZL_Y+4-@ykVbxKyOVc6wDoZl$9<`5_Y%wX>@tNjJy;idfNNiuIq+*dfD>h z)oC1r4g$b+fN)CGLV_~AVo@A9#5ZnmVtHUbv~efFQIuze^FJ&3LOSLqV?z~;vlKpf z^^;$BHOW$$G!rJ#md|x}wwk7ibl4f7kTK|Vu+#M+$rAq7LDaeD^Ss#E&ek8SFOH>+ zw-Rh_!0K2;%X(v5{YSa&<>3j1EniMcNQo@tv=_i98|H=0UFx0_%>loMC(%%YXTk>< zk6*u~wR_Sq*P|66y z7j6#S`1D@O7#$4Jsv;vDoK!)$3fdWXYXWp?<})}#Pc&$ixVVxK0L)<=+gGNST3L0C zq@{DC-eL-gpGjk|GQF?Ws&zg4c6ac) zG&V4q0El|Z(P7e-%@dTEvHK3e3gEpCDqj^7^1N3~#Jdp{`WAP&F1x(psS;bQ-OX_k z%s0pTxN7hkY(CdvKG@bjZEqWze53j;bbLudU>i#fC@0oRH7J6m)?}^H9Hp^YG?qiz zK%uOh6NW3xX;LbKw~DQ*<$FY$L=GR^)$>NE4E(O#8_x}CPT2O;Ck7Us&-i2U3x;wi zsPPKy2t`x~rX$6n3t&Y%GwMz+)40qk3dhlD4wPt$;u4>1&7^gx5e{8QB;}rNCk_Xc zh^#cbbWeJf64b<}KR{PF@L!b5njSPjl62vU(d;8M5h$h~yid}`m4v3_E0)G-^5P9? z-QNd_In@=o)6A8a;3*VmboiI z@6#J%eU@zotE{%7c{(1pY$&`f#8!-|KC?9O9@$qU97na$nvS^^@u~IJHch;!VfH9` zkv7UiG{#c|MH2NJ$|ScvxtMSAaropcigGl9bc(|*QwXOlc>G#Vax?P5svFHxiD{&09>*G*+X_ncLQyW!k-Kg8S{Y73dWZ+mINUuliLwv=0iyajGMJS&NM| zSHs+!Q9pB3J1Bl_OVrOO*xFn9OTOP7c5e|K_>)(KKRfvD|&9`9pS;!rTI>3=$!t_}x|v#VXU)i?I6G0q`77 zSXac@GA*fk^(<-&u`A)@U>PdL^t(6qb^0~=z^NZj`Z9pILMgke`U~(LCc$}^O+Y4S&f&p4?(BEClf1Ol(|e+H%u~>6-3U{;`N-1I*dmLL+=yW(vnsV2h)uEGU$6Tf6vVlC|{lPLbtzLy#VjY5C%8!5&k}A~&&USp8yrXqCbu;j2h`X$mGI29IY&kuXr5Hq z@Qq$j#=cWL06I6N9!WvT%;<>O6!6y8N{a9XCB5i<519Gi`uB} z@~9iP;WCoAHPp1zN$m$3i#F?M%(yev~550QCM(k)-QIUS%*THnh zbU(HA09X=3PPhc(Emsl@x*J}|cZ2VLP{y*H2Qc4a_|>?4=`SBIjc-fYv+vd~Tr%MD zOXZSZC2bE0ce6HCJf-4AS2I;a6U&cUKmSQJSc4aTM090Vl?EysxfU56SWU|Io1aW- zwIMV)_zuc_D0c$_XEj=)%@_#jqUsp%^d{1sB{VT?DFeH`Njy)j{y_8F+m_|NWZW46 zdnmYz3CXF9plFm>2sSya!y?=iT4$(ukQOFblW2i7dSLPP6MYMd4QxhnmGYgE`i~C- z4Ig+r=%mobd^f&9$nHfF6C%k#^36f9sd5FRMXoq-glf2>=`poV(^hs8&xXIn{J_!7 zgcTLrwu`6DqgRb>>KGprscxk6`7B6nnz3uMkc~Y6wh3omc5T!!vqAiH@}peXZWwmm z{3(p%Fo7dHx^5uk0WSg{PyV3zTh{_PWxUKohNrxLZKv_Er-nmvrb^c*b$$=4{ zn;S40_o#SXNK3LO`$@H_QjXlt%999P8OrY!h5vuC@e7Z8Q|twTb_-pjh>n zrG+j_)5m2L0~nYO8BglEVLz)zy+vMcsBR`Vb|CPyIRI!PG7O7;%d3~t z2bPBOPksK}9d)rRV(SD>yXDh!4}Nq*qDcd;){XLXOQqTA$dBPJ?L5(lg4#knj%EpK z-Z(pYEuQdC`CmUX9J`6+CuC#n&qaD$RIN-luCy&456=(5ow5g+4Y&B1(jPy+f5CYD zF~BL$&FxCP3W}7U!xhU`h3}lS>ju?x&fevSRm?zIa0~RC-o!u~`T`5GESRBgsgL%O zx%d-uty|%Mcx@ZJ$>p;OR$%@M=*k3RvI6k|05Avq^vF!x()F`e<+(vVO%4}g2Hsu2 zrsXw#)R!f92fChYVA^1(?)n(E{v==$ubkdW&ds1ZFeYVG8MkXBE5IU`Ur6EcBMM0J zCk46F+sky!Qzv@(J@3!EXrdkUnt>xdT#eCVcL&M-TR*BU^Ve=U1qWNX(o{HBXPzF; zzJxBF{R*g<7+Q{1E**%;>$w5q1>rd-1-hO_ttZn3Y5z02=54$!Iww0Ge&KOOd9{{S z{%*<9Pnk1?-MC%Me@-iku%pR<7I!yWBW zIb*V_lJM3Bmn5hTd2G%txk_G=hAiJ{xcwB~UqB&-Q3-J!xK*3`i#f^#4#M`Vf^r@kW@@L4kgSJW$u)rPeS#Q5M%c2(&G}=^AfVi+wIV8wDpoLd;+-8B~6GAZj3h>#}chPivJMWn% zlAvES63ju{nl_BSR5annzu@ho%zSsmwH-`{viGnw^&N&dTV2}NByCJm2uel&oNzhD zm@j|9EyliMv7CDiw3u9z8P+NPaEXHI7`z`|L<-tM6XSFNd$4jw=m(xqd@vl-()nTaf#Rjh~QK`$AFPk^60+My#3jp>Zk}Q{Pdv(@i%IV~`m0&wkqbQ0D{o z!0gQlc%8Q41{3r6O!3mi-<-C1Oa$VCu9o35k6WH+%MxuAQG(9TO76@HO*TXwWB*;w zzQ#Zef>Be|#F`!?I8TFA=VsP#$H?lD@V^s4G?}I{usFuUSo1(ab}eq{_KTX2oz5U;lLfKTQ$_4a7wzNY=m^oy&@VoWG3 zI27e5>lg!E;g`?t!@wOxY2VYB5SVJ$SAPKl4R0?Len#JY5P_djKBOkRt&!q7%1Q31 zH>xbjoaUm6_r2|gf+MQj%mmTTIU%^vLcaa|GB<2Pb@-j`+0aGiFy~|77)EL>5|Qhr z1?9?&P7bx30yO4bH~MV!%dyLwBOhIjBYzGN<)h9dq(w`PL^Kkuo)_DAtwEvomuA9) z)=MyXb4RX16M8Rvh8jQIoS{y zZRfw0GAv9>oOifJM@aUzQ2Pb{$VUl3^k4gC%U0B{=|s2lGmj^EvNMo;;U!mFG`(Ad z@)oUCKzeFxCuYFTjB9!+AAOnOD3T*gC8ED3>mv#YpXwMZ7bqtd!{6mH6$|Dhys5MA}F$(Zme0m#>R#TYgAU{ zu{;%3bM+4ZgqS{aKBMweo5n~wS}w8`8d~<-TMU)P$%{s`K@)jB6!MF26B1%a8))ho zX&E_`48#8dK3k}Qp*2x>CZmlJADIWDoQuO*v>fo6Z18XywWF5tyL!J~wJpt&nocIx z@hOPatK9v_C;HUz!q)6Oo@(5+ECd0GH`HWfTvj!&Q6}6jbCxUxsM6yF!e(F^KRh-K zTKs+LVThq56}I(a&|;ka!A=r?*P8G+t&7)FU`^nxyuSbv_QhJjY;~QcG6N*>fe2e)Amv z%oom&@V5S?54@^M1J>r^REi>WCm!scyf@NKEPehg;jod*kKOioq)ZB;XHaJHvTxm) z$rm$d;II()Ia6KzJJViKx3N?IHG!f6J_JpCZFEu{r@UzM#O7KwYmFGQTj4y}`fDad zYwKn%c=17oM1@vwKOF1&`*3@XxtThJ6WzlZ!$BJNFZIPgpw2gTdujw!=ciyP$e^8{ z*GxyyLzD`!!gp}1&3DoB?wd4rJr))kCNxnIv01c8NMz$Y8j4BV!ldWTFH^hSeje1k zJGq6Gm!GybZ-f$a)KVpgC3WTIte3^{3Ru$YEEo4Xm^`K%=2*LP3EpJg5>wIIg$`F@*vR#rrndP`7!n1?hnH8e3ZMgD-2)Uk% z5+79{q`z{zjdW15=`%2V?$>Sn%;Vq=AK_N90qyJ+n_QOiZN8qJ1?>l`1a-R?1uOFh zok9|}FW&a-AU}SkuEL7}1#p_ZVaubgKkcN-Ifii=hN=bHxcd>dbT}lQ@JX)6%Ee+X zJw5*@Jbk%arY+^$tdjOp0E=cw3o4+>2;c>z`*=gd8i9AWcrrUhwdXl}dqv(mI1|tEF zU5s0CvtL}7k#)*C7zLB?HFC>~4|qN_R)0k5k=N@#K3{g7aqfb?3pJfI2X})8cw^3= znyP+8vMLn6dRVs^?ibMNU(xMVZ|s#sZ^dHlI(!Lbx!DvwSKmrab9b*j8o4v^53byg zzt<#FSSk65A{yV$fMiMHN{vOTI~o(B3cgyHv51bGsVl=n&a}Y%3&^-MX}kET=L;1a zebC<534+J>17hIOGgxnqqq-$dy6%?1f#fp?nqUBGg&Aku-eL?@hEA?<+&u>*0~C34 z7l-yIY@ry_xW{RMf@r%=a6n}I9N=W9%tuxx+u7f6hKJ#1HB{{fTd=hxZ|2@KElKwD zxzPlt{E>X=*kjjM(wqXoH0%_jXs9Ik+|bt3ekuHI_~xob4DIT}?^r~-$?Y+)=go-| z{SO9nU_?=DiBy^)Ki&eR7oqd~f8VlszxoT|a_5WSU)RL7~$ zTHU#M?0DM*r+H*E9Al?jw-oG*xy=tx6^#6jrrOSK`2l5LAI|5#o4lt6JFz!%o{z`t2S_%F(RpcrFg*+Zs@AE!~l7bDZAqD5jBC|4SoT?1~I19qZwdVae91x$=L zV}P~iH~pkSHoVzcgOuM2BOf2q1b$u_5w_2J7Yw05C&(#VnK-3Tn09hNt8jC~@$ClX z^d`0WenVspyqCYoa&s7ap=rdMtmzjp#9%KDGet2k@_qbA`%;f#-mKOP5h~KF`=b-PlEt&AG$@kS0>KF41Y$ z<}@RmE0@^=OZ%rtTSm06{Eb3jcFw(aoO!>F(~cTl0=nKi>ref7%hyLDOCgs$Cjlf? zASR6DT;;uB@t&Hu52T$P&%klAsrt7lXIU3;yT zNuA5}hEG+-CRJl9s!xG60i^}s%`B{!Sc%nK-9yvin$X^U(S+QSyZ;k&$M<0Kw&KLI zB;9ZAS_;A8cb&9+=eed(=pUCouUD*^X<<|K)PDihr2QS)wNDC8a(fV=$Vq+OB$XQd zN(f(kr3+=Oyhw`jit@GMfSA75hdSlv6pt#UCwYo>0QLySbWvAmI~vejn$dN|B4R1; zL`u{NX0{YcwVE`2==bFBkRN23mTqowu)vY}QLz!KjRa+YXY%eLtmY@n32PnF?235; zat906H$E@`Kk&P$(;mK|{7GJ#Zun5uTsh41Uh(@7cI~`T6YPf%X0Git+GtC4xLgpa z(hl9}&ttrwp6=SKnGWE=TlyWTr4mPC$& zo57A3k~Wy3mWA$58P``w8d~Ialyg2=3*S=izWN9w-ZH3t8e%!c)~brro>{m-&zBRe z;p0UCB#L+esrX6lOuhar`E0aax_yIGM!W6^yxVrJBFJ;p0`pe!4{ju>J`nD5`aPR2C0qb4MP~b+muV9PYEwarDv1&$G53ycN za>*$zCqkxAsBq@8+r6%CJSTvfe>wD!Xtld~q7>;TQ5otk&ERDYdu`fIQOdaS`fHl?c z40mtydlGFBIEi;O<7f!!k1ULCIS64M+Lew|KFNHoWUPaBQmyZHq)@*5Q$0{2z>~{X zS!SIqG2i&a;ac}EKnt^QlIf0{c60+LYI`fxj?+p7uuf-q`xY|iwc7Z;Scl=M%a-5M z@c>m-7AkBM*WK9SQZmcrI&6(Up*UOimVWHR?{d~z! zI8u78q)5^RtxSleAS1g2lnP(K*%)X`_ewgkw+&qAK2$DO3u3u%p_VldsFnBc^5%v{ zIrIv2y&@aVIi*HA#QbK5@lln{QOh|`g|45ng|5?^sacy45X%BdvZ!RpuJgH$D_Ecw zD`%BRZ5jsN#fNTxa<<){pkoD6k$x#5t-C`9wmpW>DE{yyJYmX!8o=e+f$Exv6=Lz7 z@&yky)wO6HWn5;L8G3_*(imd-^!~;A-*UfseC#Clz>iRqpr##b(H*Nk@Ahg5vNQU4 zuaTGu{XQ$oiK~O9yYd~jY?~24*6QG8)8?s8k9ueBG+>U`(kdW?6U?6$2rh_ssot`U z2fz5zZ6sG%TCLi{-Lgt%4OXys>QYvnv(l4G)$^m{OELlr5TM0y=DjYEev%QxKG~c( zGWfvXuv7REQ4n9n6Pr}B*o3e0T?KeNY?v+7I3p2rI}D0_r)Q&1x649YsXLZ~-T8HH zP?Z)?CB|N6Yxk1%>w8f5CHu%rR=gg7EYxEFVCxa=psq<30n@qzi&H}ZFO)`U7J>eo{< zfpPb;OgUe%SSDG6@vtp21>KOfp1X1hv)RWs3NIlm@T|?Dh}NA_gRr(mIxt^gi%I5I z)=7p|;@g(6S(&&>-GN9m zFWbJ;Yd!a)mh#1pPHD3_yQQeKd(G07B2-p1WOSOa>Etmpx?6vo2;+b9i&@lvaosuC zz9JR)9*yFary&OB=0vcKjWP#HgZtK^<8S2%z0j*c^z%v8#a@Xpi}6EArP-jQPwOYa zD#w2FCaqt(96z%LZ(ghf{KE63iaPuXB zY3oo#jw-CoAB)>0qyBIo|4iOTX1~vjLk;=7j6NSB{R*CJX8-Ai-Fh#shS|A?uY_3$ zDu^-qvgQRxe0(f-B9qUFa|lIC0!&^(#J2O>Og!!%E8V%M9m_O{%$D zPL6#tj&??=))EeKu@Uetv}N|n5WQ825V@0GX8knfUlx^5xxM33ODJWe9+nuZgN|bH zgYgx^ZUVb+ZoP>7#|l!>WP^%7eK`CalD$~(3`!Km7;?UE%B0OOpq5-VeMNlN}DlVlr$SfzS+p~qXds`orei9V0~*YKk!bvr%A20CO4qQd0=QM#G;E8ZM*c3 zZdx)o<{dg_50m?=7sxt_UBKG?R)Rb=Ukeb#K{_l;!s<)2Ht_G(!a zHp=7vLaMJmjj0o}*y43Fk&Jg{3d)MdVB=0JOb;>H;xE#nR3gZf0(E(7x`7h%e*s(A zLkkG}wps`B7dS-=wBmg;H@7c3vBCrK81ej;nn}iu5zbET4O|J&ZAy|sPUvcr!ZNBQ zNz1ItV{hT=hviJ2W3oiKGvDT&c*(Sa1evQ5$RIP(;K)DXXX9!ah=gw*VwzW8n@p$q z`uAa~z;q`?SJ~{v^*TRx4EJ|TamuAS3~2|Xs^|iQ0|+vU&^r!fv_d;yw#Xp@5yS4R z$B`ZW7kAufXpz71CTUd9+7M%=7BIUTs?ju2Ll~!$YNhQGTW0}f6f8e!+!{csUcEY( z(cp~(r=6Wrp{iU57Vl-_ocoQMm8=|zZvV1*Yr}3=zk0fm^bKx~fauNU4npAmjpxWcT{^v!br`_jm_px#1Q-NO=$+!tG zEjI2kJZc;Ozd{??aE(T>=q8lMY2nSc_1O5f-)GkoysWOt;|E?kzZ%si>N0iO!O6Ga zc&~bKo2{veZ`5l;K1}N~2rp%)|J4mfQk>rgjfIVcK>#G?#_}zCbo{CzMN>qONZcw~ z(=)OnN`MXniCBzvv4f`s6P6$o2Qm?GbapbQQKm$9n#7kl+aqe@(29i8nT^gkw%*0L z##EHB&g$4YDP+vkuk`Am4mT(*`u&8+B1xB{no~?zHdJWx&)l%9EL-J$^#){gN~wf} zj7-m3h`TgWtT~5|?X-bL{5WNZymLCT-4k6{dB2B;?41+jbrhJO(nmq}i~&)qpoI3^ z6|LY+9f?dR8GjzS-`LUsxEZ zNDU1Tb&a6aVGq+ozDte)`2*8Z8$g&o{}_wF)iu(A znKg_^SYEqZYAtnYP*Vww*;HnPdlr8NHa5pB*HV0Ar}hk7lys$`@BVla>=9$HXATH?*Ig zcb4cY#XN=nuIKv;u*+gEz*9oGze^y0q0}K7wtaY(+rh@?I8GxxLDxk75a~aRn8Gv6 z7-b}NJkU$Q;3&+EONm8q;lQNdSovb-F65gK_q*P`j)PsRSm*84A6xEIo;YimIz&J) zEhRdt+w%SFFrfg}*ddL_2^eLLgc1;h)w|-k^2bc}cbP~ZZu;Hen)qXn$Ez6spOhUB z0}?jr@ebt;)a)bNp^r2{+6%8iI}}N@g+rbtXsSy>%rlT`GVR#zx0=Ns3(WrQlGD0r zU21r@5auyw5{scXWezE-ODT6H?@Y(xTcdQsOiP%yT8gSx@RUuR@=fcVOiRR2k&MhB zR~g}BE8$8_f)ffhPrKN_Y=v0ZqpPRtx84(%H^VS2r|&qi&0n)_cIfUA4kw^?QQ9a~ zVSTd_wLp}|FM1_5@5LGAs%9Y=YC=-R-2|j{nY9zM1#oR8a7@RWFGpXV|F{ekS`*9- zxqj&?j_dln@+N_IU*~H{W9o;7WochI{F(UZNKk$ssY1T@PC)c9Pob**&s?PFidQ6(D#ORVrSiiQSkWx|!{YWhI_Zo-@A?Dl0iuP0+-;m}X-}M&bA?%ddjSkT z6p2%gDSABTRL9D;)DoT&$2hONrf(FMLbQBroi^AV_V!QO>a`HJ^t$&@i5MKTFZtX| zYz#=6ey6AOXUbWkJ72i8$$pRXl4VT$EP{wgkr#QoM3ys2`k}wxddnw*8k=uu*rAI- zHv^K|JH87fkTYl5*EmO0+2T|La8!-!zP-@UF2|Q9)w&pKHBlA&22pOl zSXpd`B(Bu33k1l>&vI&!Pfm4M#wk857__Y-mb4Y=Nsmr=IwBnFH)(zEcU zWO=_(kGJxZaKwa!8#yYBRgo4so9~x0kzKQw_xuI;o`|`bn<4Qv;NvW|ot}O~6yv@N zYuGb=Jsh4!u?Bv8bBAR;zup`0gyOoIR!->Yx4hr(N$#5oSYuey@z2Lf023GQ10?+( zT&Tz2bi?;EbGS@~T}`ICL{Kc^#Ed^w#D+M>YHj`G0+I74+R_*+$n4OpF%}V3jLFz> zskEp{in|fd{JL6jZ@Z1R(9a4PyEHld8Cy@r5*+TY-w+#exG!k^|}n%wjOk(<}OqRXc}joXUyJv3b0 zMZRXv-))UD49Ku6bE$ZenL$nR9fe?JOfZ133~cUlXAV+1SebOX8y{O^_|-K9ZcYhg z$B5rEZ6{W;u}_xT3sPax#v^vZ!&D+x&3XqQfnd`UF3@*Lc%v+Fu>~|ydsRX$McMSlW^3nmUizhzl%FC%I2}TRgA8RH=w2tXV%So% zD0nDSg-8uD?JaQ}k41rrJBS5>Ip*rTlL4a9SL#Ah8hSLTqce`OL`HU~B`er50L&bS zWb>ws`Q<~wd0>hT`U6(ko!}a!`oSvg&16?W^U%eY-g|h7P4pX)L23cYd z4>JM)k^nRr43nE+Z#%})A2z2CA6whKN2+K^Oqy8hCZO0i)MJS{?M&^ymwPTx@+BE% z%aDg~IsAdXP_2qhN#Ffo(qC?Mf7lXD7slRgI0Pcd;*`jn`?!gX%vG#JwW{EM0ku{l zS2}7P{*eQ@)%q4mB?$sTIL2^S@Q-Z_nwosM31otaz6B)^jA*TTuk$k0VM*B`{)3q^3Cfj`sgQWE^R00 zNmY=n@tNTuN~kf$)`QUQd~7Lnku{#6y7XmnTR}{WaE{nQl;@O8P4q5fZ`b{l&nT6S z-qfPmbN2(*yy4Uj&pWyg2tzi#UFIx}nqP?cj4ay&3K>j3c&aX*LWV#tGkjLknffzs zlL#5@jmKV$6t=PGq^tdSBu@B#f5>UC$Ln(!X<4>}?flkmLpoL(wkC)B=db4Yw8I|W z;XlbVXk8syzYbs9K4d0U>Q*EAGW0et^f*xGKFqUNMWjj0H@X=j1HVZIO-|TG^&LW` zS2sU|3=vrDeQ3CjHsU)8*zz^`aI~CprV;vv1={hL^QW{KB?_3;CZz?*V41M%Pe^B# zpH)>UN0UA!1{}U>k5Xu@2V_1@kIH- zQ%rL-%mAyaz%W+IBuK_`&1c}tA$2eQ)P7V61n1+KmGUyQEi%qWaWvVSkwQhnot2?^ zxM6L?&DnQau$@2CNFf26g$B}p0nc|t^F>+FQkmosf0fO$45B;6%^4l#sI0WNC1I02 z(z)i8uNY9Lp7gF%opP+yIKmZ@H7VsgsOFhpps!S5mFBu&BRV-H2t%)+A3%XBel^Wy zm|j&1m)PdXWcC{cJSisx3(}gDvKBs!Xvyf!d0 zV1}b;w{m?Fi!SPYjiP79U0rU=KwV2x59>~pCpeh_a!tim?k@uX10*RNR)s;nGxyx` z)d?fAZ4Bhqq!k3(1Z`z_b|m1;4%rMZ8GsESCMZU`%P)$xCTkLGrG=b`>l|uHgza>U zi!E|gJ@lHH5-);;SV*rkuEwA+D3=UV0=^DDcr~ng^D&aQHrXb18UwiMxTD7Pb>v1q zAOBZU02G!!K;LY1De`<54vtG7I?$@lIH=SyaEfDKC91Ci?&(pej~W}rg-qq%g(!K7 zi%*Yy73?xDy4o}InL^99E_&;1T?nUqv*sc*Kho(VSN8t}loV_0QI;mZ0mUs59Pv73 z1jgcRxS%Bg7YPqeoh!Si?9{B@qdES{544VG#!hues5K<&MkxMLgMtXue+|J+So_C< zciY{~dsCZ_)C2b?2wk-PSS($`Q33WHNH+kZJ8YGK>-^qh0(r_is3Qf)LuFS~=Cz7QkD-*>BkC3Q(;YSn*P`%R2(EkLKZod3RD874?}zE2Rv0y)(R^|SUt;Ae0}u`o@;^& z3Nn9sM4?XQ1L8mE(XCD*UIy$DsCPhr9=cAUM@eIi*tG_S{ee&oFHua$Di*x=RDt>w zK406TT7RZm_w#ZKH&?j02@X>SZ`QplLjd}RO(wIbQ9e6y#dL>haDy*r4lh|8gSa_0 zci-{x7BpSS2Wd`9KA1tfc=*!122F+Ps+lBGA}1k8S^x(?3I@7(Em_mlp2;d`nI9V( zanqHYtm2kAzvSZYJ1n;xgZrx06N!c67B<|JfTC~>pd>QQ(F2ryKnA@vpA3dsfZqDD1iI*NTv7>Pfv!o{TMtI3cH#tKj3$a`2`av z{+g{erZ@=IyAz-QHRu7_P(OZ}Hu@wkapUtu3BMg4H=UipH^H$nrs@DK+)1a@1JpJ- z4}Zf<`&=Z{f{wWfD4X%Kz+e>!%NM5Gv;tz4DS5(o2itbXp+NYKq&sUg_$7|y>QJ4@ z6tRvg%GrYtS`sM1+7_a#M8!iocq%HUM*mtHI8A zsw6`A#mh3dYA-0ALJ*CD+z|8Z}MoWG%sDl zh)_L0W}_)86*j0M15u~AX%bW-{{Yso5Bz$6+LQR{+Je8+cO~!Z*nh_({i#2WmrzGd z+?77!!~Qid?FsyJn!>Qg8Y+Z~A7{ybXiwv#P)^WSlf7heh<$oN(0}hq{B+mI08M)i zRLyh&!~Xyymd&5Sc-$#+T_{FemV{L0w8%{56vb%O%IvLr808<8H(*Nq16%uc;?A8M za7*aiMMi1E7DI07UAF~`@`b*J|j!%IOJ6;04RqY;{jpCxydv2yZO zJxB|ggzQ{RuM~kFw0hanJ<~dRvB(EN<}E{T2!(Z(z0B9h2sOb&EN~Al4K}Jk7m-kFqNqc-Ix2-hIF5u>WHx@~nN=zVp;o7Gq9Z{N>0j~aC=Q}il)Rou zTPjB^;6$$&nYxMle5vdJ>-dy3^CcTaFl|LqM%;zDrXs=nTPkwkZgmV)rC5oC3}7$~L=E_ACbp>-)b{PhkdJ#G+{pgc>KFt1TbD~mDQK~VDpZC7p3}KfD0+|3 zm`1exNE%-&wRoY-)fJTPs8X3hP(Vx{^^PJ>-}P2ax8*Y(T8Vj62CdF}sE^6s1t)IgB6$DThX+{RJV-{7ZQZam$rBDyJGHW1rc1u6OiPt@))3mqz%O_Szo~qm7Eb7Y)R#A zD9Kw9x3uhCwQ34;cDwZ+&dxb2Hcd)K5^D(n=QmXp+L=HqV+NkwRJesJILpJwoJ#{9 z+7?V-3EHw}Y_mi&r zxY6EU<6jRgyrYiT%RGa3ai(}k@)lA(G*w*ddJnFGS_(iMR^O2x z5WLgo+ZI0F9ssa~kcE;(`$y4pwu5&E{z9$JK{B(aF3|-5L_Q!Ijz=_%)4(Z(asL3r zN0Yu!V%&!ph&aO~cpDI1GghV3-<5@hJapu1ltxZC=uACsWfe(M2Gt4zPNt!Tnt7MY zMHG>fl0S#(vGYs+0P$n*{{Skn{{YP~s5J!-Mai?`?+(64Gd6e5yk^H7ZFz8J?llZ> zW~&?THse)ce(ad4&`h((=_0TyP~1^O=L%4L^tDJMB+)Uft%dTQ4$BvQ49j*y`v)vo za*9J;mQ0c&-Q!2;oC&bNZ+wlPE!d?0wQS?QWwcj2%b-Pg@rFpMDibu z4)NX{$G>g<_ueYc+RsyG_i1LZZ7PgxlZB7mbnztqLJc=mXaFJz924CWfKf@ODA3S^ zG$CQrOQlIfHjl$bl(h}8szdt;%AqS z6|FdnBNJqHV51v_7z=(~+`K^?J#3*&qS5AfWZN!KDat~VaG1fkKoDF?>O1uz@_!<6 zKg|agv!#Z*FQ@H{DU2kY#=lG)wUQXC=6YnPINkzns;Jxm<{*KnBSFy~N_U?yNuTMJ z&KLgxAbjLI%9$?VadX~R)scO_xF#GQdaF28jny%XVd`NKFo>9Xh>b)k*>Ddn{zBVwc4hAryN4jy%$A&KE}M`^B??2Xf~-s06#ziHj3L)W z6Ezjm9uT{x07$W%+PlvQC;helF+cXCs(Jw@K4-so60Zk(q@bkWIN$4MW}F z@l4cLR#G#o{+YiOOj`(+H_LyJ)?{76Dt!#9IQrj@bMqH)Z77|qXFEgyR3N@kLVUnVT1Be*EHEB;?x>w|p zhZPs>JPdg<<7P4BA1!nJkpBRRkeo`k3w&62;x`??AtL_gi=U27i$-R(CEU4auoXoY zBbt}Cbjv}g=q?Jeh>TL{;mep=cbK23*9P*ZC8)+5Bxa{~lbhj$8ct*47a06QFx51H z11zb9A^UnqF${B5;k(oVh~a`GbzfBSe5PWX2hDemYd_6T8EtlO+?v4Aslj;(#B5e_ z_C-`8NZqI0n=@oCMKqa#jOY%jNmd3Eoc{ps!?^|pIpb4m6hwIvy6$)WF?=E0Z>|@Q zE#`JkS8&o1M+%*)ZUZGaY6=x24$v?pLXxzu&;axeD9uLy0Hi2K)0AjvLK+aU>8UE6 ztg8O)355-UZlUNpN~ecly3qYQJg~tR_Z)e<;g^(`{8lZoIjYU{o(;by9ibTp2!N>a|EzC>YJonQC>48jZt>nkR}-s08H~j=o~?3y|-4$CvO;#NQ^a z{H&~2@zGD@nqBEQat&F!fmxbL7C{$AF-o6jae(3}n59srAUG7q0u2)Hmpn%DuNGfC zO~7$BMCMB7KP0U)-j_EMq3y{PZYvHU%;NEJe|S`;I%%lk7RPYts)AocUXC_(9RP$D zpL&{~)#-urdwy)<4B%`*bDIl6VcQzom&`r`I-A{YxeO8FaS$i_I1of-M>9#1uC^Vr zFO(}&AL&6+Jpe=iN)^&P;D(A71lXg9erNECT!FOl&j2%$Hva%9?PoSlSBrOvG8={u zqMpe%kRsv+jv_^Lij9gXE^siW2U3*WI&g3*9+^^k;$z2-UgD4HD6w#zyK2v63wwzz zo)s9C2<_uUg%nUcoPpZ1I-)}?1uX+`hypm^nATD0fp~`U2bjDm z^S$&|eaE*Ym5XnWrMCHnf@R>;in&vZQL?MBb`0jyZn_Sb9q2hB4YRz7j-5leQz>_fuzAZs^o%N zynxRZE>4)uc2;M)Z7jubEd9jpRE?gLWpO=TRY6tii^#TEjubP47)+>`;wKTQtEIsp zajH9I9%gd$Hrh+rnU|DV11niB7e&j9LgKsU=3@@wv4qJgX3{Q|Oin=>l-p_^+CfD6 zlCp58GdWAg>s|emhdC8~V#`76!^kOX+gEJd9C4p4kr7qFo5#6HF;wJ9GMM{nAW#7w zfu$iz*HI@KTQ=q#?{lYm=B%f1Wy`q+sW5GG+>t!&$ubo4ZN-njx5R|4KS(n*S^1j+_J+KmFE(@iMUQj#7^e254C z0KEBff$RSOn3re&09~OPiY#OPcJm7xsc@3ci9!Jw!)BQ1XsaUQ9fKI8aQ-oY{3I>w8*!tjM;_$+1QWn1oFB;PZAue{zfvM%Li9rh9`DfgW|QAJO*g#wpxhJXMX zaluA$RJk%XLA+qByI$?R<*tis95q>vK7f#scJZ7WCoTort=J;q=Oc8Esf6YtU;ri> zh*wCH6iorrAQfE+P|$=lAq@yaLJ-h|G$9QLKzfBVAz2a#k4-!|NE{W=8hZZ#mYR!7 zU153?CO)C1(p0oVc>||fXwp(qQ*j5}f24G2DQJe|v}q|02zN_L2cY`tbQGF^RRZ0z}L-QfKG*6#d*d;M$He60V|%+JjDFBWeX8D@olv@*WX(q&Y1^R#Ca;S&Ja3Wy3Y ziVE@xJ{J}f6XRtR5)c&N7ZBnX6aoo~Nj?{n6cAwiZ(@Gb=4t032~|@0Z(Wa1GR*(& zl%Jm;pWkynH%~`?K?w7~b}F83aK?X)xg_lWp3pu&BtR*Z(DJ z_y2pi_#Z9d|7VT;uQm7YrpJZ+PxU_$^!V_f7_>(`PMPOpg#A4R5d14{0CpcABN^@Q zG9VIw_8&rjtf8YnmXF1M5e7QOBRv+F{}2Y&zXmAtm|Rv~_bL4R}_6Z;7|Hts*e1wh9j#$*yC z!BWtBf^E%A>Jk1PC#Cq)S0OUoQ!vz%g?!!1Cbgu=o08-6bH%|O) z7{mZMz|wu_vp=WFCXg z#2sM?1C#(J`rfC5_?379U*r%+gp<|k=x0dX?x^# z2=lJj*4$?=$V=^tKc)uLL|}*A>1rg`P5IZ-WsV;DCJn9xSw~kjy!0ec%**@0XMaO` zX==lxMYBm?TUnysV3Q9iA`{R5euOld$REeYr`7ThCoFrwbJ*j{FZ5rrZH`2Bf<37K zxEzZyGZAw-`z${)eShPwWCqgpu1QCseJA|cV$#Ift&iNKxKfOvzlvSV+%;p0S<-6I zv*%IM*N}=sS0~$eL&H80c(dHvuZu!=udq%1cqO__*ZTXtiu1FLr5NWYS)}>}EYi{f zB@qFC0kiu*pNnLVn^4kiUUa=}m+ngr_`LIQZa7~3HSPXQbz6huNQVR;p&?&27Sq># zSK#Rv0HA2Z>NUBfqjYV`&&(*!$xz|k$fyr|&Urjp7suTe`VA<_Okm=sjvRG9w>z2g zgz*+_$>}lv$P_6yW%p{`(TfVrCamS0E*Y5XbCCXKSsAxxTI&d(s0@dZpRNSTNkfT9 z!s{kJ?qzy=al*wXRx_?*D*WG+7Z@KgvF)lxm_ zK=DU0@^fD5`2OGyjZeXN{rnP8Q7 zi6El12!N+$1!UzP{BA&-V}GuvSigxIX!@gA%~yMl?VVUTjNCMwoc>4xmm!H=CoR1z zm0}NJ-SM<^K|R!Ph!%py{o}MI(opeUn8|LXQY}GN>g@!-rdj!9miiZnsUK09{^z&@ z3o=@0M4RKC@9@!BY6WAtb(>Swkn3k;mP z+K1!zXCsz$DoD!0YbGL}>gR0lR>C{X+(egsHpabdt{l6DY%EI7sAlD;%^_NB*OvB! zBkIc@t>sQo2o@`G&EA2qH{-o9n+Y{hFMU`(j&3vEC(ox9lTV(6kg$_Rh~URwYoosd z5g)bP4liv`b&N$&3C)Ka)JS`-C|%K5>JmDq*|OTkgc;>)KPycrSao@Cy78^fX!u%# zmO2ah!c~l#$61d}T|+anh)Zcs9Y9WB2@NAv5BmX?n#H4}a&I|oBRxmG^OO}&H0EVO z6n>dES0~Y3==bY51xTi?FPJh|n%tfC(QyxHemt?Rmu6z4ZO%MBjt|;kK7d zeg8~8jlO&<GQ2T)ff>hHfY?c&5^e<w>=U_&$ zFY;sAKGU_h`YA;A=c%@_ukX+N z>yRLeXrTfOkG{rmV>3?meT_G7%hi%PEWOz{=}1JN9&su0b{Dh6N3&c99SnYlQ&FQ} zB0cUsy`O&pFN=&Qob)(>l0><`2Kf;a?%kzCUEhutrJu%;p3Nn#E}30-XdhiYQz{b{ zyR+V6Qffb|$W1vztJ;Zb5^nuS6tGp%-hrgTOhL6C)#C^=m&7m-hwo6-g{=6xrQJlW zP%@up`cmc@$60RvCSiv~irJWDx0yWoxWs0StbOXuq(|pbiGb4N(sd+>lNl^KsWCZ| zZx*~rWSv1e;|2L{nw!@>Z+EK@d*<$Qfj1-&$~aJR!HVMha?H_XHdOA_&AxNN8@b3k zaP@(ye!Qb~tM6$OjnQ1ax^`dmYI}6VGjp`qx;%Xm!Y4Q62juU$Z#ffDpt*r)) zV-Do`8@g>jwvkL@L{o>3P>b0g=$Cf;lC@W$HZG{C#%D#CJH#~ZqdGJ!p;bt07625s z61sn=d3LDK#~fN{^KOi%rD4whgPdQk_(9vT#O5CexIu_vYgv@Ts>u>>L8Z^j++dj4 z#J~O$J(J7;g86zXXHYV4s$-2JQKZBeE}zfbdd+*lk9a6=cmE5>LWcgh-T4t{@!P(B z`>Th!$#c2c!*_@L6Hk#F*jk@Jog1>wy;bVz$u*>A$Oj#VYi#EtZmMgI*sZT+v;Nf8 z+?g7~N=f?jgkf#ptC(QAtGcSOA`Q)gUxqfO3E$hYCX5NY7aM}E#wW`?{sN{?P$Or2 zqs_HkeiVacYVbLsa^>NsEYT4Vdeq~Fnjl`(l0>#p&Qnd#OwY;$+|uH- zWz5o4btGO?;RnLQSv9C)rH}3j+^4j#eu^2MAj{+1x(jnaR8o`VOD|rI?BI#iQs*b4 z;_GXM+};puwS~FZ3PzZK7doTV%Ykzn+Ew3tjyil8B3e6qkA0)F&VY1|J#Aahv{3S> zK2Ng*E(8;jq&^-OfY?tC47Vi2cNNW7emYUagB39S{PUL-{k2l^O}g|pu(2!eds=c3 zCj@`WKO;S^aHj5pgUqxAd5m7h)H4z`o!ZA5>~oc#HifoEdOVkG=<{Cg^5cy{$hus$ zPif@q6R8M4m!#GAqpR;gXwfJBS8dvcE;&UCMwd9AHf2D>uW-{N>O_ZGHmXL5yTa+5 zh|nEAj_f#&Mfm4Z#m%Fs$fq#Jq0ve$dBaqa2->3JeQac8yae7Z&!aU#(wBOeHD8BN zpZNU}R$c{~X!RUKec{y%dh74?lmU;DvW~xttLNa#AhRc6qJwF(RrdAMa%W8R;x|3r zw$FajVyJ(B!=Zrj5&l0OJrU>1#kB*gV{hDf{#14a#+hWh2dJlUU1s<*>7eRg_cOAR zs5PMQj}Ps-gf4hcCWp#M8^L_yG>PK~3dJ}J+x3OX)Lta=XPE+?y8cw;)tSio+-T3S zsu%{?kgm2Om$o(Cu%_$1w%(W*pJHzGfr24XicVb4rw<;<3wmbcWv)S< zC6101G+5Jkr}?c-ZFBN^d!;p@dwW{81AVXGnPjay$58n>=UF2mrWK2+t(^d;BlQU1 zxFG4hx^%O$aq=1nZ>dCFhB4jhgV5Q%C_}P+7VF%SeM`bgQzebF)SLSu4=*Ro0E2^9 zd%aCrYE4ED7K0QnoBoD!>F`X6SetVPMG*UqaE(lqPI`ruPM}7>2oyNXz)y^vzyBhG zPC6UrL)KVS)Stnsh4pQ#DA9P>W+;AO1aw2L)nv{h{)0^THh|=1k~EiBqvulAj5f2u zoKcjau7Ylfv-<6g`AI~{Y7Fl~ZKXGdPPYAX=>Qc=o5rr~uX`6iJcbO~Svkp3kebe` z({st6g0D4=9U0xBUabu)+g{oRJH`PiJanH{=~7eUr&v%#-F`<<`pAs>woom|D1l2t=o^Ojp4#*BvCkn$wj>v+l-A& z-}(BIOSh^60eABwCX4)fYyD}3yJKPzw3;}zmnCRTj%gt7afY3O^L*@^f$%2J(Md<0 zDJ9DbhCt9kQsXGZ%N1^uH>`k3RXAd&0Q-8l6c|80RF_;3MeK8#Dr=t32IHbpV6gJeZ1#nf*1lM#bxp=<1GUfWyNZti)iN_tr6!r4?$#86ZqF;(dFDxoB zWi~3%=-$55ZlT=(uErWbyYm;&LleMaB~IP(&G^fbl?0`Dn0TF~wky2DHR@xUJWb!2 z%bOkQDG1)YT-0+835Lj9T z+z-WgYDuM*S0vlrUkhzz8gFjc=Q#Mkm^*Ng->|Rv!a-Un1RBLk1h0;^cnX)QT>w0K znU5%w^o+epcCM5RcQv(Lr-~zVMQ&+`>RgB2v3qcbX=Gl*hH@}C#Hu%tasi>Ae1Sxo zwMibN%+bxMx_4hzkVSl-d~Mb179PWN8D>V7jk{xjg|8$mpQ!}-e!k<>ZzmgfY#MgSQ8yBT>l{BkZ_u&O+O z9^<8Z%1Kasp0l=n;LFb=ZD&u!7^5e$s-Af72_Bt+7hT8G&us^tdYA;4^&2GQBQxq5 zt8R^T;wXpL27#y?Lgxb5=9{RKPxa)oAKMr<#()b0w@<_(mmyw_8DDPj>m6xp7%HMp3t;pwiDzpqSn{Mv0l&}oIcU8+gVXX z<-J5pi+V1L`TLLKxT@-Qvu#^dxC_i#eUu-hIb)>@n1R) zj63M*+|Md&{{6Ocf}3XJd3mrbu#)e^*s;~|t0=zqVD8lke<0$-2II|44gFvi2qI zqcPJFlgR?rMNeabL?v0bU9eBeId_xNN{ObTRvb+%`i1R4TtKr7u7#DTDe)|ILCB?Mo%I zX8y61#MrZ9X0RDbJi`p(#oEzCJ>SYYh+7j_7~|WiYV2Cq``!z3AvQL%@tpoMrO@ut zwN~%128O8bP-)zc_X?w*6bWpO{Svy|hg{nc3i*7zPYX0o-!It8=SmQE(KR!DF2-t4 z4@>vKOzfq;n4f7K572uynvJp1L)B~9XQ$E}zO8?%#V2~q5&vs7!$P1t{-;tP+qFd! zH)&Ctp2|<*FO$uESNlApT%gtRjhK~CU=YoY`nXoTOw5tS?}3bMe_67_ZbHKNtgRFL zcSU0z?Jm&~ui!WFh&sj~8gP1WbT*8ZU0uydCgU!>8N!#e7uS_yFb6wn>pu}z>dMGD<5Ra?Mvca~-{-aI3ku~$S1fp?&<8a^V@y3tOkE9~bk87ad&HNus{o&F^0T05 z^FC+Jj|aSgqYQ%FTryr>-lF9Zo%5MOJ)Fzc;aRKO}9IWB$VPz%?Ydr;q8& z%Ti8XeLq$k59IG^joUttdaWVrmQ zQ6VEs_%ChCFR@w4dHFs7qt8x%%N}_hw=8aVr4*sdVdmqNkd#)fSxpCr+ zT!U1b6H6$Cv*GTp7_j~V73J>jN_2j6U$=(45HY>h__t4j%WA;=jR&Q6EkqZgq8WVR z%3Nb>O!Hg0WHXOOeAH};a^q3rZ0_2f+idIoC}kxI&#OB5{{b^#al4Mr6S zSHG2^-VJPUA@dhD^=AQdQ38&L#rk6Z1Az^8Rz~}3D7$1h9T(Psj1nq15Ir#ErQuwc zLAzK&wCI#buPN}UhsSmd`S(t2ulFrWg+9_50k3kYyPi^W6|k@lH9346B44iDn*}Aek>kJ*pR^XxBk2?C?$CkCv#&z2(Mp6?#i*Nt^{|T!=WY64Z%l zC00(saQ%yp72Wlj5wYJWDRo8}JuE3g*D^Lq3 z*B5L|2H57{iH~qnG#?_?*XmP$uCaI5j6*{=#D-s6CAVwwXo`DX*DN3XXlvL;J(uli zDlqQdF?a52o;1xFIVSkvnc(W$ZGshfw~K&&Stbnh#8c+H)i?BhKS$HH9P;cdeP$x_ z>vf%oFPD|t2(zHr9IM+&bV%j9oWgo@F&-2Cj_;&yuU$OgqrS|B2h7zzY=gT7IhQq% zMhma3CF;98@aj<>jcHXv*mXwSILd=3ua;cGpn$MFSB`c}u+(g)+2zVIgqRi5E;^b@ z1&0>sJDEsn)Uwnh_#QMgb$Kf%_$GV3;FOeeb^UDpOb8=;=!a$o>WqR5{uZUV3_o06 zfA@IYG{a|-T}uaWic~2rNUG-;2QkiWO3w`+QxN&sgg6D z$H`HotFj>-xObDP*MeucxC+t8&mjEXlJcjd;6g%lay5q5_bB2$4`35PK6rFPW~w?G z@2ewpB@*8esL6_eeXFa%05MgPf-7d#l>@IQrjJsZMrIstI%7T(;HBJHdS>6$NBxK@ z>Akqu(=1r}P}iPUr)BGZ<1JHSYo0{SKRVR4lV!2w!0%y(FN&N!2W7G!yU(9hoM^SP zv~DGbH*cW+vxOj7URqghHrg@q@2;pth;&z zWsnPQnG-*gT#lqJr+LE~KI4|8-|+N=`_gV6v{r%HAeEi?M}uB*eE3Cs%VB@JAw|vn z6?^*m>5N@sbh#BAp;X6eZ@^07bTDj4JfHU#OcT;(0nsQ(Yvt0rhs|grc;v{!>!G%I ziOltEjCw79jtm;g=PJpgR<$eYCNw)+T?c;noTHbEf2J}F%&6{9(FuJomg zSqZGCldB<20wF`!?;W?zg5#zIfq79ls$Tljtr6RVV_8VskM9}Wml z%`>}vXHkjTd@$^lR|75qL*F_&hcjR0 z{Hpe;Q1vKZ^kVS7c-$RUR9F${i15xj+>cP4(3gwMvJd2 zbt^Xa<9v&e8`-qWMmu+P@wpy`R6|C|NwFz=2_M;u7L1RMK1ymiOVmvIcxeaS&N33XKQr!+&^D-mAOk^1)d%gx<9-XA%Y+%RPjdy z=YcUN@C$0iC_3EBg;u4#k5w%stp+Cu$61=Vu8h{fBMj{Evryi^g*VNg{oc|+sRvjr z&6?`tSEMU`>`9@oJq(&zeen#02*`*oF>&f?ro7(Ab}p3{AsagtS=ToAIMr1f+9w+^ z5qTZ`F8D71RfkPC@QX%n&6SdJn@8)8k1+BFYis<9ItY0yWW!GFOL63}5=%7f&Rq>; zib9eud3hQ1y<2(9wcM!jlnXoF*0RDoYIOyh(A@5JYW)E={|NMr5gjQW0 z&=_5}=dw9{s6Zymt-!OHsgI8%f}OI{E_i6%MfK3T(B#n!lPc^(e$NM=H!5a{2~{u+k4+t|#}lf^#hGMOy^j-^ZzCfj z2Zw%gnVkL1thMLfltVc^b3>M-qFmIE4W5j{vZ65Os8h>}q&^nf#tZ8F8E^6U2GtZ1Lvog2m-Cj9TEM% zUQd5lBS$Z@lPEy*!Wl5ff*H8=?nv;{IYLhp*-$I*Xx$PJ?8?0%6+uE3TbVfg4K8BF zJ7(&p$X3zhw&bK0wjxoC4s}DEqeUsqRDedz*Yz>|J>#A3U<4=@8RlNeKzgJ)N})WI z+F@OHL!a@9$nFm+`aIwlshhIztcBGTi*dQMKk~!xmd5!+ zX2PV02tx!o61Zz$N;LQuM|o7T3>^%}HtqTMyk^U`3wN_wnRUYF_O_aVKeu|<`4PcZ z!>xD9Zcu@4p1g|&fhoLKrP!uI<9k;ADqTN`0gKejbsC}LlOFGA^uvVj1DGUbO)_B0 zo4RGbW`Zj#OLWvsTPJHh_4K~n)+^rR6!&ajCwaPKq~=<#QZm%f`L5XG;rfZ}z}NUc zQb9wFZ7K_Mpzfk9=pxH@>DwYV#mX=o$fkV@(T!m5pY; z6HUpLphi`ksI_>#cS$@cwIfO3C;dA9*IXUWfZ&MHvgB%RfWt#t7nAO{ z#G#6wuj@?P(tB8+leBZ2i1PV{(8f8Favp-dcuo*)@mX#)EH6mmHeXvJhL%PJ;}71X z-!Y7AGc8`@CSX?7siv++?vu70Tk-07GlLdf@!jt5>8w|8k>PrXm=T-}smFQlD|a%XTgF_t)2&drvp7~S$r zI3RLh)l?<{A(!!cvffQxn>frlC6EZ9Idhwp*MB+Xmi*+yZ-_=&jsx%yIgoN`KI)P( zw+gDr|J5_tLJRw38Y6gq4O;$5F*efB^|G_^cN?3P`e#Z}YeXzqVV|h5d!rj&;i97B zDx6Oc8nd`++-g=dQ`P`{1cekL6AK#j zKFqXmi;DEj{hpm~v>g4x>sNfEuAj2AJHDvGpYyw`YnPb>GK_DOsR+WnKP&2*w*N{4GUNUTXpDMGmRFSW9eAzw6(0t6@5T+|7MH#qR2zzjHb}Q?^7N+ zfgn^yIXBqcL_f5~$cz>F1tJ+H8eJ?stX4AE-@jboG_bSGtA{bu+p;m&GnhH&=;`dN zqpM?jHS?*&Iep=V??#Q}_(pYlZW)BUT4o7QMeLE%@gJR4sS>+h-U~(1UBh8gV*HJMgKR?%5p4|&BU5eD$ zY*_n+9qolT7DRs3PS-11-X)T0>8j9WHf3RbJ0YrDCW*XJ^@0_vk2^zinB2F*Dp&jV z=_aLf2lYy>DBuQlgcs9>8od z3F)~}cAfq$1-?A@%erQ~* zqtZHPd&=LrY#-rm?78xA-=N60W5=Y>U)*NTO=dJ@s8mh}hEo1S6~;OA0~+i(eaOo^ zCnelp`T4VBPy99uZ?+jgd3}Zd7+)6yE|Q$E*6{MM;G5{9Kc!49A?B+xWo_BkC88i2 zy?Q5H05nS7sO=(Oo6v4M{o~;=>PC9r?N#Xc3OQW=ZtNs?#M8x9wXxuB`S%xXbs+lp za@6?dFJ}W2IawFreYDd$pG2l)8cO0&a-JarzEYDzsqfqB+iu-AKDV#>w|Zrx78`u2 zoD5K>Wq)2CgmD6BYshF}Rz@)u@1(v@x^*b*jbvi1v?H~iF+h;L+sN&<b+SxJ{jNJd@Dhp(;+;7bEtIg-(*h*m_?J+ggfA$wZ+vnl1fQU4N+Ei~C?IY#+ z#hbg6d8Y8~e(tiHD9P}P33(Y_H+1`~RL-Jxhnb%@s7hsr>fh&hz<5jz4Gyc=!-86t zWvXaDPplkw;u~Vx^9`pk%RCv1f7|j!Igl+fYT++HGO=?;8U5m5+&rY57R1J|ci-AE zFKas+sF50{MKo>nZe6dj$B_O=Z2^!IZd`jWXv-}HBj~)|YH9S>Q-1ZMA{9ui^HwnX zD+n*-DW$y*+MXXI31LjNWC`OFeG33JrLCn1fAyM5E-)}p3&Wgtw_(`xQwh)y_m z)#;2UmvfAm9=k?VCtYQc8iZT#8jugE1(vC$WP0Iw5=chYX!@Xeq$VX0zai&T|H#;N zBm)lgX^fx+Q@ZYeM8By;f5sZT+z$hSQxEh;AUri+4NiBo&R%0!K`!l#Esc|zH#j+zO$S0ZdpGQwpk-3(+omoqu;Y8|$4rb^4uI{B z4Gf=HEGoF_9JxDDS(#5FjnZX(ekj(d(yPxR+sn$*$up&ikr0PDS4k?m#XOG=}Ip$tP5z z9T@USvFZUE?95{7`HiH!FV{mKY1VH{Vr!RtEqV)8cHV%f(=~713DMMuQ={m$aFZ%yuV&8> zw8X+%@S(L5R;(5?GPq&x=}^!qnf2`IO)>Mf=ZjKhEW0w`Z3gjIS&lv(FOM1}Z9k#H zVC$-9zeW0*ndG)g(OM4w+}AK7OuKbV3DHVlfOA%FJUgYjcQls^kGfUiYt@-isB3i( zBZuctj<`~z=R87r*JQ*DmaVnxnb3yF3_9ylVf{zUk(FJ-NiKJ`e&w0IJ+8+$xP#?h zg=jj7)l^T%xNZH++GMD>OlND4I(cw2iCd!QdYlM~0fqyNM4AbCBxe1L@4^iUj(m|b z#DcVD?i*qT@h{uHB|_0d?hSs;4F3NGuf02r9mRJu`T z-ouhKF(R^vddlF{Ty=GXa^3-Nx`@O!8K?<4TI3(a5Zx+EF8sivroyRs*mJ3ZQbvJ3 z&+;S_Atu5U;7+%Tua?Lb_X*$WtL+q9a5(!{x@BeBjX6k{J|+v(FMKupQC)95wy;c7 zTw&4h>8#%qriex+4REPOa@fpM>DDLnolKlOK>3;SMRH!daJ`(`gVlYS;A(azQw`!A z!jOMsuEEU6Uo3VL4%TfF56i0EEC#kGjp&<=Fm^W4j@d`QFh6*;h zQzxsId|eg0xH{wwm2zAY8cJhWe@4(Lx9D7^+|+%S$ni9G{>65La&NCWiC)g2Qut}B z<6UF4kfTL{e2L|vA6-_BoKo1Uxp@h}__bEow`1)_9GCE6&h6v3MC>cdp{8S={ta7_ zfV4zV`|k#6&ICc=ManY2F^|EG&S+#2L|`el5@)~kjJw=NEbCPDy^)u;%L^CsmaVo- zgm3h6J|ESxd-H^Wl5t*jJwO3 zH|kv`VbM9z^sxOeuc*K^*O%A+use6PcPS!H&@>^PF(rqV*pn0V>JvTI&;+FnezRk> zyi0ErYe-Ua$(Oe7DJ?E_6#ArPXgaNK-n6}RmY0?Jv~|0O^`KcWCo)sdAhJpqoeT|d zRW&m@%|2e@>iUBQwYdPuTIAvVb2N~g-n}7*|0Qiht)vCp9o(e(gx&rxfFGV`m|$Km zLgGb%YN|hlt_KE3)BG~BWtpa#r!$XYu~7ro;}|-z`T%t|$lbOYsxA-))}56{Ct9JP z8jWz(`4}oo_Gts1SWZ`CJ%;`ijZMTmkgsd>Ux1xbc>1zM`y`xS63}a^J1QqsGL0)+ z=l8;$@d#pEy|7MhWaU&ADqcqQ+mSwTtXU~OD0%H36Fcy9-i8a@Jk^0Ttappj1-w9fxh1RHW*pRhB6y?QBdKxfz zg3wQOjglXR%NQ*2Kyj{<$Z9X?WAxaRf=LN_dWFU+`mEFBfX&TMe0F|O)%3SMm$c!% zFEn)`n*IwAz*W`hhNfwW%{sYbZg}drA{bLXaha{_fnTf>j#sG1=I=paXU&wjPj2&Wvqqkc>^V0j;;9k;Ez|W%LvWM zXy&3P-^xFgv3Rgq(m|F)-nOtM;IGwdV$^tY6Zv9gU5LSD2EGLhMLMXoZ=2ioO&_No zPYR5`anEdxVh`}O6Rs~bgx3k1V^(u9a)yc6Y%sA1SJ@`Np95<6)&CfTtk%^U-WLj) zO|qO<(tmJw0gf@Q+SbhWJFf6c9;zjN(iA0WeUgl{`s7rNvvL_j*#i68KfjeS$suA! zYW)K)=HPV@bkG~>6e$y2aH!|#?AVYq3~!kb?5nkgeQQ)^CHMC?=n)|~7UcC)*^~%~ zTv|5u6J80cpoJRbf6}T}2A+~*u@{WvXkMKSN+q*7QhZ5WQv;^pZ{LNt)b?$v0V|WB zgv%vWnkH>7e4?YC2;Qa*bJM9MqCYpdFy$r<7d2gSOyJ)7M@+u!=XH=c(bwlSmEn+s z<6Yrt-R9hpx^~R&&$@3C)MzYRlgmJ|mkXmhPM?^`R*qta8i`q(nn07{`dD+ENs1oT zF!c*?xNu{1Zi;$Y{_7OaGH|(80&oRS8$B631r9&0RIFC0 zQJ!Fnn`735@mSN>3SZ7DT+hOE6B>uaG)482h`G|@b=p>cq%5pQMoGA4Y_E}mcsPEu z=yjc;m$|Jo@tB8*QklVA+luAMQaSZ?+^+YPsgpWf@H5R#kt7-PmBq&TRTEB{!1_|% znh2-DJA8-|e}nAZvYAy_CYnarR|w-JV}x)d6G@Qw1mjt+B64#P!zCkf2Wb}7aN(-x zk^j9vESo-pTpCmXUa=!IE_NGW<&LyH0gZmFfcFP^-tvgf?6P+dgHz5??wea;6-Vt= zi{!OCw4UR^(R9T20|9pB^F4OuK?W}Bk4M*#)^hc_+%Nc|P!h43a!K!*U!>?>D7#4vu^0=Es>cvTVq3LeT_(S>W%THMP$DcZAZrP(RpYn4(1##)>-c?l1<@IEH$|~(xq;2~>ZRZOh&egix6jB-qVib*L5v5Drm?s*A zm*cZiGjX9YKK^Wqipsak#>_A~fBKgB#(R|N*TMGsa?Y_Im5_lkolANv7ozF$?j)%0 zq?o2tA52Ox>K=+wv5A1`6i3#RkgP$SmUp?J24zG}!7>?BkqLo0+w-=Ku9y1q)G+Q9 zFrczOcv1^T3!*m)JJ3Jmc)Wd_SJFaMq-L3d-Kf*7VZfWQ!Xdo~TjcS`(D&joy3Fx6 z;3O^s`)>r8S7mY@PWa6_mGiy}M%OLuj3aC>exUZ!=7f4;4(8j}$9S4!M$M-`ran^0 zQGX7nJ#mmhxh>6ha2Xer50ez%(*_~2qle`E#XFZnUCFFuC{fg+=o|tUcS&^+i|26G@r+e5c`4l>f|KW~Wu*>yL{S(> z-l#ac3qJJaflH6Ir6{-5*A_K?e&6yJfJj+n;uRxe9;L!p0kN+#?ZU`bXsox`y$v#6 zt$0@+VQbnZca|!M@c30fr0@M?W@85Xt)Ce%~nWNr%M4OYuN$ z1^0Loxjqf(W!DS`fR~B%gDsV{X&b!^y*^va70C)t13>ZqChRgk+bODn{ ziLOCp+^wNHhK^d=+D8|e4wWSL++PmT7w4g-OQMqZq&*}QMWI0QJ8)4BA@}Vr7~b>R zPMmJ;d1Q+WEOw1_hc&0-dE64k22kx=>2#00A==qgsmA7QmJCq(;cBy5h%1* zjsqo>uPG=B3iO_eIWqK#*gC%qEzW9p2$FFZOOzrA6g3 z^*%Nx!%U)$@tPl{bn%jiO4`(*u$oCyY?kT4Iy>KTH%z; zQUbT82gF(p@LT0Wr8XcPw04_{0Oi_$(0{pq`bV%?d&|iv(LP~`&mPe>fchc0LKEZv z$C!Fk=+KyItal4=nQPk^HhrCGfV(=iUzHV@zEwVBG#9XI)+huL8@^H7)%>6^3(_s4 z)C>R}ubBD^w{W(tk?E?37w;^Fb1Zmz!qz@E4 z0M~Nq4rn`cScx8*oKsu4<|0sT0|CzT_1@F+;8m%2{CggU5q|;wv>{{p<6h)HJB>T| zMuBHfmXkU-fc?*6JmXl4TB1|=CXmzbZ<7Sds>rH8FrgJPU~WuPq^~?IBi)uWJyt*a zF2$SU-n=9nKY4L3NO25rWb|C&1BxyR>aOAB&?jD?aas>_m#4}|0{1^VlP`I`@OyEr zfI3#wNF35nrCQq5#-hk`R@9DgQunO~(y4v`6Meq2$$YJCF~3Uw^S#L^Cu*6D;w-u) z4y&yQ;*m;jz)78iu~1Evxv@$Ws>Is6=BcOgb0-Ezk^TBb{1*VnWHXCun@dwM zY`dWGPyk-mK%J$h%cf=yry>`J&%~kidu`R}?evlu?hEQj-=xU0R2`jmFqv(qSz((- zAj=k)$1K!98edw@GBJ|ZpLA>Kr=Z8%o(2`h$XhJnZ;0$RL5^MyS@!^c%CRnsx>Y$` z5w(~ZxOcWr6bMQ3fl?<{!pLP3sT zgL+-jV9j0ejou57G`6zC+jQDQ1w0sxjT;;h#sp!EkWSL#vlbDZT{45_8GkMW{spwF ze^ug(`ho)~I;$6>m;F9XY`u6Sh*vKx$B1V zxPO^mc-CAFMBwS>L1D{1>Oxt??#~AZSxO#^RM$ zDNqU)o((WiBG-6aM-L0goa8KK1=>O%Ws#G7)JW_u^KMIPWAkSVS`S|_ z?+~2!tF%0Z5mE?5mg*m1f)tesgW?CXLJ*6QaTjE6y23~yXqjx|jgwy6Pt>+I}p zM1<4CpAQW@rl!;ErL#pQyL<;-M~Ep>VQ;A_^ZTROsZuYEw@+aq&@9me<&aeXCmY>gc_6R{&6ewy}f;gVH(OtYSoQJzod=%n_oEcRjNeRt*qso zca&S(ocqo(9i_JYw%`lSG76h)e7#hp^+*-eH;k-mTX#|QQe(bsQC6G&F`C`6wPX24 zQdZ>IEZ!jAt=Cv{TQeAx)3GB(A!<-vM$NPyN5>zwNNG+A?fgJut9K}Xmz#BH+!UZn zR6IeYDn89-0jOBjd3~11?f(FkIOiX@ImlO!`RR4DuG5xb*ND-wTP!A{-G|J!)3RYX zaD*kLpI6pl*BoIEs5j~gpyOsTG5L8_rZukipeJxYO_?`YcU+&hTT^&;V3bL?UwB$m z{=L3rCJaTtI?*aKL8jPf%pRZ=LKHR>w3Q?(#8*u@ralr53aDi_c*QPv96K_wO2@A; zN`E`VE)5nXG+b;rmm5oiX$nG;v@JD4(x63BpiQ7^piOD^*74?r!pQfpU|N*w+H7rk zhbi$b0Qe~Y3Z(R>L(}5Yp=7~)T^~0aGk{(qgsSImN8FgvDIYY(>KgU<)8af2mV_sY zU5$N$=G6Lf8>(Gr%_I)A2iSTMp$aNyR!6MYX)HL6salHSFR2S)flI@xUYEU1R$)9eeQdWlBaW@76h^>EhC?!8(_G-FR4a2Z(r8!lJ>qX8y zJG>cjU$#m~bwv^yc@8#G5{i`t0jQlQ0Z1b#!{4>Frup)ANe((&w&u3WZOROgnkGi} zb~v%^JB1It9XW}G1^6m6va-9AY>Jkw*LAo&%6?rf^sk*%G_quYntorxR}J{`K>38x zNJ^Vut-K!;l>7=F@<+efs?lJqN^nD$&=i5-ec*)y`b9zg8nOzkv2BwkS}qHE1Lic6 z6kB)%n$%FFrC~`>^PvQ2Aqe3MpR#z-L|c`$i;IbW)=cEBZMco3l=@=3lCe`qJwioD z6a?vpAf2qIjppBG=35ufBOpp=!J?whR4DAZ0n%1f+|)Bw?00{}>vTa^#8XmEqB0g? zMJJ{RQIh`vkKb_XqOEt>CM<=G&5DIHA-@3QP7aGn@dR}qV0dbFxDkSl%^@}4iLptz zTa-{*HBu6Kpwro>rllB?6LQ@lf*PFPSuBqQkM9Bfx)8qHpto{iNgo8Je(h;cNbvg( zgdx+dt%a$#5>m8OEk43DA#r9xgio~2a4Iyo>Z6U6E<2Sq4m112 zezflY0L!POPM2Cql<|%VBT7EJWg31P#HxaxNmWtyjU!G8#bM2jM#xAiU23K2QY04| z+fqkSp(4Zpg^CXX3VzT*(gKxar1~qK-8ZcI51^k4b!A_u9Wai75RVZ@nQ@Iy{Fl@0;nYjlHl-P3kp*xh_wtLEU6uQ=> z1?|nPRG?DOJoO_EDUNCxcJa0?>nprCmWx*VON^AgEx1jo$Ig|b8pLm1Q@8ES)pH<>c>Ti_)H_?)&aUfglW(!v zOLXy`fq?e7kkRiUcip>p%`1K;7T-q!9p;}4C&%{)T#*8Q+wZFg?9yN%II!$&p1f<47@w%qR+ z?Zu0|mUEWdlyAd*9%()(T2;|WK50-RR!9UU~GlF<7qmDBAyDT*nA!kZaMsX#7) z=U)vfMBjC%6rxm;5BGE>N$w|TK16tpF$*F(1CGL~y1W*{mGGm9DIV_~x)7|xkvQ`J zuw%y!;)trd-ts6BSCHiIx+T7ds2;QEZ2T>6{ACuTwy5))QWWD)$5krZs1@8g0tGq{2%+nzG2rBp%_*&u;gD>Y_vSXIU5+KX z*XB@auS|sn?dVBWLXSA@eOq}ZZh&(8ul*HY0yoM#Y z{{WJJ^tY6|#q~`jNZN!g#I97iE*F%95(x#skUSGzdnWqo-)pii4Wk$^Yesy41BuCg zXZlO0_pZ9?XzkrLyPKEQ(#-rCGjx(Y#|E%f#FLPq#(`n?AD(fBQ;pa$Tv8gcYyK_} z)7*|u&rl!~xQ?T9s8Q;Yu8H#3HtnxYZ*g78d2~ckOH=5M9FHcE#+mV6==s_2FKchQ za?7Un7~g$+w}!Cp4kQqe^)^;mtSBM8_rndg5gMFF$Eai?S(=rKnxMUZcI~BWjr);+uT}fkm zxJ(b=jqQ#QKhi&q-pYWbH!yHF8DIFJ-0P0*4clfxhTX#2^hG#Zl^_EH&VA1bA11`xWzJ@-y3g^R&mRI#SSD&lS6F8R?Qlk&qnb zyb?ihX+B|yAdFIfYY$@?-L~OozQvb*y;x%0YhZ0U7Li4BTf%5y>uD$%jH!Df5udP_uKhSBeXuURvrou%4Z%mZ}d2l`bUO2+py zw;dzd?(6N{F>|&-cePH~M6+B1=_U0}hsX#ZN9nsJv{Hi_)gkvo+Ri_W*&gJ41*aj~ zAg!~L*iuW0Lkn0*eS)fyw4aG2)6ZD0(szpL`seajv@$py4$7o{>%PLe7wQ}OZfrd( zvYw~upy=%)bAK@nbq2A-4^lF5pd@N(Bx6u>2$9>@2yjks#$zOjip!An^+<^Q%HsCv zA;t&_aip+95DDr93HIw%?muyQlWg8S6DvlVI0la`4+C6JitpbgUnX6a>yF(20C8o6 zvKfoxbd$ca2Qvcr!w72yacH4D>XbMGi+Fn_fs?SSRIGw_J3Hj(J8+^}+|pK-mdk9B zwEAl5Nv~aGd#%^qNns>Zdtzjb4gs0?f=}6k)BZqyQhP1cR-1u+tk<^|Q@R(r;L(RY zE{%*Lm<)9i;8Z=%n1N%>^D8aAr6v`g>u`w?2C6A)JjWSGDn2v`*QUBs`b({@38cmH zM#mp%Xea9{;opC{PRn8I&DU(R1-ACLw=qTusSJ*1v7nwLHKQIWjPuA?aHTX_jcRqD zT#X<|X-QF06$hdHI%!I=7FHv^q$HBUnt3V)hv8UJ{{U)6kqXmstNbP#^um&rC;;-( z04pF;rk+2iSOu0@IeniV$Wo_}kkjd?j=EEJ(NolUn(5%E>4J;dzAq&fd%Q%o>VEBJ zI;qgO+4T}XNfgzHT}M?#AgEE#it@<3b<3DuT_`E&7I~^n)i#o%V@hFhl(dgO-MzSL z2iN-p_dT9#R(>b94`?C7>kH67DBat&=w9S)yXDP&3wchuVnZZjqj>|38uDr2tzVrn zS2-(>;9hYj6L@;sp*Gx>lopvxIE||b@=*h>)8a)AyocHDq;AK&x*NYBc+zWzmji`- zI4{vh>Py)PyQ$kqcP^hI>PuI8@rcf^Rwp)(45n_Um<-7TW~$2JjXt~M?aDGy5!ETl z%zELl(MYIEjjRGidJdm=rF`}7M!k<{BN3Qim01}*ypE04V})AaY7dAb;tG_!SKDtJ zW!Ah_?IQU$-*$d!er>TuugmU{H!V&^Xw!!D=D1@u zU@N3l3cHsuIMTT*MmY$5@AUc*u+zQ@&Iubf-TJFBk-KT!l3*7I*>XT9k z;a)VL@#edC>HFMS`-9qH4&`qY2l}v<#?Z#TH&@Oh{m|`1U;{}9N(}aYZn@*!kIdMe z)j`P^+S!cT#UU$GO~`R5+((U5LsL`N#OtAV+jVXB(`RtppHuY;{cFcRr4K;Q(!Idy zU7}$}+Lp82Bz}|c6exjYxm;TA?^y1bj1_<*|SdA?-!z0c)%?)PtRt9@wL15R$7 z(T)Ik7P-fe6M!{7{{U%1ZbxLN zk~tM_^n{|yUF`B;DQRiRZ7mSopgUbs zYLo68sa*}NYLtagnSw>LAeO?IOmy4V=#+p)=FwkFkbDoOQlHVR%T5a%?9oS#dDA}Q zGSJ8GYj(-FDf<(&b~4g>t7=^6g&%52)|1sey4rV)ZX*T%0K_nN(lhtfdXKRG06Cq* z?ZbU7n(@uItxPfxQY!Hwj{GF?EiFDM>6LTaSB0hfjz5q7VCV%CBw5mBC3Gg6WUX~l zNlj{=o+rwQH?^AFXt*zxn;&x|UOMd$jECx*Wc9yW1 zqhJj=`1^VL*OWTLx?MrPZY{pOxO?YiG#b;>rXWTI0|4L{02~*7Y2D8#lxW3*SdW}D>aWL zbmSj2@1X{Uq!Ldj>|1~8CD-zFv$}hAZMNxR=7!SlH%Qv-8V3tK%-j8*S7 zbB-=?@jn5O;1`&CmEJw~s#^>742)n2IJw5IamB=x`o{Z_n&+>s)p_9@bMirsP#8#wvF2C+}sCiAPgNrhq-z$v7e|vaQk`F zt=V>mKrLG5xND13s`FEhq3*$U@s~O07&X3BjCoO3jEUsQxS`nl_dP-gNeUZ$d^K;W z`(w54=0D5_e@(hY4KVRoPQ`rmb?0uIb~blHKRYk0Cb;!^@yiiGj!6>pe~o|0GHaF1 z^+lDC$QL;2Kn1e7sSYp2K!6vxbgzcDZKrRJ($$bh_+w~juO^BQsd<;K`oi<5ce}0D z?w^>unn|CeQM%=Md#Ev>)Z;;10%u(!+*tkSq{y_WaXor#BSoqv(U8-C)jLm+(+U;~ zt1bLU{elSVO3>Fxg)3vqQ%Y?~8x#jq?A9c;WDZI3YQIg7wP95>_8QiNN=67rK1};--zOQ_E1QZs z+pryyKYYX0QXgSJfmDz@JgP^Qo-$2OYhHipIB#*-{{T4qVR9|$SHmT`P?XofX{S-+ zPYUUUmBC4?ie75kzGAUWlC}{WB(*G?Ey)0c$ZMj^WzwZeM~W0W)5pW9P|OoCC`UIU zyEM$qcQ1si!!U{5g^-DCxSxl5T&Go}d7lx`*H6*JV2xN%q1Vl_%iCc{Q|!IF(?XH4 zP9mflq!UBsISQSBWxp$SS$sg%=dD?%j4B`vK) zwxZI{RH!K_@I68MN1m35U6Gue($lh0Lq}+JX%0FPl6sw>3e(wMx&=_O9C8SBhuC&% zDhYWlHyug`+_f54OGG4j3XV(0HN8z0?g{lAE+llI>9sx|r%6O9EA9JyzRhBmK`z<< z0EkE5@K=tSQ&9p3-EYJH0J-`+G=VpQj6A{r0LhX+m473D@xK%KWS_KSeg6RVXp=OdT-G)Gp`X3?8~k6t_-Xu4f455- zLZOFxfBZ+wf6D&=gtPwuF#HeW$KC$`@_+Qb+qCW}7Qa^S=1_j;;m7#CQ{nfIhuDAV`t=*rf-iBe{{SK5Kh8gj{{Z>_0Ovo1e~1477x(`F!@E&CB_PQ# zXa4{)yZ!$F<6it<<3AJrH~#1Mz4g?EMo?28{%+^u{qy)fAAigIf8G5$m8k-i98LT@ z-~Rw?eh1)wBEJXxUeA82O_)>0n|#guY_H`X$4veY`2PUMbNJ8kf4fq|qLVcihvLET z{6+Y9elYO&f4@^EB8{{8n}5LmApR@veew7I0K@IlAuC#cm$mr6v-tl2Z}$5&B1MIF q{8xN@eE#=`pS#(l2~%u-*V+F755x57N*Cn))qVc}KOYSR3;)?t!|~z( literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/rx/1.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/rx/1.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..f3fb15dbb5d6212fd1268e1827512688f8b82d3e GIT binary patch literal 16372 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
    4Hnr(Av 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 VnRmthGx7Xi#IX!&D~kai|JhB^8O{Iz literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/rx/big_bg.png" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/rx/big_bg.png" new file mode 100644 index 0000000000000000000000000000000000000000..459978718567d371a913d280687e248ee981f1ee GIT binary patch literal 2004 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 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/sousuo_btn.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/sousuo_btn.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..a908cddc6e21ee0bf5ced86f337e9c1167e961bb GIT binary patch literal 2741 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 XWm`^*rlOP7WysW?d)u(Ly=VUgr*mWm literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/taobao.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/taobao.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..01b8efa57e44407c07a68f6c7fdb7bb6389f2326 GIT binary patch literal 1926 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�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 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/yh/3.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/yh/3.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..76a91fd0b2f9fe29576c8173166faa8f2fe84a15 GIT binary patch literal 43868 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 H&42&dOqTvt literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/yh/4.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/yh/4.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..3f6a92c32d50f59cc743e2231d24bee1a5e554f5 GIT binary patch literal 56880 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 Wq`MtlNh55XOa#75+#+wDP5&Qh)7Z2C literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/yh/5.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/yh/5.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..25f3f085755a3f4ce12afb4b4e9c9486a1459167 GIT binary patch literal 49682 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 Bt%3jm literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/yh/6.jpg" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/images/yh/6.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..b0d3ce0f8c31c03bcbeedeb57d55765fea037000 GIT binary patch literal 43560 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 literal 0 HcmV?d00001 diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/index.html" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/index.html" new file mode 100644 index 0000000..be69f26 --- /dev/null +++ "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/index.html" @@ -0,0 +1,849 @@ + + + + +jquery滑屏切换效果 - 懒人素材 + + + + + + + + + + + + + + + + + + + + + + +

    + +
    +
    +
    +
    +
    + +
    +
      +
    • +
      + +
      +
      淘宝网
      +
      平均返现50%
      +
    • + +
    • +
      + +
      +
      京东商城
      +
      平均返现45元
      +
    • + +
    • +
      + +
      +
      苏宁易购
      +
      0-3840积分
      +
    • + +
    • +
      + +
      +
      凡客诚品
      +
      积分(随机)
      +
    • + +
    • +
      + +
      +
      嘀嗒团
      +
      平均返现45元
      +
    • + +
    • +
      + +
      +
      易讯网
      +
      0-4800积分
      +
    • + +
    • +
      + +
      +
      当当网
      +
      0-4800积分
      +
    • +
    + +
      +
    • +
      + +
      +
      卓越亚马逊
      +
      平均返现50%
      +
    • + +
    • +
      + +
      +
      一号店
      +
      平均返现45元
      +
    • + +
    • +
      + +
      +
      新蛋
      +
      0-3840积分
      +
    • + +
    • +
      + +
      +
      58团
      +
      积分(随机)
      +
    • + +
    • +
      + +
      +
      聚美优品
      +
      平均返现45元
      +
    • + +
    • +
      + +
      +
      银泰
      +
      0-4800积分
      +
    • + +
    • +
      + +
      +
      梦芭莎
      +
      0-4800积分
      +
    • +
    + +
      +
    • +
      + +
      +
      美团网
      +
      平均返现50%
      +
    • + +
    • +
      + +
      +
      拉手网
      +
      平均返现45元
      +
    • + +
    • +
      + +
      +
      库巴购物网
      +
      0-3840积分
      +
    • + +
    • +
      + +
      +
      Vjia
      +
      积分(随机)
      +
    • + +
    • +
      + +
      +
      24券
      +
      平均返现45元
      +
    • + +
    • +
      + +
      +
      开心团购
      +
      0-4800积分
      +
    • + +
    • +
      + +
      +
      乐蜂网
      +
      0-4800积分
      +
    • +
    + +
    +
    +
    + +
    + + +
    + +
    + +
    +
    + + +
    +
    + +
    ¥309.00
    +
    + +
    + +
    ¥309.00
    +
    + +
    + +
    ¥309.00
    +
    +
    +
    +
    + + + +
    +
    + + +
    +
    + +
    ¥25.00
    +
    + +
    + +
    ¥25.00
    +
    + +
    + +
    ¥25.00
    +
    +
    +
    +
    + + + + +
    +
    + + +
    +
    + +
    ¥309.00
    +
    + +
    + +
    ¥309.00
    +
    + +
    + +
    ¥309.00
    +
    +
    +
    +
    + + + +
    +
    + + +
    +
    + +
    ¥25.00
    +
    + +
    + +
    ¥25.00
    +
    + +
    + +
    ¥25.00
    +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    + + +
    + + +
    +
    + + + + +
    +
    + + + + +
    +
    + + + + +
    +
    + + + + +
    +
    + + + + +
    +
    + + + + +
    +
    + + + + +
    +
    + + + + +
    +
    + +
    +
    +
    +
    + + + +
    + + +
    + + +
    +
    + + + + +
    +
    + + + +
    +
    + + + +
    +
    + + + + +
    +
    + + + + +
    +
    + +
    + +
    + +
    + +

    +

    适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗.


    +

    来源:懒人素材

    +
    +
    +
    + + + + diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/js/cfcoda.js" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/js/cfcoda.js" new file mode 100644 index 0000000..bceaa6e --- /dev/null +++ "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/js/cfcoda.js" @@ -0,0 +1,160 @@ +// +// Code taken and adapted from CodaEffects.js - (C) 2007 Panic, Inc. +// http://www.panic.com +// http://www.jb51.net +// +// + +var currentSection = "home-pane"; // The default loaded section on the page +var tabTag = "-tab"; +var paneTag = "-pane"; + +// Scroll the page manually to the position of element "link", passed to us. + +function ScrollSection(link, scrollArea, offset) +{ + + // Store the last section, and update the current section + + if (currentSection == link) { + return; + } + lastSection = currentSection; + currentSection = link; + + // Change the section highlight. + // Extract the root section name, and use that to change the background image to 'top', revealing the alt. state + + sectionTab = currentSection.split("-")[0] + tabTag; + document.getElementById(sectionTab).className = 'active'; + if (lastSection) { + lastTab = lastSection.split("-")[0] + tabTag; + document.getElementById(lastTab).className = "inactive"; + } + + // Get the element we want to scroll, get the position of the element to scroll to + + theScroll = document.getElementById(scrollArea); + position = findElementPos(document.getElementById(link)); + + // Get the position of the offset div -- the div at the far left. + // This is the amount we compensate for when scrolling + + if (offset != "") { + offsetPos = findElementPos(document.getElementById(offset)); + position[0] = position[0] - offsetPos[0]; + } + + + scrollStart(theScroll, theScroll.scrollLeft, position[0], "horiz"); + // return false; +} +function ScrollArrow(direction, toolbar, scrollArea, offset) { + + toolbarElem = document.getElementById(toolbar); + toolbarNames = new Array(); + + // Find all the
  • elements in the toolbar, and extract their id's into an array. + + if (toolbarElem.hasChildNodes()) + { + var children = toolbarElem.childNodes; + for (var i = 0; i < children.length; i++) + { + if (toolbarElem.childNodes[i].tagName == "LI") { + toolbarNames.push(toolbarElem.childNodes[i].id.split("-")[0]); + } + } + } + + // Now iterate through our array of tab names, find matches, and determine where to go. + + for (var i = 0; i < toolbarNames.length; i++) { + if (toolbarNames[i] == currentSection.split("-")[0]) { + if (direction == "left") { + if (i - 1 < 0) { + gotoTab = toolbarNames[toolbarNames.length - 1]; + } else { + gotoTab = toolbarNames[i - 1]; + } + } else { + if ((i + 1) > (toolbarNames.length - 1)) { + gotoTab = toolbarNames[0]; + } else { + gotoTab = toolbarNames[i + 1]; + } + } + } + } + + // Go to the section name! + + ScrollSection(gotoTab+paneTag, scrollArea, offset); + +} +var scrollanim = {time:0, begin:0, change:0.0, duration:0.0, element:null, timer:null}; + +function scrollStart(elem, start, end, direction) +{ + //console.log("scrollStart from "+start+" to "+end+" in direction "+direction); + + if (scrollanim.timer != null) { + clearInterval(scrollanim.timer); + scrollanim.timer = null; + } + scrollanim.time = 0; + scrollanim.begin = start; + scrollanim.change = end - start; + scrollanim.duration = 20; + scrollanim.element = elem; + + if (direction == "horiz") { + scrollanim.timer = setInterval("scrollHorizAnim();", 15); + } + else { + scrollanim.timer = setInterval("scrollVertAnim();", 15); + } +} + +function scrollVertAnim() +{ + if (scrollanim.time > scrollanim.duration) { + clearInterval(scrollanim.timer); + scrollanim.timer = null; + } + else { + move = sineInOut(scrollanim.time, scrollanim.begin, scrollanim.change, scrollanim.duration); + scrollanim.element.scrollTop = move; + scrollanim.time++; + } +} + +function scrollHorizAnim() +{ + if (scrollanim.time > scrollanim.duration) { + clearInterval(scrollanim.timer); + scrollanim.timer = null; + } + else { + move = sineInOut(scrollanim.time, scrollanim.begin, scrollanim.change, scrollanim.duration); + scrollanim.element.scrollLeft = move; + scrollanim.time++; + } +} +function findElementPos(elemFind) +{ + var elemX = 0; + var elemY = 0; + do { + elemX += elemFind.offsetLeft; + elemY += elemFind.offsetTop; + } while ( elemFind = elemFind.offsetParent ) + + //console.log("Found element "+elemFind+" at "+elemY+"/"+elemX); + + return Array(elemX, elemY); +} +function sineInOut(t, b, c, d) +{ + return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; +} diff --git "a/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/js/jquery.js" "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/js/jquery.js" new file mode 100644 index 0000000..469aaa9 --- /dev/null +++ "b/\346\217\222\344\273\266/jquery\346\273\221\345\261\217\345\210\207\346\215\242\346\225\210\346\236\234/js/jquery.js" @@ -0,0 +1,4241 @@ +/*! + * jQuery JavaScript Library v1.3 + * http://jquery.com/ + * Download by http://www.jb51.net + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * Download by http://www.jb51.net + * Date: 2009-01-13 12:50:31 -0500 (Tue, 13 Jan 2009) + * Revision: 6104 + */ +(function(){ + +var + // Will speed up references to window, and allows munging its name. + window = this, + // Will speed up references to undefined, and allows munging its name. + undefined, + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + // Map over the $ in case of overwrite + _$ = window.$, + + jQuery = window.jQuery = window.$ = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context ); + }, + + // A simple way to check for HTML strings or ID strings + // (both of which we optimize for) + quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/, + // Is it a simple selector + isSimple = /^.[^:#\[\.,]*$/; + +jQuery.fn = jQuery.prototype = { + init: function( selector, context ) { + // Make sure that a selection was provided + selector = selector || document; + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this[0] = selector; + this.length = 1; + this.context = selector; + return this; + } + // Handle HTML strings + if ( typeof selector === "string" ) { + // Are we dealing with HTML string or an ID? + var match = quickExpr.exec( selector ); + + // Verify a match, and that no context was specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) + selector = jQuery.clean( [ match[1] ], context ); + + // HANDLE: $("#id") + else { + var elem = document.getElementById( match[3] ); + + // Make sure an element was located + if ( elem ){ + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id != match[3] ) + return jQuery().find( selector ); + + // Otherwise, we inject the element directly into the jQuery object + var ret = jQuery( elem ); + ret.context = document; + ret.selector = selector; + return ret; + } + selector = []; + } + + // HANDLE: $(expr, [context]) + // (which is just equivalent to: $(content).find(expr) + } else + return jQuery( context ).find( selector ); + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) + return jQuery( document ).ready( selector ); + + // Make sure that old selector state is passed along + if ( selector.selector && selector.context ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return this.setArray(jQuery.makeArray(selector)); + }, + + // Start with an empty selector + selector: "", + + // The current version of jQuery being used + jquery: "1.3", + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num === undefined ? + + // Return a 'clean' array + jQuery.makeArray( this ) : + + // Return just the object + this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems, name, selector ) { + // Build a new jQuery matched element set + var ret = jQuery( elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) + ret.selector = this.selector + (this.selector ? " " : "") + selector; + else if ( name ) + ret.selector = this.selector + "." + name + "(" + selector + ")"; + + // Return the newly-formed element set + return ret; + }, + + // Force the current matched set of elements to become + // the specified array of elements (destroying the stack in the process) + // You should use pushStack() in order to do this, but maintain the stack + setArray: function( elems ) { + // Resetting the length to 0, then using the native Array push + // is a super-fast way to populate an object with array-like properties + this.length = 0; + Array.prototype.push.apply( this, elems ); + + return this; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem && elem.jquery ? elem[0] : elem + , this ); + }, + + attr: function( name, value, type ) { + var options = name; + + // Look for the case where we're accessing a style value + if ( typeof name === "string" ) + if ( value === undefined ) + return this[0] && jQuery[ type || "attr" ]( this[0], name ); + + else { + options = {}; + options[ name ] = value; + } + + // Check to see if we're setting style values + return this.each(function(i){ + // Set all the styles + for ( name in options ) + jQuery.attr( + type ? + this.style : + this, + name, jQuery.prop( this, options[ name ], type, i, name ) + ); + }); + }, + + css: function( key, value ) { + // ignore negative width and height values + if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 ) + value = undefined; + return this.attr( key, value, "curCSS" ); + }, + + text: function( text ) { + if ( typeof text !== "object" && text != null ) + return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); + + var ret = ""; + + jQuery.each( text || this, function(){ + jQuery.each( this.childNodes, function(){ + if ( this.nodeType != 8 ) + ret += this.nodeType != 1 ? + this.nodeValue : + jQuery.fn.text( [ this ] ); + }); + }); + + return ret; + }, + + wrapAll: function( html ) { + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).clone(); + + if ( this[0].parentNode ) + wrap.insertBefore( this[0] ); + + wrap.map(function(){ + var elem = this; + + while ( elem.firstChild ) + elem = elem.firstChild; + + return elem; + }).append(this); + } + + return this; + }, + + wrapInner: function( html ) { + return this.each(function(){ + jQuery( this ).contents().wrapAll( html ); + }); + }, + + wrap: function( html ) { + return this.each(function(){ + jQuery( this ).wrapAll( html ); + }); + }, + + append: function() { + return this.domManip(arguments, true, function(elem){ + if (this.nodeType == 1) + this.appendChild( elem ); + }); + }, + + prepend: function() { + return this.domManip(arguments, true, function(elem){ + if (this.nodeType == 1) + this.insertBefore( elem, this.firstChild ); + }); + }, + + before: function() { + return this.domManip(arguments, false, function(elem){ + this.parentNode.insertBefore( elem, this ); + }); + }, + + after: function() { + return this.domManip(arguments, false, function(elem){ + this.parentNode.insertBefore( elem, this.nextSibling ); + }); + }, + + end: function() { + return this.prevObject || jQuery( [] ); + }, + + // For internal use only. + // Behaves like an Array's .push method, not like a jQuery method. + push: [].push, + + find: function( selector ) { + if ( this.length === 1 && !/,/.test(selector) ) { + var ret = this.pushStack( [], "find", selector ); + ret.length = 0; + jQuery.find( selector, this[0], ret ); + return ret; + } else { + var elems = jQuery.map(this, function(elem){ + return jQuery.find( selector, elem ); + }); + + return this.pushStack( /[^+>] [^+>]/.test( selector ) ? + jQuery.unique( elems ) : + elems, "find", selector ); + } + }, + + clone: function( events ) { + // Do the clone + var ret = this.map(function(){ + if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) { + // IE copies events bound via attachEvent when + // using cloneNode. Calling detachEvent on the + // clone will also remove the events from the orignal + // In order to get around this, we use innerHTML. + // Unfortunately, this means some modifications to + // attributes in IE that are actually only stored + // as properties will not be copied (such as the + // the name attribute on an input). + var clone = this.cloneNode(true), + container = document.createElement("div"); + container.appendChild(clone); + return jQuery.clean([container.innerHTML])[0]; + } else + return this.cloneNode(true); + }); + + // Need to set the expando to null on the cloned set if it exists + // removeData doesn't work here, IE removes it from the original as well + // this is primarily for IE but the data expando shouldn't be copied over in any browser + var clone = ret.find("*").andSelf().each(function(){ + if ( this[ expando ] !== undefined ) + this[ expando ] = null; + }); + + // Copy the events from the original to the clone + if ( events === true ) + this.find("*").andSelf().each(function(i){ + if (this.nodeType == 3) + return; + var events = jQuery.data( this, "events" ); + + for ( var type in events ) + for ( var handler in events[ type ] ) + jQuery.event.add( clone[ i ], type, events[ type ][ handler ], events[ type ][ handler ].data ); + }); + + // Return the cloned set + return ret; + }, + + filter: function( selector ) { + return this.pushStack( + jQuery.isFunction( selector ) && + jQuery.grep(this, function(elem, i){ + return selector.call( elem, i ); + }) || + + jQuery.multiFilter( selector, jQuery.grep(this, function(elem){ + return elem.nodeType === 1; + }) ), "filter", selector ); + }, + + closest: function( selector ) { + var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null; + + return this.map(function(){ + var cur = this; + while ( cur && cur.ownerDocument ) { + if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) + return cur; + cur = cur.parentNode; + } + }); + }, + + not: function( selector ) { + if ( typeof selector === "string" ) + // test special case where just one selector is passed in + if ( isSimple.test( selector ) ) + return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector ); + else + selector = jQuery.multiFilter( selector, this ); + + var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType; + return this.filter(function() { + return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector; + }); + }, + + add: function( selector ) { + return this.pushStack( jQuery.unique( jQuery.merge( + this.get(), + typeof selector === "string" ? + jQuery( selector ) : + jQuery.makeArray( selector ) + ))); + }, + + is: function( selector ) { + return !!selector && jQuery.multiFilter( selector, this ).length > 0; + }, + + hasClass: function( selector ) { + return !!selector && this.is( "." + selector ); + }, + + val: function( value ) { + if ( value === undefined ) { + var elem = this[0]; + + if ( elem ) { + if( jQuery.nodeName( elem, 'option' ) ) + return (elem.attributes.value || {}).specified ? elem.value : elem.text; + + // We need to handle select boxes special + if ( jQuery.nodeName( elem, "select" ) ) { + var index = elem.selectedIndex, + values = [], + options = elem.options, + one = elem.type == "select-one"; + + // Nothing was selected + if ( index < 0 ) + return null; + + // Loop through all the selected options + for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { + var option = options[ i ]; + + if ( option.selected ) { + // Get the specifc value for the option + value = jQuery(option).val(); + + // We don't need an array for one selects + if ( one ) + return value; + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + } + + // Everything else, we just grab the value + return (elem.value || "").replace(/\r/g, ""); + + } + + return undefined; + } + + if ( typeof value === "number" ) + value += ''; + + return this.each(function(){ + if ( this.nodeType != 1 ) + return; + + if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) ) + this.checked = (jQuery.inArray(this.value, value) >= 0 || + jQuery.inArray(this.name, value) >= 0); + + else if ( jQuery.nodeName( this, "select" ) ) { + var values = jQuery.makeArray(value); + + jQuery( "option", this ).each(function(){ + this.selected = (jQuery.inArray( this.value, values ) >= 0 || + jQuery.inArray( this.text, values ) >= 0); + }); + + if ( !values.length ) + this.selectedIndex = -1; + + } else + this.value = value; + }); + }, + + html: function( value ) { + return value === undefined ? + (this[0] ? + this[0].innerHTML : + null) : + this.empty().append( value ); + }, + + replaceWith: function( value ) { + return this.after( value ).remove(); + }, + + eq: function( i ) { + return this.slice( i, +i + 1 ); + }, + + slice: function() { + return this.pushStack( Array.prototype.slice.apply( this, arguments ), + "slice", Array.prototype.slice.call(arguments).join(",") ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function(elem, i){ + return callback.call( elem, i, elem ); + })); + }, + + andSelf: function() { + return this.add( this.prevObject ); + }, + + domManip: function( args, table, callback ) { + if ( this[0] ) { + var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(), + scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ), + first = fragment.firstChild, + extra = this.length > 1 ? fragment.cloneNode(true) : fragment; + + if ( first ) + for ( var i = 0, l = this.length; i < l; i++ ) + callback.call( root(this[i], first), i > 0 ? extra.cloneNode(true) : fragment ); + + if ( scripts ) + jQuery.each( scripts, evalScript ); + } + + return this; + + function root( elem, cur ) { + return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ? + (elem.getElementsByTagName("tbody")[0] || + elem.appendChild(elem.ownerDocument.createElement("tbody"))) : + elem; + } + } +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +function evalScript( i, elem ) { + if ( elem.src ) + jQuery.ajax({ + url: elem.src, + async: false, + dataType: "script" + }); + + else + jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); + + if ( elem.parentNode ) + elem.parentNode.removeChild( elem ); +} + +function now(){ + return +new Date; +} + +jQuery.extend = jQuery.fn.extend = function() { + // copy reference to target object + var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) + target = {}; + + // extend jQuery itself if only one argument is passed + if ( length == i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) + // Extend the base object + for ( var name in options ) { + var src = target[ name ], copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) + continue; + + // Recurse if we're merging object values + if ( deep && copy && typeof copy === "object" && !copy.nodeType ) + target[ name ] = jQuery.extend( deep, + // Never move original objects, clone them + src || ( copy.length != null ? [ ] : { } ) + , copy ); + + // Don't bring in undefined values + else if ( copy !== undefined ) + target[ name ] = copy; + + } + + // Return the modified object + return target; +}; + +// exclude the following css properties to add px +var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, + // cache defaultView + defaultView = document.defaultView || {}, + toString = Object.prototype.toString; + +jQuery.extend({ + noConflict: function( deep ) { + window.$ = _$; + + if ( deep ) + window.jQuery = _jQuery; + + return jQuery; + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return toString.call(obj) === "[object Function]"; + }, + + isArray: function( obj ) { + return toString.call(obj) === "[object Array]"; + }, + + // check if an element is in a (or is an) XML document + isXMLDoc: function( elem ) { + return elem.documentElement && !elem.body || + elem.tagName && elem.ownerDocument && !elem.ownerDocument.body; + }, + + // Evalulates a script in a global context + globalEval: function( data ) { + data = jQuery.trim( data ); + + if ( data ) { + // Inspired by code by Andrea Giammarchi + // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html + var head = document.getElementsByTagName("head")[0] || document.documentElement, + script = document.createElement("script"); + + script.type = "text/javascript"; + if ( jQuery.support.scriptEval ) + script.appendChild( document.createTextNode( data ) ); + else + script.text = data; + + // Use insertBefore instead of appendChild to circumvent an IE6 bug. + // This arises when a base node is used (#2709). + head.insertBefore( script, head.firstChild ); + head.removeChild( script ); + } + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); + }, + + // args is for internal usage only + each: function( object, callback, args ) { + var name, i = 0, length = object.length; + + if ( args ) { + if ( length === undefined ) { + for ( name in object ) + if ( callback.apply( object[ name ], args ) === false ) + break; + } else + for ( ; i < length; ) + if ( callback.apply( object[ i++ ], args ) === false ) + break; + + // A special, fast, case for the most common use of each + } else { + if ( length === undefined ) { + for ( name in object ) + if ( callback.call( object[ name ], name, object[ name ] ) === false ) + break; + } else + for ( var value = object[0]; + i < length && callback.call( value, i, value ) !== false; value = object[++i] ){} + } + + return object; + }, + + prop: function( elem, value, type, i, name ) { + // Handle executable functions + if ( jQuery.isFunction( value ) ) + value = value.call( elem, i ); + + // Handle passing in a number to a CSS property + return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ? + value + "px" : + value; + }, + + className: { + // internal only, use addClass("class") + add: function( elem, classNames ) { + jQuery.each((classNames || "").split(/\s+/), function(i, className){ + if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) ) + elem.className += (elem.className ? " " : "") + className; + }); + }, + + // internal only, use removeClass("class") + remove: function( elem, classNames ) { + if (elem.nodeType == 1) + elem.className = classNames !== undefined ? + jQuery.grep(elem.className.split(/\s+/), function(className){ + return !jQuery.className.has( classNames, className ); + }).join(" ") : + ""; + }, + + // internal only, use hasClass("class") + has: function( elem, className ) { + return jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1; + } + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations + swap: function( elem, options, callback ) { + var old = {}; + // Remember the old values, and insert the new ones + for ( var name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + callback.call( elem ); + + // Revert the old values + for ( var name in options ) + elem.style[ name ] = old[ name ]; + }, + + css: function( elem, name, force ) { + if ( name == "width" || name == "height" ) { + var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ]; + + function getWH() { + val = name == "width" ? elem.offsetWidth : elem.offsetHeight; + var padding = 0, border = 0; + jQuery.each( which, function() { + padding += parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; + border += parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; + }); + val -= Math.round(padding + border); + } + + if ( jQuery(elem).is(":visible") ) + getWH(); + else + jQuery.swap( elem, props, getWH ); + + return Math.max(0, val); + } + + return jQuery.curCSS( elem, name, force ); + }, + + curCSS: function( elem, name, force ) { + var ret, style = elem.style; + + // We need to handle opacity special in IE + if ( name == "opacity" && !jQuery.support.opacity ) { + ret = jQuery.attr( style, "opacity" ); + + return ret == "" ? + "1" : + ret; + } + + // Make sure we're using the right name for getting the float value + if ( name.match( /float/i ) ) + name = styleFloat; + + if ( !force && style && style[ name ] ) + ret = style[ name ]; + + else if ( defaultView.getComputedStyle ) { + + // Only "float" is needed here + if ( name.match( /float/i ) ) + name = "float"; + + name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase(); + + var computedStyle = defaultView.getComputedStyle( elem, null ); + + if ( computedStyle ) + ret = computedStyle.getPropertyValue( name ); + + // We should always get a number back from opacity + if ( name == "opacity" && ret == "" ) + ret = "1"; + + } else if ( elem.currentStyle ) { + var camelCase = name.replace(/\-(\w)/g, function(all, letter){ + return letter.toUpperCase(); + }); + + ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ]; + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) { + // Remember the original values + var left = style.left, rsLeft = elem.runtimeStyle.left; + + // Put in the new values to get a computed value out + elem.runtimeStyle.left = elem.currentStyle.left; + style.left = ret || 0; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + elem.runtimeStyle.left = rsLeft; + } + } + + return ret; + }, + + clean: function( elems, context, fragment ) { + context = context || document; + + // !context.createElement fails in IE with an error but returns typeof 'object' + if ( typeof context.createElement === "undefined" ) + context = context.ownerDocument || context[0] && context[0].ownerDocument || document; + + // If a single string is passed in and it's a single tag + // just do a createElement and skip the rest + if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) { + var match = /^<(\w+)\s*\/?>$/.exec(elems[0]); + if ( match ) + return [ context.createElement( match[1] ) ]; + } + + var ret = [], scripts = [], div = context.createElement("div"); + + jQuery.each(elems, function(i, elem){ + if ( typeof elem === "number" ) + elem += ''; + + if ( !elem ) + return; + + // Convert html string into DOM nodes + if ( typeof elem === "string" ) { + // Fix "XHTML"-style tags in all browsers + elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){ + return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? + all : + front + ">"; + }); + + // Trim whitespace, otherwise indexOf won't work as expected + var tags = jQuery.trim( elem ).toLowerCase(); + + var wrap = + // option or optgroup + !tags.indexOf("", "" ] || + + !tags.indexOf("", "" ] || + + tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && + [ 1, "
  • ", "
    " ] || + + !tags.indexOf("", "" ] || + + // matched above + (!tags.indexOf("", "" ] || + + !tags.indexOf("", "" ] || + + // IE can't serialize and + + + + + + + + +
    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git "a/\346\227\266\351\227\264date/\346\224\257\346\214\201\346\267\273\345\212\240\344\272\213\344\273\266\347\232\204jQuery\346\227\245\345\216\206\344\273\243\347\240\201_\345\217\257\347\224\250\344\272\216\346\217\220\351\206\222\350\207\252\345\267\261\345\201\232\344\272\213\346\203\205/js/jalendar.js" "b/\346\227\266\351\227\264date/\346\224\257\346\214\201\346\267\273\345\212\240\344\272\213\344\273\266\347\232\204jQuery\346\227\245\345\216\206\344\273\243\347\240\201_\345\217\257\347\224\250\344\272\216\346\217\220\351\206\222\350\207\252\345\267\261\345\201\232\344\272\213\346\203\205/js/jalendar.js" new file mode 100644 index 0000000..5f38a00 --- /dev/null +++ "b/\346\227\266\351\227\264date/\346\224\257\346\214\201\346\267\273\345\212\240\344\272\213\344\273\266\347\232\204jQuery\346\227\245\345\216\206\344\273\243\347\240\201_\345\217\257\347\224\250\344\272\216\346\217\220\351\206\222\350\207\252\345\267\261\345\201\232\344\272\213\346\203\205/js/jalendar.js" @@ -0,0 +1,338 @@ +//////////////////////////////// +// Author: Bora DAN — http://codecanyon.net/user/bqra +// 18 August 2013 +// E-mail: bora_dan@hotmail.com +//////////////////////////////// + +$(function () { + (function ($) { + $.fn.jalendar = function (options) { + + var settings = $.extend({ + customDay: new Date(), + color: '#65c2c0', + lang: 'EN' + }, options); + + // Languages + var dayNames = {}; + var monthNames = {}; + var lAddEvent = {}; + var lAllDay = {}; + var lTotalEvents = {}; + var lEvent = {}; + dayNames['EN'] = new Array('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'); + dayNames['TR'] = new Array('Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt', 'Pzr'); + dayNames['ES'] = new Array('Lun', 'Mar', 'Mié', 'Jue', 'Vie', 'Såb', 'Dom'); + monthNames['EN'] = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); + monthNames['TR'] = new Array('Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'); + monthNames['ES'] = new Array('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'); + lAddEvent['EN'] = 'Add New Event'; + lAddEvent['TR'] = 'Yeni Etkinlik Ekle'; + lAddEvent['ES'] = 'Agregar Un Nuevo Evento'; + lAllDay['EN'] = 'All Day'; + lAllDay['TR'] = 'Tüm Gün'; + lAllDay['ES'] = 'Todo El Día'; + lTotalEvents['EN'] = 'Total Events in This Month: '; + lTotalEvents['TR'] = 'Bu Ayki Etkinlik Sayısı: '; + lTotalEvents['ES'] = 'Total De Eventos En Este Mes: '; + lEvent['EN'] = 'Event(s)'; + lEvent['TR'] = 'Etkinlik'; + lEvent['ES'] = 'Evento(s)'; + + + var $this = $(this); + var div = function (e, classN) { + return $(document.createElement(e)).addClass(classN); + }; + + var clockHour = []; + var clockMin = []; + for (var i=0;i<24;i++ ){ + clockHour.push(div('div', 'option').text(i)) + } + for (var i=0;i<59;i+=5 ){ + clockMin.push(div('div', 'option').text(i)) + } + + // HTML Tree + $this.append( + div('div', 'wood-bottom'), + div('div', 'jalendar-wood').append( + div('div', 'close-button'), + div('div', 'jalendar-pages').append( + div('div', 'pages-bottom'), + div('div', 'header').css('background-color', settings.color).append( + div('a', 'prv-m'), + div('h1'), + div('a', 'nxt-m'), + div('div', 'day-names') + ), + div('div', 'total-bar').html( lTotalEvents[settings.lang] + ''), + div('div', 'days clearfix') + ), + div('div', 'add-event').append( + div('div', 'add-new').append( + '', + div('div', 'submit'), + div('div', 'clear'), + div('div', 'add-time').append( + div('div', 'disabled'), + div('div', 'select').addClass('hour').css('background-color', settings.color).append( + div('span').text('00'), + div('div', 'dropdown').append(clockHour) + ), + div('div', 'left').append(':'), + div('div', 'select').addClass('min').css('background-color', settings.color).append( + div('span').text('00'), + div('div', 'dropdown').append(clockMin) + ) + ), + div('div', 'all-day').append( + div('fieldset').attr('data-type','disabled').append( + div('div', 'check').append( + div('span', '') + ), + div('label').text(lAllDay[settings.lang]) + ) + ), + div('div', 'clear') + ), + div('div', 'events').append( + div('h3','').append( + div('span', '').html(' ' + lEvent[settings.lang]) + ), + div('div', 'gradient-wood'), + div('div', 'events-list') + ) + ) + ) + ); + + // Adding day boxes + for (var i = 0; i < 42; i++) { + $this.find('.days').append(div('div', 'day')); + } + + // Adding day names fields + for (var i = 0; i < 7; i++) { + $this.find('.day-names').append(div('h2').text(dayNames[settings.lang][i])); + } + + var d = new Date(settings.customDay); + var year = d.getFullYear(); + var date = d.getDate(); + var month = d.getMonth(); + + var isLeapYear = function(year1) { + var f = new Date(); + f.setYear(year1); + f.setMonth(1); + f.setDate(29); + return f.getDate() == 29; + }; + + var feb; + var febCalc = function(feb) { + if (isLeapYear(year) === true) { feb = 29; } else { feb = 28; } + return feb; + }; + var monthDays = new Array(31, febCalc(feb), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); + + function calcMonth() { + + monthDays[1] = febCalc(feb); + + var weekStart = new Date(); + weekStart.setFullYear(year, month, 0); + var startDay = weekStart.getDay(); + + $this.find('.header h1').html(monthNames[settings.lang][month] + ' ' + year); + + $this.find('.day').html(' '); + $this.find('.day').removeClass('this-month'); + for (var i = 1; i <= monthDays[month]; i++) { + startDay++; + $this.find('.day').eq(startDay-1).addClass('this-month').attr('data-date', i+'/'+(month+1)+'/'+year).html(i); + } + if ( month == d.getMonth() ) { + $this.find('.day.this-month').removeClass('today').eq(date-1).addClass('today').css('color', settings.color); + } else { + $this.find('.day.this-month').removeClass('today').attr('style', ''); + } + + // added event + $this.find('.added-event').each(function(i){ + $(this).attr('data-id', i); + $this.find('.this-month[data-date="' + $(this).attr('data-date') + '"]').append( + div('div','event-single').attr('data-id', i).append( + div('p','').text($(this).attr('data-title')), + div('div','details').append( + div('div', 'clock').text($(this).attr('data-time')), + div('div', 'erase') + ) + ) + ); + $this.find('.day').has('.event-single').addClass('have-event').prepend(div('i','')); + }); + + calcTotalDayAgain(); + + } + + calcMonth(); + + var arrows = new Array ($this.find('.prv-m'), $this.find('.nxt-m')); + var dropdown = new Array ($this.find('.add-time .select span'), $this.find('.add-time .select .dropdown .option'), $this.find('.add-time .select')); + var allDay = new Array ('.all-day fieldset[data-type="disabled"]', '.all-day fieldset[data-type="enabled"]'); + var $close = $this.find('.jalendar-wood > .close-button'); + var $erase = $this.find('.event-single .erase'); + $this.find('.jalendar-pages').css({'width' : $this.find('.jalendar-pages').width() }); + $this.find('.events').css('height', ($this.height()-197) ); + $this.find('.select .dropdown .option').hover(function() { + $(this).css('background-color', settings.color); + }, function(){ + $(this).css('background-color', 'inherit'); + }); + var jalendarWoodW = $this.find('.jalendar-wood').width(); + var woodBottomW = $this.find('.wood-bottom').width(); + + // calculate for scroll + function calcScroll() { + if ( $this.find('.events-list').height() < $this.find('.events').height() ) { $this.find('.gradient-wood').hide(); $this.find('.events-list').css('border', 'none') } else { $this.find('.gradient-wood').show(); } + } + + // Calculate total event again + function calcTotalDayAgain() { + var eventCount = $this.find('.this-month .event-single').length; + $this.find('.total-bar b').text(eventCount); + $this.find('.events h3 span b').text($this.find('.events .event-single').length) + } + + function prevAddEvent() { + $this.find('.day').removeClass('selected').removeAttr('style'); + $this.find('.today').css('color', settings.color); + $this.find('.add-event').hide(); + $this.children('.jalendar-wood').animate({'width' : jalendarWoodW}, 200); + $this.children('.wood-bottom').animate({'width' : woodBottomW}, 200); + $close.hide(); + } + + arrows[1].on('click', function () { + if ( month >= 11 ) { + month = 0; + year++; + } else { + month++; + } + calcMonth(); + prevAddEvent(); + }); + arrows[0].on('click', function () { + dayClick = $this.find('.this-month'); + if ( month === 0 ) { + month = 11; + year--; + } else { + month--; + } + calcMonth(); + prevAddEvent(); + }); + + $this.on('click', '.this-month', function () { + var eventSingle = $(this).find('.event-single') + $this.find('.events .event-single').remove(); + prevAddEvent(); + $(this).addClass('selected').css({'background-color': settings.color}); + $this.children('.jalendar-wood, .wood-bottom').animate({width : '+=300px' }, 200, function() { + $this.find('.add-event').show().find('.events-list').html(eventSingle.clone()) + $this.find('.add-new input').select(); + calcTotalDayAgain(); + calcScroll(); + $close.show(); + }); + }); + + dropdown[0].click(function(){ + dropdown[2].children('.dropdown').hide(0); + $(this).next('.dropdown').show(0); + }); + dropdown[1].click(function(){ + $(this).parent().parent().children('span').text($(this).text()); + dropdown[2].children('.dropdown').hide(0); + }); + $('html').click(function(){ + dropdown[2].children('.dropdown').hide(0); + }); + $('.add-time .select span').click(function(event){ + event.stopPropagation(); + }); + + $this.on('click', allDay[0], function(){ + $(this).removeAttr('data-type').attr('data-type', 'enabled').children('.check').children().css('background-color', settings.color); + dropdown[2].children('.dropdown').hide(0); + $(this).parents('.all-day').prev('.add-time').css('opacity', '0.4').children('.disabled').css('z-index', '10'); + }); + $this.on('click', allDay[1], function(){ + $(this).removeAttr('data-type').attr('data-type', 'disabled').children('.check').children().css('background-color', 'transparent'); + $(this).parents('.all-day').prev('.add-time').css('opacity', '1').children('.disabled').css('z-index', '-1'); + }); + + // add new event with panel + var dataId = parseInt($this.find('.total-bar b').text()); + $this.find('.submit').on('click', function(){ + var title = $(this).prev('input').val(); + var hour = $(this).parents('.add-new').find('.hour > span').text(); + var min = $(this).parents('.add-new').find('.min > span').text(); + var isAllDay = $(this).parents('.add-new').find('.all-day fieldset').attr('data-type'); + var isAllDayText = $(this).parents('.add-new').find('.all-day fieldset label').text(); + var thisDay = $this.find('.day.this-month.selected').attr('data-date'); + var time; + if ( isAllDay == 'disabled' ) { + time = hour + ':' + min; + } else { + time = isAllDayText; + } + $this.prepend(div('div', 'added-event').attr({'data-date':thisDay, 'data-time': time, 'data-title': title, 'data-id': dataId})); + + $this.find('.day.this-month.selected').prepend( + div('div','event-single').attr('data-id', dataId).append( + div('p','').text(title), + div('div','details').append( + div('div', 'clock').text(time), + div('div', 'erase') + ) + ) + ); + $this.find('.day').has('.event-single').addClass('have-event').prepend(div('i','')); + $this.find('.events-list').html($this.find('.day.this-month.selected .event-single').clone()) + $this.find('.events-list .event-single').eq(0).hide().slideDown(); + calcTotalDayAgain(); + calcScroll(); + // scrolltop after adding new event + $this.find('.events-list').scrollTop(0); + // form reset + $this.find('.add-new > input[type="text"]').val(lAddEvent[settings.lang]).select(); + dataId++; + }); + + $close.on('click', function(){ + prevAddEvent(); + }); + + // delete event + $this.on('click', '.event-single .erase', function(){ + $('div[data-id=' + $(this).parents(".event-single").attr("data-id") + ']').animate({'height': 0}, function(){ + $(this).remove(); + calcTotalDayAgain(); + calcScroll(); + }); + }); + + }; + + }(jQuery)); + +}); + diff --git "a/\346\227\266\351\227\264date/\346\224\257\346\214\201\346\267\273\345\212\240\344\272\213\344\273\266\347\232\204jQuery\346\227\245\345\216\206\344\273\243\347\240\201_\345\217\257\347\224\250\344\272\216\346\217\220\351\206\222\350\207\252\345\267\261\345\201\232\344\272\213\346\203\205/js/jquery-1.10.2.min.js" "b/\346\227\266\351\227\264date/\346\224\257\346\214\201\346\267\273\345\212\240\344\272\213\344\273\266\347\232\204jQuery\346\227\245\345\216\206\344\273\243\347\240\201_\345\217\257\347\224\250\344\272\216\346\217\220\351\206\222\350\207\252\345\267\261\345\201\232\344\272\213\346\203\205/js/jquery-1.10.2.min.js" new file mode 100644 index 0000000..da41706 --- /dev/null +++ "b/\346\227\266\351\227\264date/\346\224\257\346\214\201\346\267\273\345\212\240\344\272\213\344\273\266\347\232\204jQuery\346\227\245\345\216\206\344\273\243\347\240\201_\345\217\257\347\224\250\344\272\216\346\217\220\351\206\222\350\207\252\345\267\261\345\201\232\344\272\213\346\203\205/js/jquery-1.10.2.min.js" @@ -0,0 +1,6 @@ +/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery-1.10.2.min.map +*/ +(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="
    ",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
    a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
    t
    ",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
    ",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t +}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:x.support.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); +u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("');return d.join("")})}},fileButton:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);var e=this;a.validate&&(this.validate=a.validate);var c=CKEDITOR.tools.extend({},a),f=c.onClick;c.className=(c.className?c.className+" ":"")+"cke_dialog_ui_button";c.onClick=function(c){var d=a["for"];if(!f||f.call(this,c)!==false){b.getContentElement(d[0], +d[1]).submit();this.disable()}};b.on("load",function(){b.getContentElement(a["for"][0],a["for"][1])._.buttons.push(e)});CKEDITOR.ui.dialog.button.call(this,b,c,d)}},html:function(){var b=/^\s*<[\w:]+\s+([^>]*)?>/,a=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,d=/\/$/;return function(e,c,f){if(!(3>arguments.length)){var i=[],g=c.html;"<"!=g.charAt(0)&&(g=""+g+"");var j=c.focus;j&&(this.focus=function(){this.selectParentTab();"function"==typeof j&&j.call(this);this.fire("focus")},c.isFocusable&& +(this.isFocusable=this.isFocusable),this.keyboardFocusable=!0);CKEDITOR.ui.dialog.uiElement.call(this,e,c,i,"span",null,null,"");i=i.join("").match(b);g=g.match(a)||["","",""];d.test(g[1])&&(g[1]=g[1].slice(0,-1),g[2]="/"+g[2]);f.push([g[1]," ",i[1]||"",g[2]].join(""))}}}(),fieldset:function(b,a,d,e,c){var f=c.label;this._={children:a};CKEDITOR.ui.dialog.uiElement.call(this,b,c,e,"fieldset",null,null,function(){var a=[];f&&a.push(""+f+""); +for(var b=0;ba.getChildCount()?(new CKEDITOR.dom.text(b,CKEDITOR.document)).appendTo(a):a.getChild(0).$.nodeValue=b;return this},getLabel:function(){var b=CKEDITOR.document.getById(this._.labelId);return!b||1>b.getChildCount()? +"":b.getChild(0).getText()},eventProcessors:o},!0);CKEDITOR.ui.dialog.button.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{click:function(){return!this._.disabled?this.fire("click",{dialog:this._.dialog}):!1},enable:function(){this._.disabled=!1;var b=this.getElement();b&&b.removeClass("cke_disabled")},disable:function(){this._.disabled=!0;this.getElement().addClass("cke_disabled")},isVisible:function(){return this.getElement().getFirst().isVisible()},isEnabled:function(){return!this._.disabled}, +eventProcessors:CKEDITOR.tools.extend({},CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,{onClick:function(b,a){this.on("click",function(){a.apply(this,arguments)})}},!0),accessKeyUp:function(){this.click()},accessKeyDown:function(){this.focus()},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.textInput.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return CKEDITOR.document.getById(this._.inputId)},focus:function(){var b=this.selectParentTab(); +setTimeout(function(){var a=b.getInputElement();a&&a.$.focus()},0)},select:function(){var b=this.selectParentTab();setTimeout(function(){var a=b.getInputElement();a&&(a.$.focus(),a.$.select())},0)},accessKeyUp:function(){this.select()},setValue:function(b){!b&&(b="");return CKEDITOR.ui.dialog.uiElement.prototype.setValue.apply(this,arguments)},keyboardFocusable:!0},n,!0);CKEDITOR.ui.dialog.textarea.prototype=new CKEDITOR.ui.dialog.textInput;CKEDITOR.ui.dialog.select.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement, +{getInputElement:function(){return this._.select.getElement()},add:function(b,a,d){var e=new CKEDITOR.dom.element("option",this.getDialog().getParentEditor().document),c=this.getInputElement().$;e.$.text=b;e.$.value=void 0===a||null===a?b:a;void 0===d||null===d?CKEDITOR.env.ie?c.add(e.$):c.add(e.$,null):c.add(e.$,d);return this},remove:function(b){this.getInputElement().$.remove(b);return this},clear:function(){for(var b=this.getInputElement().$;0','
    '," + +

    + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/plugins/wsc/dialogs/tmpFrameset.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/plugins/wsc/dialogs/tmpFrameset.html" new file mode 100644 index 0000000..0d675f4 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/plugins/wsc/dialogs/tmpFrameset.html" @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/plugins/wsc/dialogs/wsc.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/plugins/wsc/dialogs/wsc.css" new file mode 100644 index 0000000..9e834f1 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/plugins/wsc/dialogs/wsc.css" @@ -0,0 +1,82 @@ +/* +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +html, body +{ + background-color: transparent; + margin: 0px; + padding: 0px; +} + +body +{ + padding: 10px; +} + +body, td, input, select, textarea +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; +} + +.midtext +{ + padding:0px; + margin:10px; +} + +.midtext p +{ + padding:0px; + margin:10px; +} + +.Button +{ + border: #737357 1px solid; + color: #3b3b1f; + background-color: #c7c78f; +} + +.PopupTabArea +{ + color: #737357; + background-color: #e3e3c7; +} + +.PopupTitleBorder +{ + border-bottom: #d5d59d 1px solid; +} +.PopupTabEmptyArea +{ + padding-left: 10px; + border-bottom: #d5d59d 1px solid; +} + +.PopupTab, .PopupTabSelected +{ + border-right: #d5d59d 1px solid; + border-top: #d5d59d 1px solid; + border-left: #d5d59d 1px solid; + padding: 3px 5px 3px 5px; + color: #737357; +} + +.PopupTab +{ + margin-top: 1px; + border-bottom: #d5d59d 1px solid; + cursor: pointer; +} + +.PopupTabSelected +{ + font-weight: bold; + cursor: default; + padding-top: 4px; + border-bottom: #f1f1e3 1px solid; + background-color: #f1f1e3; +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/plugins/wsc/dialogs/wsc.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/plugins/wsc/dialogs/wsc.js" new file mode 100644 index 0000000..6b39b00 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/plugins/wsc/dialogs/wsc.js" @@ -0,0 +1,11 @@ +/* + Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("checkspell",function(a){function c(a,c){var d=0;return function(){"function"==typeof window.doSpell?("undefined"!=typeof e&&window.clearInterval(e),j(a)):180==d++&&window._cancelOnError(c)}}function j(c){var f=new window._SP_FCK_LangCompare,b=CKEDITOR.getUrl(a.plugins.wsc.path+"dialogs/"),e=b+"tmpFrameset.html";window.gFCKPluginName="wsc";f.setDefaulLangCode(a.config.defaultLanguage);window.doSpell({ctrl:g,lang:a.config.wsc_lang||f.getSPLangCode(a.langCode),intLang:a.config.wsc_uiLang|| +f.getSPLangCode(a.langCode),winType:d,onCancel:function(){c.hide()},onFinish:function(b){a.focus();c.getParentEditor().setData(b.value);c.hide()},staticFrame:e,framesetPath:e,iframePath:b+"ciframe.html",schemaURI:b+"wsc.css",userDictionaryName:a.config.wsc_userDictionaryName,customDictionaryName:a.config.wsc_customDictionaryIds&&a.config.wsc_customDictionaryIds.split(","),domainName:a.config.wsc_domainName});CKEDITOR.document.getById(h).setStyle("display","none");CKEDITOR.document.getById(d).setStyle("display", +"block")}var b=CKEDITOR.tools.getNextNumber(),d="cke_frame_"+b,g="cke_data_"+b,h="cke_error_"+b,e,b=document.location.protocol||"http:",i=a.lang.wsc.notAvailable,k='', +l=a.config.wsc_customLoaderScript||b+"//loader.webspellchecker.net/sproxy_fck/sproxy.php?plugin=fck2&customerid="+a.config.wsc_customerId+"&cmd=script&doc=wsc&schema=22";a.config.wsc_customLoaderScript&&(i+='

    '+a.lang.wsc.errorLoading.replace(/%s/g,a.config.wsc_customLoaderScript)+"

    ");window._cancelOnError=function(c){if("undefined"==typeof window.WSC_Error){CKEDITOR.document.getById(d).setStyle("display", +"none");var b=CKEDITOR.document.getById(h);b.setStyle("display","block");b.setHtml(c||a.lang.wsc.notAvailable)}};return{title:a.config.wsc_dialogTitle||a.lang.wsc.title,minWidth:485,minHeight:380,buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var b=this.getContentElement("general","content").getElement();b.setHtml(k);b.getChild(2).setStyle("height",this._.contentSize.height+"px");"function"!=typeof window.doSpell&&CKEDITOR.document.getHead().append(CKEDITOR.document.createElement("script", +{attributes:{type:"text/javascript",src:l}}));b=a.getData();CKEDITOR.document.getById(g).setValue(b);e=window.setInterval(c(this,i),250)},onHide:function(){window.ooo=void 0;window.int_framsetLoaded=void 0;window.framesetLoaded=void 0;window.is_window_opened=!1},contents:[{id:"general",label:a.config.wsc_dialogTitle||a.lang.wsc.title,padding:0,elements:[{type:"html",id:"content",html:""}]}]}}); +CKEDITOR.dialog.on("resize",function(a){var a=a.data,c=a.dialog;"checkspell"==c._.name&&((c=(c=c.getContentElement("general","content").getElement())&&c.getChild(2))&&c.setSize("height",a.height),c&&c.setSize("width",a.width))}); \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/ajax.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/ajax.html" new file mode 100644 index 0000000..5c92fa5 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/ajax.html" @@ -0,0 +1,82 @@ + + + + + Ajax — CKEditor Sample + + + + + + +

    + CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications +

    +
    +

    + This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing + area will be displayed in a <div> element. +

    +

    + For details of how to create this setup check the source code of this sample page + for JavaScript code responsible for the creation and destruction of a CKEditor instance. +

    +
    +

    Click the buttons to create and remove a CKEditor instance.

    +

    + + +

    + +
    +
    + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/api.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/api.html" new file mode 100644 index 0000000..9d51ef7 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/api.html" @@ -0,0 +1,207 @@ + + + + + + API Usage — CKEditor Sample + + + + + + +

    + CKEditor Samples » Using CKEditor JavaScript API +

    +
    +

    + This sample shows how to use the + CKEditor JavaScript API + to interact with the editor at runtime. +

    +

    + For details on how to create this setup check the source code of this sample page. +

    +
    + + +
    + +
    +
    + + + + +

    +

    + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/appendto.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/appendto.html" new file mode 100644 index 0000000..4e97bad --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/appendto.html" @@ -0,0 +1,57 @@ + + + + + CKEDITOR.appendTo — CKEditor Sample + + + + + +

    + CKEditor Samples » Append To Page Element Using JavaScript Code +

    +
    +
    +

    + CKEDITOR.appendTo is basically to place editors + inside existing DOM elements. Unlike CKEDITOR.replace, + a target container to be replaced is no longer necessary. A new editor + instance is inserted directly wherever it is desired. +

    +
    CKEDITOR.appendTo( 'container_id',
    +	{ /* Configuration options to be used. */ }
    +	'Editor content to be used.'
    +);
    +
    + +
    +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/assets/inlineall/logo.png" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/assets/inlineall/logo.png" new file mode 100644 index 0000000000000000000000000000000000000000..334e7ac9958073fdfa1a05a72b45d5c079edcce1 GIT binary patch literal 4411 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 + + + + + Sample — CKEditor + + + +

    + CKEditor — Posted Data +

    +
    + + + + + + + + $value ) +{ + if ( get_magic_quotes_gpc() ) + $postedValue = htmlspecialchars( stripslashes( $value ) ) ; + else + $postedValue = htmlspecialchars( $value ) ; + +?> + + + + + +
    Field NameValue
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/assets/sample.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/assets/sample.css" new file mode 100644 index 0000000..a47e4dd --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/assets/sample.css" @@ -0,0 +1,3 @@ +/** + * Required by tests (dom/document.html). + */ diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/assets/sample.jpg" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/assets/sample.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..a4a77fae83b0f66e77a97f172b4f184e1edac8e7 GIT binary patch literal 17932 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 + + + + Replace DIV — CKEditor Sample + + + + + + + +

    + CKEditor Samples » Replace DIV with CKEditor on the Fly +

    +
    +

    + This sample shows how to automatically replace <div> elements + with a CKEditor instance on the fly, following user's doubleclick. The content + that was previously placed inside the <div> element will now + be moved into CKEditor editing area. +

    +

    + For details on how to create this setup check the source code of this sample page. +

    +
    +

    + Double-click any of the following <div> elements to transform them into + editor instances. +

    +
    +

    + Part 1 +

    +

    + Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

    +
    +
    +

    + Part 2 +

    +

    + Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

    +

    + Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus + sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum + vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate. +

    +
    +
    +

    + Part 3 +

    +

    + Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

    +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/index.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/index.html" new file mode 100644 index 0000000..a76d187 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/index.html" @@ -0,0 +1,119 @@ + + + + + CKEditor Samples + + + + +

    + CKEditor Samples +

    +
    +
    +

    + Basic Samples +

    +
    +
    Replace textarea elements by class name
    +
    Automatic replacement of all textarea elements of a given class with a CKEditor instance.
    + +
    Replace textarea elements by code
    +
    Replacement of textarea elements with CKEditor instances by using a JavaScript call.
    +
    + +

    + Basic Customization +

    +
    +
    User Interface color
    +
    Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
    + +
    User Interface languages
    +
    Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
    +
    + + +

    Plugins

    +
    +
    Magicline pluginNew!
    +
    Using the Magicline plugin to access difficult focus spaces.
    + +
    Full page support
    +
    CKEditor inserted with a JavaScript call and used to edit the whole page from <html> to </html>.
    +
    +
    +
    +

    + Inline Editing New! +

    +
    +
    Massive inline editor creation New!
    +
    Turn all elements with contentEditable = true attribute into inline editors.
    + +
    Convert element into an inline editor by code New!
    +
    Conversion of DOM elements into inline CKEditor instances by using a JavaScript call.
    + + +
    + +

    + Advanced Samples +

    +
    +
    Replace DIV elements on the fly
    +
    Transforming a div element into an instance of CKEditor with a mouse click.
    + +
    Append editor instances
    +
    Appending editor instances to existing DOM elements.
    + +
    Create and destroy editor instances for Ajax applications
    +
    Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.
    + +
    Basic usage of the API
    +
    Using the CKEditor JavaScript API to interact with the editor at runtime.
    + +
    XHTML-compliant style
    +
    Configuring CKEditor to produce XHTML 1.1 compliant attributes and styles.
    + +
    Read-only mode
    +
    Using the readOnly API to block introducing changes to the editor contents.
    + +
    "Tab" key-based navigation New!
    +
    Navigating among editor instances with tab key.
    + + + +
    Using the JavaScript API to customize dialog windows
    +
    Using the dialog windows API to customize dialog windows without changing the original editor code.
    + +
    Using the "Enter" key in CKEditor
    +
    Configuring the behavior of Enter and Shift+Enter keys.
    + +
    Output for Flash
    +
    Configuring CKEditor to produce HTML code that can be used with Adobe Flash.
    + +
    Output HTML
    +
    Configuring CKEditor to produce legacy HTML 4 code.
    + +
    Toolbar ConfigurationsNew!
    +
    Configuring CKEditor to display full or custom toolbar layout.
    + +
    +
    +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/inlineall.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/inlineall.html" new file mode 100644 index 0000000..dc6f782 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/inlineall.html" @@ -0,0 +1,311 @@ + + + + + Massive inline editing — CKEditor Sample + + + + + + + +
    +

    CKEditor Samples » Massive inline editing

    +
    +

    This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true:

    +
    <div contenteditable="true" > ... </div>
    +

    Click inside of any element below to start editing.

    +
    +
    +
    + +
    +
    +
    +

    + Fusce vitae porttitor +

    +

    + + Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. + +

    +

    + Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat. +

    +
    +

    + Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. + Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum +

    +
    +
    +

    + Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. +

    +
    +

    Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.

    +

    Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.

    +
    +
    +
    +
    +

    + Integer condimentum sit amet +

    +

    + Aenean nonummy a, mattis varius. Cras aliquet. + Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

    +

    Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

    +

    Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

    +
    +
    +

    + Praesent wisi accumsan sit amet nibh +

    +

    Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

    +

    Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

    +

    In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

    +
    +
    +
    +
    +

    + CKEditor logo +

    +

    Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.

    +

    + Nullam laoreet vel consectetuer tellus suscipit +

    +
      +
    • Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
    • +
    • Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
    • +
    • Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
    • +
    +

    Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.

    +

    Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.

    +

    Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.

    +
    +
    +
    +
    + Tags of this article: +

    + inline, editing, floating, CKEditor +

    +
    +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/inlinebycode.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/inlinebycode.html" new file mode 100644 index 0000000..a940a18 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/inlinebycode.html" @@ -0,0 +1,122 @@ + + + + + Inline Editing by Code — CKEditor Sample + + + + + + +

    + CKEditor Samples » Inline Editing by Code +

    +
    +

    + This sample shows how to create an inline editor instance of CKEditor. It is created + with a JavaScript call using the following code: +

    +
    +// This property tells CKEditor to not activate every element with contenteditable=true element.
    +CKEDITOR.disableAutoInline = true;
    +
    +var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
    +
    +

    + Note that editable in the code above is the id + attribute of the <div> element to be converted into an inline instance. +

    +
    +
    +

    Saturn V carrying Apollo 11 Apollo 11

    + +

    Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

    + +

    Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

    + +

    Broadcasting and quotes

    + +

    Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

    + +
    +

    One small step for [a] man, one giant leap for mankind.

    +
    + +

    Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

    + +
    +

    [...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

    +
    + +

    Technical details

    + + + + + + + + + + + + + + + + + + + + + + + +
    Mission crew
    PositionAstronaut
    CommanderNeil A. Armstrong
    Command Module PilotMichael Collins
    Lunar Module PilotEdwin "Buzz" E. Aldrin, Jr.
    + +

    Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

    + +
      +
    1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
    2. +
    3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
    4. +
    5. Lunar Module for landing on the Moon.
    6. +
    + +

    After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

    + +
    +

    Source: Wikipedia.org

    +
    + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/dialog/assets/my_dialog.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/dialog/assets/my_dialog.js" new file mode 100644 index 0000000..e93c2ca --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/dialog/assets/my_dialog.js" @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.html or http://ckeditor.com/license + */ + +CKEDITOR.dialog.add( 'myDialog', function( editor ) { + return { + title: 'My Dialog', + minWidth: 400, + minHeight: 200, + contents: [ + { + id: 'tab1', + label: 'First Tab', + title: 'First Tab', + elements: [ + { + id: 'input1', + type: 'text', + label: 'Text Field' + }, + { + id: 'select1', + type: 'select', + label: 'Select Field', + items: [ + [ 'option1', 'value1' ], + [ 'option2', 'value2' ] + ] + } + ] + }, + { + id: 'tab2', + label: 'Second Tab', + title: 'Second Tab', + elements: [ + { + id: 'button1', + type: 'button', + label: 'Button Field' + } + ] + } + ] + }; +}); + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/dialog/dialog.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/dialog/dialog.html" new file mode 100644 index 0000000..a73b6eb --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/dialog/dialog.html" @@ -0,0 +1,187 @@ + + + + + Using API to Customize Dialog Windows — CKEditor Sample + + + + + + + + + + +

    + CKEditor Samples » Using CKEditor Dialog API +

    +
    +

    + This sample shows how to use the + CKEditor Dialog API + to customize CKEditor dialog windows without changing the original editor code. + The following customizations are being done in the example below: +

    +

    + For details on how to create this setup check the source code of this sample page. +

    +
    +

    A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file:

    +
      +
    1. Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
    2. +
    3. Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
    4. +
    + + +

    The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:

    +
      +
    1. Adding dialog tab – Add new tab "My Tab" to dialog window.
    2. +
    3. Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
    4. +
    5. Adding dialog window fields – Add "My Custom Field" to the dialog window.
    6. +
    7. Removing dialog window field – Remove "Select Field" selection field from the dialog window.
    8. +
    9. Setting default values for dialog window fields – Set default value of "Text Field" text field.
    10. +
    11. Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
    12. +
    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/enterkey/enterkey.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/enterkey/enterkey.html" new file mode 100644 index 0000000..fa1191e --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/enterkey/enterkey.html" @@ -0,0 +1,103 @@ + + + + + ENTER Key Configuration — CKEditor Sample + + + + + + + + + +

    + CKEditor Samples » ENTER Key Configuration +

    +
    +

    + This sample shows how to configure the Enter and Shift+Enter keys + to perform actions specified in the + enterMode + and shiftEnterMode + parameters, respectively. + You can choose from the following options: +

    +
      +
    • ENTER_P – new <p> paragraphs are created;
    • +
    • ENTER_BR – lines are broken with <br> elements;
    • +
    • ENTER_DIV – new <div> blocks are created.
    • +
    +

    + The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed. +

    +
    +CKEDITOR.replace( 'textarea_id', {
    +	enterMode: CKEDITOR.ENTER_DIV
    +});
    +

    + Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

    +
    +
    + When Enter is pressed:
    + +
    +
    + When Shift+Enter is pressed:
    + +
    +
    +
    +

    +
    + +

    +

    + +

    +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla" new file mode 100644 index 0000000000000000000000000000000000000000..27e68ccd1cb7192c8bda2418d198d90f1aff10a7 GIT binary patch literal 85504 zcmeHw2YggT*Z$pXLX+M*5u`~Agc2Y$>C%e=N(~_aDG4MXp+-@<6j3A)Kv5BuDu{@b zC|x6{DAId*Y0^6+|L2*xbNBAuWOu`>|IhFDWnpse%sF#r=FFKs_uOCh*OHPmYZ*-8K6tk2PRprjCG_WH{79A?ZYUi6>A(LS66mN!;9s=nuQk<%01ne) zSe0J?@@sxZeN#UozZlc)i(&h6O(@>6QKuF)<(E3G)v zXPdCYd7FMC&|c3g*>`eEzor(TRY&^#TT>Ev_{;Q}uKIZ(7wC%kJGq>s{5$KPGDxa% zbKTOT_7>lK^}{PogC`6Wsp$28{ln#zSpWVAjHS@<`@8BtE#)7EbZdu+|T||L>@O>OR{P^B}pp|7)&)rMFKIHwi8iqOv?0;poo{m<8?`xU6v5;IhNz zfWr`=<$@#K|BoNjsf6?@!&QL`fU62u4K5I_IviUqTTU&wAh_Cab>Qm41;f>Ys}I)z zt|1(Gz5v)5t_fUIICc%q;n;n(gnJRL6&z{X0Jeo|2iG3116)VAPH>&!UV?iWt_xgO zxNdN-z`Y9B9j*slPqkl^o?lm|zq(N|l;fBCP!2KO^ zZ)56zf*`e;qW7yM{vrvFKlDF_?o$UmMgRfzwVmGoc|-4shUu!GC)$4kuhJ&`C-{5f z`QM~(_nYqXv1k>VwuucKzwM|Xo6ScXY11-Y?U6Y;U(*BG-&#Fs^|hP{ewkWnvvc`Q zm^wXSp8t=r6S7qHpV7O0^Ir?iD|dQw(eb6G?@g{-v`q5j@S+`}Pgg7cUZoFx?9cb9 zSMgBW*qqsC1qbEKKXdQGYnT7L*I~fJ($`8iN`9`#g}lcuuKZ%8~xTmfH2ni2FaknOOYV^7l7H%xt-8)yzF#AIWm=(u%i-{jqh%(r;p7Vy@1bcyDfl z^}eSU+`cmBw{yRSS38|_^P{YXVqVDbSJ1Ohs?BV*`0B1tYpp(*r|YJPT_6A1;o_Qe z%c75TpVfYR!Y?JhTYUW1Ym0nCibP*|x9I5P#M`!r$BQG*9_aq<@Lsc@yHft$KHs(7 z-Me?y;z3uQDY`LoNp!~ieQOo?r26RVd*+udbnTs$>wH5lHQn{x@S-&;559i7)~%gG zj+W08)ppPQ<(;bC?Y(CD@m>{6-OIn{ozZQ7%-MUWf8@a&L09bcuVkx#C3F2v88#j| z+2rC^pZkA&=eK(+qqlCpJ8+_J?!(6ef`|A2u|nMID-S=HT1HXwQrP(Jl+1}^*WIu$^P*N?GL{#613*>d7q1$K5tlO?C?**T43^kTGkr3 zAJDgbpYVR1%-OWe!r!`2Ouu2~fM&z`4Av=RjL!W=M*DHrhw)rG3=jIi&Okh~k7U2b zU*qQ`Y*!r6_G$us7<9C(*EPRJn0XFBZ^%AQldTAh^hpZC#Lvgf98sTXhK{=xI^KTT zNK7Khq@UXHn>oF+6FpYCkL}9~jhkqp1IoNFWSU=4VPW)o=7w&H?(E^Sz z`VX1fJOD#ZB!-(|Vv!Jr3hJXpVQ8wX%beLAA}X#j22a+4Bc!E1wI7Bdtq+E{ei(+c z;a|$NRvBEQk=h`mKK;=#`D-QdPsR(=hJ#~YPz?~v27lzFAAC)~JsPf@;Glfvk)}=-!F^N?bbtx_|(Mgvi=U4!^jCQ4CG8liosegkw{o#M31b!Sn?Tfh$$6T)e zMpk^XcU`_}7y3^Lek1tHlgkr>$22QmC%V~R`|4J@r%gM%{gVmx3yuD;>yWj> zZ@u$fyZgJQWGGwbO1?jSKHKEt<3Dm;ynk-?CmCwZSb6E*^}}C|%RPDUf!ZT3CG5Gk zv`yEC;U|t>d7)e6=}n0Z#y=VURm3h+g>mFfmZf#(3RWga$Q_~Bl5NVyE=Zc`0S?Q zUEcQ%S+b;W$A}&qy7sKF#XtG&P0RlCX2sx`o*iR%oG4be>^^N;{<1!kW@?ju-*s5Fr;iH+MkG98!g+J)OYF>P~tF?;n9kgc9 zOD}Ey;Lo;q<}|!?y+DDVN{lT~I$u!ttVNS-L1Vr@zdbx#+cCFSFV6FsZCa-f7mOcp zq(Yvx)B4p9_{QhX-NldgX0F@q<*vC`cR9Va@_SoLR9W-m_CA|h9BbXyH~XhoGn}2? zc+K!5!@n5U@%E_h`Et(+kNv20!s##1Hi_Swsp!&%wUXz?XF3*~apQxk3-Xlk&3?^Z zc4_aU_ecC1bEred!lRGu?fG8Q<^glxDi&4c=67ZH?OD3NK%1@WZ%-)p^LuYqEqx{5 zMXlocwQCNRIrGc!89u)D#ngK@4=)>+d)5itcuL`e$fV%aK{h_h`q4qj#Kb zGGJ}}1}paLpZ4YAyqk-6dE0l)%zpWP{4(LxPYKUnegDLfyFczfxjlS#V7ASpAAeUO zwAjeMN_SuEd#wB19FuOm-{^XUMGuoQ9`egtWn%I1elfXrzFVbK*&nvNvAN{c#~b5< z-aByl=B<$9NlTtT{?ovZAGY)#zWbR~zE|=MD|z+(Z`W^rq3GP$jQiX5m{mLB*Lnp@ zwe385$Bs#7^7kra?-8FPDZ16YE44p5)1=6>nBRsC9x~=w@y%Z@ehztj*{5Z(W-}-J zJZA47lNvvMTx?@p{i25}+#a}~e*A({+X~rA?A@0zv~Ta`Rn`o?;9oWT;%kp0bDz4_ zXOwTvT36oJvcJ0G=lACh95$!O^u;e9x_9$Zmj;;w7M0zz>&40sA_tA`m;Xw>rA-S~ zm|s7>$^EZ)9lVk6o!Y%}3|euw$Lb$%Ek5?k9{WchUyTWRW9X8HUk_Ln@Z{_3%M*Ie zKJd%F6$iS-m#cK(>?gI7o-F=CWb|#{YJYY8_Q#t8zuf%7)|z939u(O6L5|opy$;>T zw=;g%p{n7-PDgH!-!o-;?TFe@9p>8iuj>-j?789>x2?HwDroGKcTd%=@@+vo+GorQ z)U_R#iVjGM8S&Dl5B_WhO@47z?R`DYZ;P{Sz1tvm+tFuEygF|1&iFj<%v(FGw}xGc+{?Vxh0!JhAr7XX72lkdq0eNe{7ZTCsV5aykOtp{p))S z?Y=eXxA7=Z=gU zJZ#C%_>1kv6x;a0t;m8=H7}g%pBNVvnsGvrxJA2fbUTA$Y<=rVn<5(vjF~bb@!R)u zOsX@g-k?$kE9B3=U_ze0_4mCSwzyd0pvOBWy;QnxNWf>|-AnA~T(0?!9_6}T>9BR& z*gTU0Us?a!;JZ&gODH+C#hA()&#gbQu1dZ6-}L|f^7fTIzx%Cu{r!)#-MqK+MB=i) z>W#{qeE!=L8|yU~yZx)z-@5x_>r&@im)M*CKZpKEc&~Pj@Pg3+SMzI7sG}vss8Hl_DdSn%bDlb4WGZ-YumT$ zm(>f}cD~{1x5qTi9(crm?#Qui?tQuPz*irI%pTq*e!-Y!`~36A-MRKf{f#%4oZdSo z|In7*AJ6Oh`-NNI249GHL(5d~_Y+f(*P6Mf$I^PQyjFb1!^q=rZvE`~=^O`&cH2Lx z(`(0K>ouQyD{|iXMxXUP7JF`6OrENZmfB9Xtb4xb>Mq3(pV@WkSlui;PBxj+bGX*^ zXoIhhuQ>B_{fVQKUjD3dk9@BN=lHb#njK$#)VpflqBr9j_~k!#{7&*S`KN6AYIVUQ zt2-6=>Gf?fLDOqT72n(A`oIR6x>v0?ed`}Rhn{KDqt%`AA#c{-9)7y_oX8nhzW!z3 z<42`>&+l4&Y*3HDo6FaCx;189mxL)N8#gHX;{Ne}wfnL`_(uy`H~zL+z0ZT9&wSDT zaPPR@bv8B)4SjCcyoXtDMy#$`uVS+%^ES13k~nmE&!{=C9-mib#E+eO|9Wv-?JPaV z6dRFv{n+(W4Qpk5wN}Gp!O@SZJ~Mj!wu1W?m8!7Mzvu4iWo~ti&GSdkL*pL48F1uG zlXFc5+}t-dCff&N|2nX*{mRdee{wwAr(;%E8`3rU^y=WfE3)SQeBhq&-v>S(F+b*= zdj}(G75lkrp`Y4bIriDiaj&l!SbV}ehr0Iqw$)D;66fFYU3@t#NBIkvHW!+ZA;M z6nU}UH^^o6UGHBTe)Yhy6^mk4Eb03DwJ*Cy*1fr)OX>WF=7#LP8Z+vheKk&Wc=Te$ zEj21v?eJ5stzqA`-#6!#V|89Gv#r*)d226ji>Y~{!TB=}f3vOr;HPf;%WnRDX3Xlv zwX|(@YR!({-TCmOIh8(M|FCbs{t@{ztVULLF23@9vl7=@&Un1zz4nh*otvEFQrk=I zH^2Pr$9ble$=>+f(W$+EeZ1)L-nQ9K)fg8(E^5ac7x!0<>2RXQPkw8A+|PQh*RUmr ziXZXc^;`CrW_9tb(%T+52h{(&;BH`)aeRI^VY5`@?nnf61N8yUfsEP z*)Mu6sCpsW^jiy)+in~mbMWS=+sC30{t)uY_XFNp)%EU=8Q%{7q~MKat!ni;-K6)> zZ>m3z?6Tq7l6mDLiWYeByE6IPlqk8lQQbQ4)x2G#!r~3Z+En~%(}RUSjh?tZBBWgR zin)7TDez#!rVBT=B=uakDP+x(I)|>tm0z>={M@OvF9*jrD7o{Sj8(S`J5W30m3)`Z z=bGF+u+r{3ed7N!vvz}sBUKyMESBY9g_+mxT)x(*NL0nPZw)Dfxzu-`HhQ@7tvW;h z{Ps?bgI`zJG3|ETz$0gOw!hJ0c|gX?t6~-g=gD5CYnP!N3RS!`uVKvIE1gzHoo>74 zv#!-2@ysJ7?6=9N|+2@0yio zK;757EgpC%;PTYHeq)0ET)uDp;YF{X^u3zznMpOv`b?|a=~CM)7wcZC`)-bHe|-GP zpE1>AW?yJqq)y)8i4&SWtUI}BRK@dG=G=<7)cru!p*bs8>G)@bmGM_IK3Z_U^!Qs_ zLS{e7@$#0Ee~zs+WKXVv#j}qIIxsG1b(anI>=#Z1XCD9Y!`wBtoc?NQm6Lz|wdKaF zPe0f{b8)uq@nr|y+qI<4=+d8^U9!Ah%-p+E_e|-ST%vB^<;@#Q#^3WFpKDs;-h!=y zuC895XWFLxm5UF|lYhcHP0N2X^^@B@TO}2~J}~fnB0IG46APZma)0@Xv2j^T%-B17 z__W&lCpA72cX9oyXMAqFKfGz_7ao7zYwRzD%T}&?cJ0pT6Nk)wc(LvqJBsDL^Zks- zGjG%h%lgNGY-P&Us`%BQppjWKPV3UKd4(<;Pks7D^ty)yChQ43dU?;_&w@)9j>6>O zY?EPqSJ(b(NY(I#rCN=z`D9ws{TJtUPkw33+xrfUp7HCdN`o65sba78)!@-P3YUF1 z&y>cW-y0X!ar?=)B9Cu7yEF1k<>fymUhvyi^4i-|cSWw=J)&FEiw7(B>$7Ib`e}y~ zzxepe!qe7tC|2jys1hjI(GSXhzvyyg-JR3xG(T{*$(_<0mls(bH2dU&^_L4?IMsE_ z_OHvf`tXBRtxL=}Tp@q<%l1hfN`(4MJF@>$aN)a)a-ZKc`KyrV$4RZX&z(_Y_{uij zy8d40+@ZizAsvQ(KkD3}+^6nG|GqPG&HU$X#h+>0DqzO=A8%glTqFO3|7_Z_c--hi z!9{1}!B{!&c=>_H8U~EsF}?P{P15S6ia4~3X)w2!P7TpzxVR2!(nI*RED0!sw!j^+(Ma9oMTjOxyQ75K6 zd#>T>iC3$B-eY^xhCUPb`IlH*DI|XI{ecgY`@MSZ!Ny~UYaCg&JLZ)S3e4T`*Gu;r zT)!IGGo;(ysVj?Yc&jlolrRZH+3!EMzSpn#(6wE*pWc4&`zaN^X?6C;h)@6e?!?Y! z>n^sR{ra=tT)f|5@cf%IUc2?)u4(ANt}h$2EuwqRnp;0T{rU1bXE(IJ+W+n!E2^9i zoYMT8YGEZNcPaZ#&+^57u3xt4%uUB`4y@aEZ;pc_T9j}5R+V4Z?ESWLVqE;e0fT28 z&D=J0%-c1e$#XT|oIIymRlk~VMxG~K#}w$={l@TN+vn}M@@msO4`%jlzCV1$ywK?r z??uNi+m|Wdw2IdzHa}3_x5~96^G_Vw?sw$5n)esJziM5@RRaz|5$crrW=*}pllJZ3 ze&UVKle^6b9#p@}Pd7)FUbB1b`X2XY|52~SUyTQ~zi?{9J9+j@sWqr}#eLxgGLM}y zzhK{I%a$3m_s@B^`rUo8eB0Y+a&|pBH}}v#qi;RgeCu$jHxmCE|LU3b->e_==GbBN zn~iuF`7ok>$sE_}J$t)!wZ9UZJbF-LIvCz9+ATcs!MmGtUq97VG{XxE2k*)CO_%=l zT3me)QsZ8mPDkpmN%&(`z2Y|pES(v<>+RKj=Z3V)yf<^-k{R}|9&z&fV+R+H?z`wn z(QZFY>bq~-n%YAPoT<=ubkmYmhAycRa_I29$<5llwsPI(S`}LPWPT?@w&6!!J@VVn zuP0>O`)!Wy7vgOtg8J^=wmyH*pS3^ustYu~@{N33H=n+Ds%w0v(QlvGK7I0oR(HdaWM5_rOM5@|M;g9IEi?pV=bockMl6dAt8AOyaMYuwKUFz0VSAxonJ;bowZ_<_uRCWyR&?H^ z#zn)L)Zbe1+r0-zpDq=$D%)q{dme)L&i>W+th2K9*7bdRmFYWUQ169-!=rkBeD2HrON#dj zs&VuD_Q(shJ1vcOc| zjthQnn|b-gwHHpEtug-5wBL6IUMSr(Td{n3etqsgTbh5g?%Mk|p36DI_jIXMQ(H}* zy7i4ikG59%VRn3%19M{4(Lm>(KEr=$(&Ox?-5qv!*N*1=HdnP;Q~NfYSLD~Bk-Lv( zt-W(^{Cn3DN6kDpuiK1?GPC2llYUhc2Sr9<8+QfR2{N{!t| zqdzY&tmv>_XUFY+GW*Qc#HgN^CnP4Xe*0XvYtM(S|211&Q0e;l7Hkh*b8UO+@ns)x z9y#)@oUip>QaSqOMH8 zBecQ&BPS!?+M4fN^BmK1Hp|xL@%ru0?V32X)wt0iu^Zp5GpA_NVlS?IE+SXp(k*4? z?jHR8SC>LV=FjWfWBs{$lZ-2~!)~{AN<4OdriH^L3xeokHH|TQltR`vsqU zd2+X~8CR?4**5>q{Nml_-pLz2XxiYLuP20G?^gW0zi*Y8+}EEw*)m~H!xbMSjMqvw zufAW?O0~xpZ3s3$xv|+Fr>Fz4_1hj>#1Ys;=Eg9$ZujZTI&*7}lh@{{a%%$4+)`yKDeww#=G9DWX%9vYqEqD;_HELrKjOb$(u{i1yUM<4eX|_Xl{bAwOIJxPown;0nVPfh!7E435V?JiAt|B>bh|o`Wk5R|c*u z98Z7B!|~WC5{~()1o(HK|C8_k)*od^*>jIS8g4k;2)NhbM#Awn*C@EraAV-c!i|F) z4;Ksfcbxz8Xo{zRlp%n}pD!rX`9JT!RD%y6^>hE}P`=RfJ^ zKk4T`>E}P`=RfJ^Kk4T`>E}P`=RfJ^Kk4T`>E}P`=RfJ^KWRAs5f}b>=D-W^DV)UE z0#Z2F>3|FW?#_sYi|g^Bc)cSU@7eL9KhKeP-U4p?$HR-hPKbe`$Zk}V2)1dtaJZbuS9r8HcsPvTGpGogcsm;X z7VE2;mg72~Om6|QDje?wwh`}EYYh=Oxg=SDgX7&m!GkF9a=al(UuSV2z#qM~9FZb$ zF3R)oaE-5D$(IKGLBm(t{BdugAN~!&lRWtk#c3*ES_?%8 zi58E`0LY2)vuW=FHC^uvYywBTa(EOSCaY49B%;SQFjyE5|4o>K37%pNpBLQ|Z!ySs z-Zky^?b}dak-=p3LOaZXuyhE&hnJ|gw5nDc>XyHZElkUcn-IA$2p7nUD-s!a#UU^H zwp%!9{<1pWFx-$q8S6co1Ax_` z6oKd_KEVBxc)$%=FeOn05GF__g2ZMZk?YA&w3WDH(jD*)n$q)t-BCL?5dRdQT@k>d z15kw!WHXS+hN9a5`Y_x}$%MSb0-it~DgoLRfy~n92(lSS#2*W$V`2Xy4)ADhP5TV6 z8nl3LEV??oB9K8-(G%JXB;qT&rJ#Qw%_JW1Q{0t2LS&< z27d!Qgo54xv?~JKWGSI(KOo3vAT{knmCmg)Ktee_LVl=6Dw9;IhnpfqR8rT3gQ+4^WPD-G+(1M0ILGN3z-u7C;~?iVkvA-P*j6kg<5mQIwtriB+92A6~EIUVyn6hxCKz<*RBXO?HW)A1RsS&@lQZi z;t=>8kjnsH0{j+GC2v;*kO@$$M0|y$tpr^}mx0`kUTqs-G;YyNrXMZCt_U>kB!XT9 z33>$`3B^;7Z4guxy-H!gDD+B7neB=I$_Z36RKLwYBL8na3#Q1_N2OrY1~4DWGZ;{1 z+pY-EDxQO#8}ZUKWcJkQrvO zG&zA8t(=tU@zI-^+1j*EGiX{uCh);8w~!I~S#&Ju8WQ+dWcDAL>kIDBq-|&9|276WA0$!}?N=phR|J~&ACe#$n}J09#bwby zB5*rkGc;)%+S-oHu(t(x8uegT1n8DQQVS)w8A!zMiTngc13{nK{6dAHX~6qgk_-5jP7JCU|+~? z6yO^uzsj~<5ul2InkBj>g~U*&9vgv2myDYB3kbph_e0o&0bhh{2IL=;vKdI2 zZBumlA-f?!hC|pvfJ%Msia^dNNMbXPkfV}Ug04HCLYLZtNF{4m1jr_I=tU73fkdyR(60bl0(v+AuoU139loK5+Z6$- z2|=Yrdr(NoQ$0QpWF{c%0_Fj11y}@7MYk&gOr?M-B={&KR7gE4e)B=Z_OTrBAu_M> zYgYuA`va9*@KHz<{e!Za_6O*X0-goT2BJHFDtWsifck;tGEg=HiKe0C_c7x6qJJ3; zxEi|Mkbd+#c0~ZaK+r@nbx=r59n_;AkX=!?zabG0y-F?ZiU1=cP;ZL*AQOrYrw7x5Jm z@x2*3TcTX*XC4Vu7$L(`9uI(wl}_vxD!Wr5*nk%bm2Ad#vefUI7BR-m3%1L10 zF#WtK(v8862*~=bG+Att1AhA7|Em&s%KcwyA+A&ZK9Mj8=R7UM=28xmZoh};skf7p zOW;(=4+9mv56Amse@Mg5mu6d3sDH-!N$_AS!`3T$8*H%pXfNl*pW<3Ztzy8*r1jh= z`%62gUC_R*u07BW+)Tcd6oB`O9%}(-IUx;btrfLt0mT)co?5_qwyuEH$;APg>IKX< zYJ*lmuBmsyub_`YID*h4Dy)Jg`EoOzd-#4-~qrffZR~DD+26DAm}WDYz7kX72WGV zGWWv)2kNjA<0}G*njzwoh)C=vsK=Bb^_<~^K8nB*gy;&Zpi+JXMJz^lG#EU3-_E(@ zbF}k&@c0+qkWp)>)eEzYLQ_ZM(*l+!=eObcKAx*eJ!E7wq5(F zN%G^Q>R7?A+mgH`iCx1F=m=(W_xxvA$ivjcUptF;7!T&vDrvWIL~}bQRcLNWLE@O zt|6$1h_8?!RgcwyTmbs=fciSZSIM7@b1n;;?*KhpD&&<+>?cpMd94{!^hT@gr< zYY4I#NW@oktw6sJ$ew_20*(Y6%=n4`yGaO|CgLk3;;Y9QK)wPbi`xcpCty>?R|J@| zBB+CiuaM|9)#F(p>j9Y+l|;p@r$f6Uz;FW+qL6$5Mn8;f*ti(3i>DnOiJr0#8Qu?^dKAHKBRRO#W@9NR|HtmC=vsS_=@fj z=x>64FJKPTG+_{+T@lEjMSO{>N4(*Bn4Mq>L8A!xebPE2W6DjDU5LgiFD8y2a3N8hT?OZ`0g>VERmclB? zYGf=0eH6kGgjnA9i|CXg9P|9=7yoxN^tP?{(E`SC_7boqsrM5c5o#YIwX1&6hgD9Ahap7|(sA)u=u@&@j#8E*IvJq&ZRwVtAhnC2mf<6l22*NU7 zVHGS0ZmeMieH6kGgm$H{R@en;GPZ&~iog+sp+yBMDg`Nz&bq7#eH20pm_fR%%~XuV zG!+!Gmb5BJk7cG}<Tf#pf5oLX;$hz}n;fudxGya*qnX6^tU1pGyZeu}_BV$*H|c?Co` zx6;XMMg#<^xGQwzV!-<#UkJ#w{1gG^lt%n7@N`-5BssHUGa`VeimRZ?mV!PCA@j*( zpy~{4ipLKD`vZOt$jSKy9r`H(>{cSECr~!+Ydj6Y6U3~O;e1qo0#Eg5M~#zLVZdm> z06QTYEKvDM;^ic>$5Mn8;Kd5;onv4vs13aojyCT5c5F|v| z3?$+!x(Pacd%!n9L|7TnPZ40=u9Mib;dtU~QIfH6uzapZ&;uElK~#qrz$Jjc>(I|Z z%cpyyP9yQO4^Nu*o=#>nA|O!3EssKwS4+UNIxNk6Dgrccoy4Y9#?w!NC&~Z9lTAcq z1PlfYAbB0N4z$8K7MeNRp}uvKdHCdqL4zp;8_NeH4LIS1KNU-ghC~!{g{D zyAW<8TrU%v!B>0egT8?C{ha7Q4&yHeP`2ud+DffrUhNln*JwxbVo7lr4n0J&mVka| zeqQZa^cWq9ss@^-TCtoWfdI%f34A&tu)r(HD{bI=O}nn0&5PdQ4ptL)@?u*8yS7^X zyxL79byKU(Zs%EaA2ssgPaYUBL3aZA;cHnS&W2dI#G#|MN$z=+#%6wI2;f=3Td0s6 zfTscPA`YRSBEZ-W6uSqTmJd%?@q__QC$||95UAq*qVw1cXh#}^Tx9qu0!=%jli0MM z@I>yCEGx)tMg%>Oamk}A;C?{1<~us{Q_Lkv8xcPd$Ub5$xJL_na5n+=5^(jPDs zkVPf~KScoL&`E4sUOWu|Qi@FWL@ELTM*+=tuV6LZub_`Y;QUob;o6XTRImzAQ@}+* zABAuPAuWYfu#z52K_7*{8cRnZE%jIoK}(Uw6A0;RKvo5zT@m2$9V8608Au37(Jj>J z2Li@|h*0!Uia^u8)JbgGbUeu(ie#?|o+<)Lq8?uZlJ~Jb0{j^8qz?TQ0pcP^_8c?t zv|DJ*DxJ(`L;z0}*M>rnS7E?afUK+pK)WK4hwLP=8A!xebPATy<0bHKHW)J__P8q%h@SHH6TPRz%NICkM%md8&G2&wj($QPg>VF6 z1W{Nkd<9O z;3s?)&`%LyS*(-TwD0jWO5~bkL-2%IlpX;*)g$2xK<)wz06e2ZKSdx(TZs5S02z!Y znGVTqMg#<^xU}*`Bqqv&H=)RsAc5ZgL{$}^JVGv zvCLFtO}~O776TkXrbk6Z*aS^SL6Jj8ETS+NC@dkz|J8uQ0C(%qPZ3B)J%F-_lj(2~ zf4xp-Ga`Vgii<^`;Dt?M0Z#%(BAQ(hU>Rq`S4eDBDzpkp39bYmh78rP?LmZViE#CqD^ zid!RxE6mCWn}}uL`XDi_36>hK<;CiyB=$T?<`hFa&rGm#=g!9=tYQvn3rU%PNDH`G za##z~4(AmgKkTEGE)bL)Y7>?j%V?ML;%M{|+%87IFt7c{70d1N;wbn^&T3I~Jmhtg42v3+a>Ji9PJpvwr zU}^z!syXDEux4j^zEGQ^KKSdx(2O|i(RY1gq822r z3PLRJ+dEEDC~SR(&e=&~r4||CZ-cqQMeJVW)qaC-w^lwNDY-I_G{scgNBfW{Y~^4( z;)|SGGd$+h?68{2zufW2j9rNm8U~%*n97&cZgGx}aw9RqrVtU|s3GJQW)r}zfG+^D z&$BB6N%A9tYz7hyL(y5`WIeuuK8gU6)KNHkR)H!=!D%3&5-8}S5RM?Et*}-&LyxVX zk0QWzT^)r>w<=HtEdXjQ()H$F>txuF)1R$5SE?_djeF~L3I%D8sI)1idc;9 z2tp%Q*fl!ULO^N+3tJGnZ&w89u5}XJB-WA0>s&l?MWi4#h<*iq6v7b%^-@?XRO+Un zk0NlWDvl~u@(QXX6!cLDN4Air!cqWQtaPd0Pa=`=^S&LUHvpoq-?M-WD-)TmV~m0<-%2^?HlIJ|M8u#T^ertl3>>-DkUkr!M^6+d1v=Pw)j zP0@AYnfEn|YFTe;S=+$gvHXr`D6WL?+vc?JJwzMXG?&-}VHDPc`jLaWpqMf{bm|w22RJXaPQ+4C9A#uMb1Q$M za+F8&=0l}Vx*Oz9nRA57LO9Yerw6K7>G-00uGWx4IGjI*9)5q-EG2#ga{#l-8??=1H0U`==%Fl=nYVd;cFZ8fOhMzyJS0Z+h1E{{x@y3&8)x%l)qUoNC)n z>9zN-u=6=Z47S+fau!5?coX#?x39gcXn+`jWc|kiz`01*8w&z?w5R3 z-0@%ast6N5Q(yRB8U+ySV(}La`)#UF40b&G;RZhr_}Non`#Akw`t*0{)8D1XZ6n;~ zYFP#y2|5$?3VZsy^f+zB$~gU9dc1g*{w_UQ2jBHif0rIJDw_I8f0v$yS7ODaM!jf{ z4P9>*MkBjYeDY^rwW%;dhC600<{1o-vC?s2WO|n# zyf?$*sTbKSM3e50&Y&zYw~!# zpPRzm@a+R@h>i_leg~2^BI{yvCY!z;s*1}!mwv!khTX_$>_iXJ6vkhxr}^UyzoZ^7 z4E7d>fRFnAr9bRZa$~s(V$8OaBxPV(76~VtX$D(8~x{pHb$=pBteJ{O~G20?oms56Z|+gMJPmQH(`b(m4+; zfaOq{S{@u92p}i*=>Q`irJcEX^BHJ0cso9tY<%!J$4jUU4%*Sk5zAc(ZPGE^BUOLr z^xS>wpf&Ov11>3kzB&zj8X+%{kYJybK7(zMrn~&`W7pBBoBp_t6oHQl^TXZz$o61S ztKw7FxvjPOl9&**1!XksG4Ql}po6-Im6{*C4nZA-mcrl&Y{Z z4|g@fk9UVcvi%v`UIT4R$mKa_4(>mbu0D-U36Fx@8lyymL`{hnC(BjFnWOjZz7x38 zygF;7C0ckBeqvnp0cqyy;MGy+Vn6g6!y$nI$gjaQpQ~0yKx>DKT4(EQjNH(?xzVE( zu*R@XfvJUzBU>XSd`Pq8u)|?QyiUv@vgb zBuD90ottI>*;5|jqM+IMtV~jJS!YRmlOFr}Fd-!_o`(y~Go_fKj(EeDvW(DPgFMwd zgCkg9(b|MGEn}a1&E-f(txaV-e%86%o-~a2$s&R;YPuz6a;#<13s}Z>PrMwn ztUxUY^L^7S%Thv5oXoj$?pZ~?Ty$2>+1OjEvN((f8>MmSU0b5p;_QJvPY7z8vpmOK z$B381+Cr#}Y#prok&arl%mO_1nH`{E+_qqC#t1Ie`L~>N{dwZTys_>EK%dBs{pA4k z6#wdqnH1Uju!rm@k|Mm^Or^FTf2b{=bu za|cRE^c|I)^~IZ7<$8u|HJaC!pNe4$Zu&gSY{1=2P~Ogp24ALO)TO0uxUWk&)-g{U zzr>s}S2gq}mC#DrTFf84p}xyC1=6zQ(|sx_&HyYr=Y3DidS=UWs^=2Ub>p5Jdn2j8 zoZ+#qjXJi>#9u^-x$;hJWzhtfmW-W|J1~Hzu9?oLhfZGtX4{{Sd`}58c^Te$Mq|UZBN^cb&dcbOF<1YJFjt*>d z)JIi%8PXDMrV&~u?-jE=attvflhZnGbOs0c(IU1xQ~g>>{d8^E`(B!JBvFHwvBsNp zxmI{xpG&&wF`k06T7RakFY+eOa$aZDi={QWZqeQfX6#omubywM&5`BUrl zo`!AbS!ccWo?mBZuG}F47jm-nSe`gJW_;Dq%gFhjXvcZ1x-VyFYGhVxeAbDex2%i2 zsnwy#x%WEH)!qn}(9&PIA0s@>wJo`JuM1ouagHg+MkNW;Y$8qEyx0S?%=f&n%O?8F z)McL}jU446;~?#2Xjv#q9${X;W~hpBM*Ty*SY`;G#<*0+EejuSG|92fOidr%Ye`yb z);+hh*Q_U5dBL%$wY^%`^X9b`->y-gW-%mY>4W5KAxw;nsqcY~fL06>>o2_>$lky* zkMlGOaIATlo2Q)>yROpNdk;xNAH!9v7}YJS4R3T%uADrKeF4t>ymx$4-h1$nlBF+l zH{(}3l1=rsPmD!7Qrh8g-vZ3NZi@42OCRn@|D`U5L(}Ar)&P-HLswkR3Y>Ml6UJN9 zUQJlq;IfqD67m?~gg97Np z{pDQGUS0II$VD1kS1NND%U-EBx~OJ&-jCXhA@&o>r(N?My}Acox6FCm>!zDknnkYe zX9KC$j%9x7Nw;~f!P62$n_c!KG$|NT|p&&niRBHI>HIDC?2qQMhG?nzEKV2mGtb<8nIk6#GQ3Bcj~5 zR%s}0LY<|u8{c0WDtAbqVm-)yi~E7jwP8wA>XoHe^rjzDYgj|qEG^d?9>z|moNriK zt-J9u)s}DRQQh}L9id5bP18?nF2)X?L~%F8=@ib=x4G|=Si2*w=dO0%m=IT}EG^AF zFFBqK5qmv6VU#&bVbznS9IDkgb)LJbVi$wGk%f!*YaPdJ5YeAyw~p?VvpQ2S^reFH zXymCEXeW9s&QiJSBd==mNwp(WTV+`+ZN(FJulZU|;5_m5*sn0JmYJA0Eys2D*^sMc zed%7qlrE{g1m@S}zJMivp7esJer!h(s2lFF3`UDE?RDm|YKI){c*4qENVP92G|6TB zVqE97P7o!S*UD4Qqp90mXQhw}ml0m3&kMbS5r=XxpWjltwV0Bnk23R?Gi2^6%d;fT zlX(}4dn`unSb9nK{Zp#FoFy0Txp+7Cbgw5~_LNV3)>#8P?A6R?ot6>F(+n5w_tkzKqH@a%k zHBWsN^C5TF3~l{e*2;4J=3xe6$*a4uUyWaK9%tm$vj6XngRC`DIOfdO7H^zUN-eO= zS>3ld=e;b`Y>WLsnmDCA12D>L8I9bx;gorC}-XiN44w#y64;ovk2ZClqWK# zJAG*!IUFa(a>c|uR>LSWI?IUeX%uqosGKbn!`9dxXzS>cEmHK%S>FAUC#>@P zmv<*QZkld?rLpYX_fm5tdH%~gW~^y35?b1ar~WXNKHufWk-0BRWu&x}!&5Kf+=FqY z9|pOg9PMi3m5~6r>X-@hsV+24hVWckhSbtSsv03R^^jUPeU&sac13WJ@$2fe6>;OZ znobj_$5IqBydp*!x@t(9Ps|NnRrrxZ%go7}u{|7mA7;!!O)Wi@wVb3!S{9x2CN0h* zJoKWLx^mYCvX2^$847RTH3Da90@oO(xr${i<&GQM7-w7DC*?~-oCB%3rP`GiI}MgK zhWmch!&<6h+Ex(k_2ro1X)VE4Cvt0%fH$?I*2QXFV$z9J?vqEM=j7QpQhkc_T=y5` zc>CX!fjca&=hAW)6}=IEvQO4uZg`9^*uvKuH;xz-F|0|yFkighV7yG@8=FRNAmg@& z9qxh}l$9VJX?Vkk4TV?6jia{*yt?S~ax6}bvaBrDdDWFbGN; z?-b`S!Fiox6(%@;Xvj+EY=};>GDJr&+fhoQOH7n+tI|lfkd;Mr#8Py!_~O;pxrR54 zSSq2!#?kwx;T4=INr_D+HWFT4bo73quz`Z}hlVr+=Q)N~aDLnH>YR-ROIEBSU3BzP zpGCT1g7XR$H%xG59Z6!rnRO(+I%nk-d1gCGNpu`oplbMC*L+=c5;_PhMJLLOUIgBG zhBu7fS%x=`-pPhHk=|ItD-xn4b$=`1m|SI`9JVVN$Q*xR&Zt=Nn*j7btJulGwVot1!sy*cu{gE z(OH_LGd50)R(~L_E;qxLl6r5Q{(knP~ZYDS<3(hCu)kR0ntRq33taDbxf-~EZ zj4L>^9Z9d?OwkFiMRaKD;GCLH#%Ua4b|Y>JmN!m}R=bfWQQkN)TJ1Ju$Q%ftPh8 zWhFRsZYE_VI5S-tS8!%RqD1f^E^A+SEhR#C1uW}G7oGCzqElYM8KTmOB`d)hGQso% z<|TaP41_k`Z4A_Zj%Q&8LWCkBIjO!;k7<0K>Ys^;!3Bdp-LgM(pEJ6OcJ5Ygv>~Po7!X%Xv-f*X8Gk0#$kwEJW&$(fgi&JUqJq> z90eWz2qeGj_ZMQkpmpjqqF<=vUiR$m)Wx$Zoh}Wb1YgZ2N4;emS zP^f?P+SUD|2Mq4lH)8mZX#aZtRjXC48Bjf_T8$clU;3Z_c?ozj{zOAjS%jm>$fkw~ zD{qZk$+&4ZaFs=vxXSWh8@b9N%v{M_@W!d*Zb(XIyeead`|mV$l_kXrRt--f%}o_c zP%cBYY#_>LJ_Pn)>`KK;qqVCyklLGY6X4#0dmC;d+$6Zka8ux>!cBvl4)+e+47iza zv*2dKy$d%7?mf8o;pW1905=Z~>q>1t+yc0GxP@?w;1S{%IkPgwygB&>i{(`X5dr}DL6bEy{2I_bk^NK$e(-h_}}YTdfEyxZ3kIlT^*EJ?qTL{pB3Dmys;j?7TVP=IbPUao&)K zJX=m zrfW+sFEhytW2qQEv*?$*YZAQB;KAscMN8aqb6nlBT(zK7(!j@It|bLN|Kld8Jn2&k zX0t3kj3*9W8S`?vFl=3J_+zV28f2hep$6z&E?n`|8@J}m$~d=e&%K1)YA|12<>fhf z0UJ4xy;hpJs=kM>Mx|=<&2nMN{be4dTW+tKTg(c$)BaShxLNAnn;y;e3Ju$->2*cR zOB>$slo!1`T-UPHiZ^^6FXW{#7N&CP%rNKWqKzCI+?wZfxp-{7CYz#Rv;W4FTB)?@ zze65!Zk390H;YzyYE_Pls4TBnM(HdUG~JKMDVoiBim|xAJ}+WB7h|cVMS7!A@+BMtM)%9G9Y9jLTW(l%6=5^W|dl&QeDAZJ~)+ zwDw26xLg_K2>KMST)Ms-<)I(8l--lQk(+wymb#?BLMKOB7j5#=oS9{e@g#po55?T1 zYFy1y6YfW7*$2oiR5e=bmv>ncmLATVzD16L#w^6rV|c?stu{Q=;8So`7j->ww!Bv2 zO`cu#&->ohFe~NqQg~<7bBczq()bFr^96mDo;B_;mf*o4mqi|)+DaOYi&^y56L4-n8qdG?wLJv_Z}j zR1d4xL)1nwrdu?_(@5YL(=F!1ETftyK8_K^#h{sGR_Q&bR7|Z|c8uKXY%1$KOG|Xm z!_%IVH?{9rX&5zS(REL~L8`q<8s*D5EML_0$|P7Cc{{WzRRd<0mg8RXUhH_KiJ$Xs zrfNf`S&F4Ubl?A&`@{?=_Jz#7RXOH8GVj$Ff7?NuN_SO7P#AFms8`zQy%)BSqtB zE+-q#I&U%4X6Z{k>AP&5shWthaC5Kg=AJplnW|;fa5n=~`|{Fg!Z4g?JMYVgS3NBn z;*CBUJ7G4#!J-}Ba8PSdqrZEKb!>lq575I1^S6uyaxC+{{TZgK(zr%-ysGP5D)pMN zG=!w`VLA(xGib}G;i;X<@huetW0sNG6EEv3UFFgA8n8RlXf7+!R1CJctSKlbwI}5; zYGLS=%WgudCgxJv)szMqQZ-@cvg;*JOl2yn?3`OVR5H6=oUo=+H0_mkBVsPSwe#L8Te2{wlNOU_mRXV~ zEv6BVP^_9#F}7w|vAEYlrEh9Sijo=x$F&s8B6{qfOz!?D8DL$tajb=R9#!_uM=fF0;%LJ#$re#W-HL zHMEw-(mPHh?DL`zTVj=P#S4?w?Rx=U;sBg`#P?k-W+oXx9- zBE*fcs(+19Ew$I9R#2vz@oX6EpEq@8Sy{N(*R-uH-01-|$}7WhmcGLsPqu*Jn6sv8 z+K#WR=&!oSHzwR0Fv}oc1Xu4+c=ifYC49NRphjY0s)XJE;T5Jz=xrgq!c+;py@eOo zhNZQJk@T7kn9(aZ^W}cQ*=)d!SixBuFr!y+mIln|6`WfjuHYPoH+)zkJy&J}W*`m| zd1gW)&tZbIG+;)o;7r30BF`|90agtaXD~J1h+?|B^$|@kzBATrzzoEiAm+>cy69+a zMH(<8R+uW02F&Ocrb?s%GkS%olCCNnfx-w1EdfYbIcLLczzlH%1?Tn#0pa-(tsJg!c<9bhv-O50}P_}%?8XsY&KvJS~{ zN&{xZ3eM7i8N6l#X7rj2n9-}7SD`I6dIe``z>HpzXV#Id1;Lq>vW&zQ(U}dHxnl9= zDl$ov60!}N449Evm{*Yo%;?pPfhl5Psze$vBUYFy>F*F7Inzjn;A}Qv24b@TGkSH- zhSo8zG+;)o;4BT8!5b#>EDe~^YcgO)ugQQJy*g(a*P&PBnRTR#jtNNvX24oRXEtEw ziq(Xv5{gdtS0)2yBo;Hqqyo!n|OqE1BL`S!FjdfjJ^$Vr2#V#qrJk*ghU%O8!#hQ zaFzzl=ruT})L_8}|235mo`jb{h-)@rMz0tLX?RJrGFlVSG-<$$STS0aGq7T`k_OC( z6{A&^YXR&dT~cm?Nz zhF5U*H@t!~6Ox+aEF2UbX|+!UYc^oU;_IW8-si-L(MlRHBUX%7(tsJgVziP5%;*)P z6~}#{8)gG$z$WUP^)_fWU`DLqEDe~^D>zF7X7mcq(tsJfW&>vQ>YVj-lT8N9h!vb! zMYQnXi(bK58Ze_*aFzzl;58dCqgQaIoh_+Xg0nPWMy$?R z&sDPEOeGYVOctCeI^nfyozWAf)SS%*%#e`TfEm4Fw2}tQ=oO=tG+;)rK3eJJjT7Ub zG++j-*?<|nCIe>l3eM7i8NGtDG+;)r;LPq=)`H;7N;ycunhluID>zF7X7mcq(tsJg zf-?mxWu{1RsbwcI%>}*C-LX zE8VMWo$?9=hFa-ZU3AJTSqaXpqw6pQkdYNb@uhB`OPGluJxV9zf;)eD%%`wmmX?^Z z_f-RZ8e($9V@}haTTxP%n5j!B1EnEG7uX*{LWJdAP+x=X!W#`*z7EcFn%+czApG$L>sJT+aOM3(DetV1-|*n ztJIwU+hUuuFW^A@t&KP(!M{E%V{!bh1IGhnZb$PQ3I4)A2+LekBIjEzD zE9xrX#Tbf9G}2&>8W}PCVRXF>rf>2~KFpCn%!O2j(GI#w$WZ_+ztF5m4g9SPR|DZS z;rP`Ie?Wc#I!LR6zqRl;5U>(VkOU!38Y1D}AkaDgD=Eq+!-64)P;67x!Pk$P;EIQH z2_=qs?vL_ELlSk6N)>#MjsGgcF<0FB4@YQK$dCV+n`-!54gV_X{3}6XF=D%q7ZWN8 zNtFU$O4^(|M}Bxb=K6A*zmeZQkU1}2L<^agwD2+WWF0!{jP>bSBGzbS)Uc|{%8)%T z3sgaFX|jc-tBi87POW)Xl9akq2U^COu8{1K+$U`45^P==Q^}M9c*HeD@O;H}2#{7+WNr|U(J}5`k?o!rs ztB(EC?IINV?%FCM(Y}U3108LgbX8D`G&;e4jvM$<2x04}3YdE9V9Yv@G~2{rQUCSv zHxmDN^`GA#;|t={`6{^1NQ;`z?NPpjL&>GY>EAA2**CO7Z|^E)@B5y?qDS(!uZx02 zd3i+kkj_20_i09oi%DfQ*fy%5V@2d#{Uc=8M4q2e+& zds#=X&T*ZWj`|s?QeM_{OCm4U7Lsym&L&q{BK`X4(b<<)7A-#%d8&;buNlhH6g_cG z*g)k7+eG|p2A$@p))@b)f#wDDij9P8gpj77s{uMkuc*qHQmW1xno@3gk%D#B2awWr z&g}q5?VreP%BgzJZ97qqa@NIB%4*)mIrr>k|B2jtmkZCOX@UGv_UxTvQqe6{XR7C> z#owWBX{|BX)1_V4Q`U6J+x$0Jlt8xlI?y7=i{15s>4Tnt$D-6$N6%oTOG#4ZG*pSq z960a(|D(5_Q+=BJzmC~0M>6*_qSR+0=3F^=Jxxy7w}wFrUl+Y#KlC;7l6W-oW?nU< zb@ph^p}RDmCeQpzJ$o$XG!*%);-X#jXo`)K#=-OSa~{LD-% z*HFx_Oi!)+)QZquNnBgmzdOWJE&jW6Z_ZtMNzBstcRZ)p$-ko>%(+Of6SFk_9na}? z^6#hzb1u^B#4L?}$8&m}{5$HwoQw22F-zm$@tj^K|BiYv=OVpM%+mOGJU?xnaA&~v z{F=K@^0fMO>~{0~nJ+1*pSYkQ?`UY)TF^9qT;9N;p}S9YRSht{)m5Xq^;=y*wQAO? fUadCXFyJq?Rl_m)a2qCv<0BFhk^c98u>}4fd_aIc;R45Ut z=++=<(5&IsK#}2m*1GRszw=zzd9HJw^Vf5(>+G&xy}j33pY>V8cd)0%{^v->5@V!fVLiHU zaMio-w`%UCr(LNu6r25ATSe(P({;k)*w@cqbb4eM&p0oM^`v~os8_g^lFwqh8IHWY zp)dTPCD_r_;S{-`cv-{3CuyPr*#Inj3YO-+4rN znOdk(Ct^e#MwHD$Eu2qmiiY)OzcdA{3nDT4{m$jr)~WMZsNA1NeU)Bbk#1OR>|K7L zhl?m{%8{UlN?1ba?@||)(mMG&wACz;$dLpjRw1S3RLPwq)Ybx-rI#WlzXyM$1z0Sf zarg7;G=reo58}_YCy4~jYf5BmzKfdgQp$sR`!3*mg|p`kzA(#EVCR3}m>rqQGae1~ zV*Vb+vwW~XR%5HDYWDR-8L3fFz4JFj8Ofh~9x3B?EKxTU!pyM0>~9-y9}Ij%N`ou~^tq?&oOBJ;06QUPxk!$D>Oyw%d=r}wo^paSk zA{4)IiE?*Z9g@=GA-T*VPH!3|a}oCltyxn>&8BVv4;`9Y7F>yhZ_}DjmCfw*ELYb{ zEj<+E0V{ZQFKbIYfj8cbUi<{y-MJJVw#p0}KaqOCe(< z#p0nkzDk_V)5o_JdJ9Y6L5!*m_nTqB6<3j9anR*eLGk8`)ArwEmzbD&BF+e+#TZJ~ zuM*8Tl&smZN>cEZXOU7SVvhtPZ=dRYCEkI0IZF}4%M;0zEF91Zow2XFqO%BXUMXav zwcmO9p;Dyf+>A`R=%o+lzeOyUTJ+nVBS%##^lQ`ldDMzfB+9p0b0%{dQC{iWkZCtx zop|0e&b$A%``RVS-lZ(#e8kwi4GGj6zY98B*Na4MbCG!FV(*V$bA8V^M=_kmsykuY zOqoa}U4L0zz z2eUg*tgu!+h(r#?Akm*pEh9HmB;-(uWVXF(r)b?wr=Nv`q!-c5XLGKso$ZN)tnlW4 zyLJI5v4Ium-648;?P6i?Dh1V5a8$lV0+q)1g39Wek;rEsB+@FCy;v$Yd$G`AI1o9A z;6w>_INy2HOHEQzuO~$BwFUDoltuPj zlF_Od)Ru@hNvq^HiJXLy7a_xEcgj0oSdE88<6QQ?MM}$e7E0v)=`~k$-JcuoA;vq# z=mf`BOC_h%Thdom^%>$^LA1ltglo5_Nh>px#etgqe8kw4<~P0w3$cwE&6agW*{Z-qH7r7e4|T5-h+&Q0C5^**B= zp9x!G0}|*pDhuj0Dn&DDxJZ)aaG&BO;d^H08nq?LrTgee%Ay&mtNe(6C}?k$c;Yb} zGquAZbggHq0*!-yqhdK8- zA3#V7CPH5SJ*O`tWLtRdjI4Y_6HTbg?NL%R?B^n>jpqv%`SeAVyh98l9^%?NyIUA7 z_gdxsC^;PoUmrY|=dcaJKIdvgZe4$``}y2b>9+@Xe&vYrK0xC5)kWMZ@r#>rzn1^> zJM>DT*y^7|0=f%D%kEyfchFUBNikx~N64`FvMWm~#a5ORD#j}c_NKAM5j8g9ECbRp zTFFH+k+1qYmg+V7HU=--VscI&Nv&X_aItmXd5k(V`}5$r#Uz~;u1|6$l1wymD%A3> z2;Is;RbtIZJ2paFJ2s4m{?KYhJiR;O8>(`gwWBr5t1^qrmmuv1Ph{eLvV3I0$s*+a zlg?=U?33(?tXnQCy>j}t!zCR_&4a1BPxUdYrXuS2Jw(?CH5K$ea9G&Cnc^LY1niY^ z{Y7`!plMmWTS}aEn%y`4Zf_i4p*Bx^t#0LWuXS;TLWto~goIeWxvX75%!53xo%07Y zF0=1d0vM*vGGeQvyq9^|jv8 zI|sZp;FM5{Xe*kB+De*jP*6h=+NE=~dFadwTGcb8b%BLC=;k$v5k3C1 z&kM40#hZ?PuSneNXseTaJ#?|RlI<=yPX&pX=H@PTc~w6_V0mqPewoocA+q zue#^X5;I_MXd4fr;Zv<{H}~(?>c4G#B^Z@=BHGrJH3g5uc~tcx(Y}}hR{baF1k;L(Hm%j>e#(JcKwuB!& zQDd}tbK&b_LvPdIEHZOmuwch4Df2DuLoFVyVVe!VM3*htC!4M);(k3!&u_-XrpmB~ zDeKMeX^6cXeYJg|-sLBMWh=Z{uWDB4lo|A)@fl(vd*p~*5f_D^m1q?TMPVo$tws?j z5=EhCv>wHv4JZ!9qm5`Y+~`Lw`Nj+uc98B~u)<`8$y@zYom3s9iRmDX*)7&BhW|~~ z;maXS>~$|dnnG|J{$KgCpJof0rT=sT3Qc+flcu*r z!@?1qkPedl?g^|N;S%iwEdAjNO#kUm{0&5J0y4)p6TOA#Y?=INqglHOF z2U(6v5VC*|hgE>G-`T+65hLQ;5yu|*?RyYmCh@sQ7y9)f^aUnO`2$OTl+bk1r5{d6 zk7TPyvc=j59GtBl$rk$?h~5Om*0S zaAe?C>q)Eiq}6(8I0&%oBXf=lwNAyNgis=hS7w&f>M6*Sk zh~7l>W>RxA(OW>fp)F9K3&i^eYhR$-G>u+?j*d$ZssOi5un9AP&0{orBPqpXflm0T z0>pJ1QN)Bja2RC*o5#3l2Mv#F2MtHwLBm0|}b zER;jq=8(2Iq-_pqn?qYNb)1HMK4A%A1z`&9FqCEh6Mkk9okN%pifd zRuHmK0qLuN^i@FmDjLC8XU za8hV|h?zy01N8h^Kr{=LkkS$;O{bO6q9zXjSyNd+=6DX_Vd57MeT?Xngk?Y$L_P^~ zm;uByfOS3)AG0S(CfKhar5Us`n$83th%>~xf{=wONDdXy;{h6+Q=xaPa|jOuqhNH{ zIY#tJ!ZILhDxX$Kn}AVQ!pI$%XvKiPr)k@e-96qfIT4m6x zA#w>}1z|lf3D&d*_GbxU1tFhSOA{T-pq-{&`jHRB{hlT}7CWV&zrl#Gt_R{AaGgdV z&fzr4;WWtsvz<68w6oAx79k%fI#vSIfl-{L@h9?Wbr7Kxh{sh2`7{ux5r|{fLCjVl zj)pa#b`J8%r`1EN2Er>qJob9hFJ?P&GHB;v)O?^Sj2-I=!g^p5%<2Ww?*&@SR6S^& zi3Z|i&@Ms_*}zO#N32T-D+ud>c-|Vwd}3A*T@Or}s-rbRv>%tSgzr6|w1IY& zM7|0;_6lgcB3Hq0C2S{72JITj^BT$X8p#torQqW{v91T=JaL^yAkOm|iFS=d!)zzc z30f=3vlX0r&^S-5TL{|-I|#c7Zxixq*J-S=MxZFHV;jk*jpWlt^1)6i_&6V|>w!2Q zT&EG31o^a)eA-ApnC-+#p|z7$!{mcb|5*p@o@^p)BkUmTBD_t=r`>?n&!=@j{8Au3 z3OY!S*l7gaJk<=uGl|&_#4FxO>!oD_W8fUuNv;u{v{rfr@%iwrB0h?{$mqJr=(@=0 zuu}>?9v#;8Ks-8JrxA!}y9?sC6Y^=dAWkDD951&?hPO$Ew@EAPG=h&ayiGF1YzN&v zsmP+zo5vJcGk{`rCf#^S9OySG0X#acNE{Z?%0#OG{U+JOQ6-KJp&s#>bV+(CRUBwM zB>}_{ux1ghOtcCRN06jPOsEpALwsGL^?=(Z#Ocz|N|BHSWKOF9hmj7@Z&DXHF{KAI zo?_Bvpj3=d9EdZQ0bhzxn)q^rEaE5=twP8qjvAp3adZipba{FgMI6YSmH;OFlp$J? zkVPD2px>kl5Z@bMtxBi^bbt)8qX&$bkf1BjSug_%5KWm-2Z%FQ1d0Kf)8as!xgzu> zO?(;R%Mr4OqfDp*jDR~CTwje)o%lM0dO+qhldeRlOya}3L40KrUm4m;gJw?45Xup< z2-SdolR7|Sm|I+jNmn7eLIqlhgFZSg4ID-?K)j~dR|ev-t3c*Dz;EC6h*o6bwoE!3 zR#Obff_=q?nv%d_Bn|AM$N-tsa>P*t;+UAqKpc||@tJg0&|*M53all8##1uHkpntR z$`h?X$Rbn$;ys3`Mkq#CgI40eZ4-*XhzS;zKyS=bk&YXQZ9cxAO<)XG2yIPS2|r0YT}F(BR> zm~7&x0Ucm1up>sF4-^OD9fB!C97Q0WF-#RgHlZreVNwf-S93lY7p}vk>%+`T0C6T* zD-g1Pev`^Xs{kV=)PY@;dBiaQvZf4y%xNQ_@stIyi(*F{dqPJ-dAb3_WCM+%z5&!X zAv7hv8POKNE{Y}5_QZD}+L2I#ZV0)l0P(##)@-^FnSW!5CP6nQ=M!Uy&jQ^%273hv zGYI+X0V5`$Z=fL%XN$E7(0Iy>(2CFo$eOYP`c2vsIuPHT(1TEdZbEju37lsXKo27p zaNC3m5NCx;4S>vPLqa1U?gcv*z+q%Zv^}9Cp%bAqp*wIGDbr11HrPOXPBR6^0ElB^ znh;tM+5&M*Q#iZY6YW8KNxB(0Y+%AqeIRq%0Ep)wYa>Dv;+PR_0USn_L|YNs5IPb% z5xNsf(9OwOn3J_IhnZy47eJmWbPM8GfFnj<2)#%E6MiZZtpda~7sC9g0`a&o^@wjk zXb5CY83B!_On`oqW50)VC$2 zwq);N-;k6V0dXeSu>j(Ig0(%NBcT%^lMcHc&VhC?=lVn&5}FXl0*L1y*RdgVAan#W zr`>?fWA4Q9AY{_*!50JKm{>~y@l4vou9hZ_JP@B}FjasFKh=Q7Q}cjb6n!AxvDh&r zG$D>Da2S~pZ9%jpp%rm#2qD=NU(s zZ3Cd+qzTY?$_mJwwjp#U^dMx@ouH;TeKFKj0OB(?rasVk%7FNWKzz=@bxeUc2dozY zab!#zLR%nn+JR_CLO0;iaSx)|^d%5Sh3-r;bS4?PKpaClrZLcX$`sf|F(X=n?n?HL zE7X^uyAkaMnn`zuItoC127@ykp{l56zWURmqKnV zAU*>ug*t5F=mPNyE``X3L>m#>5ZV(u5V{l6=#ngQX9$G*Kp@-)vY6AEM9Z>dS@_$q zIV}8b*c?{+&v4*2$_C&MY8DOq!t^<;<}nfA(Qzg);ineSI>evDngbDbihqS~uBga{ z3jh55p)NAQ;)xxNnrQkj%OH%^`}KHTHym)f4@t{@vp6FHiDU+kcn-Qr6OGkSP`Y{Tc&z zOH5ceygkCYTE^l=gt6S$N3V|uk7d7pL(KXOA@PyxqggRgtMpj-O_cv#t@$_{YuWm! zjksML%Q+ev8Z20#uM05LW7$SUu{e>dBjV#&oUpjC4V%J3(KIy{@}Z#^bW@mzgoY7A zID@RoWB3NnP{lo!d)&s}YnG7j%oQfPr91EM4@wS@q+2lWCSM#((q}$Q){+MI$32rNv!FqQ{Ypu?euYz!_%0zI_-VJaBSKB$@c0?J^~B3Y zK4}61R4^0{r|u4(7S|O(h>jTldfj6tQb3Bx2446$N{Od_rv}iXXfx=UbZf?OhJXNm zv14Bsd3|DUcjK~<=PH}muDT@i_M`jn$uvbB?M+_zL1N40#j)@l+D39TNlVGK$TTXY z^nu|V%0-uwfc~~AB+}=JXm^y>ob6PKKr<&Q(aa~;PLEbxJN-?)6^Xo#N1_XZhb}D) zZbstV7E0`gta2Yj9}xR-+?)M{2X7H@2W(KrAt`^kdW2>$e9#QZ=s&}x0=;vbx{-s0V)ctrMbWMI|8u+~`|Z(pBuBp&IB0x32j=NvvJ?+t18Rx_g*cO#!l z9+G;N=dHaVkZSa0^9dfS{G0ZnJ`d@Nl@|=*=~ekCnyId=73;-CLPMEoHzZQ&M7eLz z+gSmBQ&}o&GG%`kHvd?zYF~*M(WOY@te2Q!m4m}gq}*AFl8QBvb{Pv92iA&w3#?hc z-ai{Z0c#s`^8YKiMviOp=Z`%B3;YEd%y$JN?t6sdXvwaJ%^08kxq6PCXqNla3AgT2 z$dE0Pm_;v{aq!27GBqpL_)Rm;Sq;q`e7MX_>SdR9Z`ak!GCamIeI#3!d2gkUJ!1HA z5c_#`X-@u7{59i^PK@q-kpohT@)paq2geLZ@`S67nuM)*-s=kw%X?UqJmIhfF1SXDajnaJY5=yH(4OYIXu+q`F$aW&>W^9X+e&+?af zA;u%EoPpx9mfYOHAKnO^`a>&p6IcGe$(xl|cyR1&BahhA#z!{n?eh$VPM zDtVn-eBZ~}qxoeXJird*F@9+GKHYt}L$V~un8QO&L0XbHKL$2lqEYhE5@frF`ck|+qZG;iIK6*EZhG%Ac)eu^F{Bo0X;uy)VQMK-d+&EPApg3_aV9FC;?aCW zcUSot1f!62e8xHc?6_}3i)G1@y71J)4>)`Gv!5U-6($lhGxxk0i0Ixnl;G8KHd;0w z~7CmOM&;GD3E?tGG$Y>4qW$PwHBRPF483 zc~_OS$~{_wM5;@XInTYcc4jjrs0g`=?QyBSLJyf^J5?o1nUe3msAWd|gcz2kNc!#_ z=9}=;0|(SW>TDJxoQ-6+!1s(+i_dwN&_sB10oaNm;pS#Dk-UeN0 z-`_nKb|z=6Zv}oh?1Yx0W$>^p3?2wap>=TG`ukDvPVr>8jL`qX4aL829wy-;u4RXB zE!LXis|{8Ij8FJb8AoXzREx0L2A>Q0y-oHx|etG(!Dseq)X?QsX zQX!XkmfiZOQ1sv7I=>K-VxS0tfk6tdn}_Hk8FV}qHk1g8ghXtcgQ4b)RWSl~PWq2e z54v}m=_F7x@6ZjEZL(wA9ASd~zG5@};}x3*5fvWP+7?X2W4pME&q4-fGL z=nMe{T|j^#ASfsxB*GLC5f&DaoHbjNDI+N>D<2eWf>59J*`l3#p+UvlzPX<7N1vvud{&tJIMaP?a2^|tmK9i4ao z?7esY!Na~s&j(+;eD(Ux+jm2szkK~RGWz|;*f<^+1=0Q<7Vv*LE-@Gvl}@M81@X8j z)XjL{VswVGfq=NJmtaV&go@!VAxXQeU{tb+7tG#R#8ZVb4>qN(m+&|s;`LzL64#cEl<*vb6}%l$3TB;7 zjLplgb)Tv%ep>VGz^p5)GFk(d1CU%!5NtkPvIcISQ8Z~9ZW0`5GV@G6bWc$hK%H1U9M`pca!DyLEIcC|9+(ftCC zJa??!5+E>*HeLyv-2CADo^3tpR~BD;BR0CR{LjB4=f8hFH5jP=QNroUz&fd`?JAa^ z&+NY?#&8xaWqo`Ze{0nmp?KX5Pqu~|+EnJ5e%ZO*DC@`PJ)dSeo*dHfXmTDM%ldM# zEpf^3Da%Hrss?nAOAjlW1`}v04Lphm*^~^Mfsu2YO37Qs(&bMH zj|5o1f4P13?E7A=-o^E~{3|<$-+x;0sM~#El&jjychOZhM1@yc&-7K>?(D~`M z)zLpq<^`>Nmv4W2(2D1qxji!Yq0QS{>$WQ-+b;BXkvQP8d+^VWv*(ZP*!E%K!n?GJ zK$F5tX3_x(M-Su}aIM?oY|=N@_J>AChkn`hbKiNjX%z6Nc6c=Bk#6o(Ma_2JfJ~p# z!zaHrJhUtu_fae}{uj(KW28%s(_^n&oz@5>HMZfCkK8va+9^T{s&2QVzix}DXj-EXecOrBx%(+`H{Vv* zw?164c<11vpti?02UYd`0%~$4Zl3?4``X`W1@URg3TLz*MB~>b8!3xKalO#V_X<=&Ybi0 zgIUkv80wL0PA+B9$Cm`R&i?d3scg;HCwH`+vizIJs89MfITa<}7QAx3d~fCWkzm83X|%?=U>eyz9eZ$fWF+s}#~sV>%#3(c zX*jzsm1`8UW8>Iz_TxS6mlONezUG{IuyJyGduObw)PiNLi_Y!)wsTl7vTLO2;;33W}o>Rwx3)Q>#~YoK3mi(U7;BF>@MiSIGJywqj}O zL~Kb5+p4Nc^=w8_XZX$=p=l%Kix&MLqrL2g2BD`$FN4u`?Y+f3i}!1lpD%pB&Us`Jo3n3A%JQuXj~VpM zSrV;p-nM1r`t0Z1P2b&WD;RXwjXJO}`lW%}o(p{$OGe+X*e^+WyvFDq^KF3c$-GTx zb*~h;9b6!C=jv$GL4oZC_je&_1*EXM#$vt)E`tG>Z2#4>_cOV((v&)0E0+ z=!nuiab@^P&GzWvgARYp`04X?Wk%rT@vtT4R!Pf>huiYPG#;7!CKh?HZ{D4}Fy%x3 zf+rtu<4@(b_t@NST7JLy-X-g@TMgzV$2fcMK8<Fo#iRQ7YflXB zPgqB))#q(_W%KdU36%>ohYV+F|502nku!JjL)TExsQ}AdmHe;0_wQYDtX$LIRJT$4 zNbiWI~t`Iz4AHjVfS*c{+A38R39Bf{cpY zY>RYk9*QlPT9LHCSTB3BnCW$6wY3#;_+sys%|D&KWx&GWdF^5WUz zNeAN+cp1g)l<8MtZrVdCLd+wUDt6q>w6{!)pouVlmJ-<(}W|w*|g&`)9czZu9O|DwkJ)Y^U zIpg;J!q96SRCo878;l}ZPw8Dk!%Fqnd*n)gypnh7-TO$0z2?bwNs+G|%E zccOBd*Zf?+7G$*lU^oOcS_aU*e{($eIi~2|_FX6U%kDLfk=(>SqJQRtaB%Yy)47Qk zOY1iDjIv;2^5@43t<9jm+b?Ft-mAH+AY-u2`hI-ro=2bMB9>Yt1p1%#Zc%EpY`a#q ze0Pe?x&dyhgPiP>oXi_rVr|mv^j7K5A5^<{7$sIo6iQxRtLuyIj4HnM7;yETz5&egi}p!V~&a{=?>R-Def6J{i%^X^REn2K-N{pxD@Tm3$7K21G8 zzPA6`WZ_nQq5{n)1}ER({I09KiOJyXX$~# zJHLBW^j&Dnxo#=nCOUfjqg}!0&+oo}eZRcs!Pc$YV}<^DbpA%xxixdfva;mo8*1Jy z*^n$#J+xn5^8Kdv)0-+b_DA*BBnL=s$qYQYXLmRBjW9`uMEp2GPI>)t5%%R zJ+yw|fk}oVU(UV>;io);DD>W0tJ~Q^RQu`aJ{$NR1OAJ!0Qy^r=3g#EEUEO{Zf2o9 z7ExbM=M~ONMSBGV=+I8~%VOD`!Z?Ny+Wd3&+?};qMITkDXc+$vK8*n%O@u6CSRql7 xtD_gGM1_UNt5{jikFomaTNEL*A~t>MCVV*k_sOSXZM{{fd;5vc$G literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js" new file mode 100644 index 0000000..95fdf0a --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js" @@ -0,0 +1,18 @@ +var swfobject=function(){function u(){if(!s){try{var a=d.getElementsByTagName("body")[0].appendChild(d.createElement("span"));a.parentNode.removeChild(a)}catch(b){return}s=!0;for(var a=x.length,c=0;cf){f++;setTimeout(arguments.callee,10);return}a.removeChild(b);c=null;D()})()}else D()}function D(){var a=p.length;if(0e.wk))t(c,!0),f&&(g.success=!0,g.ref=E(c),f(g));else if(p[b].expressInstall&&F()){g={};g.data=p[b].expressInstall;g.width=d.getAttribute("width")||"0";g.height=d.getAttribute("height")||"0";d.getAttribute("class")&&(g.styleclass=d.getAttribute("class"));d.getAttribute("align")&&(g.align=d.getAttribute("align"));for(var h={},d=d.getElementsByTagName("param"),j=d.length,k=0;ke.wk)}function G(a,b,c,f){A=!0;H=f||null;N={success:!1,id:c};var g=n(c);if(g){"OBJECT"==g.nodeName?(w=I(g),B=null):(w=g,B=c);a.id= +O;if(typeof a.width==i||!/%$/.test(a.width)&&310>parseInt(a.width,10))a.width="310";if(typeof a.height==i||!/%$/.test(a.height)&&137>parseInt(a.height,10))a.height="137";d.title=d.title.slice(0,47)+" - Flash Player Installation";f=e.ie&&e.win?"ActiveX":"PlugIn";f="MMredirectURL="+m.location.toString().replace(/&/g,"%26")+"&MMplayerType="+f+"&MMdoctitle="+d.title;b.flashvars=typeof b.flashvars!=i?b.flashvars+("&"+f):f;e.ie&&(e.win&&4!=g.readyState)&&(f=d.createElement("div"),c+="SWFObjectNew",f.setAttribute("id", +c),g.parentNode.insertBefore(f,g),g.style.display="none",function(){g.readyState==4?g.parentNode.removeChild(g):setTimeout(arguments.callee,10)}());J(a,b,c)}}function W(a){if(e.ie&&e.win&&4!=a.readyState){var b=d.createElement("div");a.parentNode.insertBefore(b,a);b.parentNode.replaceChild(I(a),b);a.style.display="none";(function(){4==a.readyState?a.parentNode.removeChild(a):setTimeout(arguments.callee,10)})()}else a.parentNode.replaceChild(I(a),a)}function I(a){var b=d.createElement("div");if(e.win&& +e.ie)b.innerHTML=a.innerHTML;else if(a=a.getElementsByTagName(r)[0])if(a=a.childNodes)for(var c=a.length,f=0;fe.wk)return f;if(g)if(typeof a.id==i&&(a.id=c),e.ie&&e.win){var o="",h;for(h in a)a[h]!=Object.prototype[h]&&("data"==h.toLowerCase()?b.movie=a[h]:"styleclass"==h.toLowerCase()?o+=' class="'+a[h]+'"':"classid"!=h.toLowerCase()&&(o+=" "+ +h+'="'+a[h]+'"'));h="";for(var j in b)b[j]!=Object.prototype[j]&&(h+='');g.outerHTML='"+h+"";C[C.length]=a.id;f=n(a.id)}else{j=d.createElement(r);j.setAttribute("type",y);for(var k in a)a[k]!=Object.prototype[k]&&("styleclass"==k.toLowerCase()?j.setAttribute("class",a[k]):"classid"!=k.toLowerCase()&&j.setAttribute(k,a[k]));for(o in b)b[o]!=Object.prototype[o]&&"movie"!=o.toLowerCase()&& +(a=j,h=o,k=b[o],c=d.createElement("param"),c.setAttribute("name",h),c.setAttribute("value",k),a.appendChild(c));g.parentNode.replaceChild(j,g);f=j}return f}function P(a){var b=n(a);b&&"OBJECT"==b.nodeName&&(e.ie&&e.win?(b.style.display="none",function(){if(4==b.readyState){var c=n(a);if(c){for(var f in c)"function"==typeof c[f]&&(c[f]=null);c.parentNode.removeChild(c)}}else setTimeout(arguments.callee,10)}()):b.parentNode.removeChild(b))}function n(a){var b=null;try{b=d.getElementById(a)}catch(c){}return b} +function U(a,b,c){a.attachEvent(b,c);v[v.length]=[a,b,c]}function z(a){var b=e.pv,a=a.split(".");a[0]=parseInt(a[0],10);a[1]=parseInt(a[1],10)||0;a[2]=parseInt(a[2],10)||0;return b[0]>a[0]||b[0]==a[0]&&b[1]>a[1]||b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]?!0:!1}function Q(a,b,c,f){if(!e.ie||!e.mac){var g=d.getElementsByTagName("head")[0];if(g){c=c&&"string"==typeof c?c:"screen";f&&(K=l=null);if(!l||K!=c)f=d.createElement("style"),f.setAttribute("type","text/css"),f.setAttribute("media",c),l=g.appendChild(f), +e.ie&&(e.win&&typeof d.styleSheets!=i&&0\.;]/.exec(a)&&typeof encodeURIComponent!=i?encodeURIComponent(a):a}var i="undefined",r="object",y="application/x-shockwave-flash", +O="SWFObjectExprInst",m=window,d=document,q=navigator,T=!1,x=[function(){T?V():D()}],p=[],C=[],v=[],w,B,H,N,s=!1,A=!1,l,K,R=!0,e=function(){var a=typeof d.getElementById!=i&&typeof d.getElementsByTagName!=i&&typeof d.createElement!=i,b=q.userAgent.toLowerCase(),c=q.platform.toLowerCase(),f=c?/win/.test(c):/win/.test(b),c=c?/mac/.test(c):/mac/.test(b),b=/webkit/.test(b)?parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,g=!+"\v1",e=[0,0,0],h=null;if(typeof q.plugins!=i&&typeof q.plugins["Shockwave Flash"]== +r){if((h=q.plugins["Shockwave Flash"].description)&&!(typeof q.mimeTypes!=i&&q.mimeTypes[y]&&!q.mimeTypes[y].enabledPlugin))T=!0,g=!1,h=h.replace(/^.*\s+(\S+\s+\S+$)/,"$1"),e[0]=parseInt(h.replace(/^(.*)\..*$/,"$1"),10),e[1]=parseInt(h.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(h)?parseInt(h.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}else if(typeof m.ActiveXObject!=i)try{var j=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(j&&(h=j.GetVariable("$version")))g=!0,h=h.split(" ")[1].split(","), +e=[parseInt(h[0],10),parseInt(h[1],10),parseInt(h[2],10)]}catch(k){}return{w3:a,pv:e,wk:b,ie:g,win:f,mac:c}}();(function(){e.w3&&((typeof d.readyState!=i&&"complete"==d.readyState||typeof d.readyState==i&&(d.getElementsByTagName("body")[0]||d.body))&&u(),s||(typeof d.addEventListener!=i&&d.addEventListener("DOMContentLoaded",u,!1),e.ie&&e.win&&(d.attachEvent("onreadystatechange",function(){"complete"==d.readyState&&(d.detachEvent("onreadystatechange",arguments.callee),u())}),m==top&&function(){if(!s){try{d.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee, +0);return}u()}}()),e.wk&&function(){s||(/loaded|complete/.test(d.readyState)?u():setTimeout(arguments.callee,0))}(),M(u)))})();(function(){e.ie&&e.win&&window.attachEvent("onunload",function(){for(var a=v.length,b=0;be.wk)&&a&&b&&c&&d&&g?(t(b,!1),L(function(){c+="";d+="";var e={};if(k&&typeof k===r)for(var l in k)e[l]=k[l];e.data=a;e.width=c;e.height=d;l={};if(j&&typeof j===r)for(var p in j)l[p]=j[p];if(h&&typeof h===r)for(var q in h)l.flashvars=typeof l.flashvars!=i?l.flashvars+("&"+q+"="+h[q]):q+"="+h[q];if(z(g))p=J(e,l,b),e.id== +b&&t(b,!0),n.success=!0,n.ref=p;else{if(o&&F()){e.data=o;G(e,l,b,m);return}t(b,!0)}m&&m(n)})):m&&m(n)},switchOffAutoHideShow:function(){R=!1},ua:e,getFlashPlayerVersion:function(){return{major:e.pv[0],minor:e.pv[1],release:e.pv[2]}},hasFlashPlayerVersion:z,createSWF:function(a,b,c){if(e.w3)return J(a,b,c)},showExpressInstall:function(a,b,c,d){e.w3&&F()&&G(a,b,c,d)},removeSWF:function(a){e.w3&&P(a)},createCSS:function(a,b,c,d){e.w3&&Q(a,b,c,d)},addDomLoadEvent:L,addLoadEvent:M,getQueryParamValue:function(a){var b= +d.location.search||d.location.hash;if(b){/\?/.test(b)&&(b=b.split("?")[1]);if(null==a)return S(b);for(var b=b.split("&"),c=0;c + + + + Output for Flash — CKEditor Sample + + + + + + + + + + + + +

    + CKEditor Samples » Producing Flash Compliant HTML Output +

    +
    +

    + This sample shows how to configure CKEditor to output + HTML code that can be used with + + Adobe Flash. + The code will contain a subset of standard HTML elements like <b>, + <i>, and <p> as well as HTML attributes. +

    +

    + To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard + JavaScript call, and define CKEditor features to use HTML elements and attributes. +

    +

    + For details on how to create this setup check the source code of this sample page. +

    +
    +

    + To see how it works, create some content in the editing area of CKEditor on the left + and send it to the Flash object on the right side of the page by using the + Send to Flash button. +

    + + + + + +
    + + +

    + +

    +
    +
    +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/htmlwriter/outputhtml.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/htmlwriter/outputhtml.html" new file mode 100644 index 0000000..3880c64 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/htmlwriter/outputhtml.html" @@ -0,0 +1,237 @@ + + + + + HTML Compliant Output — CKEditor Sample + + + + + + + + + + +

    + CKEditor Samples » Producing HTML Compliant Output +

    +
    +

    + This sample shows how to configure CKEditor to output valid + HTML 4.01 code. + Traditional HTML elements like <b>, + <i>, and <font> are used in place of + <strong>, <em>, and CSS styles. +

    +

    + To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard + JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes. +

    +

    + A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

    +
    +CKEDITOR.replace( 'textarea_id', {
    +	coreStyles_bold: { element: 'b' },
    +	coreStyles_italic: { element: 'i' },
    +
    +	fontSize_style: {
    +		element: 'font',
    +		attributes: { 'size': '#(size)' }
    +	}
    +
    +	...
    +});
    +
    +
    +

    + + + +

    +

    + +

    +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/magicline/magicline.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/magicline/magicline.html" new file mode 100644 index 0000000..0e7556d --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/magicline/magicline.html" @@ -0,0 +1,203 @@ + + + + + Using Magicline plugin — CKEditor Sample + + + + + + + + + +

    + CKEditor Samples » Using Magicline plugin +

    +
    +

    + This sample shows the advantages of Magicline plugin + which is to enhance the editing process. Thanks to this plugin, + a number of difficult focus spaces which are inaccessible due to + browser issues can now be focused. +

    +

    + Magicline plugin shows a red line with a handler + which, when clicked, inserts a paragraph and allows typing. To see this, + focus an editor and move your mouse above the focus space you want + to access. The plugin is enabled by default so no additional + configuration is necessary. +

    +
    +
    + +
    +

    + This editor uses a default Magicline setup. +

    +
    + + +
    +
    +
    + +
    +

    + This editor is using a blue line. +

    +
    +CKEDITOR.replace( 'editor2', {
    +	magicline_color: 'blue'
    +});
    +
    + + +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/toolbar/toolbar.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/toolbar/toolbar.html" new file mode 100644 index 0000000..b7bc176 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/toolbar/toolbar.html" @@ -0,0 +1,200 @@ + + + + + Toolbar Configuration — CKEditor Sample + + + + + + + + + +

    + CKEditor Samples » Toolbar Configuration +

    +
    +

    + This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if + current editor's configuration modifies default settings, also editor with modified toolbar. +

    + +

    Since CKEditor 4 there are two ways to configure toolbar buttons.

    + +

    By config.toolbar

    + +

    + You can explicitly define which buttons are displayed in which groups and in which order. + This is the more precise setting, but less flexible. If newly added plugin adds its + own button you'll have to add it manually to your config.toolbar setting as well. +

    + +

    To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:

    + +
    +CKEDITOR.replace( 'textarea_id', {
    +	toolbar: [
    +		{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] },	// Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
    +		[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],			// Defines toolbar group without name.
    +		'/',																					// Line break - next group will be placed in new line.
    +		{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
    +	]
    +});
    + +

    By config.toolbarGroups

    + +

    + You can define which groups of buttons (like e.g. basicstyles, clipboard + and forms) are displayed and in which order. Registered buttons are associated + with toolbar groups by toolbar property in their definition. + This setting's advantage is that you don't have to modify toolbar configuration + when adding/removing plugins which register their own buttons. +

    + +

    To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:

    + +
    +CKEDITOR.replace( 'textarea_id', {
    +	toolbarGroups: [
    +		{ name: 'document',	   groups: [ 'mode', 'document' ] },			// Displays document group with its two subgroups.
    + 		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },			// Group's name will be used to create voice label.
    + 		'/',																// Line break - next group will be placed in new line.
    + 		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
    + 		{ name: 'links' }
    +	]
    +
    +	// NOTE: Remember to leave 'toolbar' property with the default value (null).
    +});
    +
    + + + +
    +

    Full toolbar configuration

    +

    Below you can see editor with full toolbar, generated automatically by the editor.

    +

    + Note: To create editor instance with full toolbar you don't have to set anything. + Just leave toolbar and toolbarGroups with the default, null values. +

    + +
    
    +	
    + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/wysiwygarea/fullpage.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/wysiwygarea/fullpage.html" new file mode 100644 index 0000000..679d947 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/plugins/wysiwygarea/fullpage.html" @@ -0,0 +1,71 @@ + + + + + Full Page Editing — CKEditor Sample + + + + + + + + + + +

    + CKEditor Samples » Full Page Editing +

    +
    +

    + This sample shows how to configure CKEditor to edit entire HTML pages, from the + <html> tag to the </html> tag. +

    +

    + The CKEditor instance below is inserted with a JavaScript call using the following code: +

    +
    +CKEDITOR.replace( 'textarea_id', {
    +	fullPage: true
    +});
    +
    +

    + Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

    +
    +
    + + + +

    + +

    +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/readonly.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/readonly.html" new file mode 100644 index 0000000..377bcc7 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/readonly.html" @@ -0,0 +1,73 @@ + + + + + Using the CKEditor Read-Only API — CKEditor Sample + + + + + + +

    + CKEditor Samples » Using the CKEditor Read-Only API +

    +
    +

    + This sample shows how to use the + setReadOnly + API to put editor into the read-only state that makes it impossible for users to change the editor contents. +

    +

    + For details on how to create this setup check the source code of this sample page. +

    +
    +
    +

    + +

    +

    + + +

    +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/replacebyclass.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/replacebyclass.html" new file mode 100644 index 0000000..7c99112 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/replacebyclass.html" @@ -0,0 +1,57 @@ + + + + + Replace Textareas by Class Name — CKEditor Sample + + + + + +

    + CKEditor Samples » Replace Textarea Elements by Class Name +

    +
    +

    + This sample shows how to automatically replace all <textarea> elements + of a given class with a CKEditor instance. +

    +

    + To replace a <textarea> element, simply assign it the ckeditor + class, as in the code below: +

    +
    +			<textarea class="ckeditor" name="editor1"></textarea>
    +			
    +

    + Note that other <textarea> attributes (like id or name) need to be adjusted to your document. +

    +
    +
    +

    + + +

    +

    + +

    +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/replacebycode.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/replacebycode.html" new file mode 100644 index 0000000..e63b2f6 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/replacebycode.html" @@ -0,0 +1,56 @@ + + + + + Replace Textarea by Code — CKEditor Sample + + + + + +

    + CKEditor Samples » Replace Textarea Elements Using JavaScript Code +

    +
    +
    +

    + This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin. +

    +
    +CKEDITOR.replace( 'textarea_id' )
    +
    +
    + + +

    + +

    +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/sample.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/sample.css" new file mode 100644 index 0000000..a26931b --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/sample.css" @@ -0,0 +1,333 @@ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre +{ + line-height: 1.5em; +} + +body +{ + padding: 10px 30px; +} + +input, textarea, select, option, optgroup, button, td, th +{ + font-size: 100%; +} + +pre, code, kbd, samp, tt +{ + font-family: monospace,monospace; + font-size: 1em; +} + +body { + width: 960px; + margin: 0 auto; +} + +code +{ + background: #f3f3f3; + border: 1px solid #ddd; + padding: 1px 4px; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +.new +{ + background: #FF7E00; + border: 1px solid #DA8028; + color: #fff; + font-size: 10px; + font-weight: bold; + padding: 1px 4px; + text-shadow: 0 1px 0 #C97626; + text-transform: uppercase; + margin: 0 0 0 3px; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + + -moz-box-shadow: 0 2px 3px 0 #FFA54E inset; + -webkit-box-shadow: 0 2px 3px 0 #FFA54E inset; + box-shadow: 0 2px 3px 0 #FFA54E inset; +} + +h1.samples +{ + color: #0782C1; + font-size: 200%; + font-weight: normal; + margin: 0; + padding: 0; +} + +h1.samples a +{ + color: #0782C1; + text-decoration: none; + border-bottom: 1px dotted #0782C1; +} + +.samples a:hover +{ + border-bottom: 1px dotted #0782C1; +} + +h2.samples +{ + color: #000000; + font-size: 130%; + margin: 15px 0 0 0; + padding: 0; +} + +p, blockquote, address, form, pre, dl, h1.samples, h2.samples +{ + margin-bottom: 15px; +} + +ul.samples +{ + margin-bottom: 15px; +} + +.clear +{ + clear: both; +} + +fieldset +{ + margin: 0; + padding: 10px; +} + +body, input, textarea +{ + color: #333333; + font-family: Arial, Helvetica, sans-serif; +} + +body +{ + font-size: 75%; +} + +a.samples +{ + color: #189DE1; + text-decoration: none; +} + +form +{ + margin: 0; + padding: 0; +} + +pre.samples +{ + background-color: #F7F7F7; + border: 1px solid #D7D7D7; + overflow: auto; + padding: 0.25em; + white-space: pre-wrap; /* CSS 2.1 */ + word-wrap: break-word; /* IE7 */ + -moz-tab-size: 4; + -o-tab-size: 4; + -webkit-tab-size: 4; + tab-size: 4; +} + +#footer +{ + clear: both; + padding-top: 10px; +} + +#footer hr +{ + margin: 10px 0 15px 0; + height: 1px; + border: solid 1px gray; + border-bottom: none; +} + +#footer p +{ + margin: 0 10px 10px 10px; + float: left; +} + +#footer #copy +{ + float: right; +} + +#outputSample +{ + width: 100%; + table-layout: fixed; +} + +#outputSample thead th +{ + color: #dddddd; + background-color: #999999; + padding: 4px; + white-space: nowrap; +} + +#outputSample tbody th +{ + vertical-align: top; + text-align: left; +} + +#outputSample pre +{ + margin: 0; + padding: 0; +} + +.description +{ + border: 1px dotted #B7B7B7; + margin-bottom: 10px; + padding: 10px 10px 0; + overflow: hidden; +} + +label +{ + display: block; + margin-bottom: 6px; +} + +/** + * CKEditor editables are automatically set with the "cke_editable" class + * plus cke_editable_(inline|themed) depending on the editor type. + */ + +/* Style a bit the inline editables. */ +.cke_editable.cke_editable_inline +{ + cursor: pointer; +} + +/* Once an editable element gets focused, the "cke_focus" class is + added to it, so we can style it differently. */ +.cke_editable.cke_editable_inline.cke_focus +{ + box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000; + outline: none; + background: #eee; + cursor: text; +} + +/* Avoid pre-formatted overflows inline editable. */ +.cke_editable_inline pre +{ + white-space: pre-wrap; + word-wrap: break-word; +} + +/** + * Samples index styles. + */ + +.twoColumns, +.twoColumnsLeft, +.twoColumnsRight +{ + overflow: hidden; +} + +.twoColumnsLeft, +.twoColumnsRight +{ + width: 45%; +} + +.twoColumnsLeft +{ + float: left; +} + +.twoColumnsRight +{ + float: right; +} + +dl.samples +{ + padding: 0 0 0 40px; +} +dl.samples > dt +{ + display: list-item; + list-style-type: disc; + list-style-position: outside; + margin: 0 0 3px; +} +dl.samples > dd +{ + margin: 0 0 3px; +} +.warning +{ + color: #ff0000; + background-color: #FFCCBA; + border: 2px dotted #ff0000; + padding: 15px 10px; + margin: 10px 0; +} + +/* Used on inline samples */ + +blockquote +{ + font-style: italic; + font-family: Georgia, Times, "Times New Roman", serif; + padding: 2px 0; + border-style: solid; + border-color: #ccc; + border-width: 0; +} + +.cke_contents_ltr blockquote +{ + padding-left: 20px; + padding-right: 8px; + border-left-width: 5px; +} + +.cke_contents_rtl blockquote +{ + padding-left: 8px; + padding-right: 20px; + border-right-width: 5px; +} + +img.right { + border: 1px solid #ccc; + float: right; + margin-left: 15px; + padding: 5px; +} + +img.left { + border: 1px solid #ccc; + float: left; + margin-right: 15px; + padding: 5px; +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/sample.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/sample.js" new file mode 100644 index 0000000..621de32 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/sample.js" @@ -0,0 +1,5 @@ +/* + Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +(function(){CKEDITOR.on("instanceReady",function(b){var b=b.editor,a=CKEDITOR.document.$.getElementsByName("ckeditor-sample-required-plugins"),a=a.length?CKEDITOR.dom.element.get(a[0]).getAttribute("content").split(","):[],c=[];if(a.length){for(var d=0;d"+a[d]+"");c.length&&CKEDITOR.dom.element.createFromHtml('
    To fully experience this demo, the '+c.join(", ")+" plugin"+(1
    ").insertBefore(b.container)}})})(); \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/sample_posteddata.php" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/sample_posteddata.php" new file mode 100644 index 0000000..7d2ff30 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/sample_posteddata.php" @@ -0,0 +1,16 @@ +
    +
    +-------------------------------------------------------------------------------------------
    +  CKEditor - Posted Data
    +
    +  We are sorry, but your Web server does not support the PHP language used in this script.
    +
    +  Please note that CKEditor can be used with any other server-side language than just PHP.
    +  To save the content created with CKEditor you need to read the POST data on the server
    +  side and write it to a file or the database.
    +
    +  Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
    +  For licensing, see LICENSE.html or http://ckeditor.com/license
    +-------------------------------------------------------------------------------------------
    +
    +
    */ include "assets/posteddata.php"; ?> diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/tabindex.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/tabindex.html" new file mode 100644 index 0000000..7f51881 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/tabindex.html" @@ -0,0 +1,75 @@ + + + + + TAB Key-Based Navigation — CKEditor Sample + + + + + + + +

    + CKEditor Samples » TAB Key-Based Navigation +

    +
    +

    + This sample shows how tab key navigation among editor instances is + affected by the tabIndex attribute from + the original page element. Use TAB key to move between the editors. +

    +
    +

    + +

    +
    +

    + +

    +

    + +

    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/uicolor.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/uicolor.html" new file mode 100644 index 0000000..04e197c --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/uicolor.html" @@ -0,0 +1,69 @@ + + + + + UI Color Picker — CKEditor Sample + + + + + +

    + CKEditor Samples » UI Color +

    +
    +

    + This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the color of its user interface.
    + Note:The UI skin color feature depends on the CKEditor skin + compatibility. The Moono and Kama skins are examples of skins that work with it. +

    +
    +
    +

    + This editor instance has a UI color value defined in configuration to change the skin color, + To specify the color of the user interface, set the uiColor property: +

    +
    +CKEDITOR.replace( 'textarea_id', {
    +	uiColor: '#14B8C4'
    +});
    +

    + Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

    +

    + + +

    +

    + +

    +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/uilanguages.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/uilanguages.html" new file mode 100644 index 0000000..b6ba2a0 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/uilanguages.html" @@ -0,0 +1,119 @@ + + + + + User Interface Globalization — CKEditor Sample + + + + + + +

    + CKEditor Samples » User Interface Languages +

    +
    +

    + This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the language of its user interface. +

    +

    + It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates + a drop-down list that lets the user change the UI language. +

    +

    + By default, CKEditor automatically localizes the editor to the language of the user. + The UI language can be controlled with two configuration options: + language and + + defaultLanguage. The defaultLanguage setting specifies the + default CKEditor language to be used when a localization suitable for user's settings is not available. +

    +

    + To specify the user interface language that will be used no matter what language is + specified in user's browser or operating system, set the language property: +

    +
    +CKEDITOR.replace( 'textarea_id', {
    +	// Load the German interface.
    +	language: 'de'
    +});
    +

    + Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

    +
    +
    +

    + Available languages ( languages!):
    + +
    + + (You may see strange characters if your system does not support the selected language) + +

    +

    + + +

    +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/xhtmlstyle.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/xhtmlstyle.html" new file mode 100644 index 0000000..d7afa47 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/samples/xhtmlstyle.html" @@ -0,0 +1,219 @@ + + + + + XHTML Compliant Output — CKEditor Sample + + + + + + + +

    + CKEditor Samples » Producing XHTML Compliant Output +

    +
    +

    + This sample shows how to configure CKEditor to output valid + XHTML 1.1 code. + Deprecated elements (<font>, <u>) or attributes + (size, face) will be replaced with XHTML compliant code. +

    +

    + To add a CKEditor instance outputting valid XHTML code, load the editor using a standard + JavaScript call and define CKEditor features to use the XHTML compliant elements and styles. +

    +

    + A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

    +
    +CKEDITOR.replace( 'textarea_id', {
    +	contentsCss: 'assets/outputxhtml.css',
    +
    +	coreStyles_bold: {
    +		element: 'span',
    +		attributes: { 'class': 'Bold' }
    +	},
    +	coreStyles_italic: {
    +		element: 'span',
    +		attributes: { 'class': 'Italic' }
    +	},
    +
    +	...
    +});
    +
    +
    +

    + + + +

    +

    + +

    +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog.css" new file mode 100644 index 0000000..ab5c2b8 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog.css" @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{color:inherit;font-size:12px;font-weight:bold;text-shadow:0 1px 0 #fff;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_ie.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_ie.css" new file mode 100644 index 0000000..a80b3f0 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_ie.css" @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{color:inherit;font-size:12px;font-weight:bold;text-shadow:0 1px 0 #fff;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_ie7.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_ie7.css" new file mode 100644 index 0000000..f07cdf6 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_ie7.css" @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{color:inherit;font-size:12px;font-weight:bold;text-shadow:0 1px 0 #fff;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_title{zoom:1}.cke_dialog_footer{border-top:1px solid #bfbfbf}.cke_dialog_footer_buttons{position:static}.cke_dialog_footer_buttons a.cke_dialog_ui_button{vertical-align:top}.cke_dialog .cke_resizer_ltr{padding-left:4px}.cke_dialog .cke_resizer_rtl{padding-right:4px}.cke_dialog_ui_input_text,.cke_dialog_ui_input_password,.cke_dialog_ui_input_textarea,.cke_dialog_ui_input_select{padding:0!important}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_ie8.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_ie8.css" new file mode 100644 index 0000000..b59d02e --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_ie8.css" @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{color:inherit;font-size:12px;font-weight:bold;text-shadow:0 1px 0 #fff;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{display:block} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_iequirks.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_iequirks.css" new file mode 100644 index 0000000..fe9fc96 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_iequirks.css" @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{color:inherit;font-size:12px;font-weight:bold;text-shadow:0 1px 0 #fff;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_opera.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_opera.css" new file mode 100644 index 0000000..2f5072d --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/dialog_opera.css" @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{color:inherit;font-size:12px;font-weight:bold;text-shadow:0 1px 0 #fff;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_footer{display:block;height:38px}.cke_ltr .cke_dialog_footer>*{float:right}.cke_rtl .cke_dialog_footer>*{float:left} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor.css" new file mode 100644 index 0000000..f22411b --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor.css" @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -1376px !important;} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_gecko.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_gecko.css" new file mode 100644 index 0000000..6df8d86 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_gecko.css" @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -1376px !important;} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_ie.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_ie.css" new file mode 100644 index 0000000..0b1b671 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_ie.css" @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -1376px !important;} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_ie7.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_ie7.css" new file mode 100644 index 0000000..1d887a1 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_ie7.css" @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:26px}.cke_toolgroup,.cke_combo{position:relative}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top;background-color:#c0c0c0}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:5px;height:6px;padding:0;position:absolute;right:8px;top:10px;background-position:0 0}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -24px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -1376px !important;} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_ie8.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_ie8.css" new file mode 100644 index 0000000..1e4644b --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_ie8.css" @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -1376px !important;} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_iequirks.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_iequirks.css" new file mode 100644 index 0000000..b26453a --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/editor_iequirks.css" @@ -0,0 +1,5 @@ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,{display:inline-block;vertical-align:top}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -1376px !important;} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/icons.png" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/icons.png" new file mode 100644 index 0000000000000000000000000000000000000000..b1b35b70dfce6ec7dfed6e2031d609361f98e9a6 GIT binary patch literal 10620 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 EKUFCPLI3~& literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/images/arrow.png" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/images/arrow.png" new file mode 100644 index 0000000000000000000000000000000000000000..0d1eb39c6763770690d4cd6faf81503975a25f08 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol>0V4T5^Y?)SlDyqr82*Fcg1yTp14TFsJR*x3 z7`TN&n2}-D90{Nxdx@v7EBhTTAs$Q7;?s#GK%q&VE{-7@=ig3J6RR&$neB-Qn+l0CXLLr>mdKI;Vst0B#;z A`2YX_ literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/images/close.png" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/images/close.png" new file mode 100644 index 0000000000000000000000000000000000000000..a795fd520a9b6d2cc6ae7847635d3a3d15ce44de GIT binary patch literal 389 zcmV;00eb$4P)RCwBA{Qv(y12q8?1C_z3fiyHw zLPFwzq@?6kK|w(|m>7r+5(CQZ!ljP|mxPg#k@lxgpG4lhdv{D&Sl9|E#0)g-FwjtG z9v&WXl3h4?^5lI=N=iR~u8{_UV?cZu#8y>R{V{Xq%zZfh3`*EIu-LtO_cq7I#(sBq zcmEHMWxDE9`JCPrLYkDs4k z5$MHZKrA6AC-(y+26P?Aix)4RzI^%8>f^_ck4TCXAt9k1z`&OPM#zuW*47;$v4VmE z51=chfBpKk8^~2BDGUPw0-lD3hJL<(|2{0tL_lniSV&07V_f?1MM^gi&qj*?5vW)@ jE`5xn#n<375Fo$+`G5QuESVtt00000NkvXXu0mjfN7%S1Z0(}J4<7u!_q^ZZd4HZ)DVnCq-z@6iBv7eTiz6c=4@Dx81J8SV zd-+DAaj#OTWO)%xPfwRD7R&cgD71y=L?YqZ-Q890?CfZJoRNSHr_)J;^KICh5V%Jh zmoF!Q!{I<@=^>l+z}Dm269T+?Myu7jYqc7wR;!Fnp-_R+Rt!8XOp^yj!0@7?Y-E99J0*ORIAp4}-?UHafoJ8CD`uZvo;In}Q7}Ea! zK7q24jg5^rXsg%jt58#;l*r|BW*!8C!Qng@&I5jnj~1YekDwaT6N|}av;8oe%^!itHc(6ljk72g zi`PH{7qG3N{_0k%B`Fq*&2qVX6GZi-Zzt+>y8C*)K91do?F&Sx#wK9sL;y1fI>$&trRUb0%?SX6F6U(h?ny$6vwO z1&|@&SNa{i_8r)3j!fdh!a^Osna<^MS6Ggh0V1vh{~;!bkwVoalgSUP)Vze8$T2jH zMpNsnMsWIy1ler%8aufY6B7ZLR>W?%f9p%IyuAE^q9_^=g9~f$H%E`aJ-pomoK}9n z|M^j!I2DORUeC?V(N?RKhKex2J=&ttXa;=-HIgfxPTxqSQkM#af&mRiqw&ki%F0`> w*NY|G;v=Rhz(u@!a4rCHfX}C{#$N&q08tFxHw5c*b^rhX07*qoM6N<$f*8n#+W-In literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/readme.md" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/readme.md" new file mode 100644 index 0000000..f24ec4f --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/skins/moono/readme.md" @@ -0,0 +1,51 @@ +"Moono" Skin +==================== + +This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor +[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by +the CKEditor team. "Moono" is maintained by the core developers. + +For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) +documentation. + +Features +------------------- +"Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency. +It comes with the following features: + +- Chameleon feature with brightness, +- high-contrast compatibility, +- graphics source provided in SVG. + +Directory Structure +------------------- + +CSS parts: +- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, +- **mainui.css**: the file contains styles of entire editor outline structures, +- **toolbar.css**: the file contains styles of the editor toolbar space (top), +- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, +- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded +until the first panel open up, +- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), +- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, +it's not loaded until the first menu open up, +- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, +- **reset.css**: the file defines the basis of style resets among all editor UI spaces, +- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, +- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. + +Other parts: +- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, +- **icons/**: contains all skin defined icons, +- **images/**: contains a fill general used images, +- **dev/**: contains SVG source of the skin icons. + +License +------- + +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/styles.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/styles.js" new file mode 100644 index 0000000..9cd1c13 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/ckeditor/styles.js" @@ -0,0 +1,112 @@ +/** + * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.html or http://ckeditor.com/license + */ + +// This file contains style definitions that can be used by CKEditor plugins. +// +// The most common use for it is the "stylescombo" plugin, which shows a combo +// in the editor toolbar, containing all styles. Other plugins instead, like +// the div plugin, use a subset of the styles on their feature. +// +// If you don't have plugins that depend on this file, you can simply ignore it. +// Otherwise it is strongly recommended to customize this file to match your +// website requirements and design properly. + +CKEDITOR.stylesSet.add( 'default', [ + /* Block Styles */ + + // These styles are already available in the "Format" combo ("format" plugin), + // so they are not needed here by default. You may enable them to avoid + // placing the "Format" combo in the toolbar, maintaining the same features. + /* + { name: 'Paragraph', element: 'p' }, + { name: 'Heading 1', element: 'h1' }, + { name: 'Heading 2', element: 'h2' }, + { name: 'Heading 3', element: 'h3' }, + { name: 'Heading 4', element: 'h4' }, + { name: 'Heading 5', element: 'h5' }, + { name: 'Heading 6', element: 'h6' }, + { name: 'Preformatted Text',element: 'pre' }, + { name: 'Address', element: 'address' }, + */ + + { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } }, + { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } }, + { + name: 'Special Container', + element: 'div', + styles: { + padding: '5px 10px', + background: '#eee', + border: '1px solid #ccc' + } + }, + + /* Inline Styles */ + + // These are core styles available as toolbar buttons. You may opt enabling + // some of them in the Styles combo, removing them from the toolbar. + // (This requires the "stylescombo" plugin) + /* + { name: 'Strong', element: 'strong', overrides: 'b' }, + { name: 'Emphasis', element: 'em' , overrides: 'i' }, + { name: 'Underline', element: 'u' }, + { name: 'Strikethrough', element: 'strike' }, + { name: 'Subscript', element: 'sub' }, + { name: 'Superscript', element: 'sup' }, + */ + + { name: 'Marker: Yellow', element: 'span', styles: { 'background-color': 'Yellow' } }, + { name: 'Marker: Green', element: 'span', styles: { 'background-color': 'Lime' } }, + + { name: 'Big', element: 'big' }, + { name: 'Small', element: 'small' }, + { name: 'Typewriter', element: 'tt' }, + + { name: 'Computer Code', element: 'code' }, + { name: 'Keyboard Phrase', element: 'kbd' }, + { name: 'Sample Text', element: 'samp' }, + { name: 'Variable', element: 'var' }, + + { name: 'Deleted Text', element: 'del' }, + { name: 'Inserted Text', element: 'ins' }, + + { name: 'Cited Work', element: 'cite' }, + { name: 'Inline Quotation', element: 'q' }, + + { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } }, + { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } }, + + /* Object Styles */ + + { + name: 'Styled image (left)', + element: 'img', + attributes: { 'class': 'left' } + }, + + { + name: 'Styled image (right)', + element: 'img', + attributes: { 'class': 'right' } + }, + + { + name: 'Compact table', + element: 'table', + attributes: { + cellpadding: '5', + cellspacing: '0', + border: '1', + bordercolor: '#ccc' + }, + styles: { + 'border-collapse': 'collapse' + } + }, + + { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } }, + { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } } +]); + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/CHANGELOG.txt" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/CHANGELOG.txt" new file mode 100644 index 0000000..938a180 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/CHANGELOG.txt" @@ -0,0 +1,6 @@ +Clockface changelog +============================= + +Version 1.0.0 Dec 18, 2012 +----------------------------- +Initial release. \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/LICENSE-MIT" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/LICENSE-MIT" new file mode 100644 index 0000000..eeb9357 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/LICENSE-MIT" @@ -0,0 +1,22 @@ +Copyright (c) 2012 Vitaliy Potapov + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/README.md" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/README.md" new file mode 100644 index 0000000..4ba8a40 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/README.md" @@ -0,0 +1,13 @@ +# Clockface +Clock-like timepicker for Twitter Bootstrap. + +## Demo, Docs and Download +See **http://vitalets.github.com/clockface** + +## Contribution +Your support is appreciated. +Please make pull requests on dev branch. Thank you! + +## License +Copyright (c) 2012 Vitaliy Potapov +Licensed under the MIT licenses. \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/css/clockface.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/css/clockface.css" new file mode 100644 index 0000000..f554a03 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/css/clockface.css" @@ -0,0 +1,229 @@ +.clearfix { + *zoom: 1; +} +.clearfix:before, +.clearfix:after { + display: table; + content: ""; + line-height: 0; +} +.clearfix:after { + clear: both; +} +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.clockface { + width: 160px; + padding: 3px; + text-align: center; + /* + .l3 .center span { + vertical-align: middle; + display: inline-block; + .ie7-inline-block(); + padding: 0 2px; + } + */ + + /* + input { + width: 20px; + margin: 0; + vertical-align: top; + } + + a { + text-decoration: none; + padding: 0 3px; + vertical-align: top; + font-size: 0.85em; + .border-radius(3px); + + &.am {margin-right: 8px;} + + &.active, + &.active:hover { + .buttonBackground(@btnSuccessBackground, spin(@btnSuccessBackground, 20)); + } + } + */ + +} +.clockface > div { + clear: both; + overflow: auto; +} +.clockface .outer, +.clockface .inner { + width: 22px; + height: 22px; + line-height: 22px; + cursor: default; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.clockface .outer.active, +.clockface .inner.active, +.clockface .outer.active:hover, +.clockface .inner.active:hover { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.clockface .outer:hover, +.clockface .inner:hover { + background-color: #dcdcdc; +} +.clockface .outer { + color: gray; + font-size: 0.8em; +} +.clockface .outer.active, +.clockface .outer.active:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(to bottom, #62c462, #51a351); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #51a351; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.clockface .outer.active:hover, +.clockface .outer.active:hover:hover, +.clockface .outer.active:active, +.clockface .outer.active:hover:active, +.clockface .outer.active.active, +.clockface .outer.active:hover.active, +.clockface .outer.active.disabled, +.clockface .outer.active:hover.disabled, +.clockface .outer.active[disabled], +.clockface .outer.active:hover[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} +.clockface .outer.active:active, +.clockface .outer.active:hover:active, +.clockface .outer.active.active, +.clockface .outer.active:hover.active { + background-color: #408140 \9; +} +.clockface .inner.active, +.clockface .inner.active:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #0044cc; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.clockface .inner.active:hover, +.clockface .inner.active:hover:hover, +.clockface .inner.active:active, +.clockface .inner.active:hover:active, +.clockface .inner.active.active, +.clockface .inner.active:hover.active, +.clockface .inner.active.disabled, +.clockface .inner.active:hover.disabled, +.clockface .inner.active[disabled], +.clockface .inner.active:hover[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} +.clockface .inner.active:active, +.clockface .inner.active:hover:active, +.clockface .inner.active.active, +.clockface .inner.active:hover.active { + background-color: #003399 \9; +} +.clockface .l1 .cell, +.clockface .l5 .cell { + width: 22px; + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} +.clockface .l1 .outer { + margin-bottom: 3px; +} +.clockface .l5 .outer { + margin-top: 3px; +} +.clockface .l2 .outer, +.clockface .l3 .outer, +.clockface .l4 .outer, +.clockface .l2 .inner, +.clockface .l3 .inner, +.clockface .l4 .inner { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + vertical-align: middle; +} +.clockface .l2 .left, +.clockface .l3 .left, +.clockface .l4 .left { + float: left; +} +.clockface .l2 .left .outer, +.clockface .l3 .left .outer, +.clockface .l4 .left .outer { + margin-right: 3px; +} +.clockface .l2 .right, +.clockface .l3 .right, +.clockface .l4 .right { + float: right; +} +.clockface .l2 .right .outer, +.clockface .l3 .right .outer, +.clockface .l4 .right .outer { + margin-left: 3px; +} +.clockface .ampm { + font-size: 0.8em; + text-decoration: none; + border-bottom: dashed 1px; +} +.clockface .ampm:focus { + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/js/clockface.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/js/clockface.js" new file mode 100644 index 0000000..0f47e09 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/clockface/js/clockface.js" @@ -0,0 +1,609 @@ +/** +* Clockface - v1.0.0 +* Clockface timepicker for Twitter Bootstrap +* +* Confusion with noon and midnight: +* http://en.wikipedia.org/wiki/12-hour_clock +* Here considered '00:00 am' as midnight and '12:00 pm' as noon. +* +* Author: Vitaliy Potapov +* Project page: http://github.com/vitalets/clockface +* Copyright (c) 2012 Vitaliy Potapov. Released under MIT License. +**/ +(function ($) { + + var Clockface = function (element, options) { + this.$element = $(element); + this.options = $.extend({}, $.fn.clockface.defaults, options, this.$element.data()); + this.init(); + }; + + Clockface.prototype = { + constructor: Clockface, + init: function () { + //apply template + this.$clockface = $($.fn.clockface.template); + this.$clockface.find('.l1 .cell, .left.cell').html('
    '); + this.$clockface.find('.l5 .cell, .right.cell').html('
    '); + this.$clockface.hide(); + + this.$outer = this.$clockface.find('.outer'); + this.$inner = this.$clockface.find('.inner'); + this.$ampm = this.$clockface.find('.ampm'); + + //internal vars + this.ampm = null; + this.hour = null; + this.minute = null; + + //click am/pm + this.$ampm.click($.proxy(this.clickAmPm, this)); + + //click cell + this.$clockface.on('click', '.cell', $.proxy(this.click, this)); + + this.parseFormat(); + this.prepareRegexp(); + + //set ampm text + this.ampmtext = this.is24 ? {am: '12-23', pm: '0-11'} : {am: 'AM', pm: 'PM'}; + + this.isInline = this.$element.is('div'); + if(this.isInline) { + this.$clockface.addClass('clockface-inline').appendTo(this.$element); + } else { + this.$clockface.addClass('dropdown-menu').appendTo('body'); + if(this.options.trigger === 'focus') { + this.$element.on('focus.clockface', $.proxy(function(e) { this.show(); }, this)); + } + + // Click outside hide it. Register single handler for all clockface widgets + $(document).off('click.clockface').on('click.clockface', $.proxy(function (e) { + var $target = $(e.target); + //click inside some clockface --> do nothing + if ($target.closest('.clockface').length) { + return; + } + //iterate all open clockface and close all except current + $('.clockface-open').each(function(){ + if(this === e.target) { + return; + } + $(this).clockface('hide'); + }); + }, this)); + } + + //fill minutes once + this.fill('minute'); + }, + + /* + Displays widget with specified value + */ + show: function(value) { + if(this.$clockface.is(':visible')) { + return; + } + if(!this.isInline) { + if(value === undefined) { + value = this.$element.val(); + } + this.$element.addClass('clockface-open'); + this.$element.on('keydown.clockface', $.proxy(this.keydown, this)); + this.place(); + $(window).on('resize.clockface', $.proxy(this.place, this)); + } + this.$clockface.show(); + this.setTime(value); + + //trigger shown event + this.$element.triggerHandler('shown.clockface', this.getTime(true)); + }, + /* + hides widget + */ + hide: function() { + this.$clockface.hide(); + if(!this.isInline) { + this.$element.removeClass('clockface-open'); + this.$element.off('keydown.clockface'); + $(window).off('resize.clockface'); + } + + //trigger hidden event + this.$element.triggerHandler('hidden.clockface', this.getTime(true)); + }, + + /* + toggles show/hide + */ + toggle: function(value) { + if(this.$clockface.is(':visible')) { + this.hide(); + } else { + this.show(value); + } + }, + + /* + Set time of clockface. Am/pm will be set automatically. + Value can be Date object or string + */ + setTime: function(value) { + var res, hour, minute, ampm = 'am'; + + //no new value + if(value === undefined) { + //if ampm null, it;s first showw, need to render hours ('am' by default) + if(this.ampm === null) { + this.setAmPm('am'); + } + return; + } + + //take value from Date object + if(value instanceof Date) { + hour = value.getHours(); + minute = value.getMinutes(); + } + + //parse value from string + if(typeof value === 'string' && value.length) { + res = this.parseTime(value); + + //'24' always '0' + if(res.hour === 24) { + res.hour = 0; + } + + hour = res.hour; + minute = res.minute; + ampm = res.ampm; + } + + //try to set ampm automatically + if(hour > 11 && hour < 24) { + ampm = 'pm'; + //for 12h format substract 12 from value + if(!this.is24 && hour > 12) { + hour -= 12; + } + } else if(hour >= 0 && hour < 11) { + //always set am for 24h and for '0' in 12h + if(this.is24 || hour === 0) { + ampm = 'am'; + } + //otherwise ampm should be defined in value itself and retrieved when parsing + } + + this.setAmPm(ampm); + this.setHour(hour); + this.setMinute(minute); + }, + + /* + Set ampm and re-fill hours + */ + setAmPm: function(value) { + if(value === this.ampm) { + return; + } else { + this.ampm = value === 'am' ? 'am' : 'pm'; + } + + //set link's text + this.$ampm.text(this.ampmtext[this.ampm]); + + //re-fill and highlight hour + this.fill('hour'); + this.highlight('hour'); + }, + /* + Sets hour value and highlight if possible + */ + setHour: function(value) { + value = parseInt(value, 10); + value = isNaN(value) ? null : value; + if(value < 0 || value > 23) { + value = null; + } + + if(value === this.hour) { + return; + } else { + this.hour = value; + } + + this.highlight('hour'); + }, + + /* + Sets minute value and highlight + */ + setMinute: function(value) { + value = parseInt(value, 10); + value = isNaN(value) ? null : value; + if(value < 0 || value > 59) { + value = null; + } + + if(value === this.minute) { + return; + } else { + this.minute = value; + } + + this.highlight('minute'); + }, + + /* + Highlights hour/minute + */ + highlight: function(what) { + var index, + values = this.getValues(what), + value = what === 'minute' ? this.minute : this.hour, + $cells = what === 'minute' ? this.$outer : this.$inner; + + $cells.removeClass('active'); + + //find index of value and highlight if possible + index = $.inArray(value, values); + if(index >= 0) { + $cells.eq(index).addClass('active'); + } + }, + + /* + Fill values around + */ + fill: function(what) { + var values = this.getValues(what), + $cells = what === 'minute' ? this.$outer : this.$inner, + leadZero = what === 'minute'; + + $cells.each(function(i){ + var v = values[i]; + if(leadZero && v < 10) { + v = '0' + v; + } + $(this).text(v); + }); + }, + + /* + returns values of hours or minutes, depend on ampm and 24/12 format (0-11, 12-23, 00-55, etc) + param what: 'hour'/'minute' + */ + getValues: function(what) { + var values = [11, 0, 1, 10, 2, 9, 3, 8, 4, 7, 6, 5], + result = []; + + if(what === 'minute') { + $.each(values, function(i, v) { result[i] = v*5; }); + } else if(this.ampm === 'pm') { + if(this.is24) { + $.each(values, function(i, v) { result[i] = v+12; }); + } else { + result = values.slice(); + result[1] = 12; //need this to show '12' instead of '0' for 12h pm + } + } else { + result = values.slice(); + } + return result; + }, + + /* + Click cell handler. + Stores hour/minute and highlights. + On second click deselect value + */ + click: function(e) { + var $target = $(e.target), + value = $target.hasClass('active') ? null : $target.text(); + if($target.hasClass('inner')) { + this.setHour(value); + } else { + this.setMinute(value); + } + + //update value in input + if(!this.isInline) { + this.$element.val(this.getTime()); + } + + //trigger pick event + this.$element.triggerHandler('pick.clockface', this.getTime(true)); + }, + + /* + Click handler on ampm link + */ + clickAmPm: function(e) { + e.preventDefault(); + //toggle am/pm + this.setAmPm(this.ampm === 'am' ? 'pm' : 'am'); + + //update value in input + if(!this.isInline && !this.is24) { + this.$element.val(this.getTime()); + } + + //trigger pick event + this.$element.triggerHandler('pick.clockface', this.getTime(true)); + }, + + + /* + Place widget below input + */ + place: function(){ + var zIndex = parseInt(this.$element.parents().filter(function() { + return $(this).css('z-index') != 'auto'; + }).first().css('z-index'), 10)+10, + offset = this.$element.offset(); + this.$clockface.css({ + top: offset.top + this.$element.outerHeight(), + left: offset.left, + zIndex: zIndex + }); + }, + + /* + keydown handler (for not inline mode) + */ + keydown: function(e) { + //tab, escape, enter --> hide + if(/^(9|27|13)$/.test(e.which)) { + this.hide(); + return; + } + + clearTimeout(this.timer); + this.timer = setTimeout($.proxy(function(){ + this.setTime(this.$element.val()); + }, this), 500); + }, + + /* + Parse format from options and set this.is24 + */ + parseFormat: function() { + var format = this.options.format, + hFormat = 'HH', + mFormat = 'mm'; + + //hour format + $.each(['HH', 'hh', 'H', 'h'], function(i, f){ + if(format.indexOf(f) !== -1) { + hFormat = f; + return false; + } + }); + + //minute format + $.each(['mm', 'm'], function(i, f){ + if(format.indexOf(f) !== -1) { + mFormat = f; + return false; + } + }); + + //is 24 hour format + this.is24 = hFormat.indexOf('H') !== -1; + + this.hFormat = hFormat; + this.mFormat = mFormat; + }, + + + + /* + Parse value passed as string or Date object + */ + parseTime: function(value) { + var hour = null, + minute = null, + ampm = 'am', + parts = [], digits; + + value = $.trim(value); + + //try parse time from string assuming separator exist + if(this.regexpSep) { + parts = value.match(this.regexpSep); + } + + if(parts && parts.length) { + hour = parts[1] ? parseInt(parts[1], 10) : null; + minute = parts[2] ? parseInt(parts[2], 10): null; + ampm = (!parts[3] || parts[3].toLowerCase() === 'a') ? 'am' : 'pm'; + } else { + //if parse with separator failed, search for 1,4-digit block and process it + //use reversed string to start from end (usefull with full dates) + //see http://stackoverflow.com/questions/141348/what-is-the-best-way-to-parse-a-time-into-a-date-object-from-user-input-in-javas + value = value.split('').reverse().join('').replace(/\s/g, ''); + parts = value.match(this.regexpNoSep); + if(parts && parts.length) { + ampm = (!parts[1] || parts[1].toLowerCase() === 'a') ? 'am' : 'pm'; + //reverse back + digits = parts[2].split('').reverse().join(''); + //use smart analyzing to detect hours and minutes + switch(digits.length) { + case 1: + hour = parseInt(digits, 10); //e.g. '6' + break; + case 2: + hour = parseInt(digits, 10); //e.g. '16' + //if((this.is24 && hour > 24) || (!this.is24 && hour > 12)) { //e.g. 26 + if(hour > 24) { //e.g. 26 + hour = parseInt(digits[0], 10); + minute = parseInt(digits[1], 10); + } + break; + case 3: + hour = parseInt(digits[0], 10); //e.g. 105 + minute = parseInt(digits[1]+digits[2], 10); + if(minute > 59) { + hour = parseInt(digits[0]+digits[1], 10); //e.g. 195 + minute = parseInt(digits[2], 10); + if(hour > 24) { + hour = null; + minute = null; + } + } + break; + case 4: + hour = parseInt(digits[0]+digits[1], 10); //e.g. 2006 + minute = parseInt(digits[2]+digits[3], 10); + if(hour > 24) { + hour = null; + } + if(minute > 59) { + minute = null; + } + } + } + } + + return {hour: hour, minute: minute, ampm: ampm}; + }, + + prepareRegexp: function() { + //take separator from format + var sep = this.options.format.match(/h\s*([^hm]?)\s*m/i); //HH-mm, HH:mm + if(sep && sep.length) { + sep = sep[1]; + } + + //sep can be null for HH, and '' for HHmm + this.separator = sep; + + //parse from string + //use reversed string and regexp to parse 2-digit minutes first + //see http://stackoverflow.com/questions/141348/what-is-the-best-way-to-parse-a-time-into-a-date-object-from-user-input-in-javas + //this.regexp = new RegExp('(a|p)?\\s*((\\d\\d?)' + sep + ')?(\\d\\d?)', 'i'); + + //regexp, used with separator + this.regexpSep = (this.separator && this.separator.length) ? new RegExp('(\\d\\d?)\\s*\\' + this.separator + '\\s*(\\d?\\d?)\\s*(a|p)?', 'i') : null; + + //second regexp applied if previous has no result or separator is empty (to reversed string) + this.regexpNoSep = new RegExp('(a|p)?\\s*(\\d{1,4})', 'i'); + }, + + /* + Returns time as string in specified format + */ + getTime: function(asObject) { + if(asObject === true) { + return { + hour: this.hour, + minute: this.minute, + ampm: this.ampm + }; + } + + var hour = this.hour !== null ? this.hour + '' : '', + minute = this.minute !== null ? this.minute + '' : '', + result = this.options.format; + + if(!hour.length && !minute.length) { + return ''; + } + + if(this.hFormat.length > 1 && hour.length === 1) { + hour = '0' + hour; + } + + if(this.mFormat.length > 1 && minute.length === 1) { + minute = '0' + minute; + } + + //delete separator if no minutes + if(!minute.length && this.separator) { + result = result.replace(this.separator, ''); + } + + result = result.replace(this.hFormat, hour).replace(this.mFormat, minute); + if(!this.is24) { + if(result.indexOf('A') !== -1) { + result = result.replace('A', this.ampm.toUpperCase()); + } else { + result = result.replace('a', this.ampm); + } + } + + return result; + }, + + /* + Removes widget and detach events + */ + destroy: function() { + this.hide(); + this.$clockface.remove(); + if(!this.isInline && this.options.trigger === 'focus') { + this.$element.off('focus.clockface'); + } + } + }; + + $.fn.clockface = function ( option ) { + var d, args = Array.apply(null, arguments); + args.shift(); + + //getTime returns string (not jQuery onject) + if(option === 'getTime' && this.length && (d = this.eq(0).data('clockface'))) { + return d.getTime.apply(d, args); + } + + return this.each(function () { + var $this = $(this), + data = $this.data('clockface'), + options = typeof option == 'object' && option; + if (!data) { + $this.data('clockface', (data = new Clockface(this, options))); + } + if (typeof option == 'string' && typeof data[option] == 'function') { + data[option].apply(data, args); + } + }); + }; + + $.fn.clockface.defaults = { + //see http://momentjs.com/docs/#/displaying/format/ + format: 'H:mm', + trigger: 'focus' //focus|manual + }; + + + $.fn.clockface.template = ''+ + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    '+ + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    '+ + '
    ' + + '
    ' + + '
    ' + + '
    '+ + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    '+ + '
    '; + +}(window.jQuery)); \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/metro.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/metro.css" new file mode 100644 index 0000000..566864d --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/metro.css" @@ -0,0 +1,672 @@ +/*** +Modify bootstrap buttons +***/ + +/* remove rounds from all elements */ +div, input, select, textarea, span, img, table, td, th, p, a, button, ul, li { + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} + +a:focus { + outline: none !important; +} + +a:hover, a:active { + outline: 0 !important; +} + +select:focus { + outline: none !important; +} + +.btn { + background-color: #e5e5e5; + background-image: none; + filter: none; + border: 0; + box-shadow: none; + padding: 7px 14px; + text-shadow: none; + font-family: "Segoe UI", Helvetica, Arial, sans-serif; + font-size: 14px; + color: #333333; + cursor: pointer; + outline: none; + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} +.btn:hover, +.btn:focus, +.btn:active, +.btn.active, +.btn[disabled], +.btn.disabled { + font-family: "Segoe UI", Helvetica, Arial, sans-serif; + color: #333333; + box-shadow: none; + background-color: #d8d8d8; +} + +.btn.red-stripe +{ + border-left: 3px solid #d84a38; +} + +.btn.blue-stripe +{ + border-left: 3px solid #4d90fe; +} + +.btn.purple-stripe +{ + border-left: 3px solid #852b99; +} + +.btn.green-stripe +{ + border-left: 3px solid #35aa47; +} + +/* Red */ +.btn.red { + color: white; + text-shadow: none; + background-color: #d84a38; +} +.btn.red:hover, +.btn.red:focus, +.btn.red:active, +.btn.red.active, +.btn.red[disabled], +.btn.red.disabled { + background-color: #bb2413 !important; + color: #fff !important; +} + +/* Blue */ +.btn.transparent +{ + color: black; + text-shadow: none; + background-color: transparent; +} + +.btn.blue +{ + color: white; + text-shadow: none; + background-color: #4d90fe; +} +.btn.blue:hover, +.btn.blue:focus, +.btn.blue:active, +.btn.blue.active, +.btn.blue[disabled], +.btn.blue.disabled { + background-color: #0362fd !important; + color: #fff !important; +} + +/* Green */ +.btn.green { + color: white; + text-shadow: none; + background-color: #35aa47; +} +.btn.green:hover, +.btn.green:focus, +.btn.green:active, +.btn.green.active, +.btn.green.disabled, +.btn.green[disabled]{ + background-color: #1d943b !important; + color: #fff !important; +} + +/* Purple */ +.btn.purple { + color: white; + text-shadow: none; + background-color: #852b99; +} +.btn.purple:hover, +.btn.purple:focus, +.btn.purple:active, +.btn.purple.active, +.btn.purple.disabled, +.btn.purple[disabled] { + background-color: #6d1b81 !important; + color: #fff !important; +} + +.btn.yellow { + color: white; + text-shadow: none; + background-color: #ffb848; +} +.btn.yellow:hover, +.btn.yellow:focus, +.btn.yellow:active, +.btn.yellow.active, +.btn.yellow.disabled, +.btn.yellow[disabled] { + background-color: #eca22e !important; + color: #fff !important; +} + +.btn.black { + color: white; + text-shadow: none; + background-color: #555555; +} +.btn.black:hover, +.btn.black:focus, +.btn.black:active, +.btn.black.active, +.btn.black.disabled, +.btn.black[disabled] { + background-color: #222222 !important; + color: #fff !important; +} + +.mini +{ + height: 13px; + font-size: 11px !important; + line-height: 13px; + padding: 4px 10px; +} + +.big +{ + height: 38px; + font-size: 18px; + line-height: 38px; + padding: 8px 16px; +} + +/*** +Metro icons +***/ +[class^="m-icon-"] { + display: inline-block; + width: 14px; + height: 14px;; + margin-top: 4px; + line-height: 14px; + vertical-align: top; + background-image: url(../img/syncfusion-icons.png); + background-position: 0 0; + background-repeat: no-repeat; +} + +[class^="m-icon-big-"] { + display: inline-block; + width: 30px; + height: 30px; + margin: 6px; + vertical-align: top; + background-image: url(../img/syncfusion-icons.png); + background-position: 0 0px; + background-repeat: no-repeat; +} + +.m-icon-white { + background-image: url(../img/syncfusion-icons-white.png); +} + +/* Misc */ +.btn.icn-only { + min-width: 14px; +} +.btn.bigicn-only { + min-width: 34px; +} +.m-icon-swapright { + background-position: -27px -10px; +} +.m-icon-swapdown { + background-position: -68px -10px; +} +.m-icon-swapleft { + background-position: -8px -10px; +} +.m-icon-swapup { + background-position: -46px -10px; +} +.m-icon-big-swapright{ + background-position: -42px -28px; +} +.m-icon-big-swapdown{ + background-position: -115px -28px; +} +.m-icon-big-swapleft{ + background-position: -6px -28px; +} +.m-icon-big-swapup{ + background-position: -78px -28px; +} + +/*** +Glyphicons icons +***/ +.btn > .halflings-icon { + margin-top:2px; + margin-right: 2px; +} + +.btn.mini > .halflings-icon { + margin-top: -1px; + margin-right: 2px; +} + +.btn.icn-only > .halflings-icon { + margin-right: 0px !important; +} + +/*** +Dropdowns +***/ +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + list-style: none; + text-shadow: none; + padding: 0px; + margin:0px; + -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); + font-size: 14px; + font-family: "Segoe UI",Helvetica, Arial, sans-serif; + border: 1px solid #ddd; +} + +.dropdown:hover .caret, +.open.dropdown .caret { + opacity: 1; + filter: alpha(opacity=100); +} + +.dropdown-menu.bottom-up { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} + +.dropdown-menu li > a { + padding: 6px 0 6px 13px; + color: #333; + text-decoration: none; + display: block; + clear: both; + font-weight: normal; + line-height: 18px; + white-space: nowrap; +} + +.dropdown-menu li > a:hover, +.dropdown-menu .active > a, +.dropdown-menu .active > a:hover { + text-decoration: none; + background-image: none; + background-color: #eee; + color: #333; + filter:none; +} + +.dropdown.open .dropdown-toggle { + color: #08c; + background: #ccc; + background: rgba(0, 0, 0, 0.3); +} + +/*** +Forms +***/ +label.m-wrap, +input.m-wrap, +button.m-wrap, +select.m-wrap, +textarea.m-wrap { + font-size: 14px; + font-weight: normal; + line-height: 20px; + +} + +input.m-wrap, +button.m-wrap, +select.m-wrap, +textarea.m-wrap { + font-family: "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +label.m-wrap { + display: block; + margin-bottom: 5px; +} + +.uneditable-input, +textarea.m-wrap, +input[type="text"].m-wrap, +input[type="password"].m-wrap, +input[type="datetime"].m-wrap, +input[type="datetime-local"].m-wrap, +input[type="date"].m-wrap, +input[type="month"].m-wrap, +input[type="time"].m-wrap, +input[type="week"].m-wrap, +input[type="number"].m-wrap, +input[type="email"].m-wrap, +input[type="url"].m-wrap, +input[type="search"].m-wrap, +input[type="tel"].m-wrap, +input[type="color"].m-wrap { + -webkit-appearance: none !important; + color: #333333; + outline: 0; + height: 20px; + padding: 6px 6px !important; + line-height: 20px; + font-size: 14px; + font-weight: normal; + vertical-align: top; + background-color: #ffffff; + background-image: none !important; + filter: none !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + background: transparent; +} + +input.m-wrap { + border: 1px solid #e5e5e5; +} + +textarea.m-wrap { + height: auto; +} + +.uneditable-input.focus, +textarea.m-wrap:focus, +select.m-wrap:focus, +input[type="text"].m-wrap:focus, +input[type="password"].m-wrap:focus, +input[type="datetime"].m-wrap:focus, +input[type="datetime-local"].m-wrap:focus, +input[type="date"].m-wrap:focus, +input[type="month"].m-wrap:focus, +input[type="time"].m-wrap:focus, +input[type="week"].m-wrap:focus, +input[type="number"].m-wrap:focus, +input[type="email"].m-wrap:focus, +input[type="url"].m-wrap:focus, +input[type="search"].m-wrap:focus, +input[type="tel"].m-wrap:focus, +input[type="color"].m-wrap:focus, +.m-uneditable-input:focus { + border-color: #999999; + outline: 0 !important; + /* IE6-9 */ + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +input[type="radio"].m-wrap, +input[type="checkbox"].m-wrap { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; + cursor: pointer; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +select.m-wrap, +input[type="file"].m-wrap { + height: 34px !important; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + line-height: 30px; +} + +select.m-wrap { + width: 220px; + background-color: #ffffff; + background-image: none !important; + filter: none !important; + border: 1px solid #e5e5e5; + outline: none; +} + +select[multiple].m-wrap, +select[size].m-wrap { + height: auto !important; +} + +select.m-wrap:focus, +input[type="file"].m-wrap:focus, +input[type="radio"].m-wrap:focus, +input[type="checkbox"].m-wrap:focus { + outline: thin dotted #333333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +input[class*="span"].m-wrap +{ + float: none; + height: 34px !important; + margin-left: 0; +} + +select[class*="span"].m-wrap, +textarea[class*="span"].m-wrap +{ + float: none; + margin-left: 0; +} + +.input-prepend, +.input-append { + border: 0; + display: inline-block; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 24px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 24px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #e5e5e5; + border: 1px solid #e5e5e5; +} + +.input-append .add-on > .halflings-icon, +.input-prepend .add-on > i, +.input-prepend .add-on > [class^="icon-"] +{ + margin-top: 5px; + margin-left: 3px; +} + +.input-append .add-on > .halflings-icon +.input-append .add-on > i, +.input-append .add-on > [class^="icon-"] +{ + margin-top: 5px; + margin-left: 0px; +} + +.input-append .m-wrap, +.input-append .m-wrap:focus { + border-right: 0 !important; + margin-right: 1px; +} + +.input-prepend input, +.input-prepend input:focus { + border-left: 0 !important; + margin-left: 1px; +} + +.input-append input[class*="span"], +.input-prepend input[class*="span"] +{ + display: inline-block !important; +} + +.m-wrap.xsmall { + width: 50px !important; +} + +.m-wrap.small { + width: 120px !important; +} + +.m-wrap.medium { + width: 206px !important; +} + +.m-wrap.large { + width: 320px !important; +} + +.m-wrap.huge { + width: 480px !important; + font-size: 24px !important; + height: 36px !important; + line-height: 36px !important; + padding: 22px 8px !important; +} + +select.m-wrap.xsmall { + width: 64px !important; +} + +select.m-wrap.small { + width: 134px !important; +} + +select.m-wrap.medium { + width: 220px !important; +} + +select.m-wrap.large { + width: 334px !important; +} + +@media (max-width: 480px) { + + .m-wrap.small { + width: 100px !important; + } + + .m-wrap.medium { + width: 150px !important; + } + + .m-wrap.large { + width: 200px !important; + } + + .m-wrap.huge { + width: 246px !important; + font-size: 24px !important; + height: 36px !important; + line-height: 36px !important; + padding: 22px 8px !important; + } + + select.m-wrap.small { + width: 114px !important; + } + + select.m-wrap.medium { + width: 164px !important; + } + + select.m-wrap.large { + width: 214px !important; + } + +} + +/*** +Custom label and badges +***/ +.label, +.badge { + font-weight: 300; +} + +.label-success, +.badge-success { + background-color: #3cc051; + background-image: none !important; + text-shadow: none !important; +} + +.label-warning, +.badge-warning { + background-color: #fcb322; + background-image: none !important; + text-shadow: none !important; +} + +.label-important, +.badge-important { + background-color: #ed4e2a; + background-image: none !important; + text-shadow: none !important; +} + +.label-info, +.badge-info { + background-color: #57b5e3; + background-image: none !important; + text-shadow: none !important; +} + +.label-mini { + font-size: 11px; + font-weight: 300; +} + +.label-default { + background-color: #999 !important; + text-shadow: none !important; +} + +/*** +Bootstrap modal +***/ +.modal-header h3{ + font-weight: 300; +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style.css" new file mode 100644 index 0000000..9a9bd88 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style.css" @@ -0,0 +1,4911 @@ +/* +Template Name: Metronic - Responsive Admin Dashboard Template build with Twitter Bootstrap v2.3.1 +Version: 1.1.2 +Author: KeenThemes +Website: http://www.keenthemes.com/preview/?theme=metronic +Purchase: http://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469 +*/ + +/********************* + GENERAL UI COLORS +*********************/ + +/*** +Colors +blue: #4b8df8 +light blue: #bfd5fa +red: #e02222 +yellow: #ffb848 +green: #35aa47 +purple: #852b99 +grey: #555555; +light grey: #fafafa; +***/ + +/********************* + GENERAL RESET & SETUP +*********************/ + +/*** +Import fonts +***/ +@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700); + +/*** +Reset and overrides +***/ +/* general body settings */ +body { + color: #000; + font-family: 'Open Sans'; + padding: 0px !important; + margin: 0px !important; + font-size:13px; +} + +/*** +General typography +***/ +h3 small, h4 small, h5 small { + color: #444; +} + +h1, h2, h3, h4, h5, h6 { + font-weight: 300; +} + +h1.block, h2.block, h3.block, h4.block, h5.block, h6.block { + padding-bottom: 10px; +} + +a { + text-shadow: none !important; + color: #0d638f; +} + +/*** +General backgrounds +***/ +.bg-blue { + background-image: none !important; + background-color: #4b8df8 !important; +} + +.bg-red { + background-image: none !important; + background-color: #e02222 !important; +} + +.bg-yellow { + background-image: none !important; + background-color: #ffb848 !important; +} + +.bg-green { + background-image: none !important; + background-color: #35aa47 !important; +} + +.bg-purple { + background-image: none !important; + background-color: #852b99 !important; +} + +.bg-grey { + background-image: none !important; + background-color: #555555 !important; +} + +/*** +Apply fix for font awesome icons. +***/ +[class^="icon-"], +[class*=" icon-"], +[class^="icon-"]:hover, +[class*=" icon-"]:hover { + background: none !important; +} + +/*** +Close icon used for modal dialog and other UI element close buttons +***/ +.close { + display: inline-block; + margin-top: 0px; + margin-right: 0px; + width: 9px; + height: 9px; + background-repeat: no-repeat !important; + background-image: url("../img/remove-icon-small.png") !important; +} + +/*** +ie8 & ie9 modes +***/ +.visible-ie8 { + display: none; +} + +.ie8 .visible-ie8 { + display: inherit !important; +} + +.visible-ie9 { + display: none; +} + +.ie9 .visible-ie9 { + display: inherit !important; +} + +.hidden-ie8 { + display: inherit; +} + +.ie8 .hidden-ie8 { + display: none !important; +} + +.hidden-ie9 { + display: inherit; +} + +.ie9 .hidden-ie9 { + display: none !important; +} + +/*** +Fix link outlines after click +***/ +a,a:focus, a:hover, a:active { + outline: 0; +} + +/*** +IE8 fix for form input height in fluid rows +***/ +.ie8 .row-fluid [class*="span"] { + min-height: 20px !important; +} + +/*** +Fix grid offset used for reponsive layout handling(refer app.js=>handleResponsive) +***/ +.fix-offset { + margin-left: 0px !important; +} + +/*** +Misc tools +***/ +.visible-ie8 { + display: none +} + +.no-padding { + padding: 0px !important; +} + +.no-margin { + margin: 0px !important; +} + +.no-bottom-space { + padding-bottom:0px !important; + margin-bottom: 0px !important; +} + +.no-top-space { + padding-top:0px !important; + margin-top: 0px !important; +} + +.space5 { + display: block; + height: 5px !important; + clear: both; +} + +.space7 { + height: 7px !important; + clear: both; +} + +.space10 { + height: 10px !important; + clear: both; +} + +.space12 { + height: 12px !important; + clear: both; +} + +.space15 { + height: 15px !important; + clear: both; +} + +.space20 { + height: 20px !important; + clear: both; +} + +.no-space { + margin: 0px !important; + padding: 0px !important; +} + +.no-text-shadow { + text-shadow: none !important; +} + +.no-left-padding { + padding-left: 0 !important; +} + +.no-left-margin { + margin-left: 0 !important; +} + +.margin-bottom-10 { + margin-bottom: 10px !important; +} + +.hide { + display: none; +} + +.bold { + font-weight:600 !important; +} + +.fix-margin { + margin-left: 0px !important +} + +.border { + border: 1px solid #ddd +} + +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #E0DFDF; + border-bottom: 1px solid #FEFEFE; +} + +/******************** + GENERAL LAYOUT +*********************/ + +/*** +Header and header elements. +***/ +.header { + padding: 0 !important; + margin: 0 !important; +} + +.header .brand { + margin-top: -1px; +} + +.header .btn-navbar { + margin-bottom: 0px; + padding-right: 0px; + padding-top:10px; + padding-bottom: 6px; + background-image: none; + filter:none; + box-shadow: none; + color: #fff; + border: 0; +} + +.header .btn-navbar:hover { + text-decoration: none; +} + +.header .navbar-inner { + width: 100%; + margin-left: 0 0 0 110px; + border: 0px; + padding: 0px; + box-shadow: none; + height: 42px; +} + +.header .nav { + display: block; +} + +.header .nav > li { + margin: 0px; + padding: 0px; +} + +.header .nav > li.dropdown, +.header .nav > li.dropdown > a { + padding-left: 4px; + padding-right: 4px; +} + +.header .nav > li.dropdown:last-child { + padding-right: 2px; +} + +.header .nav > li.dropdown .dropdown-toggle { + margin: 0px; + padding: 14px 12px 8px 12px; +} + +.header .nav > li.dropdown .dropdown-toggle i { + font-size: 18px; +} + +.header .nav > li.dropdown.user .dropdown-toggle { + padding: 6px 4px 7px 9px; +} + +.header .nav > li.dropdown.user .dropdown-toggle:hover { + text-decoration: none; +} + +.header .nav > li.dropdown.user .dropdown-toggle .username { + color: #ddd; +} + +.header .nav li.dropdown.user .dropdown-toggle i { + display: inline-block; + margin-top: 5px; + margin: 0; + font-size: 16px; +} + +.header .nav > li.dropdown .dropdown-toggle .badge { + position: absolute; + font-size: 11px !important; + font-weight: 300; + top: 8px; + right: 24px; + text-align: center; + height: 14px; + background-color: #e02222; + padding: 2px 6px 2px 6px; + -webkit-border-radius: 12px !important; + -moz-border-radius: 12px !important; + border-radius: 12px !important; + text-shadow:none !important; +} + +/* firefox hack for top bar badges */ +@-moz-document url-prefix() { + .header .nav li.dropdown .dropdown-toggle .badge { + padding: 1px 6px 3px 6px; + } +} + +.header .nav .dropdown-menu { + margin-top: 3px; +} + +/*** +Page container +***/ +.page-container { + margin: 0px; + padding: 0px; +} + +.fixed-top .page-container { + margin-top: 42px; +} + +/*** +Page sidebar +***/ +.page-sidebar > ul { + list-style: none; + margin: 0; + padding: 0; + margin: 0; + padding: 0; +} + +.page-sidebar > ul > li { + display: block; + margin: 0; + padding: 0; + border: 0px; +} + +.page-sidebar > ul > li.start > a { + border-top-color: transparent !important; +} + +.page-sidebar > ul > li:last-child > a { + border-bottom: 1px solid transparent !important; +} + +.page-sidebar > ul > li > a { + display: block; + position: relative; + margin: 0; + border: 0px; + padding: 10px 15px; + text-decoration: none; + font-size: 14px; + font-weight: 300; +} + +.page-sidebar > ul > li > a i { + font-size: 16px; + margin-right: 5px; + text-shadow:none; +} + +.page-sidebar > ul > li.active > a { + border: none; + text-shadow:none; +} + +.page-sidebar > ul > li.active > a .selected { + display: block; + width: 8px; + height: 25px; + background-image: url("../img/sidebar-menu-arrow.png"); + float: right; + position: absolute; + right:0px; + top:8px; +} + +.page-sidebar ul > li > a .arrow:before { + float: right; + margin-top: 1px; + margin-right: 5px; + display: inline; + font-size: 16px; + font-family: FontAwesome; + height: auto; + content: "\f104"; + font-weight: 300; + text-shadow:none; +} + +.page-sidebar > ul > li > a .arrow.open:before { + float: right; + margin-top: 1px; + margin-right: 5px; + display: inline; + font-family: FontAwesome; + height: auto; + font-size: 16px; + content: "\f107"; + font-weight: 300; + text-shadow:none; +} + +.page-sidebar > ul > li > ul.sub { + display: none; + list-style: none; + clear: both; + margin: 8px 0px 8px 0px; +} + +.page-sidebar > ul > li.active > ul.sub { + display: block; +} + +.page-sidebar > ul > li > ul.sub > li { + background: none; + margin: 0px; + padding: 0px; + margin-top: 1px !important; +} + +.page-sidebar > ul > li > ul.sub > li > a { + display: block; + margin: 0px 0px 0px 0px; + padding: 5px 0px; + padding-left: 44px !important; + color: #ccc; + text-decoration: none; + text-shadow: 0 1px 1px #000; + font-size: 14px; + font-weight: 300; + background: none; +} + +.page-sidebar > ul > li > ul.sub > li > a > i { + font-size: 13px; +} + +.page-sidebar .sidebar-search { + margin: 8px 20px 20px 20px; +} + +.page-sidebar .sidebar-search .submit { + display: block; + float: right; + margin-top: 8px; + width: 13px; + height: 13px; + background-image: url(../img/search-icon.png); + background-repeat: no-repeat; +} + +.page-sidebar .sidebar-search input { + margin: 0px; + width: 165px; + border: 0px; + padding-left: 0px; + padding-right: 0px; + padding-bottom: 0px; + font-size: 14px ; + box-shadow: none; +} + +.page-sidebar .sidebar-search .input-box { + padding-bottom: 2px; + border-bottom:1px solid #959595; +} + +/*** +Sidebar toggler(show/hide) +***/ + +.sidebar-toggler { + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); + margin-top: 15px; + margin-left: 175px; + width: 29px; + height: 29px; + background-repeat: no-repeat; +} + +.sidebar-toggler:hover { + filter: alpha(opacity=100); + opacity: 1; +} + +.sidebar-closed .sidebar-toggler { + margin-left: 3px; +} + +.sidebar-closed .page-sidebar .sidebar-search { + height: 34px; + width: 29px; + margin-left: 3px; + margin-bottom: 0px; +} + +.sidebar-closed .page-sidebar .sidebar-search input { + display: none; +} + +.sidebar-closed .page-sidebar .sidebar-search .submit { + margin: 11px 7px !important; + display: block !important; +} + +.sidebar-closed .page-sidebar .sidebar-search .input-box { + border-bottom: 0; +} + +.sidebar-closed .page-sidebar .sidebar-search.open { + height: 34px; + width: 255px; + overflow: hidden; +} + +.sidebar-closed .page-sidebar .sidebar-search.open input { + margin-top: 3px; + padding-left: 10px; + padding-bottom: 2px; + width: 180px; + display: inline-block !important; +} + +.sidebar-closed .page-sidebar .sidebar-search.open .submit { + display: inline-block; + width: 13px; + height: 13px; + margin: 10px 8px 9px 6px !important; +} + +.sidebar-closed .page-sidebar .sidebar-search.open .remove { + background-repeat: no-repeat; + width: 11px; + height: 11px; + margin: 11px 6px 7px 8px !important; + display: inline-block !important; + float: left !important; +} + +.sidebar-closed ul > li > a .selected { + right: -3px !important; +} + +.sidebar-closed ul > li > a .title, +.sidebar-closed ul > li > a .arrow { + display: none !important; +} + +.sidebar-closed .sidebar-toggler { + margin-right: 3px; +} + +.sidebar-closed .page-sidebar .sidebar-search { + margin-top: 6px; + margin-bottom: 6px; +} + +.sidebar-closed > .page-sidebar > ul { + width: 35px !important; +} + +.sidebar-closed .page-sidebar > ul > li > a { + padding-left: 7px; +} + +.sidebar-closed .page-sidebar > ul > li:hover { + width: 225px; + position: relative; + z-index: 2000; + display: block !important; +} + +.sidebar-closed .page-sidebar > ul > li:hover .selected { + display: none; +} + +.sidebar-closed .page-sidebar > ul > li:hover > a > i { + margin-right: 10px; +} + +.sidebar-closed .page-sidebar > ul > li:hover .title { + display: inline !important; +} + +.sidebar-closed .page-sidebar > ul > li.has-sub .sub { + display: none !important; +} + +.sidebar-closed .page-sidebar > ul > li.has-sub:hover .sub { + width: 189px; + position: absolute; + z-index: 2000; + left: 36px; + margin-top: 0; + display: block !important; +} + +.sidebar-closed .page-sidebar > ul > li.has-sub:hover .sub > li > a { + padding-left: 15px !important; +} + +.sidebar-closed .page-sidebar { + width: 35px; +} + +.sidebar-closed .page-content { + margin-left: 35px !important; +} + +/* ie8 fixes */ +.ie8 .page-sidebar { + position: absolute; + width: 225px; +} + +.ie8 .page-sidebar ul{ + width: 225px; +} + +/*** +Page content +***/ +.page-content { + margin-top: 0px; + padding: 0px; + background-color: #fff; +} + +.ie8 .page-content { + margin-left: 225px; + margin-top: 0px; +} + +/*** +Page title +***/ +.page-title { + padding: 0px; + font-size: 30px; + letter-spacing: -1px; + display: block; + color: #666; + margin: 20px 0px 15px 0px; + font-weight: 300; + font-family: 'Open Sans'; +} + +.page-title small { + font-size: 14px; + letter-spacing: 0px; + font-weight: 300; + color: #888; +} + +/*** +Page breadcrumb +***/ +.page-content .breadcrumb { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + box-shadow: none; + padding-right: 0px; + padding-left: 8px; + margin-bottom: 25px; + border:0px !important; + background-color: #eee; +} + +.page-content .breadcrumb a, +.page-content .breadcrumb i, +.page-content .breadcrumb span { + color: #333; + font-size: 14px; + text-shadow:none; +} + +.page-content .breadcrumb i { + color: #666; +} + +/*** +Dashboard date range panel +***/ +.page-content .breadcrumb .dashboard-date-range { + display: none; + padding-top: -1px; + margin-right: 0px; + margin-top: -8px; + padding: 8px; + padding-bottom: 7px; + cursor: pointer; + min-width: 275x; + color: #fff; + background-color: #e02222; +} + +.page-content .breadcrumb .dashboard-date-range span { + font-size: 12px; + font-weight: 300; + color: #fff; + text-transform: uppercase; +} + +.page-content .breadcrumb .dashboard-date-range .icon-calendar { + text-transform: normal; + color: #fff; + margin-top: 0px; + font-size: 14px; +} +.page-content .breadcrumb .dashboard-date-range span { + font-weight: normal; +} +.page-content .breadcrumb .dashboard-date-range .icon-angle-down { + color:#fff; + font-size: 16px; +} + +/*** +Footer +***/ +.footer { + padding: 8px 20px 5px 20px; + font-size: 12px; + color: #999; +} + +.footer .go-top { + display: block; + text-decoration: none; + color: #fff; + cursor: pointer; + margin-top: -2px; + margin-right: 0px; + margin-bottom: 0px; + font-size: 16px; + background-color: #111; + padding: 0px 6px 0px 6px; +} + +.footer .go-top i { + color: #666; + font-size: 22px; + margin-bottom: 5px; +} + +/******************** + GENERAL UI ELEMENTS +*********************/ + +/*** +Icon stuff +***/ +i.icon, a.icon { + color: #999; + margin-right: 5px; + font-weight: normal; + font-size: 13px; +} + +i.icon-black { + color: #000 !important; +} + +a.icon:hover { + text-decoration: none; + -webkit-transition: all 0.1s ease-in-out; + -moz-transition: all 0.1s ease-in-out; + -o-transition: all 0.1s ease-in-out; + -ms-transition: all 0.1s ease-in-out; + transition: all 0.1s ease-in-out; + opacity: .4; + filter:alpha(opacity=40); +} + +a.icon.huge i{ + font-size: 16px !important; +} + +i.big { + font-size: 20px; +} + +i.warning { + color: #d12610; +} + +i.critical { + color: #37b7f3; +} + +i.normal { + color: #52e136; +} + +/*** +Custom wells +***/ +.well { + background-color: #fafafa; + border: 1px solid #eee; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +.well.mini { + padding: 7px !important; +} + +/*** +Form stuff +***/ +h3.form-section { + font-size: 22px; + font-weight: 300; + border-bottom:1px solid #eee; + margin: 15px 0 15px 0; +} + +.form form { + margin: 0px !important; + padding: 0px !important; +} + +.no-bottom-space { + padding-bottom: 0px !important; + margin-bottom: 0px !important; +} + +.form .form-actions{ + margin-top: 0px !important; + margin-top: 40px; + padding-left: 190px; +} + +.portlet.box .form .form-actions, +.portlet.solid .form .form-actions { + margin-left:-10px !important; + margin-right:-10px !important; + margin-bottom: -10px !important; +} + +/*** +Bordered form layout +***/ + +/*** +Input icons +***/ +/* input with right aligned and colored icons */ +.input-icon input { + padding-right: 25px !important; +} + +.input-icon .input-info, +.input-icon .input-error, +.input-icon .input-warning, +.input-icon .input-success { + display: inline-block !important; + position: relative !important; + top: 7px; + right: 25px !important; + font-size: 16px; +} + +.input-icon .input-info { + color:#27a9e3; +} +.input-icon .input-error { + color:#B94A48; +} +.input-icon .input-warning { + color: #C09853; +} +.input-icon .input-success { + color: #468847; +} + +/* input with left aligned icons */ +.input-icon.left i { + color: #ccc; + display: block !important; + position: absolute !important; + z-index: 1; + margin: 9px 2px 4px 10px; + width: 16px; + height: 16px; + border1: 1px solid #ddd; + font-size: 16px; + text-align: center; +} + +.input-icon.left input { + padding-left: 33px !important; +} + +/*** +Portlets +***/ +.portlet { + clear: both; + margin-top: 0px; + margin-bottom: 25px; + padding: 0px; +} + +.portlet:after, .portlet:before { + display: table; + color: ""; +} + +.portlet-title { + margin-bottom: 15px; + border-bottom: 1px solid #eee; +} + +.portlet-title h4 { + display: inline-block; + font-size: 18px; + font-weight: 400; + margin: 0; + padding: 0; + margin-bottom: 7px; +} + +.portlet-title h4 i { + font-size: 13px; + margin-right: 5px; + color: #666; +} + +.portlet.blue .portlet-title h4, .portlet-title.blue h4, +.portlet.green .portlet-title h4, .portlet-title.green h4, +.portlet.yellow .portlet-title h4, .portlet-title.yellow h4, +.portlet.red .portlet-title h4, .portlet-title.red h4, +.portlet.purple .portlet-title h4, .portlet-title.purple h4, +.portlet.dark-grey .portlet-title h4, .portlet-title.dark-grey h4, { + color: #fff; +} + +.portlet.box.blue .portlet-title h4 > i, +.portlet.box.green .portlet-title h4 > i, +.portlet.box.grey .portlet-title h4 > i, +.portlet.box.yellow .portlet-title h4 > i, +.portlet.box.red .portlet-title h4 > i, +.portlet.box.purple .portlet-title h4 > i, +.portlet.box.light-grey .portlet-title h4 > i{ + color: #fff; +} + +.sortable .portlet .portlet-title { + cursor: move; +} + +.portlet-title .tools, +.portlet-title .actions + { + display: inline-block; + padding: 0; + margin: 0; + margin-top: 6px; + float: right; +} + +.portlet-title .tools > a { + display: inline-block; + height: 16px; + margin-left:5px; +} + +.portlet-title .dropdown-menu i { + color: #000 !important; +} + +.portlet-title .tools > a.remove { + background-image:url(../img/portlet-remove-icon.png); + background-repeat: no-repeat; + width: 11px; +} + +.portlet-title .tools > a.config { + background-image:url(../img/portlet-config-icon.png); + background-repeat: no-repeat; + width: 12px; +} + +.portlet-title .tools > a.reload { + background-image:url(../img/portlet-reload-icon.png); + width: 13px; +} + +.portlet-title .tools > a.expand { + background-image:url(../img/portlet-expand-icon.png); + width: 14px; +} + +.portlet-title .tools > a.collapse { + background-image:url(../img/portlet-collapse-icon.png); + width: 14px; +} + +.portlet-title .tools > a:hover { + text-decoration: none; + -webkit-transition: all 0.1s ease-in-out; + -moz-transition: all 0.1s ease-in-out; + -o-transition: all 0.1s ease-in-out; + -ms-transition: all 0.1s ease-in-out; + transition: all 0.1s ease-in-out; + opacity:.6; + filter:'alpha(opacity=60)'; +} + +.portlet-title .actions > .btn-group { + margin-top: -12px; +} + +.portlet-title .actions > .btn { + padding: 4px 10px; + margin-top: -13px; +} + +.portlet-title .actions > .btn-group > .btn { + padding: 4px 10px; + margin-top: -1px; +} + +.portlet-title .actions > .btn-group > .btn.mini { + margin-top: 0px; +} + +.portlet-title .actions > .btn.mini { + margin-top: -12px; + padding: 4px 10px; +} + +.portlet-title .pagination.pagination-small { + float: right !important; + display: inline-block !important; + margin: 0px; + margin-top: -2px; +} + +.portlet-body { + clear: both; + padding: 0; +} + +.portlet-body.light-blue, +.portlet.light-blue { + background-color: #bfd5fa !important; +} + +.portlet-body.blue, .portlet.blue { + background-color: #4b8df8 !important; +} + +.portlet-body.red, .portlet.red { + background-color: #e02222 !important; +} + +.portlet-body.yellow, .portlet.yellow { + background-color: #ffb848 !important; +} + +.portlet-body.green, .portlet.green { + background-color: #35aa47 !important; +} + +.portlet-body.purple, .portlet.purple { + background-color: #852b99 !important; +} + +.portlet-body.light-grey, .portlet.light-grey { + background-color: #fafafa !important; +} + +.portlet-body.dark-grey, .portlet.dark-grey { + background-color: #555555 !important; +} + +.portlet-body .btn-toolbar { + margin: 0px !important; + padding: 0px !important; +} + +.portlet-body .btn-group { + margin: 0px !important; + padding: 0px !important; + margin-bottom: 10px !important; +} + +/* draggable girds */ + + .ui-sortable-placeholder { + border: 1px dotted black; + visibility: visible !important; + height: 100% !important; +} + +.ui-sortable-placeholder * { + visibility: hidden; +} + +.sortable-box-placeholder { + background-color: #f5f5f5; + border: 1px dashed #DDDDDD; + display: block; + /* float: left;*/ + margin-top: 0px !important; + margin-bottom: 24px !important; +} + +.sortable-box-placeholder * { + visibility:hidden; +} + +/*** +Solid colored portlet +***/ +.portlet.solid { + padding: 10px; +} + +.portlet.solid .portlet-title .tools { + margin-top: 2px; + border: 0px; +} + +.portlet.solid .portlet-title { + margin-bottom: 5px; + border: 0px; +} + +.portlet.solid.bordered .portlet-title { + margin-bottom: 15px; +} + +.portlet.solid.red .portlet-title, +.portlet.solid.red .portlet-title i, +.portlet.solid.red .portlet-body, + +.portlet.solid.green .portlet-title, +.portlet.solid.green .portlet-title i, +.portlet.solid.green .portlet-body, + +.portlet.solid.yellow .portlet-title, +.portlet.solid.yellow .portlet-title i, +.portlet.solid.yellow .portlet-body, + +.portlet.solid.grey .portlet-title, +.portlet.solid.grey .portlet-title i, +.portlet.solid.grey .portlet-body, + +.portlet.solid.purple .portlet-title, +.portlet.solid.purple .portlet-title i, +.portlet.solid.purple .portlet-body, + +.portlet.solid.blue .portlet-title, +.portlet.solid.blue .portlet-title i, +.portlet.solid.blue .portlet-body { + border: 0; + color: #fff; +} + +.portlet.bordered { + border-left: 2px solid #ddd; +} + +/*** +Box portlet +***/ + + +.portlet.box { + padding:0px !important +} + +.portlet.box .portlet-title { + padding:8px 10px 2px 10px; + border-bottom: 1px solid #eee; + color: #fff !important; +} + +.portlet.box .portlet-title > .actions > .btn > i { + color: #fff !important; +} + +.portlet.box .portlet-title .tools { + margin-top: 3px; +} + +.portlet.box .portlet-title .tools > a.remove, +.portlet.solid .portlet-title .tools > a.remove { + background-image:url(../img/portlet-remove-icon-white.png); +} + +.portlet.box .portlet-title .tools > a.config, +.portlet.solid .portlet-title .tools > a.config { + background-image:url(../img/portlet-config-icon-white.png); +} + +.portlet.box .portlet-title .tools > a.reload, +.portlet.solid .portlet-title .tools > a.reload { + background-image:url(../img/portlet-reload-icon-white.png); +} + +.portlet.box .portlet-title .tools > a.expand, +.portlet.solid .portlet-title .tools > a.expand { + background-image:url(../img/portlet-expand-icon-white.png); +} + +.portlet.box .portlet-title .tools > a.collapse, +.portlet.solid .portlet-title .tools > a.collapse { + background-image:url(../img/portlet-collapse-icon-white.png); +} + +/* portlet buttons */ +.portlet.box .portlet-body { + background-color: #fff; + padding: 10px; +} + +.portlet.box .portlet-title { + margin-bottom: 0px; +} + +.portlet.box.blue .portlet-title { + background-color: #4b8df8; +} + +.portlet.box.blue { + border: 1px solid #b4cef8; + border-top: 0; +} + +.portlet.box.red .portlet-title { + background-color: #e02222; +} + +.portlet.box.red { + border: 1px solid #ef8476; + border-top: 0; +} + +.portlet.box.yellow .portlet-title { + background-color: #ffb848; +} + +.portlet.box.yellow { + border: 1px solid #fccb7e; + border-top: 0; +} + +.portlet.box.green .portlet-title { + background-color: #35aa47; +} + +.portlet.box.green { + border: 1px solid #77e588; + border-top: 0; +} + +.portlet.box.purple .portlet-title { + background-color: #852b99; +} + +.portlet.box.purple { + border: 1px solid #af5cc1; + border-top: 0; +} + +.portlet.box.grey .portlet-title { + background-color: #555555; +} + +.portlet.box.grey { + border: 1px solid #9d9c9c; + border-top: 0; +} + +.portlet.box.light-grey .portlet-title { + background-color: #aaa; +} + +.portlet.box.light-grey { + border: 1px solid #eee; + border-top: 0; +} + +/*** +Charts and statistics +***/ +.chart, .pie, .bars { + overflow: hidden; + height: 300px; +} + +/*** +Statistic lists +***/ +.item-list.table .percent { + width: 30px; + float: right; + margin-right: 10px; + margin-top: 3px; +} + +.item-list.table .title { + padding-top: -5px; +} + +/*** +Chart tooltips +***/ +.chart-tooltip { + clear: both; + z-index: 100; + background-color: #736e6e !important; + padding: 5px !important; + color: #fff; +} + +.chart-tooltip .label { + clear: both; +} + +/*** +Mini chart containers +***/ +.bar-chart { + display: none +} + +.line-chart { + display: none +} + +/*** +Custom icon buttons +***/ +.icon-btn { + height: 70px; + width: 50px; + margin: 10px 0px 10px 0px; + border: 1px solid #ddd; + padding: 16px 0px 0px 0px; + background-color: #fafafa !important; + background-image: none !important; + filter:none !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + display:block !important; + color: #646464 !important; + text-shadow: none !important; + text-align: center; + cursor: pointer; + position: relative; + -webkit-transition: all 0.3s ease !important; + -moz-transition: all 0.3s ease !important; + -ms-transition: all 0.3s ease !important; + -o-transition: all 0.3s ease !important; + transition: all 0.3s ease !important; +} + +.ie8 .icon-btn:hover { + filter: none !important; +} + +.icon-btn:hover { + text-decoration: none !important; + border-color: #999 !important; + color: #444 !important; + text-shadow: 0 1px 0px rgba(255, 255, 255, 1) !important; + -webkit-transition: all 0.3s ease !important; + -moz-transition: all 0.3s ease !important; + -ms-transition: all 0.3s ease !important; + -o-transition: all 0.3s ease !important; + transition: all 0.3s ease !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +.icon-btn:hover .badge { + -webkit-transition: all 0.3s ease !important; + -moz-transition: all 0.3s ease !important; + -ms-transition: all 0.3s ease !important; + -o-transition: all 0.3s ease !important; + transition: all 0.3s ease !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +.icon-btn i { + font-size: 20px !important; + color: #777 !important; +} + +.icon-btn .glyphicons { + padding: 0px; +} + +.icon-btn .glyphicons i:before { + font-size: 20px !important; + color: #777 !important; +} + +.icon-btn div { + font-family: 'Open Sans'; + margin-top: 5px; + margin-bottom: 20px; + color: #000; + font-size: 11px; + font-weight: 300; +} + +.icon-btn .badge { + position: absolute; + font-family: 'Open Sans'; + font-size: 11px !important; + font-weight: 300; + top: -5px; + right: -5px; + padding: 3px 7px 3px 7px; + color: white !important; + text-shadow: none; + border-width: 0; + border-style: solid; + -webkit-border-radius: 12px !important; + -moz-border-radius: 12px !important; + border-radius: 12px !important; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +/* for firefox only */ +@-moz-document url-prefix() { + .icon-btn .badge { + padding: 2px 7px 4px 7px; + } +} + +/* extended dropdowns */ +.dropdown-menu.extended { + min-width: 160px !important; + max-width: 300px !important; + width: 233px !important; + background-color: #ffffff !important; +} + +.dropdown-menu.extended:before, +.dropdown-menu.extended:after { + border-bottom-color: #ddd !important; +} + + +.dropdown-menu.extended li a{ + display: block; + padding: 5px 10px !important; + clear: both; + font-weight: normal; + line-height: 20px; + white-space: normal !important; +} + +.dropdown-menu.extended li i{ + margin-right: 3px; +} + +.dropdown-menu.extended li a{ + font-size: 13px; + padding: 10px !important; + background-color: #ffffff; +} + +.dropdown-menu.extended li a:hover { + background-image: none; + background-color: #f5f5f5; + color: #000; + filter:none; +} + +.dropdown-menu.extended li p{ + padding: 10px; + background-color: #eee; + margin: 0px; + font-size: 14px; + font-weight: 300; + color: #000; +} + +.dropdown-menu.extended li a{ + padding: 7px 0 5px 0px; + list-style: none; + border-bottom: 1px solid #f4f4f4 !important; + font-size: 12px; + text-shadow: none; +} + +.dropdown-menu.extended li:first-child a { + border-top: none; + border-bottom: 1px solid #f4f4f4 !important; +} + +.dropdown-menu.extended li:last-child a { + border-top: 1px solid white !important; + border-bottom: 1px solid #f4f4f4 !important; +} + +.dropdown-menu.extended li.external > a { + font-size: 13px; + font-weight: 400; +} + +.dropdown-menu.extended li.external > a > i{ + margin-top: 3px; + float: right; +} + +/* header notifications dropdowns */ + +.dropdown-menu.notification li > a > .label { + width: 10px; + padding: 2px 4px; + margin-right: 2px; + text-align: center !important; +} + +.dropdown-menu.notification li > a > .label i { + text-align: center !important; +} + +.dropdown-menu.notification li a .time { + font-size: 12px; + font-style: italic; + font-weight: 600; + text-align: right; +} + +/* header inbox dropdowns */ +.dropdown-menu.inbox li a .photo img { + float: left; + height: 40px; + width: 40px; + margin-right: 6px; +} + +.dropdown-menu.inbox li a .subject { + display: block; +} + +.dropdown-menu.inbox li a .subject .from { + font-size: 14px; + font-weight: 400; + color: #02689b; +} + +.dropdown-menu.inbox li a .subject .time { + font-size: 12px; + font-weight: 600; + font-style: italic; + position: absolute; + right: 10px; +} + +.dropdown-menu.inbox li a .message { + display: block !important; + font-size: 12px; +} + +/* header tasks */ +.dropdown-menu.tasks .task { + margin-bottom: 5px; +} + +.dropdown-menu.tasks .task .desc { + font-size: 13px; + font-weight: 300; +} + +.dropdown-menu.tasks .task .percent { + font-size: 13px; + font-weight: 600; + float: right; + display: inline-block; +} + +.dropdown-menu.tasks .progress { + display: block; + height: 10px; + margin: 0px; +} + +/*** +General list for item with image +***/ +.item-list li .img { + height: 50px; + width: 50px; + float: left; + margin-top: 3px; + margin-right: 5px; +} + +.item-list { + margin: 0px; + list-style: none; +} + +.item-list li { + padding: 7px 0 5px 0px; + list-style: none; + border-top: 1px solid white; + border-bottom: 1px solid #EBEBEB; + font-size: 12px; +} + +.item-list li:first-child { + border-top: none; + border-bottom: 1px solid #EBEBEB; +} + +.item-list li:last-child { + border-top: none; + border-bottom: none; +} + +.item-list li .label { + margin-right: 5px; +} + +.item-list.todo li .label { + position: absolute; + right: 80px; +} + +.item-list.todo li .actions { + position: absolute; + right: 45px; +} + +/*** +Custom tables +***/ +.table .m-btn { + margin-top: 0px; + margin-left: 0px; + margin-right: 5px; +} + +.table thead tr th { + font-size: 14px; + font-weight: 600; +} + +.table-advance { + margin-bottom: 10px !important; +} + +.table-advance thead { + color: #999; +} + +.table-advance thead tr th{ + background-color: #DDD; + font-size: 14px; + font-weight: 400; + color: #666; +} + +.table-advance div.success, +.table-advance div.info, +.table-advance div.important, +.table-advance div.warning, +.table-advance div.danger { + position: absolute; + margin-top:-5px; + float: left; + width: 2px; + height: 30px; + margin-right: 20px !important; +} + +.table-advance tr td { + border-left-width: 0px; +} +.table-advance tr td:first-child { + border-left-width: 1px !important; +} + +.table-advance tr td.highlight:first-child a { + margin-left: 15px; +} + +.table-advance td.highlight div.success { + border-left: 2px solid #66ee66; +} + +.table-advance td.highlight div.info { + border-left: 2px solid #87ceeb; +} + +.table-advance td.highlight div.important { + border-left: 2px solid #f02c71; +} + +.table-advance td.highlight div.warning { + border-left: 2px solid #fdbb39; +} + +.table-advance td.highlight div.danger { + border-left: 2px solid #e23e29; +} + + +/*** +Star rating +***/ +.rating { + unicode-bidi: bidi-override; + direction: rtl; + font-size: 30px; +} + +.rating span.star { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + display: inline-block; +} + +.rating span.star:hover { + cursor: pointer; +} + +.rating span.star:before { + content: "\f006"; + padding-right: 5px; + color: #999999; +} + +.rating span.star:hover:before, +.rating span.star:hover ~ span.star:before { + content: "\f005"; + color: #e3cf7a; +} + +/*** +Rows seperated form layout +***/ +.form-row-seperated .control-group { + border-bottom: 1px solid #efefef; + padding-bottom: 10px; + padding-right: 10px; + margin-left: -10px; + margin-right: -10px; +} + +.form-row-seperated .control-group.last { + border-bottom: 0; +} + +.form-row-seperated .control-label { + width: 170px; +} + +.form-row-seperated .controls { + margin-left: 190px; +} + +.form-row-seperated .help-inline, +.form-row-seperated .help-block { + padding-left: 0; +} + +/*** +Bordered form layout +***/ +.form-horizontal.form-bordered .control-group:first-child { + border-bottom: 1px solid #eee !important; +} + +.form-horizontal.form-bordered .control-group { + margin: 0; + padding: 0; + border-bottom: 1px solid #eee; +} + +.form-horizontal.form-bordered .control-group.last { + border-bottom: 0; +} + +.portlet.box .form-horizontal.form-bordered .control-group { + margin-left: -10px; + margin-right: -10px; +} + +.portlet.box .form-horizontal.form-bordered .control-group:first-child { + margin-top: -10px; +} + +.form-horizontal.form-bordered .control-group .controls { + padding: 10px; + position: relative; + border-left: 1px solid #eee; +} + +.form-horizontal.form-bordered .control-group .controls .chosen-container { + min-height: 32px; +} + +.form-horizontal.form-bordered .control-group .controls .chosen-container .help-block { + clear: both; + padding-top: 10px !important; +} + +.form-horizontal.form-bordered .control-group .control-label { + margin-top: 10px; +} + +.form-horizontal.form-bordered.form-row-stripped .control-group:nth-child(even) { + background-color: #fcfcfc; +} + +.form-horizontal.form-bordered.form-label-stripped .control-group:nth-child(even) { + background-color: #fcfcfc; +} + +.form-horizontal.form-bordered.form-row-stripped .m-wrap { + background: #fff !important; +} + +.form-horizontal.form-bordered.form-label-stripped .control-group:nth-child(even) .controls { + background-color: #ffffff; +} + +.form-horizontal.form-bordered .help-inline, +.form-horizontal.form-bordered .help-block { + padding-left: 0; +} + +/*** +Uniform plugin css changes +***/ + +.radio, .checkbox { + padding-left: 0px !important; +} + +.checkbox .checker { + margin-top: -2px !important; + margin-right: 2px !important; +} + +.controls .text { + display: block; + margin-top: 7px; + font-weight: 400; + font-size: 14px; +} + +/*** +General forms settings +***/ +input.placeholder, +textarea.placeholder { + color: #aaa !important; +} + +.help-block { + margin-top: 10px; +} + +.form-inline input { + margin-bottom: 0px !important; +} + +.control-label { + margin-top: 2px; +} + +.control-label .required { + color: #e02222; + font-size: 12px; + padding-left: 2px; +} + +.help-inline { + margin-top: 6px; +} + +.help-small { + font-size: 12px; + padding-top: 0; + margin-top: 0; + margin-bottom: 0; + padding-bottom: 0; +} + +.success .help-inline.ok:before { + content: "\f00c"; + font-size: 16px; + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + display: inline-block; +} + + +form legend1, +.form-view legend1 { + display: block; + margin-bottom: 15px; +} + +.controls > .radio .checker, +.controls > .checkbox .checker { + margin-right: 2px !important; +} + +.controls > .radio, +.controls > .checkbox { + display: inline-block; + padding: 0 !important; + margin: 0 !important; + margin-top: 8px !important; + margin-right: 15px !important; +} + +.controls > .radio.line, +.controls > .checkbox.line { + display: block; + padding: 0 !important; + margin: 0 !important; + margin-top: 5px !important; +} + +.controls .inline { + margin-top: 8px; +} + +.form-view .control-group { + margin-top: 0px; + margin-bottom: 5px; +} + +.uploader { + margin-top: 2px !important; +} + +/*** +Item block with details shown on hover +***/ +.item { + overflow: hidden; + display: block; + margin-bottom: 20px; +} + +.item .details { + width: 100%; + display: none; + background-color: #000; + color: #fff !important; + padding: 5px; + text-align: center; + position: relative; + bottom:30px; + margin-bottom:-30px; + overflow: hidden; + z-index: 6; +} + +.item:hover .details { + display: block; + opacity: 0.7; + filter: alpha(opacity = 70); +} + +.item:hover .zoom-icon{ + opacity:0.5; + filter: alpha(opacity = 50); +} + +/*** +Zoom icon overlay on images +***/ +.zoom { + cursor: pointer; + width: 100%; + height: 100%; + position: relative; + z-index: 5; +} + +.zoom .zoom-icon { + background-image:url("../img/overlay-icon.png"); + background-color: #222; + background-repeat: no-repeat; + background-position: 50%; + position: absolute; + width: inherit; + height: inherit; + opacity: 0; + filter: alpha(opacity = 0); + z-index: 6; + top:0; +} + +/*** +Chats +***/ +.chats { + margin:0; + padding: 0; + margin-top: -15px; +} + +.chats li { + list-style: none; + padding: 5px 0; + margin: 10px auto; + font-size: 12px; +} + +.chats li img.avatar { + height: 45px; + width: 45px; + -webkit-border-radius: 50% !important; + -moz-border-radius: 50% !important; + border-radius: 50% !important; +} + +.chats li.in img.avatar { + float: left; + margin-right: 10px; +} + +.chats li .name { + color:#3590c1; + font-size: 13px; + font-weight: 400; +} + +.chats li .datetime { + color:#333; + font-size: 13px; + font-weight: 400; +} + +.chats li.out img.avatar { + float: right; + margin-left: 10px; +} + +.chats li .message { + display: block; + padding: 5px; + position: relative; +} + +.chats li.in .message { + text-align: left; + border-left: 2px solid #35aa47; + margin-left: 65px; + background: #fafafa +} + +.chats li.in .message .arrow { + display: block; + position: absolute; + top: 5px; + left: -8px; + width: 0; + height: 0; + + border-top: 8px solid transparent; + border-bottom: 8px solid transparent; + border-right: 8px solid #35aa47; +} + +.chats li.out .message .arrow { + display: block; + position: absolute; + top: 5px; + right: -8px; + border-top: 8px solid transparent; + border-bottom: 8px solid transparent; + border-left: 8px solid #da4a38; +} + +.chats li.out .message { + border-right: 2px solid #da4a38; + margin-right: 65px; + background: #fafafa; + text-align: right; +} + +.chats li.out .name, +.chats li.out .datetime { + text-align: right; +} + +.chats li .message .body { + display: block; +} + +.chat-form { + margin-top: 15px; + padding: 10px; + background-color: #e9eff3; + clear: both; +} + +.chat-form .input-cont { + margin-right: 55px; +} + +.chat-form .input-cont .m-wrap { + margin-bottom: 0px; +} + +.chat-form .input-cont input{ + border: 1px solid #ddd; + width: 100%; + margin-top: 0; +} + +.chat-form .input-cont input { + background-color: #fff !important; +} + +.chat-form .input-cont input:focus{ + border: 1px solid #4b8df9 !important; +} + +.chat-form .btn-cont { + margin-top: -42px; + position: relative; + float: right; + width:44px; +} + +.chat-form .btn-cont .arrow { + position: absolute; + top: 17px; + right: 43px; + border-top: 8px solid transparent; + border-bottom: 8px solid transparent; + border-right: 8px solid #4d90fe; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.chat-form .btn-cont:hover .arrow { + border-right-color: #0362fd; +} + +.chat-form .btn-cont:hover .btn { + background-color: #0362fd; +} + +.chat-form .btn-cont .btn { + margin-top: 8px; +} + +/*** +System feeds +***/ +.feeds { + margin: 0px; + padding: 0px; + list-style: none; +} + +.feeds li { + background-color: #fafafa; + margin-bottom: 7px; +} + +.feeds li:before, +.feeds li:after { + display: table; + line-height: 0; + content: ""; +} + +.feeds li:after { + clear: both; +} + +.feeds .col1 { + float:left; + width:100%; + clear: both; +} + +.feeds .col2 { + float:left; + width:75px; + margin-left:-75px; +} + +.feeds .col1 .cont { + float:left; + margin-right:75px; + overflow:hidden; +} + +.feeds .col1 .cont .cont-col1 { + float:left; + margin-right:-100%; +} + +.feeds .col1 .cont .cont-col1 .label { + float: left; + width: 14px; + padding: 7px; +} + +.feeds .col1 .cont .cont-col2 { + float:left; + width:100%; +} + +.feeds .col1 .cont .cont-col2 .desc { + margin-left:35px; + padding-top: 4px; + padding-bottom: 4px; + overflow:hidden; +} + +.feeds .col2 .date { + padding: 4px 9px 4px 4px; + text-align: right; + font-style: italic; + color:#c1cbd0; +} + +/*** +Users +***/ +.user-info { + margin-bottom: 10px !important; +} + +.user-info img { + float: left; + margin-right: 5px; +} + +.user-info .details { + display: inline-block; +} + +.user-info .label { + font-weight: 300; + font-size: 11px; +} + +/*** +Accordions +***/ +.accordion-heading { + background:#eee; +} + +.accordion-heading a { + text-decoration:none; +} + +.accordion-heading a:hover { + text-decoration:none; +} + +/*** +Vertical inline menu +***/ +.ver-inline-menu { + margin: 0px; + list-style: none; +} + +.ver-inline-menu li { + position:relative; + margin-bottom:1px; +} + +.ver-inline-menu li i { + color:#b9cbd5; + font-size:15px; + padding:11px 9px; + margin:0 8px 0 0; + background:#e0eaf0 !important; +} + +.ver-inline-menu li a { + color:#557386; + display:block; + background:#f0f6fa; + border-left:solid 2px #c4d5df; +} + +.ver-inline-menu li:hover a, +.ver-inline-menu li:hover i { + background:#e0eaf0; + text-decoration:none; +} + +.ver-inline-menu li:hover i { + color:#fff; + background:#c4d5df !important; +} + +.ver-inline-menu li.active a, +.ver-inline-menu li.active i { + color:#fff; + background:#169ef4; + text-decoration:none; + border-left:solid 1px #0c91e5; +} + +.ver-inline-menu li.active i { + background:#0c91e5 !important; +} + +.ver-inline-menu li.active:after { + content: ''; + display: inline-block; + border-bottom: 6px solid transparent; + border-top: 6px solid transparent; + border-left: 6px solid #169ef4; + position: absolute; + top: 12px; + right: -5px; +} + +/*** +Custom tabs +***/ +.tab-content { + padding: 0px; + overflow: hidden; +} + +.tabbable-custom { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + margin-bottom: 15px; +} + +.widget .row-fluid:last-child .tabbable-custom { + margin-bottom: 0px; +} + +.tabbable-custom > .nav-tabs { + border: none; + margin: 0px; +} + +.tabbable-custom > .tab-content { + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + padding: 10px; +} + +.tabbable-custom.boxless > .tab-content { + padding:15px 0; + border-left:none; + border-right:none; + border-bottom:none; +} + +.tabbable-custom .nav-tabs > li { + margin-right: 2px; + border-top: 2px solid transparent; +} + +.tabbable-custom .nav-tabs > li > a { + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + margin-right: 0; + padding: 5px 10px; + } + +.tabbable-custom .nav-tabs > li > a:hover { + background: none; + border-color:transparent; +} + +.tabbable-custom .nav-tabs > li.active { + border-top: 3px solid #d12610; + margin-top: 0; + position: relative; +} + +.tabbable-custom .nav-tabs > li.active > a { + border-top: none; + font-weight: 400; +} + +.tabbable-custom .nav-tabs > li.active > a:hover { + background: #fff; + border-color: #d4d4d4 #d4d4d4 transparent; +} + +.tabbable-custom .nav-tabs > li { + margin-right: 2px; + border-top: 2px solid transparent; +} + +.tabs-below.tabbable-custom .nav-tabs > li { + border-top: none; + border-bottom: 2px solid transparent; + margin-top: -1px; +} + +.tabs-below.tabbable-custom .nav-tabs > li.active { + border-top: none; + border-bottom: 3px solid #d12610; + margin-bottom: 0; position: relative; +} + +.tabs-below.tabbable-custom .nav-tabs > li.active > a { + border-bottom: none +} + +.tabs-below.tabbable-custom .nav-tabs > li.active > a:hover { + background: #fff; + border-color: #d4d4d4 #d4d4d4 transparent; +} + +.tabs-left.tabbable-custom .nav-tabs > li { + margin-right: 0; border-left: 2px solid transparent; margin-top: none; +} + +.tabs-left.tabbable-custom .nav-tabs > li.active { + border-top: none; + border-left: 3px solid #d12610; + margin-top: 0; margin-right: -1px; position: relative; +} + +.tabs-left.tabbable-custom .nav-tabs > li.active > a { + border-top: 1px solid #d4d4d4; + border-left: 1px solid transparent; +} + +.tabs-left.tabbable-custom .nav-tabs > li.active > a:hover { + background: #fff; + border-color: #d4d4d4 transparent #d4d4d4 transparent; +} + +.tabs-right.tabbable-custom .nav-tabs > li { + margin-right: 0; + border-right: 2px solid transparent; + border-top: none; } + +.tabs-right.tabbable-custom .nav-tabs > li.active { + border-top: none; + border-right: 3px solid #d12610; + margin-top: 0; + margin-left: -1px; + position: relative; +} + +.tabs-right.tabbable-custom .nav-tabs > li.active > a { + border-top: 1px solid #d4d4d4; + border-right: 1px solid transparent; +} + +.tabs-right.tabbable-custom .nav-tabs > li.active > a:hover { + background: #fff; + border-color: #d4d4d4 transparent #d4d4d4; +} + +.tabs-right.tabbable-custom .nav-tabs > li a, +.tabs-left.tabbable-custom .nav-tabs > li a { + padding: 8px 10px +} + + +/*** +Custom portlet tabs +***/ +.portlet-tabs .nav-tabs { + position: relative; + margin-top: -41px; + margin-right: 10px; +} + +.portlet-tabs .nav-tabs > li { + float: right; +} + +.portlet-tabs .nav-tabs { + border-bottom: none; +} + +.portlet-tabs .nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 10px; + line-height: 16px; + margin-top: 6px; + margin-left: 0px; + margin-right: 0px; + border-left: 0; + border-right: 0; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.portlet-tabs .nav-tabs > li:last-child > a { + border-right:0; +} + +.portlet-tabs .nav-tabs > li { + margin-left: 1px; +} + +.portlet-tabs .nav-tabs > li.active { + border-top-color: transparent; +} + +.portlet-tabs .nav-tabs > li.active > a { + margin-bottom: 0px; + border-bottom: 0; + margin-left: 0px; + margin-right: 0px; + border-left: 0; + border-right: 0; + background-color: none !important; + border-top-color:transparent !important; +} + +.portlet-tabs .nav-tabs > li > a:hover { + margin-bottom: 0; + border-bottom-color: transparent; + margin-left: 0; + margin-right: 0; + border-left: 0; + border-right: 0; + background-color: none !important; + border-top-color:transparent; + background-color: #fff; +} + +.portlet-tabs .nav-tabs > .active > a { + color: #555555; + cursor: default; + background-color: #fff; +} + +.portlet-tabs .nav-tabs > .active > a:hover { + background-color: #fff !important; +} + +.portlet-tabs .tab-content { + padding: 10px !important; + margin: 0px; + margin-top: -10px; +} + +.portlet.tabbable .portlet-body { + padding: 0px; +} + +.tab-pane > p:last-child { + margin-bottom: 0px; +} + +/*** +Dashboard stats +***/ +.dashboard-stat { + margin-bottom: 25px; +} + +.dashboard-stat:before, +.dashboard-stat:after { + display: table; + line-height: 0; + content: ""; +} +.dashboard-stat:after { + clear: both; +} + +.dashboard-stat .visual { + width: 80px; + height:80px; + display: block; + float: left; + padding-top: 10px; + padding-left: 15px; +} + +.dashboard-stat .visual i { + font-size: 65px; + color: #fff; +} + +.dashboard-stat .details { + float: right; + padding-right: 10px; +} + +.dashboard-stat .details .number { + padding-top: 25px; + text-align: right; + font-size: 34px; + letter-spacing: -1px; + font-weight: 300; + color: #fff; + margin-bottom: 10px; +} + +.dashboard-stat .details .desc { + text-align: right; + font-size: 16px; + letter-spacing: 0px; + font-weight: 300; + color: #fff; +} + +.dashboard-stat .more { + clear: both; + display: block; + padding: 5px 10px 5px 10px; + text-transform: uppercase; + font-weight: 300; + font-size: 11px; + color: #fff; + opacity: 0.7; + filter: alpha(opacity=70); +} + +.dashboard-stat .more i { + margin-top: 4px; + float: right; +} + +.dashboard-stat .more:hover { + text-decoration: none; + -webkit-transition: all 0.1s ease-in-out; + -moz-transition: all 0.1s ease-in-out; + -o-transition: all 0.1s ease-in-out; + -ms-transition: all 0.1s ease-in-out; + transition: all 0.1s ease-in-out; + opacity: 1; + filter: alpha(opacity=100); +} + +.dashboard-stat.blue { + background-color: #27a9e3; +} + +.dashboard-stat.blue .more { + background-color: #208dbe; +} + +.dashboard-stat.green { + background-color: #28b779; +} + +.dashboard-stat.green .more { + background-color: #10a062; +} + +.dashboard-stat.red { + background-color: #e7191b; +} + +.dashboard-stat.red .more { + background-color:#bc0d0e; +} + +.dashboard-stat.yellow { + background-color: #ffb848; +} + +.dashboard-stat.yellow .more { + background-color: #cb871b; +} + +.dashboard-stat.purple { + background-color: #852b99; +} + +.dashboard-stat.purple .more { + background-color: #6e1881; +} + +/*** +Circle Stats(KNOB, new in v1.1.1) +***/ + +/* Circle stats */ +.knobify { + border: 0 !important; + width: 0px; +} + +.ie8 .knobify { + display: none; +} + +.circle-stat { + background-color: #f8f8f8; + padding:2px; + margin-bottom: 10px; +} + +.circle-stat:hover { + background-color: #edf4f7; +} + +.circle-stat:before, +.circle-stat:after { + display: table; + line-height: 0; + content: ""; +} +.circle-stat:after { + clear: both; +} + +.circle-stat .visual { + display: block; + float: left; +} + +.circle-stat .details { + display: block; + float: left; + margin-left: 5px; + padding-top: 7px; +} + +.circle-stat .details .title { + margin: 10px 0px 5px 0px !important; + padding: 0px !important; + font-size: 13px; + text-transform: uppercase; + font-weight: 300; + color: #222; +} + +.ie8 .circle-stat .details .title { + margin-top:5px !important; +} +.ie8 .circle-stat .details { + padding-top: 0px !important; + margin-bottom: 5px !important; +} + +.circle-stat .details .title i { + margin-top:2px !important; + color: #52e136; + font-size: 16px; +} + +.circle-stat .details .title i.down { + color: #b63625; +} + +.circle-stat .details .number { + margin: 0px !important; + margin-bottom: 7px !important; + font-size: 24px; + padding: 0px; + font-weight: 300; + color: #999; +} + +/*** +Tiles(new in v1.1.1) +***/ +.tiles { + margin-right: -10px; +} + +.tile { + display: block; + letter-spacing: 0.02em; + float: left; + height: 130px; + width: 130px !important; + cursor: pointer; + text-decoration: none; + color: #ffffff; + position: relative; + font-weight: 300; + font-size: 12px; + letter-spacing: 0.02em; + line-height: 20px; + font-smooth: always; + overflow: hidden; + border: 4px solid transparent; + margin: 0 10px 10px 0; +} + +.tile:after, +.tile:before { + content: ""; + float: left; +} + +.tile.double { + width: 278px !important; +} + +.tile.double-down { + height: 278px !important; +} + +.tile:active, .tile.selected { + border-color: #ccc; +} + +.tile:hover { + border-color: #aaa; +} + +.tile.selected .corner:after { + content: ""; + display: inline-block; + border-left: 40px solid transparent; + border-bottom: 40px solid transparent; + border-right: 40px solid #ccc; + position: absolute; + top: -3px; + right: -3px; +} + +.tile.selected .check:after { + content: ""; + font-family: FontAwesome; + font-size: 13px; + content: "\f00c"; + display: inline-block; + position: absolute; + top: 2px; + right: 2px; +} + +.tile * { + color: #ffffff; +} + +.tile .tile-body { + height: 100%; + vertical-align: top; + padding: 10px 10px; + overflow: hidden; + text-overflow: ellipsis; + position: relative; + font-weight: 400; + font-size: 12px; + font-smooth: always; + color: #000000; + color: #ffffff; + margin-bottom: 10px; +} + +.tile .tile-body img { + float: left; + margin-right: 10px; +} + +.tile .tile-body img.pull-right { + float: right !important; + margin-left: 10px; + margin-right: 0px; +} + +.tile .tile-body .content { + display: inline-block; +} + +.tile .tile-body > i { + margin-top: 17px; + display: block; + font-size: 56px; + text-align: center; +} + +.tile.double-down i { + margin-top: 95px; +} + +.tile .tile-body h1, +.tile .tile-body h2, +.tile .tile-body h3, +.tile .tile-body h4, +.tile .tile-body h5, +.tile .tile-body h6, +.tile .tile-body p { + padding: 0; + margin: 0; + line-height: 14px; +} + +.tile .tile-body h3, +.tile .tile-body h4 { + margin-bottom: 5px; +} + +.tile .tile-body h1:hover, +.tile .tile-body h2:hover, +.tile .tile-body h3:hover, +.tile .tile-body h4:hover, +.tile .tile-body h5:hover, +.tile .tile-body h6:hover, +.tile .tile-body p:hover { + color: #ffffff; +} + +.tile .tile-body p { + font-weight: 400; + font-size: 13px; + font-smooth: always; + color: #000000; + color: #ffffff; + line-height: 20px; + overflow: hidden; + text-overflow: ellipsis; +} + +.tile .tile-body p:hover { + color: rgba(0, 0, 0, 0.8); +} + +.tile .tile-body p:active { + color: rgba(0, 0, 0, 0.4); +} + +.tile .tile-body p:hover { + color: #ffffff; +} + +.tile.icon > .tile-body { + padding: 0; +} + +.tile .tile-object { + position: absolute; + bottom: 0; + left: 0; + right: 0; + min-height: 30px; + background-color: transparent; + *zoom: 1; +} + +.tile .tile-object:before, +.tile .tile-object:after { + display: table; + content: ""; +} + +.tile .tile-object:after { + clear: both; +} + +.tile .tile-object > .name { + position: absolute; + bottom: 0; + left: 0; + margin-bottom: 5px; + margin-left: 10px; + margin-right: 15px; + font-weight: 400; + font-size: 13px; + font-smooth: always; + color: #ffffff; +} + +.tile .tile-object > .name i { + display: block; + font-size: 24px; +} + +.tile .tile-object > .number { + position: absolute; + bottom: 0; + right: 0; + margin-bottom: 0; + color: #ffffff; + text-align: center; + font-weight: 600; + font-size: 14px; + letter-spacing: 0.01em; + line-height: 14px; + font-smooth: always; + margin-bottom: 8px; + margin-right: 10px; +} + +.tile.image { + border-color1: transparent !important; +} + +.tile.image > .tile-body { + padding: 0 !important; +} + +.tile.image > .tile-body > img{ + width: 100%; + height: auto; + min-height: 100%; + max-width: 100%; +} + +.tile.image .tile-body h3 { + display: inline-block; +} + +/*** +Styler Panel +***/ +.color-panel { + z-index: 999; + position:relative; +} + +.color-panel .color-mode-icons { + top:4px; + right:0; + padding:20px; + cursor:pointer; + position:absolute; +} + +.color-panel .icon-color { + background:#c9c9c9 url(../img/icon-color.png) center no-repeat !important; +} + +.color-panel .icon-color:hover { + background-color:#3d3d3d !important; +} + +.color-panel .icon-color-close { + display:none; + background:#3d3d3d url(../img/icon-color-close.png) center no-repeat !important; +} + +.color-panel .icon-color-close:hover { + background-color:#222 !important; +} + +.color-mode { + top:5px; + right:40px; + display:none; + padding:10px 0; + position:absolute; + background:#3d3d3d; +} + +.color-mode p, +.color-mode ul, +.color-mode label { + padding:0 15px; +} + +.color-mode p { + color:#cfcfcf; + padding:0 15px; + font-size:15px; +} + +.color-mode ul { + list-style:none; + padding:4px 11px 5px; +} + +.color-mode li { + width:20px; + height:30px; + margin:0 4px; + cursor:pointer; + list-style:none; + border:solid 1px #707070; +} + +.color-mode li:hover, +.color-mode li.current { + border:solid 2px #ebebeb; + margin:0 3px; +} + +.color-mode li.color-black { + background:#333438; +} + +.color-mode li.color-blue { + background:#124f94; +} + +.color-mode li.color-brown { + background:#623f18; +} + +.color-mode li.color-purple { + background:#701584; +} + +.color-mode li.color-white { + background:#fff; +} + +.color-mode label { + color:#cfcfcf; + padding-top:12px; + text-transform:uppercase; + border-top:1px solid #585858; +} + +.color-mode label span.color-mode-label { + top:2px; + position:relative; +} + +/******************** + PAGES +*********************/ + +/*** +Calendar with full calendar +***/ +.external-event { + display: inline-block !important; + cursor:move; + margin-bottom: 5px !important; + margin-right: 5px !important; +} + +.portlet .event-form-title { + font-size: 14px; + margin-top: -8px; + font-weight: 400; + margin-bottom: 0px; +} + +.portlet.calendar .fc-event-time { + color: #fff; + font-size: 13px; + font-weight: 300 !important; +} + +.portlet.calendar .fc-event-title { + color: #fff; + font-size: 13px; + font-weight: 300 !important; +} + +.portlet.calendar .fc-event-skin { + border: 0px !important; + background-color: #69a4e0 !important; +} + +.portlet.calendar .fc-button-content { + color: #fff; +} + +.portlet.calendar .fc-button { + top: -48px; +} + +.portlet.calendar .fc-state-hover .fc-button-content, +.portlet.calendar .fc-state-active .fc-button-content { + color: #666; +} + +.portlet.calendar .fc-state-hover, +.portlet.calendar .fc-state-active { + background-color: #fff !important; +} + +.portlet.calendar .fc-state-disabled .fc-button-content { + color: #ddd; +} + +.portlet.calendar .fc-button-prev, +.portlet.calendar .fc-button-next { + font-family: Arial !important; +} + +.portlet.calendar .fc-header-title h2 { + font-size: 14px !important; + line-height: 20px; + font-weight: 400; + color: #111; +} + +.portlet.calendar .fc-widget-header { + background-image: none !important; + filter:none !important; + + background-color: #eee !important; + text-transform: uppercase; + font-color:#000; + font-weight: 300; +} + +.portlet.calendar .mobile .fc-button { + margin-right: 2px !important; +} + +.portlet.calendar .mobile .fc-button .fc-button-inner { + margin: 0px !important; + padding: 0px !important; + border: none !important; + background-color: #ddd !important; + background-image: none; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; + color: #000 !important; + border: none !important; + text-shadow: none !important; + text-align: center; + } + +.portlet.calendar .mobile .fc-button-content { + color: #000 !important; +} + +.portlet.calendar .mobile .fc-state-hover .fc-button-content, +.portlet.calendar .mobile .fc-state-active .fc-button-content { + background-color: #eee !important; +} + +.portlet.calendar .mobile .fc-state-hover, +.portlet.calendar .mobile .fc-state-active { + color: #fff !important; +} + + .portlet.calendar .mobile .fc-state-disabled .fc-button-content { + color: #bbb !important; + } + + .portlet.calendar .mobile .fc-header-left { + position: absolute; + z-index: 10; + } + + .portlet.calendar .mobile .fc-header-right { + position: absolute; + z-index: 9; + } + + .portlet.calendar .mobile .fc-header-left .fc-button { + top: -2px !important; + } + + .portlet.calendar .mobile .fc-header-right { + position: relative; + left:0; + } + + .portlet.calendar .mobile .fc-header-right .fc-button { + top: 35px !important; + } + + .portlet.calendar .mobile .fc-header-right .fc-button:last-child { + margin-right: 0px !important; + } + + .portlet.calendar .mobile .fc-content { + margin-top: 53px; + } + + +/*** +Form wizard +***/ + +.form-wizard .progress { + margin-bottom: 30px; +} + +.form-wizard .steps { + padding: 10px 0; + margin-bottom: 15px; +} + +.form-wizard .steps .navbar-inner { + background-color: #fff !important; + background-image: none !important; + filter:none !important; + border: 0px; + box-shadow: none !important; +} + +.form-wizard .steps .navbar-inner li a { + background-color: #fff !important; + background-image: none !important; + filter:none !important; + border: 0px; + box-shadow: none !important; +} + +.form-wizard .step:hover { + text-decoration: none; +} + +.form-wizard .step .number { + background-color: #eee; + display: inline-block; + font-size: 16px; + font-weight: 300; + padding: 12px 15px 12px 15px !important; + margin-right: 10px; + -webkit-border-radius: 50% !important; + -moz-border-radius: 50% !important; + border-radius: 50% !important; +} + +.form-wizard .step .desc { + display: inline-block; + font-size: 14px; + font-weight: 300; +} + +.form-wizard .active .step .number { + background-color: #35aa47; + color: #fff; +} + +.form-wizard .active .step .desc { + font-weight: 400; +} + +.form-wizard .step i { + display: none; +} + +.form-wizard .done .step .number { + background-color: #f2ae43; + color: #fff; +} + +.form-wizard .done .step .desc { + font-weight: 400; +} + +.form-wizard .done .step i { + font-size: 12px; + font-weight: normal; + color: #999; + display: inline-block; +} + +/* bootstrap chosen overlaping bug fix*/ +.form-wizard .tab-pane .chzn-container { + position: absolute !important; +} + +/*** +Google Maps +***/ +.gmaps { + height: 300px; + width: 100%; +} + +/* important! bootstrap sets max-width on img to 100% which conflicts with google map canvas*/ +.gmaps img { + max-width: none; +} + +#gmap_static div{ + background-repeat: no-repeat !important; + background-position: 50% 50% !important; + height:100%; + display:block; + height: 300px; +} + +#gmap_routes_instructions { + margin-top: 10px; + margin-bottom: 0px; +} + +/*** +Pricing table +***/ +.pricing-table { + border: 3px solid transparent; + padding: 10px; + background-color: #f1f2f2; +} + +.pricing-table:hover { + border-color: #4b8df8; +} + +.pricing-table h3 { + margin-left: -2px; + padding-left: 0px; + font-size: 26px; + margin-bottom: 5px; + line-height: 26px; + color: #111; + margin-top: 0px; +} + +.pricing-table .desc { + margin-bottom: 10px; + padding-bottom: 15px; + color: #666; + border-bottom: 1px solid #ddd; +} + +.pricing-table ul { + margin: 0px; + margin-bottom: 15px; + padding: 0px; + list-style: none; +} + +.pricing-table ul li { + padding: 6px 0px; + padding-left: 11px; + font-size: 13px; + line-height: 13px; + color: #666; +} + +.pricing-table ul li i { + position: absolute; + margin-right: 0px; + margin-top: -2px; + margin-left: -17px; + color: #35aa47; + font-size: 16px; +} + +.pricing-table .rate { + border-top: 1px solid #ddd; + margin-bottom: 10px; + padding-top: 15px; + clear: both; +} + +.pricing-table.selected .rate { + border-top-color: #fff; +} + +.pricing-table .rate:before, +.pricing-table .rate:after { + display: table; + line-height: 0; + content: ""; +} +.pricing-table .rate:after { + clear: both; +} + +.pricing-table .rate .price { + display: inline-block; + float: left; + clear: both; +} + +.pricing-table .rate .btn { + margin-top: 3px; + float: right; + display: block; +} + +.pricing-table .rate .price .currency { + padding-top: 4px; + float: left; + width: 50px; + text-align: right; + font-size: 13px; + line-height: 14px; + font-weight: 300; + margin-right: 2px; +} + +.pricing-table .rate .price .amount { + padding-top: 4px; + letter-spacing: -3px; + float: left; + text-align: right; + font-size: 36px; + line-height: 30px; + font-weight: 300; +} + +.pricing-table.selected { + background-color: #4b8df8; +} + +.pricing-table.selected:hover { + border-color: #ddd; +} + +.pricing-table.selected .desc { + border-bottom-color: #fff; +} + +.pricing-table.selected h3, +.pricing-table.selected .desc, +.pricing-table.selected ul li, +.pricing-table.selected ul li i, +.pricing-table.selected .rate { + color: #fff; +} + +/*** +Pricing table(Alternative) +***/ + +.pricing-table2 { + border: 3px solid transparent; + padding: 10px; + background-color: #f1f2f2; +} + +.pricing-table2:hover { + border-color: #4b8df8; +} + +.pricing-table2 h3 { + margin-left: -2px; + padding-left: 0px; + font-size: 26px; + margin-bottom: 5px; + line-height: 26px; + margin-top: 0px; + color: #111; +} + +.pricing-table2 .desc { + margin-bottom: 10px; + padding-bottom: 0px; + color: #666; +} + +.pricing-table2 ul { + margin: 0px; + margin-bottom: 0px; + padding: 0px; + list-style: none; +} + +.pricing-table2 ul li { + padding: 6px 0px; + padding-left: 11px; + font-size: 13px; + line-height: 13px; + color: #666; +} + +.pricing-table2 ul li i { + position: absolute; + margin-right: 0px; + margin-top: -2px; + margin-left: -17px; + color: #35aa47; + font-size: 16px; +} + +.pricing-table2 .rate { + margin-bottom: 10px; + padding: 15px 15px; + margin-left: -15px; + margin-right: -15px; + background-color: #35aa47; + color: #fff; + clear: both; +} + +.pricing-table2.selected .rate { + border-top-color: #fff; +} + +.pricing-table2 .rate:before, +.pricing-table2 .rate:after { + display: table; + line-height: 0; + content: ""; +} +.pricing-table2 .rate:after { + clear: both; +} + +.pricing-table2 .rate .price { + display: inline-block; + float: left; + clear: both; +} + +.pricing-table2 .rate .btn { + margin-top: 3px; + float: right; + display: block; +} + +.pricing-table2 .rate .price .currency { + padding-top: 4px; + float: left; + width: 50px; + text-align: right; + font-size: 13px; + line-height: 14px; + font-weight: 300; +} + +.pricing-table2 .rate .price .amount { + padding-top: 4px; + float: left; + text-align: right; + font-size: 36px; + line-height: 30px; + font-weight: 300; +} + +.pricing-table2.selected { + background-color: #4b8df8; +} + +.pricing-table2.selected .rate { + background-color: #ffb848; +} + +.pricing-table2.selected:hover { + border-color: #ddd; +} + +.pricing-table2.selected .desc { + border-bottom-color: #fff; +} + +.pricing-table2.selected h3, +.pricing-table2.selected .desc, +.pricing-table2.selected ul li, +.pricing-table2.selected ul li i, +.pricing-table2.selected .rate .currency, +.pricing-table2.selected .rate .amount { + color: #fff !important; +} + +/*** +Login page +***/ + +/* logo page */ +.login { + background-color: #444 !important; +} + +.login .logo { + width: 247px; + margin: 0 auto; + margin-top:60px; + padding: 15px; + text-align: center; +} + +.login .content { + background-color:#fff; + width: 291px; + margin: 0 auto; + margin-bottom: 50px; + padding: 30px; + padding-top: 20px; + padding-bottom: 15px; +} + +.login .content h3 { + color: #000; +} +.login .content h4 { + color: #555; +} + +.login .content p { + color: #222; +} + +.login .content .login-form, +.login .content .forget-form { + padding: 0px; + margin: 0px; +} + +.login .content .m-wrap { + width: 249px; + border-left: 0 !important; +} + +.login .content .input-icon { + border-left: 2px solid #35aa47 !important; +} + +.login .content .control-group { + margin-bottom: 20px !important; +} + +.login .content .input-icon .m-wrap { + margin: 0px !important; +} + +.login .content .forget-form { + display: none; +} + +.login .content .register-form { + display: none; +} + +.login .content .form-title { + font-weight: 300; + margin-bottom: 25px; +} + +.login .content .form-actions { + background-color: #fff; + clear: both; + border: 0px; + border-bottom: 1px solid #eee; + padding: 0px 30px 25px 30px; + margin-left: -30px; + margin-right: -30px; +} + +.login .content .forget-form .form-actions { + border: 0; + margin-bottom: 0; + padding-bottom: 20px; +} + +.login .content .register-form .form-actions { + border: 0; + margin-bottom: 0; + padding-bottom: 0px; +} + +.login .content .form-actions .checkbox { + margin-top: 8px; + display: inline-block; +} + +.login .content .form-actions .btn { + margin-top: 1px; +} + +.login .content .forget-password { + margin-top: 25px; +} + +.login .content .create-account { + border-top: 1px dotted #eee; + padding-top: 10px; + margin-top: 15px; +} + +.login .content .create-account a { + display: inline-block; + margin-top: 5px; +} + +.login .copyright { + text-align: center; + width: 250px; + margin: 0 auto; + padding: 10px 10px 0 10px; + color: #999; + font-size: 11px; +} + + +/*** +Page 404 +***/ +.page-404 .number { + letter-spacing: -10px; + margin-top: 0px; + line-height: 158px; + font-size: 158px; + font-weight: 300; + color: #7bbbd6; + text-align: right; +} + +.page-500 .number { + letter-spacing: -10px; + margin-top: 0px; + line-height: 158px; + font-size: 158px; + font-weight: 300; + color: #ec8c8c; + text-align: right; +} + +.page-500 .details { + padding-top: 20px; +} + +/*** +Profile Page +***/ +.profile { + position:relative; +} + +.profile p { + color:#636363; + font-size:13px; +} + +.profile p a { + color:#169ef4; +} + +.profile label { + margin-top:10px; +} + +.profile label:first-child { + margin-top:0; +} + +/*profile info*/ +.profile-classic .span2 { + position:relative; +} + +.profile-classic .span2 a { + top:0; + right:0; + margin:0; + color:#fff; + opacity:0.6; + padding:0 9px; + font-size:11px; + background:#000; + position:absolute; + filter:alpha(opacity=60); /*for ie*/ +} +.profile-classic .span2 img { + margin-bottom:15px; +} + +.profile-classic li { + padding:8px 0; + font-size:13px; + border-top:solid 1px #f5f5f5; +} + +.profile-classic li:first-child { + border-top:none; +} + +.profile-classic li span { + color:#666; + font-size:13px; + margin-right:7px; +} + +/*profile tabs*/ +.profile .tabbable-custom > .tab-content { + padding:27px 0; + border-left:none; + border-right:none; + border-bottom:none; +} + +.profile .tabbable-custom .nav-tabs > li > a { + color:#424242; + font-size:15px; + padding:9px 15px; +} + +.profile .tabbable-custom.tabbable-custom-profile .nav-tabs > li > a { + padding:6px 12px; +} + +/*profile navigation*/ +.profile ul.profile-nav { + margin-bottom:30px; +} + +.profile ul.profile-nav li { + position:relative; +} + +.profile ul.profile-nav li a { + color:#557386; + display:block; + font-size:14px; + padding:8px 10px; + margin-bottom:1px; + background:#f0f6fa; + border-left:solid 2px #c4d5df; +} + +.profile ul.profile-nav li a:hover { + color:#169ef4; + background:#ecf5fb; + text-decoration:none; + border-left:solid 2px #169ef4; +} + +.profile ul.profile-nav li a.profile-edit { + top:0; + right:0; + margin:0; + color:#fff; + opacity:0.6; + border:none; + padding:0 9px; + font-size:11px; + background:#000; + position:absolute; + filter:alpha(opacity=60); /*for ie*/ +} + +.profile ul.profile-nav li a.profile-edit:hover { + text-decoration:underline; +} + +.profile ul.profile-nav a span { + top:0; + right:0; + color:#fff; + font-size:20px; + padding:8px 13px; + position:absolute; + background:#169ef4; +} + +.profile ul.profile-nav a:hover span { + background:#0b94ea; +} + +/*profile information*/ +.profile-info h1 { + color:#383839; + font-size:24px; + font-weight:400; + margin:-11px 0 10px 0; +} + +.profile-info ul { + margin-bottom:15px; +} + +.profile-info li { + color:#6b6b6b; + font-size:13px; + margin-right:15px; + margin-bottom:5px; + padding:0 !important; +} + +.profile-info li i { + color:#b5c1c9; + font-size:15px; +} + +.profile-info li:hover i { + color:#169ef4; +} + +/*profile sales summary*/ +.sale-summary ul { + margin-top:-12px; +} +.sale-summary li { + padding:10px 0; + overflow:hidden; + border-top:solid 1px #eee; +} + +.sale-summary li:first-child { + border-top:none; +} + +.sale-summary li .sale-info { + float:left; + color:#646464; + font-size:14px; + text-transform:uppercase; +} + +.sale-summary li .sale-num { + float:right; + color:#169ef4; + font-size:20px; + font-weight:300; +} + +.sale-summary li span i { + top:1px; + width:13px; + height:14px; + margin-left:3px; + position:relative; + display:inline-block; +} + +.sale-summary li i.icon-img-up { + background:url(../img/icon-img-up.png) no-repeat !important; +} + +.sale-summary li i.icon-img-down { + background:url(../img/icon-img-down.png) no-repeat !important; +} + +.sale-summary .portlet-title h4 { + color:#383839; + font-size:18px; +} + +.sale-summary .portlet-title { + border-color:#c9c9c9; +} + +/*latest customers table*/ +.profile .table-advance thead tr th { + background:#f0f6fa; +} + +.profile .table-bordered th, +.profile .table-bordered td, +.profile .table-bordered { + border-color:#e5eff6; +} + +.profile .table-striped tbody > tr:nth-child(2n+1) > td, +.profile .table-striped tbody > tr:nth-child(2n+1) > th { + background:#fcfcfc; +} + +.profile .table-hover tbody tr:hover td, +.profile .table-hover tbody tr:hover th { + background:#f5fafd; +} + +/*add portfolio*/ +.add-portfolio { + overflow:hidden; + margin-bottom:30px; + background:#f0f6fa; +} + +.add-portfolio .pull-left, +.add-portfolio .pull-right { + padding:12px 14px; +} + +.add-portfolio .pull-left { + color:#555d69; + font-size:20px; +} + +.add-portfolio .pull-left span { + top:8px; + position:relative; +} + +.add-portfolio .pull-right i { + margin-left:5px; +} + +/*portfolio block*/ +.portfolio-block { + background:#f7f7f7; + margin-bottom:15px; +} + +.portfolio-block .span5 { + overflow:hidden; +} + +/*portfolio text*/ +.portfolio-text { + overflow:hidden; +} + +.portfolio-text h4 { +} + +.portfolio-text img { + float:left; + margin-right:15px; +} + +.portfolio-text .portfolio-text-info { + overflow:hidden; +} + +/*portfolio button*/ +.portfolio-btn a { + display:block; + padding:28px 0; + background:#ddd !important; +} + +.portfolio-btn a:hover { + background:#1d943b !important; +} + +.portfolio-btn span { + color:#fff; + font-size:22px; + font-weight:200; +} + +/*portfolio info*/ +.portfolio-info { + float:left; + color:#616161; + font-size:12px; + padding:12px 25px; + margin-bottom:5px; + text-transform:uppercase; +} + +.portfolio-info span { + color:#16a1f2; + display:block; + font-size:30px; + margin-top:5px; + font-weight:200; + text-transform:uppercase; +} + +/*portfolio settings*/ +.profile-settings { + background:#fafafa; + padding:15px 8px 0; + margin-bottom:5px; +} + +.profile-settings p { + padding-left:5px; + margin-bottom:3px; +} + +.profile-settings .controls > .radio, +.profile-settings .controls > .checkbox { + font-size:12px; + margin-top:2px !important; +} + +/*** +Search Page +***/ +.search-forms { + margin-bottom:30px; + background:#f0f6fa; +} + +/*search default*/ +.search-default form { + margin-bottom:0; + padding:12px 14px; +} + +.search-default .chat-form { + margin:0; + padding:0; + background:none; + overflow:hidden; + position:relative; +} + +.search-default .chat-form button { + top:0; + right:0; + position:absolute; +} + +.search-default .chat-form .input-cont { + margin-right:108px; +} + +.search-default .chat-form .input-cont input:focus{ + border: 1px solid #35aa47 !important; +} + +.search-result { + background:#fafafa; +} + +.search-result .portfolio-text img { + border-left:solid 3px #169ef4; +} + +.search-result .portfolio-text h4 { + color:#555d69; + font-size:20px; + font-weight:400; + margin-top:10px; +} + +.search-result .portfolio-info { + padding:12px 20px; +} + +.search-result .portfolio-info span { + font-size:28px; +} + +.search-result .portfolio-info span em { + font-size:24px; + font-style:normal; + text-transform:none; +} + +.search-result .search-btn { + text-align:center; + background:#f3f3f3; + padding:30px 10px 14px; +} + +.search-result .search-btn p { + color:#9c9c9c; + font-size:22px; +} + +.search-result .search-btn p em { + color:#ffa801; + font-size:34px; + font-style:normal; +} + +.search-result .search-btn a { + font-size: 18px; + padding: 6px 20px; + text-transform: uppercase; +} + +/*search classic*/ +.search-classic { + margin-bottom:30px; +} + +.search-classic h4 { + margin-bottom:3px; +} + +.overflow-hidden { + overflow:hidden; +} + +/*** +Invoice page +***/ +.invoice table { + margin:30px 0 60px; +} + +.invoice .invoice-logo { + margin-bottom:20px; +} + +.invoice .invoice-logo p { + padding:5px 0; + font-size:26px; + line-height:28px; + text-align:right; +} + +.invoice .invoice-logo p span { + display:block; + font-size:14px; +} + +.invoice .invoice-logo-space { + margin-bottom:15px; +} + +.invoice .invoice-payment strong { + margin-right:5px; +} + +.invoice .invoice-block { + text-align:right; +} + +/************************** + PLUGIN CSS CUSTOMIZATIONS +**************************/ + +/*** +SlimScrollBar plugins css changes +***/ +.scroller { + padding: 0px !important; + margin: 0px !important; + padding-right: 12px !important; +} + +.portlet-body .slimScrollBar { + margin-right: 0px !important; +} + +/*** +jqvmap changes +***/ +.jqvmap-zoomin { + background-color: #666 !important; +} + +.jqvmap-zoomout { + background-color: #666 !important; +} + +.vmaps { + position: relative; + overflow: hidden; + height: 300px; +} + +/*** +Daterangepicker plugin css changes +***/ +.daterangepicker td { + text-shadow: none !important; +} + +.daterangepicker td.active { + background-color: #4b8df8 !important; + background-image: none !important; + filter:none !important; +} + +.daterangepicker th { + font-weight: 400; + font-size: 14px; +} + +/*** +Toggle buttons plugin css changes +***/ +.toggle-button, +.toggle-button label { + margin-top: 3px; + background-image: none !important; + filter:none !important; + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + -ms-border-radius: 0px !important; + -o-border-radius: 0px !important; + border: 1px solid #eee !important; +} + +.toggle-button span.labelRight, +.toggle-button span.primary, +.toggle-button span.labelLeft, +.toggle-button span.info, +.toggle-button span.success, +.toggle-button span.warning, +.toggle-button span.danger { + font-size: 13px !important; + font-weight: 300 !important; + background-image: none !important; + filter:none !important; +} + +.toggle-button span.labelRight { + background-color: #eee; +} + +/*** +Choosen plugin css changes +***/ +.chzn-controls { + margin-bottom: -4px !important; +} + +.chzn-controls .help-inline { + display: inline-block; + margin-top : 6px; +} + +.chzn-container { + display: block; + margin: 0; + padding: 0 !important; + box-shadow: none !important; +} + +.chzn-container-single { + margin: 0 !important; + padding: 0 !important; +} + +/* fix chosen margins in form layouts */ +.controls .chzn-container-single { + float: left; +} + +.chzn-container-single .chzn-single { + box-shadow: none !important; + background-image: none !important; + filter:none !important; + box-shadow: none !important; + -webkit-box-shadow none !important; + -moz-box-shadow: none !important; + height: 31px !important; + border-color: #e5e5e5; + margin: 0 !important; +} + +/* enable form validation classes for chosen dropdowns */ +.error .chzn-container-single .chzn-single { + border-color: #B94A48; +} + +.error .chzn-container-single .chzn-single span { + color: #B94A48; +} + +.success .chzn-container-single .chzn-single { + border-color: #468847; +} + +.success .chzn-container-single .chzn-single span { + color: #468847; +} + +.chzn-container-single .chzn-single > span { + margin-top: 1px; +} + +.chzn-container-single .chzn-single > abr { + margin-top: 3px; +} + +.chzn-container-single .chzn-search input:focus, +.chzn-container-single .chzn-search input:active { + border:1px solid #000 !important; + box-shadow: none !important; +} + +.chzn-container .chzn-choices li.search-choice { + background-image: none !important; + filter:none !important; + box-shadow: none !important; + font-size: 12px !important; + font-weight: 300 !important; + text-shadow:none !important; + background-color: #eee !important; + border: 0 !important; +} + +.chzn-container .chzn-results .highlighted { + background-image: none !important; + filter:none !important; + background-color: #eee !important; + color: #111 !important; +} + +.chzn-container-multi .chzn-choices { + background-image: none !important; + filter:none !important; + box-shadow: none !important; + border-color: #e5e5e5 !important; + padding: 2px 1px 1px 1px !important; +} + +.chzn-container-multi .chzn-choices .search-choice.search-choice-disabled { + background-image: none !important; + filter:none !important; +} + +.chzn-x-multi .chzn-choices { + box-shadow: none !important; +} + +.chzn-container .group-result { + color: #333 !important; + font-size: 16px !important; + font-weight: 400 !important; +} + +/*** +Fileuploader plugin css changes +***/ +.fileupload .btn { + padding: 7px 14px !important; +} + +.fileupload-exists { + padding: 0px; +} + +.fileupload .fileupload-preview { + background-color: #fff !important; + background-image: none !important; + filter:none !important; +} + +.fileupload .close { + position: relative; + top:0px !important; +} + +/*** +Clockface plugin css changes +***/ +.clockface .cell .inner.active, +.clockface .cell .outer.active { + background-image: none !important; + filter:none !important; +} + +/*** +WYSIWYG +***/ +.wysihtml5-toolbar li { + margin: 0px; + height: 29px; +} + +.wysihtml5-toolbar li .dropdown-menu { + margin-top: 5px; +} + +/*** +CKEditor css changes +***/ +.cke_bottom, +.cke_inner, +.cke_top, +.cke_reset, +.cke_dialog_title, +.cke_dialog_footer, +.cke_dialog { + background-image: none !important; + filter:none !important; + border-top: 0 !important; + border-bottom: 0 !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + text-shadow:none !important; +} + +.cke_dialog_ui_button, +.cke_dialog_tab { + background-image: none !important; + filter:none !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + text-shadow:none !important; +} + +.cke_dialog_ui_button:hover, +.cke_dialog_tab:hover { + text-decoration: none; + text-shadow:none !important; +} + +.cke_dialog_ui_input_text { + background-image: none !important; + filter:none !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +.cke_combo_button, +.cke_button, +.cke_toolbar, +.cke_toolgroup { + background-image: none !important; + filter:none !important; + border: 0 !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +.cke_button, +.cke_combo_button, +.cke_panel_grouptitle, +.cke_hc.cke_panel_listItem a { + background-image: none !important; + filter:none !important; + text-shadow:none !important; + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + -ms-border-radius: 0px !important; + -o-border-radius: 0px !important; +} + +.cke_button:hover, +.cke_combo_button:hover { + background-color: #ddd; +} + +.cke_toolbar_break { + background-image: none !important; + filter:none !important; + border: 0 !important; + box-shadow: none !important; + -webkit-box-shadow : none !important; + -moz-box-shadow: none !important; + -ms-box-shadow: none !important; + -o-box-shadow: none !important; +} + +/*** +Modify tags input plugin css +***/ +div.tagsinput { + height: 40px !important; + margin: 0 !important; + padding: 5px !important; + overflow: auto !important; +} + +div.tagsinput span.tag { + background: #aaa !important; + color: #fff !important; + border: 0 !important; + padding: 3px 6px !important; + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; + margin-bottom: 4px !important; +} + +div.tagsinput input { + padding: 3px 6px !important; +} + +div.tagsinput span.tag a { + color: #fff !important; +} + +div.tagsinput .not_valid { + color: #fff !important; + padding: 3px 6px !important; + background-color: #e02222 !important; +} + +/*** +Date tables plugin changes +***/ +.dataTable { + clear: both; + margin-top: 5px; +} + +.dataTables_filter label { + line-height: 32px !important; +} + +/*** +Gritter notification modify +***/ +.gritter-close { + left:auto !important; + right: 3px !important; +} + +/*** +Bootstrap carousel css changes +***/ +.carousel-inner .item { + line-height: 20px; +} + +/*** +Glyphicons Demo(new in v1.1.1) +***/ +.glyphicons-demo { + text-align: center; +} + +.glyphicons-demo .glyphicons { + display:inline-block; + *display:inline; + *zoom:1; + width:150px; + font-size:14px; + line-height:48px; + margin-right: 20px; + color: #999; + text-align: left; +} + +.glyphicons-demo .glyphicons i:before{ + line-height:55px!important; + color: #666; +} + +.halfings-demo .white-content{ + margin:0 -20px 0 -20px; + padding:20px; + background:#000; + background:rgba(0,0,0,0.9) +} + +.halfings-demo .white-content *, +.halfings-demo .white-content p, +.halfings-demo .white-content a{ + color:#fff +} + +.halfings-demo h2 { + text-align: left; +} + +.halfings-demo p, +.halfings-demo a { + width: 175px; + font-size: 14px; + line-height: 14px; + text-align: left; + display: inline-block; + margin-right: 10px; +} + +.halfings-demo .halflings, +.halfings-demo .halflings-icon { + margin:0 5px 0 0 +} + +/*** +jQuery UI Sliders(new in v1.1.1) +***/ +.table.sliders td { + padding: 15px 10px !important; +} + +.table.sliders .slider { + margin-top: 4px; +} + +.table.sliders .slider-value { + padding-top: 5px; + font-weight: 400; +} + +.table.sliders .slider-vertical-value { + padding-bottom: 5px; + font-weight: 400; +} + +.slider { + border: 0 !important; +} + +.ui-slider-vertical, +.ui-slider-handle { + filter: none !important; + background-image: none !important; +} + +.slider-eq > span { + height:125px; + float:left; + margin:15px +} + +/*** +Dropzone css changes(new in v1.1.1) +***/ +.dropzone { + webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; +} + +/*** +Bootstrap Tree CSS changes(new in v1.1.2) +***/ +.tree { + margin: 0; + padding: 0; +} + +.tree a { + padding: 2px 3px 3px 3px; + display: block !important; + line-height: 16px !important; +} + +.tree a:hover { + text-decoration: none; + background-color: #eee; +} + +.tree a.tree-toggle-icon-only, +.tree a.tree-toggle { + background-position: 2px -20px; +} + +.tree a.tree-toggle.closed, +.tree a.tree-toggle-icon-only.closed { + background-position: 2px 3px; +} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_blue.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_blue.css" new file mode 100644 index 0000000..537a5b7 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_blue.css" @@ -0,0 +1,206 @@ +/*** +blue theme +***/ + +/*** +Reset and overrides +***/ +body { + background-color:#1570a6 !important; +} + +/*** +Page header +***/ +.header .navbar-inner { + filter:none !important; + background-image: none !important; + background-color: #1b2e44 !important; +} + +.header .btn-navbar { + background-color: #1b2e44 !important; +} + +.header .nav .dropdown-toggle:hover, +.header .nav .dropdown.open .dropdown-toggle { + background-color: #101e2f !important; +} + +.header .nav li.dropdown .dropdown-toggle i { + color: #4f6a89 !important; +} + +/*** +Page sidebar +***/ +.page-sidebar > ul > li > a { + border-top: 1px solid #2682b9 !important; + color: #fff !important; +} + +.page-sidebar > ul > li:first-child > a { + border-top: 1px solid transparent !important; +} + +.page-sidebar > ul > li:last-child > a { + border-bottom: 1px solid transparent !important; +} + +.page-sidebar > ul > li a i { + color: #3d98ce !important; +} + +.page-sidebar > ul > li.has-sub.open > a, +.page-sidebar > ul > li >a:hover, +.page-sidebar > ul > li:hover>a { + background: #0e4686; +} + +.page-sidebar > ul > li.active > a{ + background: #0e4686 !important; + border-top-color: transparent !important; + color:#fff !important; +} + +.page-sidebar > ul > li > ul.sub { + margin: 0px; + padding: 4px 0px; + background: #1b579b; +} + +.page-sidebar > ul > li > ul.sub > li > a { + color: #fff; + margin-left:0px; + padding-left: 50px; + display: block; +} + +.page-sidebar > ul > li > ul.sub > li:first-child > a { + border-top: 0px !important; +} + +.page-sidebar > ul > li > ul.sub > li.active > a, +.page-sidebar > ul > li > ul.sub > li > a:hover { + color: #fff !important; + background: #2361a6 !important; +} + +.page-sidebar .sidebar-search input { + background-color: #1570a6 !important; + color: #3d98ce; +} + +.page-sidebar .sidebar-search input::-webkit-input-placeholder { + color: #3d98ce !important; +} + +.page-sidebar .sidebar-search input:-moz-placeholder { + color: #3d98ce !important; +} + +.page-sidebar .sidebar-search input:-ms-input-placeholder { + color: #3d98ce !important; +} + +.page-sidebar .sidebar-search .input-box { + border-bottom-color: #3a99d2 !important; +} + +.page-sidebar .sidebar-search .submit { + background-image: url(../img/search-icon-blue.png); +} + +/*** +Sidebar toggler +***/ +.sidebar-toggler { + background-image: url(../img/sidebar-toggler-blue.jpg); + background-color: #1570a6; +} + +/* search box bg color on expanded */ +.sidebar-closed .page-sidebar .sidebar-search.open { + background-color: #1570a6 !important; +} + +.sidebar-closed .page-sidebar .sidebar-search.open .remove { + background-image: url("../img/sidebar-search-close-blue.png"); +} + +/* sub menu bg color on hover menu item */ +.sidebar-closed .page-sidebar > ul > li.has-sub:hover .sub { + background-color: #1570a6; +} + +/*** +Gritters +***/ +.gritter-top { + background:url(../gritter/images/gritter-blue.png) no-repeat left -30px !important; +} + +.gritter-bottom { + background:url(../gritter/images/gritter-blue.png) no-repeat left bottom !important; +} + +.gritter-item { + display:block; + background:url(../gritter/images/gritter-blue.png) no-repeat left -40px !important; +} + +.gritter-close { + background:url(../gritter/images/gritter-blue.png) no-repeat left top !important; +} + +.gritter-title { + text-shadow:none !important; /* Not supported by IE :( */ +} + +/* for the light (white) version of the gritter notice */ +.gritter-light .gritter-item, +.gritter-light .gritter-bottom, +.gritter-light .gritter-top, +.gritter-light .gritter-close { + background-image: url(../gritter/images/gritter-light.png) !important; +} + + +/*** +Landscape phone to portrait tablet +***/ +@media (max-width:979px) { + /*** + page sidebar + ***/ + .page-sidebar { + background-color: #0d4687 !important; + } + + .page-sidebar > ul > li > a { + border-top: 1px solid #195dab !important; + } + + .page-sidebar > ul > li:first-child > a { + border-top: 0 !important; + } + + .page-sidebar > ul > li:last-child > a { + border-bottom: 0 !important; + } + + .page-sidebar > ul > li.has-sub.open > a, + .page-sidebar > ul > li >a:hover, + .page-sidebar > ul > li:hover>a { + background: #0e4686; + } + + + .page-sidebar .sidebar-search input{ + background-color: #0d4687 !important; + } + + .header .nav li.dropdown .dropdown-toggle i { + color: #b6cbd8 !important; + } +} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_brown.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_brown.css" new file mode 100644 index 0000000..90fdd7c --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_brown.css" @@ -0,0 +1,205 @@ +/*** +blue theme +***/ + +/*** +Reset and overrides +***/ +body { + background-color:#623f18 !important; +} + +/*** +Page header +***/ +.header .navbar-inner { + filter:none !important; + background-image: none !important; + background-color: #271c0f !important; +} + +.header .btn-navbar { + background-color: #271c0f !important; +} + +.header .nav .dropdown-toggle:hover, +.header .nav .dropdown.open .dropdown-toggle { + background-color: #1c1308 !important; +} + +.header .nav li.dropdown .dropdown-toggle i { + color: #856541 !important; +} + +/*** +Page sidebar +***/ +.page-sidebar > ul > li > a { + border-top: 1px solid #7e562a !important; + color: #fff !important; +} + +.page-sidebar > ul > li:first-child > a { + border-top: 1px solid transparent !important; +} + +.page-sidebar > ul > li:last-child > a { + border-bottom: 1px solid transparent !important; +} + +.page-sidebar > ul > li a i { + color: #9a6d3a !important; +} + +.page-sidebar > ul > li.has-sub.open > a, +.page-sidebar > ul > li >a:hover, +.page-sidebar > ul > li:hover>a { + background: #4e3112; +} + +.page-sidebar > ul > li.active > a{ + background: #4e3112 !important; + border-top-color: transparent !important; + color:#fff !important; +} + +.page-sidebar > ul > li > ul.sub { + margin: 0px; + padding: 4px 0px; + background: #593915; +} + +.page-sidebar > ul > li > ul.sub > li > a { + color: #fff; + margin-left:0px; + padding-left: 50px; + display: block; +} + +.page-sidebar > ul > li > ul.sub > li:first-child > a { + border-top: 0px !important; +} + +.page-sidebar > ul > li > ul.sub > li.active > a, +.page-sidebar > ul > li > ul.sub > li > a:hover { + color: #fff !important; + background: #644119 !important; +} + +.page-sidebar .sidebar-search input { + background-color: #623f18 !important; + color: #b18d65; +} + +.page-sidebar .sidebar-search input::-webkit-input-placeholder { + color: #b18d65 !important; +} + +.page-sidebar .sidebar-search input:-moz-placeholder { + color: #b18d65 !important; +} + +.page-sidebar .sidebar-search input:-ms-input-placeholder { + color: #b18d65 !important; +} + +.page-sidebar .sidebar-search .input-box { + border-bottom-color: #845f36 !important; +} + +.page-sidebar .sidebar-search .submit { + background-image: url(../img/search-icon-brown.png); +} + +/*** +Sidebar toggler +***/ +.sidebar-toggler { + background-image: url(../img/sidebar-toggler-brown.jpg); + background-color: #333; +} + +/* search box bg color on expanded */ +.sidebar-closed .page-sidebar .sidebar-search.open { + background-color: #623f18 !important; +} + +.sidebar-closed .page-sidebar .sidebar-search.open .remove { + background-image: url("../img/sidebar-search-close-brown.png"); +} + +/* sub menu bg color on hover menu item */ +.sidebar-closed .page-sidebar > ul > li.has-sub:hover .sub { + background-color: #593915; +} + +/*** +Gritters +***/ +.gritter-top { + background:url(../gritter/images/gritter-brown.png) no-repeat left -30px !important; +} + +.gritter-bottom { + background:url(../gritter/images/gritter-brown.png) no-repeat left bottom !important; +} + +.gritter-item { + display:block; + background:url(../gritter/images/gritter-brown.png) no-repeat left -40px !important; +} + +.gritter-close { + background:url(../gritter/images/gritter-brown.png) no-repeat left top !important; +} + +.gritter-title { + text-shadow:none !important; /* Not supported by IE :( */ +} + +/* for the light (white) version of the gritter notice */ +.gritter-light .gritter-item, +.gritter-light .gritter-bottom, +.gritter-light .gritter-top, +.gritter-light .gritter-close { + background-image: url(../gritter/images/gritter-light.png) !important; +} + +/*** +Landscape phone to portrait tablet +***/ +@media (max-width:979px) { + /*** + page sidebar + ***/ + .page-sidebar { + background-color: #3f260a !important; + } + + .page-sidebar > ul > li > a { + border-top: 1px solid #633f18 !important; + } + + .page-sidebar > ul > li:first-child > a { + border-top: 0 !important; + } + + .page-sidebar > ul > li:last-child > a { + border-bottom: 0 !important; + } + + .page-sidebar > ul > li.has-sub.open > a, + .page-sidebar > ul > li >a:hover, + .page-sidebar > ul > li:hover>a { + background: #4e3112; + } + + + .page-sidebar .sidebar-search input{ + background-color: #3f260a !important; + } + + .header .nav li.dropdown .dropdown-toggle i { + color: #8d6231 !important; + } +} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_default.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_default.css" new file mode 100644 index 0000000..9c748bc --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_default.css" @@ -0,0 +1,161 @@ +/*** +default theme +***/ + +/*** +Reset and overrides +***/ +body { + background-color:#3d3d3d !important; +} + +/*** +Page header +***/ +.header .navbar-inner { + filter:none !important; + background-image: none !important; + background-color: #1f1f1f !important; +} + +.header .btn-navbar { + background-color: #1f1f1f !important; +} + +.header .nav .dropdown-toggle:hover, +.header .nav .dropdown.open .dropdown-toggle { + background-color: #333 !important; +} + +.header .nav li.dropdown .dropdown-toggle i { + color: #808080 !important; +} + +/*** +Page sidebar +***/ +.page-sidebar > ul > li > a { + border-top: 1px solid #595959 !important; + color: #fff !important; +} + +.page-sidebar > ul > li:last-child > a { + border-bottom: 1px solid transparent !important; +} + +.page-sidebar > ul > li:nth-child(3) > a { + border-top-color: transparent !important; +} + +.page-sidebar > ul > li > a i { + color: #808080; +} + +.page-sidebar > ul > li.has-sub.open >a, +.page-sidebar > ul > li >a:hover, +.page-sidebar > ul > li:hover>a { + background: #313131; +} + +.page-sidebar > ul > li.active > a { + background: #e02222 !important; + border-top-color: transparent !important; + color:#fff; +} + +.page-sidebar > ul > li.active > a i { + color:#fff; +} + +.page-sidebar > ul > li > a.open { + background: #313131; +} + +.page-sidebar ul > li > a .arrow:before, +.page-sidebar > ul > li > a .arrow.open:before { + color: #919091 !important; +} + +.page-sidebar ul > li.active > a .arrow:before, +.page-sidebar > ul > li.active > a .arrow.open:before { + color: #fff !important; +} + +.page-sidebar > ul > li > ul.sub > li > a { + color: #fff; + margin-left:0px; + padding-left: 5px; +} + +.page-sidebar > ul > li > ul.sub > li:first-child > a { + border-top: 0px !important; +} + +.page-sidebar > ul > li > ul.sub > li.active > a, +.page-sidebar > ul > li > ul.sub > li > a:hover { + color: #fff !important; + background: #4b4b4b !important; +} + +.page-sidebar > ul > li > ul.sub > li > a:hover { + background: #4b4b4b !important; +} + +.page-sidebar .sidebar-search input{ + background-color: #3d3d3d !important; + color: #bababa !important; +} + +.page-sidebar .sidebar-search .input-box { + border-bottom-color: #959595 !important; +} + +.page-sidebar .sidebar-search .submit { + background-image: url(../img/search-icon.png); +} + +/*** +Sidebar toggler +***/ +.sidebar-toggler { + background-image: url(../img/sidebar-toggler.jpg); + background-color: #333; +} + +/* search box bg color on expanded */ +.sidebar-closed .page-sidebar .sidebar-search.open { + background-color: #3d3d3d !important; +} + +.sidebar-closed .page-sidebar .sidebar-search.open .remove { + background-image: url("../img/sidebar-search-close.png"); +} + +/* sub menu bg color on hover menu item */ +.sidebar-closed .page-sidebar > ul > li.has-sub:hover .sub { + background-color: #3d3d3d; +} + +/*** +Landscape phone to portrait tablet +***/ +@media (max-width:979px) { + /*** + page sidebar + ***/ + .page-sidebar { + background-color: #232427 !important; + } + + .page-sidebar > ul > li > a { + border-top: 1px solid #2c2d30 !important; + } + + .page-sidebar > ul > li:last-child > a { + border-bottom: 0 !important; + } + + .page-sidebar .sidebar-search input{ + background-color: #232427 !important; + } +} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_light.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_light.css" new file mode 100644 index 0000000..b66e3e3 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_light.css" @@ -0,0 +1,181 @@ +/*** +blue theme +***/ + +/*** +Reset and overrides +***/ +body { + background-color:#fafafa !important; +} + +/*** +Page header +***/ +.header .navbar-inner { + filter:none !important; + background-image: none !important; + background-color: #434343 !important; +} + +.header .btn-navbar { + background-color: #434343 !important; +} + +.header .nav .dropdown-toggle:hover, +.header .nav .dropdown.open .dropdown-toggle { + background-color: #4f4f4f !important; +} + +.header .nav li.dropdown .dropdown-toggle i { + color: #808080 !important; +} + +/*** +Page sidebar +***/ +.page-content { + border-left: 1px solid #e2e2e2 !important; + border-bottom: 1px solid #e2e2e2 !important; +} + +.page-sidebar > ul > li > a { + border-top: 1px solid #e2e2e2 !important; + color: #000 !important; + font-weight: 400; +} + +.page-sidebar > ul > li:first-child > a { + border-top: 1px solid transparent !important; +} + +.page-sidebar > ul > li:last-child > a { + border-bottom: 1px solid transparent !important; +} + +.page-sidebar > ul > li a i { + color: #ccc !important; +} + +.page-sidebar > ul > li.has-sub.open >a, +.page-sidebar > ul > li >a:hover, +.page-sidebar > ul > li:hover>a { + background: #eee; + border-top: 1px solid #e8e8e8; +} + +.page-sidebar > ul > li.active > a .selected { + right:-7px; + top:1px; + width: 7px; + height: 39px; + background-image: url("../img/sidebar-menu-arrow-green.png"); +} + +.page-sidebar > ul > li.active > a{ + background: #28b779 !important; + border-top-color: transparent !important; + color:#fff !important; +} +.page-sidebar > ul > li.active > a i { + color:#fff !important; +} +.page-sidebar > ul > li > a.open { + background: #fff; +} + +.page-sidebar > ul > li > ul.sub > li > a { + color: #000; + margin-left:0px; + padding-left: 50px; +} + +.page-sidebar > ul > li > ul.sub > li:first-child > a { + border-top: 0px !important; +} + +.page-sidebar > ul > li > ul.sub > li.active > a, +.page-sidebar > ul > li > ul.sub > li > a:hover { + color: #818181 !important; + background: #efefef !important; +} + +.page-sidebar .sidebar-search input{ + background-color: #fbfbfb !important; + color: #727272 !important; +} + +.page-sidebar .sidebar-search .input-box { + border-bottom-color: #cccccc !important; +} + +.page-sidebar .sidebar-search .submit { + background-image: url(../img/search-icon-white.png); +} + +/*** +Sidebar toggler +***/ +.sidebar-toggler { + background-image: url(../img/sidebar-toggler-light.jpg); + background-color: #333; +} + +/* search box bg color on expanded */ +.sidebar-closed .page-sidebar .sidebar-search.open { + background-color: #fbfbfb !important; +} + +.sidebar-closed .page-sidebar .sidebar-search.open .remove { + background-image: url("../img/sidebar-search-close-light.png"); +} + +/* sub menu bg color on hover menu item */ +.sidebar-closed .page-sidebar > ul > li.has-sub:hover .sub { + background-color: #fbfbfb; +} + +/*** +Landscape phone to portrait tablet +***/ +@media (max-width:979px) { + /*** + page sidebar + ***/ + .page-sidebar { + background-color: #f1f1f1 !important; + border-right: none !important; + } + + .page-sidebar > ul > li > a { + border-top: 1px solid #ccc !important; + } + + .page-sidebar > ul > li:first-child > a { + border-top: 0 !important; + } + + .page-sidebar > ul > li:last-child > a { + border-bottom: 0 !important; + } + + .page-sidebar > ul > li.has-sub.open > a, + .page-sidebar > ul > li >a:hover, + .page-sidebar > ul > li:hover>a { + background: #ccc; + } + + .page-sidebar > ul > li > a:hover > i { + color: #333 !important; + } + + .page-sidebar > ul > li > ul.sub > li.active > a, + .page-sidebar > ul > li > ul.sub > li > a:hover { + background: #ccc !important; + } + + + .page-sidebar .sidebar-search input{ + background-color: #f1f1f1 !important; + } +} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_purple.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_purple.css" new file mode 100644 index 0000000..3d58746 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_purple.css" @@ -0,0 +1,206 @@ +/*** +blue theme +***/ + +/*** +Reset and overrides +***/ +body { + background-color:#701584 !important; +} + +/*** +Page header +***/ +.header .navbar-inner { + filter:none !important; + background-image: none !important; + background-color: #3f084b !important; +} + +.header .btn-navbar { + background-color: #3f084b !important; +} + +.header .nav .dropdown-toggle:hover, +.header .nav .dropdown.open .dropdown-toggle { + background-color: #290331 !important; +} + +.header .nav li.dropdown .dropdown-toggle i { + color: #863698 !important; +} + +/*** +Page sidebar +***/ +.page-sidebar > ul > li > a { + border-top: 1px solid #8c23a3 !important; + color: #fff !important; +} + +.page-sidebar > ul > li:first-child > a { + border-top: 1px solid transparent !important; +} + +.page-sidebar > ul > li:last-child > a { + border-bottom: 1px solid transparent !important; +} + +.page-sidebar > ul > li a i { + color: #b348cb !important; +} + +.page-sidebar > ul > li.has-sub.open > a, +.page-sidebar > ul > li >a:hover, +.page-sidebar > ul > li:hover>a { + background: #571067; +} + +.page-sidebar > ul > li.active > a{ + background: #571067 !important; + border-top-color: transparent !important; + color:#fff !important; +} + +.page-sidebar > ul > li > ul.sub { + margin: 0px; + padding: 4px 0px; + background: #641775; +} + +.page-sidebar > ul > li > ul.sub > li > a { + color: #fff; + margin-left:0px; + padding-left: 50px; + display: block; +} + +.page-sidebar > ul > li > ul.sub > li:first-child > a { + border-top: 0px !important; +} + +.page-sidebar > ul > li > ul.sub > li.active > a, +.page-sidebar > ul > li > ul.sub > li > a:hover { + color: #fff !important; + background: #6f1d80 !important; +} + +.page-sidebar .sidebar-search input { + background-color: #701584 !important; + color: #bf55d7; +} + +.page-sidebar .sidebar-search input::-webkit-input-placeholder { + color: #b84dd0 !important; +} + +.page-sidebar .sidebar-search input:-moz-placeholder { + color: #b84dd0 !important; +} + +.page-sidebar .sidebar-search input:-ms-input-placeholder { + color: #b84dd0 !important; +} + +.page-sidebar .sidebar-search .input-box { + border-bottom-color: #a93bc1 !important; +} + +.page-sidebar .sidebar-search .submit { + background-image: url(../img/search-icon-purple.png); +} + +/*** +Sidebar toggler +***/ +.sidebar-toggler { + background-image: url(../img/sidebar-toggler-purple.jpg); + background-color: #333; +} + +/* search box bg color on expanded */ +.sidebar-closed .page-sidebar .sidebar-search.open { + background-color: #701584 !important; +} + +.sidebar-closed .page-sidebar .sidebar-search.open .remove { + background-image: url("../img/sidebar-search-close-purple.png"); +} + +/* sub menu bg color on hover menu item */ +.sidebar-closed .page-sidebar > ul > li.has-sub:hover .sub { + background-color: #641775; +} + +/*** +Gritters +***/ +.gritter-top { + background:url(../gritter/images/gritter-purple.png) no-repeat left -30px !important; +} + +.gritter-bottom { + background:url(../gritter/images/gritter-purple.png) no-repeat left bottom !important; +} + +.gritter-item { + display:block; + background:url(../gritter/images/gritter-purple.png) no-repeat left -40px !important; +} + +.gritter-close { + background:url(../gritter/images/gritter-purple.png) no-repeat left top !important; +} + +.gritter-title { + text-shadow:none !important; /* Not supported by IE :( */ +} + +/* for the light (white) version of the gritter notice */ +.gritter-light .gritter-item, +.gritter-light .gritter-bottom, +.gritter-light .gritter-top, +.gritter-light .gritter-close { + background-image: url(../gritter/images/gritter-light.png) !important; +} + + +/*** +Landscape phone to portrait tablet +***/ +@media (max-width:979px) { + /*** + page sidebar + ***/ + .page-sidebar { + background-color: #4c095b !important; + } + + .page-sidebar > ul > li > a { + border-top: 1px solid #701584 !important; + } + + .page-sidebar > ul > li:first-child > a { + border-top: 0 !important; + } + + .page-sidebar > ul > li:last-child > a { + border-bottom: 0 !important; + } + + .page-sidebar > ul > li.has-sub.open > a, + .page-sidebar > ul > li >a:hover, + .page-sidebar > ul > li:hover>a { + background: #571067; + } + + + .page-sidebar .sidebar-search input{ + background-color: #4c095b !important; + } + + .header .nav li.dropdown .dropdown-toggle i { + color: #b6cbd8 !important; + } +} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_responsive.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_responsive.css" new file mode 100644 index 0000000..bc6c5fc --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/css/style_responsive.css" @@ -0,0 +1,467 @@ +/*** +Large notebooks and desktops +***/ + @media (min-width: 980px) { + /*** + Remove horizontal scroll + ***/ + body { + overflow-x: hidden; + } + + /*** + Page sidebar + ***/ + .page-sidebar { + position: absolute; + width: 225px; + } + + .page-sidebar ul{ + width: 225px; + } + + /*** + Page content + ***/ + .page-content { + margin-left: 225px; + margin-top: 0px; + min-height: 860px; + } + + .full-width-page .page-content { + margin-left: 0px !important; + } +} + +/*** +For tablets and phones +***/ +@media (max-width:979px) { + + /*** + Body + ***/ + body { + margin: 0px !important; + } + + /*** + Page header + ***/ + .header { + margin: 0 !important; + } + + .header .nav li.dropdown i { + display: inline-block; + position: relative; + top:1px; + right:0px; + } + + .header .nav { + margin-bottom: 0px !important; + } + + /*** + Page container + ***/ + .page-container { + margin: 0 !important; + padding: 0 !important; + } + + .fixed-top .page-container { + margin-top: 0px !important; + } + + /*** + Page content + ***/ + .page-content { + margin: 0px !important; + padding: 0px !important; + min-height: 280px; + } + + /*** + Page sidebar + ***/ + .page-sidebar { + margin: 0 10px; + } + + .page-sidebar.in { + margin: 10px; + position: relative; + z-index: 5; + } + + .page-sidebar .sidebar-toggler { + display: none; + } + + .page-sidebar ul { + margin-top:0px; + width:100%; + } + + .page-sidebar .selected { + display: none !important; + } + + .page-sidebar .sidebar-search { + width: 220px; + margin-top: 20px; + margin-bottom:20px; + } + + /*** + Page title + ***/ + .page-title { + margin: 15px 0px; + } + + /*** + Styler panel + ***/ + .styler-panel { + top:55px; + right:20px; + } +} + +@media (min-width: 768px) and (max-width: 1280px) { + + /*** + Form wizard + ***/ + .form-wizard .step .desc { + margin-top: 10px; + display: block; + } + + /*** + Pricing tables + ***/ + + .pricing-table .rate .price, + .pricing-table2 .rate .price { + width: 100%; + display: block; + text-align: center; + margin-bottom: 10px; + } + +} + +@media (min-width: 768px) and (max-width: 979px) { + + /*** + Body + ***/ + body { + padding-top: 0px; + } + + /*** + Page sidebar + ***/ + .page-sidebar .btn-navbar.collapsed .arrow { + display: none; + } + + .page-sidebar .btn-navbar .arrow { + position: absolute; + right: 25px; + width: 0; + height: 0; + top:50px; + border-bottom: 15px solid #5f646b; + border-left: 15px solid transparent; + border-right: 15px solid transparent; + } + +} + +@media (max-width: 767px) { + + /*** + Page header + ***/ + .header .navbar-inner .container-fluid { + margin-left: 10px !important; + margin-right: 10px !important; + } + + .header .top-nav .nav{ + margin-top: 0px; + margin-right: 5px; + } + + .header .nav > li > .dropdown-menu.notification:after, + .header .nav > li > .dropdown-menu.notification:before { + margin-right: 180px; + } + + .header .nav > li > .dropdown-menu.notification { + margin-right: -180px; + } + + .header .nav > li > .dropdown-menu.inbox:after, + .header .nav > li > .dropdown-menu.inbox:before { + margin-right: 140px; + } + + .header .nav > li > .dropdown-menu.inbox { + margin-right: -140px; + } + + .header .nav > li > .dropdown-menu.tasks:after, + .header .nav > li > .dropdown-menu.tasks:before { + margin-right: 90px; + } + + .header .nav > li > .dropdown-menu.tasks { + margin-right: -90px; + } + + /*** + Page content + ***/ + .page-content { + padding: 10px !important; + } + + /*** + Page title + ***/ + .page-title { + margin-bottom: 20px; + } + + /*** + Styler pagel + ***/ + .styler-panel { + top:58px; + right:12px; + } + + /*** + Page breadcrumb + ***/ + .breadcrumb { + padding-left: 10px; + padding-right: 10px; + } + + /*** + Portlet form action + ***/ + .portlet-body.form .form-actions{ + padding-left: 15px; + } + + /*** + Gritter notification + ***/ + #gritter-notice-wrapper { + right:1px !important; + } + + /*** + Form input validation states + ***/ + .input-icon .input-error, + .input-icon .input-warning, + .input-icon .input-success { + top:-27px; + float: right; + right:10px !important; + } + + /*** + Advance tables + ***/ + .table-advance tr td.highlight:first-child a { + margin-left: 8px; + } + + /*** + Footer + ***/ + .footer { + padding-left: 10px; + padding-right: 10px; + } + + .footer .go-top { + float: right; + display: block; + margin-top: -22px; + margin-right: 0px; + margin-bottom: 5px !important; + } + + /*** + Vertical inline menu + ***/ + .ver-inline-menu li.active:after { + display: none; + } + + /*** + Form controls + ***/ + .form-horizontal .form-actions { + padding-left: 180px; + } + + .portlet .form-horizontal .form-actions { + padding-left: 190px; + } +} + +@media (max-width: 480px) { + + /*** + Header navbar + ***/ + .header .nav { + clear:both !important; + } + + .header .nav > li.dropdown .dropdown-toggle { + margin-top:3px !important; + } + + .header .nav li.dropdown .dropdown-toggle .badge { + top: 11px; + } + + /*** + Page sidebar + ***/ + .page-sidebar.in { + margin-top: 7px !important; + } + + /*** + Styler panel + ***/ + .styler-panel { + top:92px; + right:12px; + } + + /*** + Page title + ***/ + .page-title small { + display: block; + clear: both; + } + + /*** + Dashboard date range panel + ***/ + .page-content .breadcrumb .dashboard-date-range { + padding-bottom: 8px; + } + + .page-content .breadcrumb .dashboard-date-range span { + display: none; + } + + /*** + Login page + ***/ + .login .logo { + margin-top:10px; + } + + .login .content { + padding: 30px; + width: 222px; + } + + .login .content h3 { + font-size: 22px; + } + + .login .content .m-wrap { + width: 180px; + } + + .login .checkbox { + font-size: 13px; + } + + /*** + Form controls + ***/ + .form-horizontal.form-bordered .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + margin-top: 0; + margin-left: 10px; + } + + .form-horizontal.form-bordered .controls { + padding-top: 0 !important; + border-left: 0 !important; + } + + .form-horizontal.form-bordered.form-label-stripped .control-group:nth-child(even) { + background-color: none !important; + } + + .form-horizontal.form-bordered.form-label-stripped .control-group:nth-child(even) .controls { + background-color: none !important; + } + + .form-horizontal.form-row-seperated .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + margin-left: 10px; + } + + .form-horizontal.form-row-seperated .controls { + border-left: 0; + margin-left: 10px; + } + + .portlet .form-horizontal .form-actions { + padding-left: 10px; + } + + /*** + Hidden phone + ***/ + .hidden-480 { + display: none; + } +} + +@media (max-width: 320px) { + + .header .nav > li.dropdown .dropdown-toggle { + padding-left: 8px !important; + padding-right: 8px !important; + } + + /*** + Hidden phone + ***/ + .hidden-320 { + display: none; + } +} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/DT_bootstrap.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/DT_bootstrap.css" new file mode 100644 index 0000000..e5e37f6 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/DT_bootstrap.css" @@ -0,0 +1,178 @@ + +div.dataTables_length label { + float: left; + text-align: left; +} + +div.dataTables_length select { + width: 75px; +} + +div.dataTables_filter label { + float: right; +} + +div.dataTables_info { + padding-top: 8px; +} + +div.dataTables_paginate { + float: right; + margin: 0; +} + +table.table { + clear: both; + margin-bottom: 6px !important; + max-width: none !important; +} + +table.table thead .sorting, +table.table thead .sorting_asc, +table.table thead .sorting_desc, +table.table thead .sorting_asc_disabled, +table.table thead .sorting_desc_disabled { + cursor: pointer; + *cursor: hand; +} + +table.table thead .sorting { background: url('images/sort_both.png') no-repeat center right; } +table.table thead .sorting_asc { background: url('images/sort_asc.png') no-repeat center right; } +table.table thead .sorting_desc { background: url('images/sort_desc.png') no-repeat center right; } + +table.table thead .sorting_asc_disabled { background: url('images/sort_asc_disabled.png') no-repeat center right; } +table.table thead .sorting_desc_disabled { background: url('images/sort_desc_disabled.png') no-repeat center right; } + +table.dataTable th:active { + outline: none; +} + +/* Scrolling */ +div.dataTables_scrollHead table { + margin-bottom: 0 !important; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +div.dataTables_scrollHead table thead tr:last-child th:first-child, +div.dataTables_scrollHead table thead tr:last-child td:first-child { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.dataTables_scrollBody table { + border-top: none; + margin-bottom: 0 !important; +} + +div.dataTables_scrollBody tbody tr:first-child th, +div.dataTables_scrollBody tbody tr:first-child td { + border-top: none; +} + +div.dataTables_scrollFoot table { + border-top: none; +} + + + + +/* + * TableTools styles + */ +.table tbody tr.active td, +.table tbody tr.active th { + background-color: #08C; + color: white; +} + +.table tbody tr.active:hover td, +.table tbody tr.active:hover th { + background-color: #0075b0 !important; +} + +.table-striped tbody tr.active:nth-child(odd) td, +.table-striped tbody tr.active:nth-child(odd) th { + background-color: #017ebc; +} + +table.DTTT_selectable tbody tr { + cursor: pointer; + *cursor: hand; +} + +div.DTTT .btn { + color: #333 !important; + font-size: 12px; +} + +div.DTTT .btn:hover { + text-decoration: none !important; +} + + +ul.DTTT_dropdown.dropdown-menu a { + color: #333 !important; /* needed only when demo_page.css is included */ +} + +ul.DTTT_dropdown.dropdown-menu li:hover a { + background-color: #0088cc; + color: white !important; +} + +/* TableTools information display */ +div.DTTT_print_info.modal { + height: 150px; + margin-top: -75px; + text-align: center; +} + +div.DTTT_print_info h6 { + font-weight: normal; + font-size: 28px; + line-height: 28px; + margin: 1em; +} + +div.DTTT_print_info p { + font-size: 14px; + line-height: 20px; +} + + + +/* + * FixedColumns styles + */ +div.DTFC_LeftHeadWrapper table, +div.DTFC_LeftFootWrapper table, +table.DTFC_Cloned tr.even { + background-color: white; +} + +div.DTFC_LeftHeadWrapper table { + margin-bottom: 0 !important; + border-top-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child, +div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.DTFC_LeftBodyWrapper table { + border-top: none; + margin-bottom: 0 !important; +} + +div.DTFC_LeftBodyWrapper tbody tr:first-child th, +div.DTFC_LeftBodyWrapper tbody tr:first-child td { + border-top: none; +} + +div.DTFC_LeftFootWrapper table { + border-top: none; +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/DT_bootstrap.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/DT_bootstrap.js" new file mode 100644 index 0000000..d85dfca --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/DT_bootstrap.js" @@ -0,0 +1,145 @@ +/* Set the defaults for DataTables initialisation */ +$.extend( true, $.fn.dataTable.defaults, { + "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>", + "sPaginationType": "bootstrap", + "oLanguage": { + "sLengthMenu": "_MENU_ records per page" + } +} ); + + +/* Default class modification */ +$.extend( $.fn.dataTableExt.oStdClasses, { + "sWrapper": "dataTables_wrapper form-inline" +} ); + + +/* API method to get paging information */ +$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) +{ + return { + "iStart": oSettings._iDisplayStart, + "iEnd": oSettings.fnDisplayEnd(), + "iLength": oSettings._iDisplayLength, + "iTotal": oSettings.fnRecordsTotal(), + "iFilteredTotal": oSettings.fnRecordsDisplay(), + "iPage": Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ), + "iTotalPages": Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength ) + }; +}; + + +/* Bootstrap style pagination control */ +$.extend( $.fn.dataTableExt.oPagination, { + "bootstrap": { + "fnInit": function( oSettings, nPaging, fnDraw ) { + var oLang = oSettings.oLanguage.oPaginate; + var fnClickHandler = function ( e ) { + e.preventDefault(); + if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { + fnDraw( oSettings ); + } + }; + + $(nPaging).addClass('pagination').append( + '' + ); + var els = $('a', nPaging); + $(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler ); + $(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler ); + }, + + "fnUpdate": function ( oSettings, fnDraw ) { + var iListLength = 5; + var oPaging = oSettings.oInstance.fnPagingInfo(); + var an = oSettings.aanFeatures.p; + var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); + + if ( oPaging.iTotalPages < iListLength) { + iStart = 1; + iEnd = oPaging.iTotalPages; + } + else if ( oPaging.iPage <= iHalf ) { + iStart = 1; + iEnd = iListLength; + } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { + iStart = oPaging.iTotalPages - iListLength + 1; + iEnd = oPaging.iTotalPages; + } else { + iStart = oPaging.iPage - iHalf + 1; + iEnd = iStart + iListLength - 1; + } + + for ( i=0, iLen=an.length ; i'+j+'') + .insertBefore( $('li:last', an[i])[0] ) + .bind('click', function (e) { + e.preventDefault(); + oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; + fnDraw( oSettings ); + } ); + } + + // Add / remove disabled classes from the static elements + if ( oPaging.iPage === 0 ) { + $('li:first', an[i]).addClass('disabled'); + } else { + $('li:first', an[i]).removeClass('disabled'); + } + + if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { + $('li:last', an[i]).addClass('disabled'); + } else { + $('li:last', an[i]).removeClass('disabled'); + } + } + } + } +} ); + + +/* + * TableTools Bootstrap compatibility + * Required TableTools 2.1+ + */ +if ( $.fn.DataTable.TableTools ) { + // Set the classes that TableTools uses to something suitable for Bootstrap + $.extend( true, $.fn.DataTable.TableTools.classes, { + "container": "DTTT btn-group", + "buttons": { + "normal": "btn", + "disabled": "disabled" + }, + "collection": { + "container": "DTTT_dropdown dropdown-menu", + "buttons": { + "normal": "", + "disabled": "disabled" + } + }, + "print": { + "info": "DTTT_print_info modal" + }, + "select": { + "row": "active" + } + } ); + + // Have the collection use a bootstrap compatible dropdown + $.extend( true, $.fn.DataTable.TableTools.DEFAULTS.oTags, { + "collection": { + "container": "ul", + "button": "li", + "liner": "a" + } + } ); +} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/images/sort_asc.png" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/images/sort_asc.png" new file mode 100644 index 0000000000000000000000000000000000000000..a88d7975fe9017e4e5f2289a94bd1ed66a5f59dc GIT binary patch literal 1118 zcmbVLO=#0l98awuV{uMt6P_}u4rcI3idKFP2SpU%ZJIE?RL`X zK?Oyo=*5GG2SxDYK=7akJqV&hrl{aWJa`y*5xh+1%i2y4V}gO?edPc9{r;a9vjc}) zn|Cxb4AYwFmvVG%_ui)U^y_4!ujsO!qzYuv8YUIR!Aw%KiWp=JrG#@>(I!s4#N7H->?w+cxsH2#GA};A>g8lyFDGPKh!5)vuP_{)}*83+N zJUBU!S0_i+E{*Lu1iGsNB``2iK-CyCU7?y_mv{xb_pUh>ESZqe1Y2{eAZLMSIT%EO zFrdOH1W^=3p>Qk~I{J+k#s5zQ@j{%aIA!l^GQjJ zqA1Uc2%!{8qBKfMNh#9DCnKS_*uZ8?mnf!+8@f8xtz#prVg=E`3bCBLWsNmDAX~PG z<(4fQh=UOzE2?gKXRkc9XeI3Er?HlHECVd%SI}3`hy1_du3@$R$r(qT;k@Sft63UX zv;)2Ea_iH>^6+4jPK-lGM{Zw37Tz>~~zlHzO61x51(V4jcaKrcIVDG$-d>)z}S|7f!xxYhfUE}Kj zug_h&HZN}go22$5Ym1}P8~vYNx7-~$TWFJ;_nh!wFYSAQJF{CCo=xpK8^7?iY1^!H haOA^1D_`VC7fU=jcT literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/images/sort_both.png" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/images/sort_both.png" new file mode 100644 index 0000000000000000000000000000000000000000..18670406bc01ab2721781822dd6478917745ff54 GIT binary patch literal 1136 zcmaJ>O=#0l98WD1Hz^GK+C=e@fhgE~b#2$Ux^~T`1v5)mw1NlIe}zC z+ge9alrMQeN|SYi`>tC{zIG}!O_oO7k;UC8kBf>8sknx65F`zy2d1H-4fel=trX>@ z^-LCL<%6P%3`TJ=Ov$hao1$9VN|vJbLJV@SM>nJN{L>dS(6uOiBq(#Tm4F5Pz>p2Q zhq^NAP_G)%=(c^JwImV&17Zb~j6Ty5OHq1RS0sD)n5Dro1ouYi-$7;N6i6T&f*`~B zRW8JV5YO;|=5RQ?2M8R`v7Es2f}anI0YT(Au=3Evo2})=wA8uci&#;*fUzaAY_V8m ziU9`MJuDxIL|hF)@DqgJ88op{@|#XmML~j&YU>u(kqKNyC5HxZlqQk>PQkENWld+L zOr&6JNwHX-;oOueKw17j)G$`j4o<^A@%~fT$qZVMO+yC_*eYpUzR7iEi3uAj7}*(w z`YKgS6%a;F0a+l?9R#wX>ZWTi<7HV)nhsV>6(*%9O%xbi*F?TK!383rh#(|*p6}q} zd?z25;!?0(hzA2Li3(Rj>VN@FT;Xbexbdo7cN7eZc$T28pMYAYjSR4yvZz;&C0tc+ zg{xJMrKKvDCBd+6WB+P&<%mp=yImbyVyq56G|9BvWUP^I>ms=lb4e+lDSgg;Us`JO zKB6{wH+j~F#-A4FY3K3qm~Z6m@V6}oQ%8?p-E$dw`#0C$PJfmCV8)v}3>Ydha%`fZ zJk~G*M^A3LGk$Td;R`icF67R~`sBOHv)Hlqlc%$jy~9_oZJcNyWxkbb_O9u#|7hLF z-<-NMLzh3S0YA@8gd1Pt(Df|3@16Y-n=aSvsF@AkI`ioeFg>&H3bXU&vBnE6gIChkL+(Ey+0iB4Z$Eze7t_CX>Hq)$ literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/images/sort_desc.png" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/images/sort_desc.png" new file mode 100644 index 0000000000000000000000000000000000000000..def071ed5afd264a036f6d9e75856366fd6ad153 GIT binary patch literal 1127 zcmbVMOK8+U7*1U&zKRu5sR)h{1;yRWWV^4}ShvZpU2*HWU2!iy(qy)cZ89;Lb+`3m zMbruv!GjkO!3qksP*5)lD)k}=Dp*ht-n@8G5m8XoN!zU+ih_Y;=AZe$?|)|~*Ri8v z(dtDU$2DZy)jV65`|pB!_H}d7Cv0h=sUqzpC0fy3%q0!dg+a#Bx^W(BM*oq=xP{{a zC9_bZ#q2IgCss)FbwX9kVQ7wPX{|b%-is;d!ri7V^Y8E8=YeU+{JuyQW*r6hnC$~D z?i}bS=mWia!r)uCftISo2rNuBP__DOPpZoN6tBeg{;|M=DHYl)^V3chvpJv;7lTL$ z26Y&PAc{gL+#HL=wg3?#C_qs_Vi3iouqZ(YW*(kdbB&UeSJN}Lm?ZN(lsb|iR4SEF zB^)Adw}29fgwG+0L8cM(`faLJgSNN6#-L(PcTI+l@K3y+Xf(g*^61+0|J+O6zN2mb?UNGh6GU@A{1+eF%d@N2(^XdVmhis(y25|iAr;gV=io5OsYy0 zB}Gv|2&GUGrBPB%s*yG^841Ug8a88lRI_zlvuiTDGuXsmv6A9qjS{y&NMEf3ay^6+ zuZK85>5PD^rkl1e`{kLAR>iJ)6dP%mSYRr@k~xQcDE=$%X{_--ITM&Og5Ml}G)wJ> zb)dhUZG9%p4iC23#JFrUCcmwHz{cugMoku~ue-kg{Mj0~%`FeCcz9jAdg}QET-kSG za`+2B_+lRTaeAVz>E`F1pN7h>B=BbGqcz13d%ywZR&4OjkNNrF_U}#EcXDGa@V52B z>JnIW7#s%CHi literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/jquery.dataTables.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/jquery.dataTables.js" new file mode 100644 index 0000000..3f6e4db --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/data-tables/jquery.dataTables.js" @@ -0,0 +1,12098 @@ +/** + * @summary DataTables + * @description Paginate, search and sort HTML tables + * @version 1.9.4 + * @file jquery.dataTables.js + * @author Allan Jardine (www.sprymedia.co.uk) + * @contact www.sprymedia.co.uk/contact + * + * @copyright Copyright 2008-2012 Allan Jardine, all rights reserved. + * + * This source file is free software, under either the GPL v2 license or a + * BSD style license, available at: + * http://datatables.net/license_gpl2 + * http://datatables.net/license_bsd + * + * This source file is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. + * + * For details please refer to: http://www.datatables.net + */ + +/*jslint evil: true, undef: true, browser: true */ +/*globals $, jQuery,define,_fnExternApiFunc,_fnInitialise,_fnInitComplete,_fnLanguageCompat,_fnAddColumn,_fnColumnOptions,_fnAddData,_fnCreateTr,_fnGatherData,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnServerParams,_fnAddOptionsHtml,_fnFeatureHtmlTable,_fnScrollDraw,_fnAdjustColumnSizing,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnBuildSearchArray,_fnBuildSearchRow,_fnFilterCreateSearch,_fnDataToSearch,_fnSort,_fnSortAttachListener,_fnSortingClasses,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnFeatureHtmlLength,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnNodeToDataIndex,_fnVisbleColumns,_fnCalculateEnd,_fnConvertToWidth,_fnCalculateColumnWidths,_fnScrollingWidthAdjust,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnDetectType,_fnSettingsFromNode,_fnGetDataMaster,_fnGetTrNodes,_fnGetTdNodes,_fnEscapeRegex,_fnDeleteIndex,_fnReOrderIndex,_fnColumnOrdering,_fnLog,_fnClearTable,_fnSaveState,_fnLoadState,_fnCreateCookie,_fnReadCookie,_fnDetectHeader,_fnGetUniqueThs,_fnScrollBarWidth,_fnApplyToChildren,_fnMap,_fnGetRowData,_fnGetCellData,_fnSetCellData,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnApplyColumnDefs,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnJsonString,_fnRender,_fnNodeToColumnIndex,_fnInfoMacros,_fnBrowserDetect,_fnGetColumns*/ + +(/** @lends */function( window, document, undefined ) { + +(function( factory ) { + "use strict"; + + // Define as an AMD module if possible + if ( typeof define === 'function' && define.amd ) + { + define( ['jquery'], factory ); + } + /* Define using browser globals otherwise + * Prevent multiple instantiations if the script is loaded twice + */ + else if ( jQuery && !jQuery.fn.dataTable ) + { + factory( jQuery ); + } +} +(/** @lends */function( $ ) { + "use strict"; + /** + * DataTables is a plug-in for the jQuery Javascript library. It is a + * highly flexible tool, based upon the foundations of progressive + * enhancement, which will add advanced interaction controls to any + * HTML table. For a full list of features please refer to + * DataTables.net. + * + * Note that the DataTable object is not a global variable but is + * aliased to jQuery.fn.DataTable and jQuery.fn.dataTable through which + * it may be accessed. + * + * @class + * @param {object} [oInit={}] Configuration object for DataTables. Options + * are defined by {@link DataTable.defaults} + * @requires jQuery 1.3+ + * + * @example + * // Basic initialisation + * $(document).ready( function { + * $('#example').dataTable(); + * } ); + * + * @example + * // Initialisation with configuration options - in this case, disable + * // pagination and sorting. + * $(document).ready( function { + * $('#example').dataTable( { + * "bPaginate": false, + * "bSort": false + * } ); + * } ); + */ + var DataTable = function( oInit ) + { + + + /** + * Add a column to the list used for the table with default values + * @param {object} oSettings dataTables settings object + * @param {node} nTh The th element for this column + * @memberof DataTable#oApi + */ + function _fnAddColumn( oSettings, nTh ) + { + var oDefaults = DataTable.defaults.columns; + var iCol = oSettings.aoColumns.length; + var oCol = $.extend( {}, DataTable.models.oColumn, oDefaults, { + "sSortingClass": oSettings.oClasses.sSortable, + "sSortingClassJUI": oSettings.oClasses.sSortJUI, + "nTh": nTh ? nTh : document.createElement('th'), + "sTitle": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '', + "aDataSort": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol], + "mData": oDefaults.mData ? oDefaults.oDefaults : iCol + } ); + oSettings.aoColumns.push( oCol ); + + /* Add a column specific filter */ + if ( oSettings.aoPreSearchCols[ iCol ] === undefined || oSettings.aoPreSearchCols[ iCol ] === null ) + { + oSettings.aoPreSearchCols[ iCol ] = $.extend( {}, DataTable.models.oSearch ); + } + else + { + var oPre = oSettings.aoPreSearchCols[ iCol ]; + + /* Don't require that the user must specify bRegex, bSmart or bCaseInsensitive */ + if ( oPre.bRegex === undefined ) + { + oPre.bRegex = true; + } + + if ( oPre.bSmart === undefined ) + { + oPre.bSmart = true; + } + + if ( oPre.bCaseInsensitive === undefined ) + { + oPre.bCaseInsensitive = true; + } + } + + /* Use the column options function to initialise classes etc */ + _fnColumnOptions( oSettings, iCol, null ); + } + + + /** + * Apply options for a column + * @param {object} oSettings dataTables settings object + * @param {int} iCol column index to consider + * @param {object} oOptions object with sType, bVisible and bSearchable etc + * @memberof DataTable#oApi + */ + function _fnColumnOptions( oSettings, iCol, oOptions ) + { + var oCol = oSettings.aoColumns[ iCol ]; + + /* User specified column options */ + if ( oOptions !== undefined && oOptions !== null ) + { + /* Backwards compatibility for mDataProp */ + if ( oOptions.mDataProp && !oOptions.mData ) + { + oOptions.mData = oOptions.mDataProp; + } + + if ( oOptions.sType !== undefined ) + { + oCol.sType = oOptions.sType; + oCol._bAutoType = false; + } + + $.extend( oCol, oOptions ); + _fnMap( oCol, oOptions, "sWidth", "sWidthOrig" ); + + /* iDataSort to be applied (backwards compatibility), but aDataSort will take + * priority if defined + */ + if ( oOptions.iDataSort !== undefined ) + { + oCol.aDataSort = [ oOptions.iDataSort ]; + } + _fnMap( oCol, oOptions, "aDataSort" ); + } + + /* Cache the data get and set functions for speed */ + var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null; + var mData = _fnGetObjectDataFn( oCol.mData ); + + oCol.fnGetData = function (oData, sSpecific) { + var innerData = mData( oData, sSpecific ); + + if ( oCol.mRender && (sSpecific && sSpecific !== '') ) + { + return mRender( innerData, sSpecific, oData ); + } + return innerData; + }; + oCol.fnSetData = _fnSetObjectDataFn( oCol.mData ); + + /* Feature sorting overrides column specific when off */ + if ( !oSettings.oFeatures.bSort ) + { + oCol.bSortable = false; + } + + /* Check that the class assignment is correct for sorting */ + if ( !oCol.bSortable || + ($.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1) ) + { + oCol.sSortingClass = oSettings.oClasses.sSortableNone; + oCol.sSortingClassJUI = ""; + } + else if ( $.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1 ) + { + oCol.sSortingClass = oSettings.oClasses.sSortable; + oCol.sSortingClassJUI = oSettings.oClasses.sSortJUI; + } + else if ( $.inArray('asc', oCol.asSorting) != -1 && $.inArray('desc', oCol.asSorting) == -1 ) + { + oCol.sSortingClass = oSettings.oClasses.sSortableAsc; + oCol.sSortingClassJUI = oSettings.oClasses.sSortJUIAscAllowed; + } + else if ( $.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) != -1 ) + { + oCol.sSortingClass = oSettings.oClasses.sSortableDesc; + oCol.sSortingClassJUI = oSettings.oClasses.sSortJUIDescAllowed; + } + } + + + /** + * Adjust the table column widths for new data. Note: you would probably want to + * do a redraw after calling this function! + * @param {object} oSettings dataTables settings object + * @memberof DataTable#oApi + */ + function _fnAdjustColumnSizing ( oSettings ) + { + /* Not interested in doing column width calculation if auto-width is disabled */ + if ( oSettings.oFeatures.bAutoWidth === false ) + { + return false; + } + + _fnCalculateColumnWidths( oSettings ); + for ( var i=0 , iLen=oSettings.aoColumns.length ; i
    ')[0]; + oSettings.nTable.parentNode.insertBefore( nHolding, oSettings.nTable ); + + /* + * All DataTables are wrapped in a div + */ + oSettings.nTableWrapper = $('
    ')[0]; + oSettings.nTableReinsertBefore = oSettings.nTable.nextSibling; + + /* Track where we want to insert the option */ + var nInsertNode = oSettings.nTableWrapper; + + /* Loop over the user set positioning and place the elements as needed */ + var aDom = oSettings.sDom.split(''); + var nTmp, iPushFeature, cOption, nNewNode, cNext, sAttr, j; + for ( var i=0 ; i')[0]; + + /* Check to see if we should append an id and/or a class name to the container */ + cNext = aDom[i+1]; + if ( cNext == "'" || cNext == '"' ) + { + sAttr = ""; + j = 2; + while ( aDom[i+j] != cNext ) + { + sAttr += aDom[i+j]; + j++; + } + + /* Replace jQuery UI constants */ + if ( sAttr == "H" ) + { + sAttr = oSettings.oClasses.sJUIHeader; + } + else if ( sAttr == "F" ) + { + sAttr = oSettings.oClasses.sJUIFooter; + } + + /* The attribute can be in the format of "#id.class", "#id" or "class" This logic + * breaks the string into parts and applies them as needed + */ + if ( sAttr.indexOf('.') != -1 ) + { + var aSplit = sAttr.split('.'); + nNewNode.id = aSplit[0].substr(1, aSplit[0].length-1); + nNewNode.className = aSplit[1]; + } + else if ( sAttr.charAt(0) == "#" ) + { + nNewNode.id = sAttr.substr(1, sAttr.length-1); + } + else + { + nNewNode.className = sAttr; + } + + i += j; /* Move along the position array */ + } + + nInsertNode.appendChild( nNewNode ); + nInsertNode = nNewNode; + } + else if ( cOption == '>' ) + { + /* End container div */ + nInsertNode = nInsertNode.parentNode; + } + else if ( cOption == 'l' && oSettings.oFeatures.bPaginate && oSettings.oFeatures.bLengthChange ) + { + /* Length */ + nTmp = _fnFeatureHtmlLength( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 'f' && oSettings.oFeatures.bFilter ) + { + /* Filter */ + nTmp = _fnFeatureHtmlFilter( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 'r' && oSettings.oFeatures.bProcessing ) + { + /* pRocessing */ + nTmp = _fnFeatureHtmlProcessing( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 't' ) + { + /* Table */ + nTmp = _fnFeatureHtmlTable( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 'i' && oSettings.oFeatures.bInfo ) + { + /* Info */ + nTmp = _fnFeatureHtmlInfo( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 'p' && oSettings.oFeatures.bPaginate ) + { + /* Pagination */ + nTmp = _fnFeatureHtmlPaginate( oSettings ); + iPushFeature = 1; + } + else if ( DataTable.ext.aoFeatures.length !== 0 ) + { + /* Plug-in features */ + var aoFeatures = DataTable.ext.aoFeatures; + for ( var k=0, kLen=aoFeatures.length ; k') : + sSearchStr==="" ? '' : sSearchStr+' '; + + var nFilter = document.createElement( 'div' ); + nFilter.className = oSettings.oClasses.sFilter; + nFilter.innerHTML = ''; + if ( !oSettings.aanFeatures.f ) + { + nFilter.id = oSettings.sTableId+'_filter'; + } + + var jqFilter = $('input[type="text"]', nFilter); + + // Store a reference to the input element, so other input elements could be + // added to the filter wrapper if needed (submit button for example) + nFilter._DT_Input = jqFilter[0]; + + jqFilter.val( oPreviousSearch.sSearch.replace('"','"') ); + jqFilter.bind( 'keyup.DT', function(e) { + /* Update all other filter input elements for the new display */ + var n = oSettings.aanFeatures.f; + var val = this.value==="" ? "" : this.value; // mental IE8 fix :-( + + for ( var i=0, iLen=n.length ; i=0 ; i-- ) + { + var sData = _fnDataToSearch( _fnGetCellData( oSettings, oSettings.aiDisplay[i], iColumn, 'filter' ), + oSettings.aoColumns[iColumn].sType ); + if ( ! rpSearch.test( sData ) ) + { + oSettings.aiDisplay.splice( i, 1 ); + iIndexCorrector++; + } + } + } + + + /** + * Filter the data table based on user input and draw the table + * @param {object} oSettings dataTables settings object + * @param {string} sInput string to filter on + * @param {int} iForce optional - force a research of the master array (1) or not (undefined or 0) + * @param {bool} bRegex treat as a regular expression or not + * @param {bool} bSmart perform smart filtering or not + * @param {bool} bCaseInsensitive Do case insenstive matching or not + * @memberof DataTable#oApi + */ + function _fnFilter( oSettings, sInput, iForce, bRegex, bSmart, bCaseInsensitive ) + { + var i; + var rpSearch = _fnFilterCreateSearch( sInput, bRegex, bSmart, bCaseInsensitive ); + var oPrevSearch = oSettings.oPreviousSearch; + + /* Check if we are forcing or not - optional parameter */ + if ( !iForce ) + { + iForce = 0; + } + + /* Need to take account of custom filtering functions - always filter */ + if ( DataTable.ext.afnFiltering.length !== 0 ) + { + iForce = 1; + } + + /* + * If the input is blank - we want the full data set + */ + if ( sInput.length <= 0 ) + { + oSettings.aiDisplay.splice( 0, oSettings.aiDisplay.length); + oSettings.aiDisplay = oSettings.aiDisplayMaster.slice(); + } + else + { + /* + * We are starting a new search or the new search string is smaller + * then the old one (i.e. delete). Search from the master array + */ + if ( oSettings.aiDisplay.length == oSettings.aiDisplayMaster.length || + oPrevSearch.sSearch.length > sInput.length || iForce == 1 || + sInput.indexOf(oPrevSearch.sSearch) !== 0 ) + { + /* Nuke the old display array - we are going to rebuild it */ + oSettings.aiDisplay.splice( 0, oSettings.aiDisplay.length); + + /* Force a rebuild of the search array */ + _fnBuildSearchArray( oSettings, 1 ); + + /* Search through all records to populate the search array + * The the oSettings.aiDisplayMaster and asDataSearch arrays have 1 to 1 + * mapping + */ + for ( i=0 ; i').html(sSearch).text(); + } + + // Strip newline characters + return sSearch.replace( /[\n\r]/g, " " ); + } + + /** + * Build a regular expression object suitable for searching a table + * @param {string} sSearch string to search for + * @param {bool} bRegex treat as a regular expression or not + * @param {bool} bSmart perform smart filtering or not + * @param {bool} bCaseInsensitive Do case insensitive matching or not + * @returns {RegExp} constructed object + * @memberof DataTable#oApi + */ + function _fnFilterCreateSearch( sSearch, bRegex, bSmart, bCaseInsensitive ) + { + var asSearch, sRegExpString; + + if ( bSmart ) + { + /* Generate the regular expression to use. Something along the lines of: + * ^(?=.*?\bone\b)(?=.*?\btwo\b)(?=.*?\bthree\b).*$ + */ + asSearch = bRegex ? sSearch.split( ' ' ) : _fnEscapeRegex( sSearch ).split( ' ' ); + sRegExpString = '^(?=.*?'+asSearch.join( ')(?=.*?' )+').*$'; + return new RegExp( sRegExpString, bCaseInsensitive ? "i" : "" ); + } + else + { + sSearch = bRegex ? sSearch : _fnEscapeRegex( sSearch ); + return new RegExp( sSearch, bCaseInsensitive ? "i" : "" ); + } + } + + + /** + * Convert raw data into something that the user can search on + * @param {string} sData data to be modified + * @param {string} sType data type + * @returns {string} search string + * @memberof DataTable#oApi + */ + function _fnDataToSearch ( sData, sType ) + { + if ( typeof DataTable.ext.ofnSearch[sType] === "function" ) + { + return DataTable.ext.ofnSearch[sType]( sData ); + } + else if ( sData === null ) + { + return ''; + } + else if ( sType == "html" ) + { + return sData.replace(/[\r\n]/g," ").replace( /<.*?>/g, "" ); + } + else if ( typeof sData === "string" ) + { + return sData.replace(/[\r\n]/g," "); + } + return sData; + } + + + /** + * scape a string such that it can be used in a regular expression + * @param {string} sVal string to escape + * @returns {string} escaped string + * @memberof DataTable#oApi + */ + function _fnEscapeRegex ( sVal ) + { + var acEscape = [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^', '-' ]; + var reReplace = new RegExp( '(\\' + acEscape.join('|\\') + ')', 'g' ); + return sVal.replace(reReplace, '\\$1'); + } + + + /** + * Generate the node required for the info display + * @param {object} oSettings dataTables settings object + * @returns {node} Information element + * @memberof DataTable#oApi + */ + function _fnFeatureHtmlInfo ( oSettings ) + { + var nInfo = document.createElement( 'div' ); + nInfo.className = oSettings.oClasses.sInfo; + + /* Actions that are to be taken once only for this feature */ + if ( !oSettings.aanFeatures.i ) + { + /* Add draw callback */ + oSettings.aoDrawCallback.push( { + "fn": _fnUpdateInfo, + "sName": "information" + } ); + + /* Add id */ + nInfo.id = oSettings.sTableId+'_info'; + } + oSettings.nTable.setAttribute( 'aria-describedby', oSettings.sTableId+'_info' ); + + return nInfo; + } + + + /** + * Update the information elements in the display + * @param {object} oSettings dataTables settings object + * @memberof DataTable#oApi + */ + function _fnUpdateInfo ( oSettings ) + { + /* Show information about the table */ + if ( !oSettings.oFeatures.bInfo || oSettings.aanFeatures.i.length === 0 ) + { + return; + } + + var + oLang = oSettings.oLanguage, + iStart = oSettings._iDisplayStart+1, + iEnd = oSettings.fnDisplayEnd(), + iMax = oSettings.fnRecordsTotal(), + iTotal = oSettings.fnRecordsDisplay(), + sOut; + + if ( iTotal === 0 ) + { + /* Empty record set */ + sOut = oLang.sInfoEmpty; + } + else { + /* Normal record set */ + sOut = oLang.sInfo; + } + + if ( iTotal != iMax ) + { + /* Record set after filtering */ + sOut += ' ' + oLang.sInfoFiltered; + } + + // Convert the macros + sOut += oLang.sInfoPostFix; + sOut = _fnInfoMacros( oSettings, sOut ); + + if ( oLang.fnInfoCallback !== null ) + { + sOut = oLang.fnInfoCallback.call( oSettings.oInstance, + oSettings, iStart, iEnd, iMax, iTotal, sOut ); + } + + var n = oSettings.aanFeatures.i; + for ( var i=0, iLen=n.length ; i'; + var i, iLen; + var aLengthMenu = oSettings.aLengthMenu; + + if ( aLengthMenu.length == 2 && typeof aLengthMenu[0] === 'object' && + typeof aLengthMenu[1] === 'object' ) + { + for ( i=0, iLen=aLengthMenu[0].length ; i'+aLengthMenu[1][i]+''; + } + } + else + { + for ( i=0, iLen=aLengthMenu.length ; i'+aLengthMenu[i]+''; + } + } + sStdMenu += ''; + + var nLength = document.createElement( 'div' ); + if ( !oSettings.aanFeatures.l ) + { + nLength.id = oSettings.sTableId+'_length'; + } + nLength.className = oSettings.oClasses.sLength; + nLength.innerHTML = ''; + + /* + * Set the length to the current display length - thanks to Andrea Pavlovic for this fix, + * and Stefan Skopnik for fixing the fix! + */ + $('select option[value="'+oSettings._iDisplayLength+'"]', nLength).attr("selected", true); + + $('select', nLength).bind( 'change.DT', function(e) { + var iVal = $(this).val(); + + /* Update all other length options for the new display */ + var n = oSettings.aanFeatures.l; + for ( i=0, iLen=n.length ; i oSettings.aiDisplay.length || + oSettings._iDisplayLength == -1 ) + { + oSettings._iDisplayEnd = oSettings.aiDisplay.length; + } + else + { + oSettings._iDisplayEnd = oSettings._iDisplayStart + oSettings._iDisplayLength; + } + } + } + + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Note that most of the paging logic is done in + * DataTable.ext.oPagination + */ + + /** + * Generate the node required for default pagination + * @param {object} oSettings dataTables settings object + * @returns {node} Pagination feature node + * @memberof DataTable#oApi + */ + function _fnFeatureHtmlPaginate ( oSettings ) + { + if ( oSettings.oScroll.bInfinite ) + { + return null; + } + + var nPaginate = document.createElement( 'div' ); + nPaginate.className = oSettings.oClasses.sPaging+oSettings.sPaginationType; + + DataTable.ext.oPagination[ oSettings.sPaginationType ].fnInit( oSettings, nPaginate, + function( oSettings ) { + _fnCalculateEnd( oSettings ); + _fnDraw( oSettings ); + } + ); + + /* Add a draw callback for the pagination on first instance, to update the paging display */ + if ( !oSettings.aanFeatures.p ) + { + oSettings.aoDrawCallback.push( { + "fn": function( oSettings ) { + DataTable.ext.oPagination[ oSettings.sPaginationType ].fnUpdate( oSettings, function( oSettings ) { + _fnCalculateEnd( oSettings ); + _fnDraw( oSettings ); + } ); + }, + "sName": "pagination" + } ); + } + return nPaginate; + } + + + /** + * Alter the display settings to change the page + * @param {object} oSettings dataTables settings object + * @param {string|int} mAction Paging action to take: "first", "previous", "next" or "last" + * or page number to jump to (integer) + * @returns {bool} true page has changed, false - no change (no effect) eg 'first' on page 1 + * @memberof DataTable#oApi + */ + function _fnPageChange ( oSettings, mAction ) + { + var iOldStart = oSettings._iDisplayStart; + + if ( typeof mAction === "number" ) + { + oSettings._iDisplayStart = mAction * oSettings._iDisplayLength; + if ( oSettings._iDisplayStart > oSettings.fnRecordsDisplay() ) + { + oSettings._iDisplayStart = 0; + } + } + else if ( mAction == "first" ) + { + oSettings._iDisplayStart = 0; + } + else if ( mAction == "previous" ) + { + oSettings._iDisplayStart = oSettings._iDisplayLength>=0 ? + oSettings._iDisplayStart - oSettings._iDisplayLength : + 0; + + /* Correct for under-run */ + if ( oSettings._iDisplayStart < 0 ) + { + oSettings._iDisplayStart = 0; + } + } + else if ( mAction == "next" ) + { + if ( oSettings._iDisplayLength >= 0 ) + { + /* Make sure we are not over running the display array */ + if ( oSettings._iDisplayStart + oSettings._iDisplayLength < oSettings.fnRecordsDisplay() ) + { + oSettings._iDisplayStart += oSettings._iDisplayLength; + } + } + else + { + oSettings._iDisplayStart = 0; + } + } + else if ( mAction == "last" ) + { + if ( oSettings._iDisplayLength >= 0 ) + { + var iPages = parseInt( (oSettings.fnRecordsDisplay()-1) / oSettings._iDisplayLength, 10 ) + 1; + oSettings._iDisplayStart = (iPages-1) * oSettings._iDisplayLength; + } + else + { + oSettings._iDisplayStart = 0; + } + } + else + { + _fnLog( oSettings, 0, "Unknown paging action: "+mAction ); + } + $(oSettings.oInstance).trigger('page', oSettings); + + return iOldStart != oSettings._iDisplayStart; + } + + + + /** + * Generate the node required for the processing node + * @param {object} oSettings dataTables settings object + * @returns {node} Processing element + * @memberof DataTable#oApi + */ + function _fnFeatureHtmlProcessing ( oSettings ) + { + var nProcessing = document.createElement( 'div' ); + + if ( !oSettings.aanFeatures.r ) + { + nProcessing.id = oSettings.sTableId+'_processing'; + } + nProcessing.innerHTML = oSettings.oLanguage.sProcessing; + nProcessing.className = oSettings.oClasses.sProcessing; + oSettings.nTable.parentNode.insertBefore( nProcessing, oSettings.nTable ); + + return nProcessing; + } + + + /** + * Display or hide the processing indicator + * @param {object} oSettings dataTables settings object + * @param {bool} bShow Show the processing indicator (true) or not (false) + * @memberof DataTable#oApi + */ + function _fnProcessingDisplay ( oSettings, bShow ) + { + if ( oSettings.oFeatures.bProcessing ) + { + var an = oSettings.aanFeatures.r; + for ( var i=0, iLen=an.length ; i 0 ) + { + nCaption = nCaption[0]; + if ( nCaption._captionSide === "top" ) + { + nScrollHeadTable.appendChild( nCaption ); + } + else if ( nCaption._captionSide === "bottom" && nTfoot ) + { + nScrollFootTable.appendChild( nCaption ); + } + } + + /* + * Sizing + */ + /* When x-scrolling add the width and a scroller to move the header with the body */ + if ( oSettings.oScroll.sX !== "" ) + { + nScrollHead.style.width = _fnStringToCss( oSettings.oScroll.sX ); + nScrollBody.style.width = _fnStringToCss( oSettings.oScroll.sX ); + + if ( nTfoot !== null ) + { + nScrollFoot.style.width = _fnStringToCss( oSettings.oScroll.sX ); + } + + /* When the body is scrolled, then we also want to scroll the headers */ + $(nScrollBody).scroll( function (e) { + nScrollHead.scrollLeft = this.scrollLeft; + + if ( nTfoot !== null ) + { + nScrollFoot.scrollLeft = this.scrollLeft; + } + } ); + } + + /* When yscrolling, add the height */ + if ( oSettings.oScroll.sY !== "" ) + { + nScrollBody.style.height = _fnStringToCss( oSettings.oScroll.sY ); + } + + /* Redraw - align columns across the tables */ + oSettings.aoDrawCallback.push( { + "fn": _fnScrollDraw, + "sName": "scrolling" + } ); + + /* Infinite scrolling event handlers */ + if ( oSettings.oScroll.bInfinite ) + { + $(nScrollBody).scroll( function() { + /* Use a blocker to stop scrolling from loading more data while other data is still loading */ + if ( !oSettings.bDrawing && $(this).scrollTop() !== 0 ) + { + /* Check if we should load the next data set */ + if ( $(this).scrollTop() + $(this).height() > + $(oSettings.nTable).height() - oSettings.oScroll.iLoadGap ) + { + /* Only do the redraw if we have to - we might be at the end of the data */ + if ( oSettings.fnDisplayEnd() < oSettings.fnRecordsDisplay() ) + { + _fnPageChange( oSettings, 'next' ); + _fnCalculateEnd( oSettings ); + _fnDraw( oSettings ); + } + } + } + } ); + } + + oSettings.nScrollHead = nScrollHead; + oSettings.nScrollFoot = nScrollFoot; + + return nScroller; + } + + + /** + * Update the various tables for resizing. It's a bit of a pig this function, but + * basically the idea to: + * 1. Re-create the table inside the scrolling div + * 2. Take live measurements from the DOM + * 3. Apply the measurements + * 4. Clean up + * @param {object} o dataTables settings object + * @returns {node} Node to add to the DOM + * @memberof DataTable#oApi + */ + function _fnScrollDraw ( o ) + { + var + nScrollHeadInner = o.nScrollHead.getElementsByTagName('div')[0], + nScrollHeadTable = nScrollHeadInner.getElementsByTagName('table')[0], + nScrollBody = o.nTable.parentNode, + i, iLen, j, jLen, anHeadToSize, anHeadSizers, anFootSizers, anFootToSize, oStyle, iVis, + nTheadSize, nTfootSize, + iWidth, aApplied=[], aAppliedFooter=[], iSanityWidth, + nScrollFootInner = (o.nTFoot !== null) ? o.nScrollFoot.getElementsByTagName('div')[0] : null, + nScrollFootTable = (o.nTFoot !== null) ? nScrollFootInner.getElementsByTagName('table')[0] : null, + ie67 = o.oBrowser.bScrollOversize, + zeroOut = function(nSizer) { + oStyle = nSizer.style; + oStyle.paddingTop = "0"; + oStyle.paddingBottom = "0"; + oStyle.borderTopWidth = "0"; + oStyle.borderBottomWidth = "0"; + oStyle.height = 0; + }; + + /* + * 1. Re-create the table inside the scrolling div + */ + + /* Remove the old minimised thead and tfoot elements in the inner table */ + $(o.nTable).children('thead, tfoot').remove(); + + /* Clone the current header and footer elements and then place it into the inner table */ + nTheadSize = $(o.nTHead).clone()[0]; + o.nTable.insertBefore( nTheadSize, o.nTable.childNodes[0] ); + anHeadToSize = o.nTHead.getElementsByTagName('tr'); + anHeadSizers = nTheadSize.getElementsByTagName('tr'); + + if ( o.nTFoot !== null ) + { + nTfootSize = $(o.nTFoot).clone()[0]; + o.nTable.insertBefore( nTfootSize, o.nTable.childNodes[1] ); + anFootToSize = o.nTFoot.getElementsByTagName('tr'); + anFootSizers = nTfootSize.getElementsByTagName('tr'); + } + + /* + * 2. Take live measurements from the DOM - do not alter the DOM itself! + */ + + /* Remove old sizing and apply the calculated column widths + * Get the unique column headers in the newly created (cloned) header. We want to apply the + * calculated sizes to this header + */ + if ( o.oScroll.sX === "" ) + { + nScrollBody.style.width = '100%'; + nScrollHeadInner.parentNode.style.width = '100%'; + } + + var nThs = _fnGetUniqueThs( o, nTheadSize ); + for ( i=0, iLen=nThs.length ; i nScrollBody.offsetHeight || + $(nScrollBody).css('overflow-y') == "scroll") ) + { + o.nTable.style.width = _fnStringToCss( $(o.nTable).outerWidth() - o.oScroll.iBarWidth); + } + } + else + { + if ( o.oScroll.sXInner !== "" ) + { + /* x scroll inner has been given - use it */ + o.nTable.style.width = _fnStringToCss(o.oScroll.sXInner); + } + else if ( iSanityWidth == $(nScrollBody).width() && + $(nScrollBody).height() < $(o.nTable).height() ) + { + /* There is y-scrolling - try to take account of the y scroll bar */ + o.nTable.style.width = _fnStringToCss( iSanityWidth-o.oScroll.iBarWidth ); + if ( $(o.nTable).outerWidth() > iSanityWidth-o.oScroll.iBarWidth ) + { + /* Not possible to take account of it */ + o.nTable.style.width = _fnStringToCss( iSanityWidth ); + } + } + else + { + /* All else fails */ + o.nTable.style.width = _fnStringToCss( iSanityWidth ); + } + } + + /* Recalculate the sanity width - now that we've applied the required width, before it was + * a temporary variable. This is required because the column width calculation is done + * before this table DOM is created. + */ + iSanityWidth = $(o.nTable).outerWidth(); + + /* We want the hidden header to have zero height, so remove padding and borders. Then + * set the width based on the real headers + */ + + // Apply all styles in one pass. Invalidates layout only once because we don't read any + // DOM properties. + _fnApplyToChildren( zeroOut, anHeadSizers ); + + // Read all widths in next pass. Forces layout only once because we do not change + // any DOM properties. + _fnApplyToChildren( function(nSizer) { + aApplied.push( _fnStringToCss( $(nSizer).width() ) ); + }, anHeadSizers ); + + // Apply all widths in final pass. Invalidates layout only once because we do not + // read any DOM properties. + _fnApplyToChildren( function(nToSize, i) { + nToSize.style.width = aApplied[i]; + }, anHeadToSize ); + + $(anHeadSizers).height(0); + + /* Same again with the footer if we have one */ + if ( o.nTFoot !== null ) + { + _fnApplyToChildren( zeroOut, anFootSizers ); + + _fnApplyToChildren( function(nSizer) { + aAppliedFooter.push( _fnStringToCss( $(nSizer).width() ) ); + }, anFootSizers ); + + _fnApplyToChildren( function(nToSize, i) { + nToSize.style.width = aAppliedFooter[i]; + }, anFootToSize ); + + $(anFootSizers).height(0); + } + + /* + * 3. Apply the measurements + */ + + /* "Hide" the header and footer that we used for the sizing. We want to also fix their width + * to what they currently are + */ + _fnApplyToChildren( function(nSizer, i) { + nSizer.innerHTML = ""; + nSizer.style.width = aApplied[i]; + }, anHeadSizers ); + + if ( o.nTFoot !== null ) + { + _fnApplyToChildren( function(nSizer, i) { + nSizer.innerHTML = ""; + nSizer.style.width = aAppliedFooter[i]; + }, anFootSizers ); + } + + /* Sanity check that the table is of a sensible width. If not then we are going to get + * misalignment - try to prevent this by not allowing the table to shrink below its min width + */ + if ( $(o.nTable).outerWidth() < iSanityWidth ) + { + /* The min width depends upon if we have a vertical scrollbar visible or not */ + var iCorrection = ((nScrollBody.scrollHeight > nScrollBody.offsetHeight || + $(nScrollBody).css('overflow-y') == "scroll")) ? + iSanityWidth+o.oScroll.iBarWidth : iSanityWidth; + + /* IE6/7 are a law unto themselves... */ + if ( ie67 && (nScrollBody.scrollHeight > + nScrollBody.offsetHeight || $(nScrollBody).css('overflow-y') == "scroll") ) + { + o.nTable.style.width = _fnStringToCss( iCorrection-o.oScroll.iBarWidth ); + } + + /* Apply the calculated minimum width to the table wrappers */ + nScrollBody.style.width = _fnStringToCss( iCorrection ); + o.nScrollHead.style.width = _fnStringToCss( iCorrection ); + + if ( o.nTFoot !== null ) + { + o.nScrollFoot.style.width = _fnStringToCss( iCorrection ); + } + + /* And give the user a warning that we've stopped the table getting too small */ + if ( o.oScroll.sX === "" ) + { + _fnLog( o, 1, "The table cannot fit into the current element which will cause column"+ + " misalignment. The table has been drawn at its minimum possible width." ); + } + else if ( o.oScroll.sXInner !== "" ) + { + _fnLog( o, 1, "The table cannot fit into the current element which will cause column"+ + " misalignment. Increase the sScrollXInner value or remove it to allow automatic"+ + " calculation" ); + } + } + else + { + nScrollBody.style.width = _fnStringToCss( '100%' ); + o.nScrollHead.style.width = _fnStringToCss( '100%' ); + + if ( o.nTFoot !== null ) + { + o.nScrollFoot.style.width = _fnStringToCss( '100%' ); + } + } + + + /* + * 4. Clean up + */ + if ( o.oScroll.sY === "" ) + { + /* IE7< puts a vertical scrollbar in place (when it shouldn't be) due to subtracting + * the scrollbar height from the visible display, rather than adding it on. We need to + * set the height in order to sort this. Don't want to do it in any other browsers. + */ + if ( ie67 ) + { + nScrollBody.style.height = _fnStringToCss( o.nTable.offsetHeight+o.oScroll.iBarWidth ); + } + } + + if ( o.oScroll.sY !== "" && o.oScroll.bCollapse ) + { + nScrollBody.style.height = _fnStringToCss( o.oScroll.sY ); + + var iExtra = (o.oScroll.sX !== "" && o.nTable.offsetWidth > nScrollBody.offsetWidth) ? + o.oScroll.iBarWidth : 0; + if ( o.nTable.offsetHeight < nScrollBody.offsetHeight ) + { + nScrollBody.style.height = _fnStringToCss( o.nTable.offsetHeight+iExtra ); + } + } + + /* Finally set the width's of the header and footer tables */ + var iOuterWidth = $(o.nTable).outerWidth(); + nScrollHeadTable.style.width = _fnStringToCss( iOuterWidth ); + nScrollHeadInner.style.width = _fnStringToCss( iOuterWidth ); + + // Figure out if there are scrollbar present - if so then we need a the header and footer to + // provide a bit more space to allow "overflow" scrolling (i.e. past the scrollbar) + var bScrolling = $(o.nTable).height() > nScrollBody.clientHeight || $(nScrollBody).css('overflow-y') == "scroll"; + nScrollHeadInner.style.paddingRight = bScrolling ? o.oScroll.iBarWidth+"px" : "0px"; + + if ( o.nTFoot !== null ) + { + nScrollFootTable.style.width = _fnStringToCss( iOuterWidth ); + nScrollFootInner.style.width = _fnStringToCss( iOuterWidth ); + nScrollFootInner.style.paddingRight = bScrolling ? o.oScroll.iBarWidth+"px" : "0px"; + } + + /* Adjust the position of the header in case we loose the y-scrollbar */ + $(nScrollBody).scroll(); + + /* If sorting or filtering has occurred, jump the scrolling back to the top */ + if ( o.bSorted || o.bFiltered ) + { + nScrollBody.scrollTop = 0; + } + } + + + /** + * Apply a given function to the display child nodes of an element array (typically + * TD children of TR rows + * @param {function} fn Method to apply to the objects + * @param array {nodes} an1 List of elements to look through for display children + * @param array {nodes} an2 Another list (identical structure to the first) - optional + * @memberof DataTable#oApi + */ + function _fnApplyToChildren( fn, an1, an2 ) + { + var index=0, i=0, iLen=an1.length; + var nNode1, nNode2; + + while ( i < iLen ) + { + nNode1 = an1[i].firstChild; + nNode2 = an2 ? an2[i].firstChild : null; + while ( nNode1 ) + { + if ( nNode1.nodeType === 1 ) + { + if ( an2 ) + { + fn( nNode1, nNode2, index ); + } + else + { + fn( nNode1, index ); + } + index++; + } + nNode1 = nNode1.nextSibling; + nNode2 = an2 ? nNode2.nextSibling : null; + } + i++; + } + } + + /** + * Convert a CSS unit width to pixels (e.g. 2em) + * @param {string} sWidth width to be converted + * @param {node} nParent parent to get the with for (required for relative widths) - optional + * @returns {int} iWidth width in pixels + * @memberof DataTable#oApi + */ + function _fnConvertToWidth ( sWidth, nParent ) + { + if ( !sWidth || sWidth === null || sWidth === '' ) + { + return 0; + } + + if ( !nParent ) + { + nParent = document.body; + } + + var iWidth; + var nTmp = document.createElement( "div" ); + nTmp.style.width = _fnStringToCss( sWidth ); + + nParent.appendChild( nTmp ); + iWidth = nTmp.offsetWidth; + nParent.removeChild( nTmp ); + + return ( iWidth ); + } + + + /** + * Calculate the width of columns for the table + * @param {object} oSettings dataTables settings object + * @memberof DataTable#oApi + */ + function _fnCalculateColumnWidths ( oSettings ) + { + var iTableWidth = oSettings.nTable.offsetWidth; + var iUserInputs = 0; + var iTmpWidth; + var iVisibleColumns = 0; + var iColums = oSettings.aoColumns.length; + var i, iIndex, iCorrector, iWidth; + var oHeaders = $('th', oSettings.nTHead); + var widthAttr = oSettings.nTable.getAttribute('width'); + var nWrapper = oSettings.nTable.parentNode; + + /* Convert any user input sizes into pixel sizes */ + for ( i=0 ; itd', nCalcTmp); + } + + /* Apply custom sizing to the cloned header */ + var nThs = _fnGetUniqueThs( oSettings, nTheadClone ); + iCorrector = 0; + for ( i=0 ; i 0 ) + { + oSettings.aoColumns[i].sWidth = _fnStringToCss( iWidth ); + } + iCorrector++; + } + } + + var cssWidth = $(nCalcTmp).css('width'); + oSettings.nTable.style.width = (cssWidth.indexOf('%') !== -1) ? + cssWidth : _fnStringToCss( $(nCalcTmp).outerWidth() ); + nCalcTmp.parentNode.removeChild( nCalcTmp ); + } + + if ( widthAttr ) + { + oSettings.nTable.style.width = _fnStringToCss( widthAttr ); + } + } + + + /** + * Adjust a table's width to take account of scrolling + * @param {object} oSettings dataTables settings object + * @param {node} n table node + * @memberof DataTable#oApi + */ + function _fnScrollingWidthAdjust ( oSettings, n ) + { + if ( oSettings.oScroll.sX === "" && oSettings.oScroll.sY !== "" ) + { + /* When y-scrolling only, we want to remove the width of the scroll bar so the table + * + scroll bar will fit into the area avaialble. + */ + var iOrigWidth = $(n).width(); + n.style.width = _fnStringToCss( $(n).outerWidth()-oSettings.oScroll.iBarWidth ); + } + else if ( oSettings.oScroll.sX !== "" ) + { + /* When x-scrolling both ways, fix the table at it's current size, without adjusting */ + n.style.width = _fnStringToCss( $(n).outerWidth() ); + } + } + + + /** + * Get the widest node + * @param {object} oSettings dataTables settings object + * @param {int} iCol column of interest + * @returns {node} widest table node + * @memberof DataTable#oApi + */ + function _fnGetWidestNode( oSettings, iCol ) + { + var iMaxIndex = _fnGetMaxLenString( oSettings, iCol ); + if ( iMaxIndex < 0 ) + { + return null; + } + + if ( oSettings.aoData[iMaxIndex].nTr === null ) + { + var n = document.createElement('td'); + n.innerHTML = _fnGetCellData( oSettings, iMaxIndex, iCol, '' ); + return n; + } + return _fnGetTdNodes(oSettings, iMaxIndex)[iCol]; + } + + + /** + * Get the maximum strlen for each data column + * @param {object} oSettings dataTables settings object + * @param {int} iCol column of interest + * @returns {string} max string length for each column + * @memberof DataTable#oApi + */ + function _fnGetMaxLenString( oSettings, iCol ) + { + var iMax = -1; + var iMaxIndex = -1; + + for ( var i=0 ; i/g, "" ); + if ( s.length > iMax ) + { + iMax = s.length; + iMaxIndex = i; + } + } + + return iMaxIndex; + } + + + /** + * Append a CSS unit (only if required) to a string + * @param {array} aArray1 first array + * @param {array} aArray2 second array + * @returns {int} 0 if match, 1 if length is different, 2 if no match + * @memberof DataTable#oApi + */ + function _fnStringToCss( s ) + { + if ( s === null ) + { + return "0px"; + } + + if ( typeof s == 'number' ) + { + if ( s < 0 ) + { + return "0px"; + } + return s+"px"; + } + + /* Check if the last character is not 0-9 */ + var c = s.charCodeAt( s.length-1 ); + if (c < 0x30 || c > 0x39) + { + return s; + } + return s+"px"; + } + + + /** + * Get the width of a scroll bar in this browser being used + * @returns {int} width in pixels + * @memberof DataTable#oApi + */ + function _fnScrollBarWidth () + { + var inner = document.createElement('p'); + var style = inner.style; + style.width = "100%"; + style.height = "200px"; + style.padding = "0px"; + + var outer = document.createElement('div'); + style = outer.style; + style.position = "absolute"; + style.top = "0px"; + style.left = "0px"; + style.visibility = "hidden"; + style.width = "200px"; + style.height = "150px"; + style.padding = "0px"; + style.overflow = "hidden"; + outer.appendChild(inner); + + document.body.appendChild(outer); + var w1 = inner.offsetWidth; + outer.style.overflow = 'scroll'; + var w2 = inner.offsetWidth; + if ( w1 == w2 ) + { + w2 = outer.clientWidth; + } + + document.body.removeChild(outer); + return (w1 - w2); + } + + /** + * Change the order of the table + * @param {object} oSettings dataTables settings object + * @param {bool} bApplyClasses optional - should we apply classes or not + * @memberof DataTable#oApi + */ + function _fnSort ( oSettings, bApplyClasses ) + { + var + i, iLen, j, jLen, k, kLen, + sDataType, nTh, + aaSort = [], + aiOrig = [], + oSort = DataTable.ext.oSort, + aoData = oSettings.aoData, + aoColumns = oSettings.aoColumns, + oAria = oSettings.oLanguage.oAria; + + /* No sorting required if server-side or no sorting array */ + if ( !oSettings.oFeatures.bServerSide && + (oSettings.aaSorting.length !== 0 || oSettings.aaSortingFixed !== null) ) + { + aaSort = ( oSettings.aaSortingFixed !== null ) ? + oSettings.aaSortingFixed.concat( oSettings.aaSorting ) : + oSettings.aaSorting.slice(); + + /* If there is a sorting data type, and a function belonging to it, then we need to + * get the data from the developer's function and apply it for this column + */ + for ( i=0 ; i/g, "" ); + nTh = aoColumns[i].nTh; + nTh.removeAttribute('aria-sort'); + nTh.removeAttribute('aria-label'); + + /* In ARIA only the first sorting column can be marked as sorting - no multi-sort option */ + if ( aoColumns[i].bSortable ) + { + if ( aaSort.length > 0 && aaSort[0][0] == i ) + { + nTh.setAttribute('aria-sort', aaSort[0][1]=="asc" ? "ascending" : "descending" ); + + var nextSort = (aoColumns[i].asSorting[ aaSort[0][2]+1 ]) ? + aoColumns[i].asSorting[ aaSort[0][2]+1 ] : aoColumns[i].asSorting[0]; + nTh.setAttribute('aria-label', sTitle+ + (nextSort=="asc" ? oAria.sSortAscending : oAria.sSortDescending) ); + } + else + { + nTh.setAttribute('aria-label', sTitle+ + (aoColumns[i].asSorting[0]=="asc" ? oAria.sSortAscending : oAria.sSortDescending) ); + } + } + else + { + nTh.setAttribute('aria-label', sTitle); + } + } + + /* Tell the draw function that we have sorted the data */ + oSettings.bSorted = true; + $(oSettings.oInstance).trigger('sort', oSettings); + + /* Copy the master data into the draw array and re-draw */ + if ( oSettings.oFeatures.bFilter ) + { + /* _fnFilter() will redraw the table for us */ + _fnFilterComplete( oSettings, oSettings.oPreviousSearch, 1 ); + } + else + { + oSettings.aiDisplay = oSettings.aiDisplayMaster.slice(); + oSettings._iDisplayStart = 0; /* reset display back to page 0 */ + _fnCalculateEnd( oSettings ); + _fnDraw( oSettings ); + } + } + + + /** + * Attach a sort handler (click) to a node + * @param {object} oSettings dataTables settings object + * @param {node} nNode node to attach the handler to + * @param {int} iDataIndex column sorting index + * @param {function} [fnCallback] callback function + * @memberof DataTable#oApi + */ + function _fnSortAttachListener ( oSettings, nNode, iDataIndex, fnCallback ) + { + _fnBindAction( nNode, {}, function (e) { + /* If the column is not sortable - don't to anything */ + if ( oSettings.aoColumns[iDataIndex].bSortable === false ) + { + return; + } + + /* + * This is a little bit odd I admit... I declare a temporary function inside the scope of + * _fnBuildHead and the click handler in order that the code presented here can be used + * twice - once for when bProcessing is enabled, and another time for when it is + * disabled, as we need to perform slightly different actions. + * Basically the issue here is that the Javascript engine in modern browsers don't + * appear to allow the rendering engine to update the display while it is still executing + * it's thread (well - it does but only after long intervals). This means that the + * 'processing' display doesn't appear for a table sort. To break the js thread up a bit + * I force an execution break by using setTimeout - but this breaks the expected + * thread continuation for the end-developer's point of view (their code would execute + * too early), so we only do it when we absolutely have to. + */ + var fnInnerSorting = function () { + var iColumn, iNextSort; + + /* If the shift key is pressed then we are multiple column sorting */ + if ( e.shiftKey ) + { + /* Are we already doing some kind of sort on this column? */ + var bFound = false; + for ( var i=0 ; i 0 && sCurrentClass.indexOf(sNewClass) == -1 ) + { + /* We need to add a class */ + nTds[i].className = sCurrentClass + " " + sNewClass; + } + } + } + } + + + + /** + * Save the state of a table in a cookie such that the page can be reloaded + * @param {object} oSettings dataTables settings object + * @memberof DataTable#oApi + */ + function _fnSaveState ( oSettings ) + { + if ( !oSettings.oFeatures.bStateSave || oSettings.bDestroying ) + { + return; + } + + /* Store the interesting variables */ + var i, iLen, bInfinite=oSettings.oScroll.bInfinite; + var oState = { + "iCreate": new Date().getTime(), + "iStart": (bInfinite ? 0 : oSettings._iDisplayStart), + "iEnd": (bInfinite ? oSettings._iDisplayLength : oSettings._iDisplayEnd), + "iLength": oSettings._iDisplayLength, + "aaSorting": $.extend( true, [], oSettings.aaSorting ), + "oSearch": $.extend( true, {}, oSettings.oPreviousSearch ), + "aoSearchCols": $.extend( true, [], oSettings.aoPreSearchCols ), + "abVisCols": [] + }; + + for ( i=0, iLen=oSettings.aoColumns.length ; i 4096 ) /* Magic 10 for padding */ + { + for ( var i=0, iLen=aCookies.length ; i 4096 ) { + if ( aOldCookies.length === 0 ) { + // Deleted all DT cookies and still not enough space. Can't state save + return; + } + + var old = aOldCookies.pop(); + document.cookie = old.name+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+ + aParts.join('/') + "/"; + } + } + + document.cookie = sFullCookie; + } + + + /** + * Read an old cookie to get a cookie with an old table state + * @param {string} sName name of the cookie to read + * @returns {string} contents of the cookie - or null if no cookie with that name found + * @memberof DataTable#oApi + */ + function _fnReadCookie ( sName ) + { + var + aParts = window.location.pathname.split('/'), + sNameEQ = sName + '_' + aParts[aParts.length-1].replace(/[\/:]/g,"").toLowerCase() + '=', + sCookieContents = document.cookie.split(';'); + + for( var i=0 ; i=0 ; i-- ) + { + aRet.push( aoStore[i].fn.apply( oSettings.oInstance, aArgs ) ); + } + + if ( sTrigger !== null ) + { + $(oSettings.oInstance).trigger(sTrigger, aArgs); + } + + return aRet; + } + + + /** + * JSON stringify. If JSON.stringify it provided by the browser, json2.js or any other + * library, then we use that as it is fast, safe and accurate. If the function isn't + * available then we need to built it ourselves - the inspiration for this function comes + * from Craig Buckler ( http://www.sitepoint.com/javascript-json-serialization/ ). It is + * not perfect and absolutely should not be used as a replacement to json2.js - but it does + * do what we need, without requiring a dependency for DataTables. + * @param {object} o JSON object to be converted + * @returns {string} JSON string + * @memberof DataTable#oApi + */ + var _fnJsonString = (window.JSON) ? JSON.stringify : function( o ) + { + /* Not an object or array */ + var sType = typeof o; + if (sType !== "object" || o === null) + { + // simple data type + if (sType === "string") + { + o = '"'+o+'"'; + } + return o+""; + } + + /* If object or array, need to recurse over it */ + var + sProp, mValue, + json = [], + bArr = $.isArray(o); + + for (sProp in o) + { + mValue = o[sProp]; + sType = typeof mValue; + + if (sType === "string") + { + mValue = '"'+mValue+'"'; + } + else if (sType === "object" && mValue !== null) + { + mValue = _fnJsonString(mValue); + } + + json.push((bArr ? "" : '"'+sProp+'":') + mValue); + } + + return (bArr ? "[" : "{") + json + (bArr ? "]" : "}"); + }; + + + /** + * From some browsers (specifically IE6/7) we need special handling to work around browser + * bugs - this function is used to detect when these workarounds are needed. + * @param {object} oSettings dataTables settings object + * @memberof DataTable#oApi + */ + function _fnBrowserDetect( oSettings ) + { + /* IE6/7 will oversize a width 100% element inside a scrolling element, to include the + * width of the scrollbar, while other browsers ensure the inner element is contained + * without forcing scrolling + */ + var n = $( + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    ')[0]; + + document.body.appendChild( n ); + oSettings.oBrowser.bScrollOversize = $('#DT_BrowserTest', n)[0].offsetWidth === 100 ? true : false; + document.body.removeChild( n ); + } + + + /** + * Perform a jQuery selector action on the table's TR elements (from the tbody) and + * return the resulting jQuery object. + * @param {string|node|jQuery} sSelector jQuery selector or node collection to act on + * @param {object} [oOpts] Optional parameters for modifying the rows to be included + * @param {string} [oOpts.filter=none] Select TR elements that meet the current filter + * criterion ("applied") or all TR elements (i.e. no filter). + * @param {string} [oOpts.order=current] Order of the TR elements in the processed array. + * Can be either 'current', whereby the current sorting of the table is used, or + * 'original' whereby the original order the data was read into the table is used. + * @param {string} [oOpts.page=all] Limit the selection to the currently displayed page + * ("current") or not ("all"). If 'current' is given, then order is assumed to be + * 'current' and filter is 'applied', regardless of what they might be given as. + * @returns {object} jQuery object, filtered by the given selector. + * @dtopt API + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * + * // Highlight every second row + * oTable.$('tr:odd').css('backgroundColor', 'blue'); + * } ); + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * + * // Filter to rows with 'Webkit' in them, add a background colour and then + * // remove the filter, thus highlighting the 'Webkit' rows only. + * oTable.fnFilter('Webkit'); + * oTable.$('tr', {"filter": "applied"}).css('backgroundColor', 'blue'); + * oTable.fnFilter(''); + * } ); + */ + this.$ = function ( sSelector, oOpts ) + { + var i, iLen, a = [], tr; + var oSettings = _fnSettingsFromNode( this[DataTable.ext.iApiIndex] ); + var aoData = oSettings.aoData; + var aiDisplay = oSettings.aiDisplay; + var aiDisplayMaster = oSettings.aiDisplayMaster; + + if ( !oOpts ) + { + oOpts = {}; + } + + oOpts = $.extend( {}, { + "filter": "none", // applied + "order": "current", // "original" + "page": "all" // current + }, oOpts ); + + // Current page implies that order=current and fitler=applied, since it is fairly + // senseless otherwise + if ( oOpts.page == 'current' ) + { + for ( i=oSettings._iDisplayStart, iLen=oSettings.fnDisplayEnd() ; i + *
  • 1D array of data - add a single row with the data provided
  • + *
  • 2D array of arrays - add multiple rows in a single call
  • + *
  • object - data object when using mData
  • + *
  • array of objects - multiple data objects when using mData
  • + * + * @param {bool} [bRedraw=true] redraw the table or not + * @returns {array} An array of integers, representing the list of indexes in + * aoData ({@link DataTable.models.oSettings}) that have been added to + * the table. + * @dtopt API + * + * @example + * // Global var for counter + * var giCount = 2; + * + * $(document).ready(function() { + * $('#example').dataTable(); + * } ); + * + * function fnClickAddRow() { + * $('#example').dataTable().fnAddData( [ + * giCount+".1", + * giCount+".2", + * giCount+".3", + * giCount+".4" ] + * ); + * + * giCount++; + * } + */ + this.fnAddData = function( mData, bRedraw ) + { + if ( mData.length === 0 ) + { + return []; + } + + var aiReturn = []; + var iTest; + + /* Find settings from table node */ + var oSettings = _fnSettingsFromNode( this[DataTable.ext.iApiIndex] ); + + /* Check if we want to add multiple rows or not */ + if ( typeof mData[0] === "object" && mData[0] !== null ) + { + for ( var i=0 ; i= oSettings.fnRecordsDisplay() ) + { + oSettings._iDisplayStart -= oSettings._iDisplayLength; + if ( oSettings._iDisplayStart < 0 ) + { + oSettings._iDisplayStart = 0; + } + } + + if ( bRedraw === undefined || bRedraw ) + { + _fnCalculateEnd( oSettings ); + _fnDraw( oSettings ); + } + + return oData; + }; + + + /** + * Restore the table to it's original state in the DOM by removing all of DataTables + * enhancements, alterations to the DOM structure of the table and event listeners. + * @param {boolean} [bRemove=false] Completely remove the table from the DOM + * @dtopt API + * + * @example + * $(document).ready(function() { + * // This example is fairly pointless in reality, but shows how fnDestroy can be used + * var oTable = $('#example').dataTable(); + * oTable.fnDestroy(); + * } ); + */ + this.fnDestroy = function ( bRemove ) + { + var oSettings = _fnSettingsFromNode( this[DataTable.ext.iApiIndex] ); + var nOrig = oSettings.nTableWrapper.parentNode; + var nBody = oSettings.nTBody; + var i, iLen; + + bRemove = (bRemove===undefined) ? false : bRemove; + + /* Flag to note that the table is currently being destroyed - no action should be taken */ + oSettings.bDestroying = true; + + /* Fire off the destroy callbacks for plug-ins etc */ + _fnCallbackFire( oSettings, "aoDestroyCallback", "destroy", [oSettings] ); + + /* If the table is not being removed, restore the hidden columns */ + if ( !bRemove ) + { + for ( i=0, iLen=oSettings.aoColumns.length ; itr>td.'+oSettings.oClasses.sRowEmpty, oSettings.nTable).parent().remove(); + + /* When scrolling we had to break the table up - restore it */ + if ( oSettings.nTable != oSettings.nTHead.parentNode ) + { + $(oSettings.nTable).children('thead').remove(); + oSettings.nTable.appendChild( oSettings.nTHead ); + } + + if ( oSettings.nTFoot && oSettings.nTable != oSettings.nTFoot.parentNode ) + { + $(oSettings.nTable).children('tfoot').remove(); + oSettings.nTable.appendChild( oSettings.nTFoot ); + } + + /* Remove the DataTables generated nodes, events and classes */ + oSettings.nTable.parentNode.removeChild( oSettings.nTable ); + $(oSettings.nTableWrapper).remove(); + + oSettings.aaSorting = []; + oSettings.aaSortingFixed = []; + _fnSortingClasses( oSettings ); + + $(_fnGetTrNodes( oSettings )).removeClass( oSettings.asStripeClasses.join(' ') ); + + $('th, td', oSettings.nTHead).removeClass( [ + oSettings.oClasses.sSortable, + oSettings.oClasses.sSortableAsc, + oSettings.oClasses.sSortableDesc, + oSettings.oClasses.sSortableNone ].join(' ') + ); + if ( oSettings.bJUI ) + { + $('th span.'+oSettings.oClasses.sSortIcon + + ', td span.'+oSettings.oClasses.sSortIcon, oSettings.nTHead).remove(); + + $('th, td', oSettings.nTHead).each( function () { + var jqWrapper = $('div.'+oSettings.oClasses.sSortJUIWrapper, this); + var kids = jqWrapper.contents(); + $(this).append( kids ); + jqWrapper.remove(); + } ); + } + + /* Add the TR elements back into the table in their original order */ + if ( !bRemove && oSettings.nTableReinsertBefore ) + { + nOrig.insertBefore( oSettings.nTable, oSettings.nTableReinsertBefore ); + } + else if ( !bRemove ) + { + nOrig.appendChild( oSettings.nTable ); + } + + for ( i=0, iLen=oSettings.aoData.length ; i
    for filtering data. + *
      + *
    • + * Function input parameters: + *
        + *
      • {*} Data from the column cell to be prepared for filtering
      • + *
      + *
    • + *
    • + * Function return: + *
        + *
      • {string|null} Formatted string that will be used for the filtering.
      • + *
      + * + *
    + * + * Note that as of v1.9, it is typically preferable to use mData to prepare data for + * the different uses that DataTables can put the data to. Specifically mData when + * used as a function will give you a 'type' (sorting, filtering etc) that you can use to + * prepare the data as required for the different types. As such, this method is deprecated. + * @type object + * @default {} + * @deprecated + * + * @example + * $.fn.dataTableExt.ofnSearch['title-numeric'] = function ( sData ) { + * return sData.replace(/\n/g," ").replace( /<.*?>/g, "" ); + * } + */ + "ofnSearch": {}, + + + /** + * Container for all private functions in DataTables so they can be exposed externally + * @type object + * @default {} + */ + "oApi": {}, + + + /** + * Storage for the various classes that DataTables uses + * @type object + * @default {} + */ + "oStdClasses": {}, + + + /** + * Storage for the various classes that DataTables uses - jQuery UI suitable + * @type object + * @default {} + */ + "oJUIClasses": {}, + + + /** + * Pagination plug-in methods - The style and controls of the pagination can significantly + * impact on how the end user interacts with the data in your table, and DataTables allows + * the addition of pagination controls by extending this object, which can then be enabled + * through the sPaginationType initialisation parameter. Each pagination type that + * is added is an object (the property name of which is what sPaginationType refers + * to) that has two properties, both methods that are used by DataTables to update the + * control's state. + *
      + *
    • + * fnInit - Initialisation of the paging controls. Called only during initialisation + * of the table. It is expected that this function will add the required DOM elements + * to the page for the paging controls to work. The element pointer + * 'oSettings.aanFeatures.p' array is provided by DataTables to contain the paging + * controls (note that this is a 2D array to allow for multiple instances of each + * DataTables DOM element). It is suggested that you add the controls to this element + * as children + *
        + *
      • + * Function input parameters: + *
          + *
        • {object} DataTables settings object: see {@link DataTable.models.oSettings}.
        • + *
        • {node} Container into which the pagination controls must be inserted
        • + *
        • {function} Draw callback function - whenever the controls cause a page + * change, this method must be called to redraw the table.
        • + *
        + *
      • + *
      • + * Function return: + *
          + *
        • No return required
        • + *
        + * + *
      + * + *
    • + * fnInit - This function is called whenever the paging status of the table changes and is + * typically used to update classes and/or text of the paging controls to reflex the new + * status. + *
        + *
      • + * Function input parameters: + *
          + *
        • {object} DataTables settings object: see {@link DataTable.models.oSettings}.
        • + *
        • {function} Draw callback function - in case you need to redraw the table again + * or attach new event listeners
        • + *
        + *
      • + *
      • + * Function return: + *
          + *
        • No return required
        • + *
        + * + *
      + * + *
    + * @type object + * @default {} + * + * @example + * $.fn.dataTableExt.oPagination.four_button = { + * "fnInit": function ( oSettings, nPaging, fnCallbackDraw ) { + * nFirst = document.createElement( 'span' ); + * nPrevious = document.createElement( 'span' ); + * nNext = document.createElement( 'span' ); + * nLast = document.createElement( 'span' ); + * + * nFirst.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sFirst ) ); + * nPrevious.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sPrevious ) ); + * nNext.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sNext ) ); + * nLast.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sLast ) ); + * + * nFirst.className = "paginate_button first"; + * nPrevious.className = "paginate_button previous"; + * nNext.className="paginate_button next"; + * nLast.className = "paginate_button last"; + * + * nPaging.appendChild( nFirst ); + * nPaging.appendChild( nPrevious ); + * nPaging.appendChild( nNext ); + * nPaging.appendChild( nLast ); + * + * $(nFirst).click( function () { + * oSettings.oApi._fnPageChange( oSettings, "first" ); + * fnCallbackDraw( oSettings ); + * } ); + * + * $(nPrevious).click( function() { + * oSettings.oApi._fnPageChange( oSettings, "previous" ); + * fnCallbackDraw( oSettings ); + * } ); + * + * $(nNext).click( function() { + * oSettings.oApi._fnPageChange( oSettings, "next" ); + * fnCallbackDraw( oSettings ); + * } ); + * + * $(nLast).click( function() { + * oSettings.oApi._fnPageChange( oSettings, "last" ); + * fnCallbackDraw( oSettings ); + * } ); + * + * $(nFirst).bind( 'selectstart', function () { return false; } ); + * $(nPrevious).bind( 'selectstart', function () { return false; } ); + * $(nNext).bind( 'selectstart', function () { return false; } ); + * $(nLast).bind( 'selectstart', function () { return false; } ); + * }, + * + * "fnUpdate": function ( oSettings, fnCallbackDraw ) { + * if ( !oSettings.aanFeatures.p ) { + * return; + * } + * + * // Loop over each instance of the pager + * var an = oSettings.aanFeatures.p; + * for ( var i=0, iLen=an.length ; i + *
  • + * Function input parameters: + *
      + *
    • {*} Data to compare to the second parameter
    • + *
    • {*} Data to compare to the first parameter
    • + *
    + *
  • + *
  • + * Function return: + *
      + *
    • {int} Sorting match: <0 if first parameter should be sorted lower than + * the second parameter, ===0 if the two parameters are equal and >0 if + * the first parameter should be sorted height than the second parameter.
    • + *
    + * + * + * @type object + * @default {} + * + * @example + * // Case-sensitive string sorting, with no pre-formatting method + * $.extend( $.fn.dataTableExt.oSort, { + * "string-case-asc": function(x,y) { + * return ((x < y) ? -1 : ((x > y) ? 1 : 0)); + * }, + * "string-case-desc": function(x,y) { + * return ((x < y) ? 1 : ((x > y) ? -1 : 0)); + * } + * } ); + * + * @example + * // Case-insensitive string sorting, with pre-formatting + * $.extend( $.fn.dataTableExt.oSort, { + * "string-pre": function(x) { + * return x.toLowerCase(); + * }, + * "string-asc": function(x,y) { + * return ((x < y) ? -1 : ((x > y) ? 1 : 0)); + * }, + * "string-desc": function(x,y) { + * return ((x < y) ? 1 : ((x > y) ? -1 : 0)); + * } + * } ); + */ + "oSort": {}, + + + /** + * Version string for plug-ins to check compatibility. Allowed format is + * a.b.c.d.e where: a:int, b:int, c:int, d:string(dev|beta), e:int. d and + * e are optional + * @type string + * @default Version number + */ + "sVersion": DataTable.version, + + + /** + * How should DataTables report an error. Can take the value 'alert' or 'throw' + * @type string + * @default alert + */ + "sErrMode": "alert", + + + /** + * Store information for DataTables to access globally about other instances + * @namespace + * @private + */ + "_oExternConfig": { + /* int:iNextUnique - next unique number for an instance */ + "iNextUnique": 0 + } + }; + + + + + /** + * Template object for the way in which DataTables holds information about + * search information for the global filter and individual column filters. + * @namespace + */ + DataTable.models.oSearch = { + /** + * Flag to indicate if the filtering should be case insensitive or not + * @type boolean + * @default true + */ + "bCaseInsensitive": true, + + /** + * Applied search term + * @type string + * @default Empty string + */ + "sSearch": "", + + /** + * Flag to indicate if the search term should be interpreted as a + * regular expression (true) or not (false) and therefore and special + * regex characters escaped. + * @type boolean + * @default false + */ + "bRegex": false, + + /** + * Flag to indicate if DataTables is to use its smart filtering or not. + * @type boolean + * @default true + */ + "bSmart": true + }; + + + + + /** + * Template object for the way in which DataTables holds information about + * each individual row. This is the object format used for the settings + * aoData array. + * @namespace + */ + DataTable.models.oRow = { + /** + * TR element for the row + * @type node + * @default null + */ + "nTr": null, + + /** + * Data object from the original data source for the row. This is either + * an array if using the traditional form of DataTables, or an object if + * using mData options. The exact type will depend on the passed in + * data from the data source, or will be an array if using DOM a data + * source. + * @type array|object + * @default [] + */ + "_aData": [], + + /** + * Sorting data cache - this array is ostensibly the same length as the + * number of columns (although each index is generated only as it is + * needed), and holds the data that is used for sorting each column in the + * row. We do this cache generation at the start of the sort in order that + * the formatting of the sort data need be done only once for each cell + * per sort. This array should not be read from or written to by anything + * other than the master sorting methods. + * @type array + * @default [] + * @private + */ + "_aSortData": [], + + /** + * Array of TD elements that are cached for hidden rows, so they can be + * reinserted into the table if a column is made visible again (or to act + * as a store if a column is made hidden). Only hidden columns have a + * reference in the array. For non-hidden columns the value is either + * undefined or null. + * @type array nodes + * @default [] + * @private + */ + "_anHidden": [], + + /** + * Cache of the class name that DataTables has applied to the row, so we + * can quickly look at this variable rather than needing to do a DOM check + * on className for the nTr property. + * @type string + * @default Empty string + * @private + */ + "_sRowStripe": "" + }; + + + + /** + * Template object for the column information object in DataTables. This object + * is held in the settings aoColumns array and contains all the information that + * DataTables needs about each individual column. + * + * Note that this object is related to {@link DataTable.defaults.columns} + * but this one is the internal data store for DataTables's cache of columns. + * It should NOT be manipulated outside of DataTables. Any configuration should + * be done through the initialisation options. + * @namespace + */ + DataTable.models.oColumn = { + /** + * A list of the columns that sorting should occur on when this column + * is sorted. That this property is an array allows multi-column sorting + * to be defined for a column (for example first name / last name columns + * would benefit from this). The values are integers pointing to the + * columns to be sorted on (typically it will be a single integer pointing + * at itself, but that doesn't need to be the case). + * @type array + */ + "aDataSort": null, + + /** + * Define the sorting directions that are applied to the column, in sequence + * as the column is repeatedly sorted upon - i.e. the first value is used + * as the sorting direction when the column if first sorted (clicked on). + * Sort it again (click again) and it will move on to the next index. + * Repeat until loop. + * @type array + */ + "asSorting": null, + + /** + * Flag to indicate if the column is searchable, and thus should be included + * in the filtering or not. + * @type boolean + */ + "bSearchable": null, + + /** + * Flag to indicate if the column is sortable or not. + * @type boolean + */ + "bSortable": null, + + /** + * Deprecated When using fnRender, you have two options for what + * to do with the data, and this property serves as the switch. Firstly, you + * can have the sorting and filtering use the rendered value (true - default), + * or you can have the sorting and filtering us the original value (false). + * + * Please note that this option has now been deprecated and will be removed + * in the next version of DataTables. Please use mRender / mData rather than + * fnRender. + * @type boolean + * @deprecated + */ + "bUseRendered": null, + + /** + * Flag to indicate if the column is currently visible in the table or not + * @type boolean + */ + "bVisible": null, + + /** + * Flag to indicate to the type detection method if the automatic type + * detection should be used, or if a column type (sType) has been specified + * @type boolean + * @default true + * @private + */ + "_bAutoType": true, + + /** + * Developer definable function that is called whenever a cell is created (Ajax source, + * etc) or processed for input (DOM source). This can be used as a compliment to mRender + * allowing you to modify the DOM element (add background colour for example) when the + * element is available. + * @type function + * @param {element} nTd The TD node that has been created + * @param {*} sData The Data for the cell + * @param {array|object} oData The data for the whole row + * @param {int} iRow The row index for the aoData data store + * @default null + */ + "fnCreatedCell": null, + + /** + * Function to get data from a cell in a column. You should never + * access data directly through _aData internally in DataTables - always use + * the method attached to this property. It allows mData to function as + * required. This function is automatically assigned by the column + * initialisation method + * @type function + * @param {array|object} oData The data array/object for the array + * (i.e. aoData[]._aData) + * @param {string} sSpecific The specific data type you want to get - + * 'display', 'type' 'filter' 'sort' + * @returns {*} The data for the cell from the given row's data + * @default null + */ + "fnGetData": null, + + /** + * Deprecated Custom display function that will be called for the + * display of each cell in this column. + * + * Please note that this option has now been deprecated and will be removed + * in the next version of DataTables. Please use mRender / mData rather than + * fnRender. + * @type function + * @param {object} o Object with the following parameters: + * @param {int} o.iDataRow The row in aoData + * @param {int} o.iDataColumn The column in question + * @param {array} o.aData The data for the row in question + * @param {object} o.oSettings The settings object for this DataTables instance + * @returns {string} The string you which to use in the display + * @default null + * @deprecated + */ + "fnRender": null, + + /** + * Function to set data for a cell in the column. You should never + * set the data directly to _aData internally in DataTables - always use + * this method. It allows mData to function as required. This function + * is automatically assigned by the column initialisation method + * @type function + * @param {array|object} oData The data array/object for the array + * (i.e. aoData[]._aData) + * @param {*} sValue Value to set + * @default null + */ + "fnSetData": null, + + /** + * Property to read the value for the cells in the column from the data + * source array / object. If null, then the default content is used, if a + * function is given then the return from the function is used. + * @type function|int|string|null + * @default null + */ + "mData": null, + + /** + * Partner property to mData which is used (only when defined) to get + * the data - i.e. it is basically the same as mData, but without the + * 'set' option, and also the data fed to it is the result from mData. + * This is the rendering method to match the data method of mData. + * @type function|int|string|null + * @default null + */ + "mRender": null, + + /** + * Unique header TH/TD element for this column - this is what the sorting + * listener is attached to (if sorting is enabled.) + * @type node + * @default null + */ + "nTh": null, + + /** + * Unique footer TH/TD element for this column (if there is one). Not used + * in DataTables as such, but can be used for plug-ins to reference the + * footer for each column. + * @type node + * @default null + */ + "nTf": null, + + /** + * The class to apply to all TD elements in the table's TBODY for the column + * @type string + * @default null + */ + "sClass": null, + + /** + * When DataTables calculates the column widths to assign to each column, + * it finds the longest string in each column and then constructs a + * temporary table and reads the widths from that. The problem with this + * is that "mmm" is much wider then "iiii", but the latter is a longer + * string - thus the calculation can go wrong (doing it properly and putting + * it into an DOM object and measuring that is horribly(!) slow). Thus as + * a "work around" we provide this option. It will append its value to the + * text that is found to be the longest string for the column - i.e. padding. + * @type string + */ + "sContentPadding": null, + + /** + * Allows a default value to be given for a column's data, and will be used + * whenever a null data source is encountered (this can be because mData + * is set to null, or because the data source itself is null). + * @type string + * @default null + */ + "sDefaultContent": null, + + /** + * Name for the column, allowing reference to the column by name as well as + * by index (needs a lookup to work by name). + * @type string + */ + "sName": null, + + /** + * Custom sorting data type - defines which of the available plug-ins in + * afnSortData the custom sorting will use - if any is defined. + * @type string + * @default std + */ + "sSortDataType": 'std', + + /** + * Class to be applied to the header element when sorting on this column + * @type string + * @default null + */ + "sSortingClass": null, + + /** + * Class to be applied to the header element when sorting on this column - + * when jQuery UI theming is used. + * @type string + * @default null + */ + "sSortingClassJUI": null, + + /** + * Title of the column - what is seen in the TH element (nTh). + * @type string + */ + "sTitle": null, + + /** + * Column sorting and filtering type + * @type string + * @default null + */ + "sType": null, + + /** + * Width of the column + * @type string + * @default null + */ + "sWidth": null, + + /** + * Width of the column when it was first "encountered" + * @type string + * @default null + */ + "sWidthOrig": null + }; + + + + /** + * Initialisation options that can be given to DataTables at initialisation + * time. + * @namespace + */ + DataTable.defaults = { + /** + * An array of data to use for the table, passed in at initialisation which + * will be used in preference to any data which is already in the DOM. This is + * particularly useful for constructing tables purely in Javascript, for + * example with a custom Ajax call. + * @type array + * @default null + * @dtopt Option + * + * @example + * // Using a 2D array data source + * $(document).ready( function () { + * $('#example').dataTable( { + * "aaData": [ + * ['Trident', 'Internet Explorer 4.0', 'Win 95+', 4, 'X'], + * ['Trident', 'Internet Explorer 5.0', 'Win 95+', 5, 'C'], + * ], + * "aoColumns": [ + * { "sTitle": "Engine" }, + * { "sTitle": "Browser" }, + * { "sTitle": "Platform" }, + * { "sTitle": "Version" }, + * { "sTitle": "Grade" } + * ] + * } ); + * } ); + * + * @example + * // Using an array of objects as a data source (mData) + * $(document).ready( function () { + * $('#example').dataTable( { + * "aaData": [ + * { + * "engine": "Trident", + * "browser": "Internet Explorer 4.0", + * "platform": "Win 95+", + * "version": 4, + * "grade": "X" + * }, + * { + * "engine": "Trident", + * "browser": "Internet Explorer 5.0", + * "platform": "Win 95+", + * "version": 5, + * "grade": "C" + * } + * ], + * "aoColumns": [ + * { "sTitle": "Engine", "mData": "engine" }, + * { "sTitle": "Browser", "mData": "browser" }, + * { "sTitle": "Platform", "mData": "platform" }, + * { "sTitle": "Version", "mData": "version" }, + * { "sTitle": "Grade", "mData": "grade" } + * ] + * } ); + * } ); + */ + "aaData": null, + + + /** + * If sorting is enabled, then DataTables will perform a first pass sort on + * initialisation. You can define which column(s) the sort is performed upon, + * and the sorting direction, with this variable. The aaSorting array should + * contain an array for each column to be sorted initially containing the + * column's index and a direction string ('asc' or 'desc'). + * @type array + * @default [[0,'asc']] + * @dtopt Option + * + * @example + * // Sort by 3rd column first, and then 4th column + * $(document).ready( function() { + * $('#example').dataTable( { + * "aaSorting": [[2,'asc'], [3,'desc']] + * } ); + * } ); + * + * // No initial sorting + * $(document).ready( function() { + * $('#example').dataTable( { + * "aaSorting": [] + * } ); + * } ); + */ + "aaSorting": [[0,'asc']], + + + /** + * This parameter is basically identical to the aaSorting parameter, but + * cannot be overridden by user interaction with the table. What this means + * is that you could have a column (visible or hidden) which the sorting will + * always be forced on first - any sorting after that (from the user) will + * then be performed as required. This can be useful for grouping rows + * together. + * @type array + * @default null + * @dtopt Option + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "aaSortingFixed": [[0,'asc']] + * } ); + * } ) + */ + "aaSortingFixed": null, + + + /** + * This parameter allows you to readily specify the entries in the length drop + * down menu that DataTables shows when pagination is enabled. It can be + * either a 1D array of options which will be used for both the displayed + * option and the value, or a 2D array which will use the array in the first + * position as the value, and the array in the second position as the + * displayed options (useful for language strings such as 'All'). + * @type array + * @default [ 10, 25, 50, 100 ] + * @dtopt Option + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]] + * } ); + * } ); + * + * @example + * // Setting the default display length as well as length menu + * // This is likely to be wanted if you remove the '10' option which + * // is the iDisplayLength default. + * $(document).ready( function() { + * $('#example').dataTable( { + * "iDisplayLength": 25, + * "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]] + * } ); + * } ); + */ + "aLengthMenu": [ 10, 25, 50, 100 ], + + + /** + * The aoColumns option in the initialisation parameter allows you to define + * details about the way individual columns behave. For a full list of + * column options that can be set, please see + * {@link DataTable.defaults.columns}. Note that if you use aoColumns to + * define your columns, you must have an entry in the array for every single + * column that you have in your table (these can be null if you don't which + * to specify any options). + * @member + */ + "aoColumns": null, + + /** + * Very similar to aoColumns, aoColumnDefs allows you to target a specific + * column, multiple columns, or all columns, using the aTargets property of + * each object in the array. This allows great flexibility when creating + * tables, as the aoColumnDefs arrays can be of any length, targeting the + * columns you specifically want. aoColumnDefs may use any of the column + * options available: {@link DataTable.defaults.columns}, but it _must_ + * have aTargets defined in each object in the array. Values in the aTargets + * array may be: + *
      + *
    • a string - class name will be matched on the TH for the column
    • + *
    • 0 or a positive integer - column index counting from the left
    • + *
    • a negative integer - column index counting from the right
    • + *
    • the string "_all" - all columns (i.e. assign a default)
    • + *
    + * @member + */ + "aoColumnDefs": null, + + + /** + * Basically the same as oSearch, this parameter defines the individual column + * filtering state at initialisation time. The array must be of the same size + * as the number of columns, and each element be an object with the parameters + * "sSearch" and "bEscapeRegex" (the latter is optional). 'null' is also + * accepted and the default will be used. + * @type array + * @default [] + * @dtopt Option + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoSearchCols": [ + * null, + * { "sSearch": "My filter" }, + * null, + * { "sSearch": "^[0-9]", "bEscapeRegex": false } + * ] + * } ); + * } ) + */ + "aoSearchCols": [], + + + /** + * An array of CSS classes that should be applied to displayed rows. This + * array may be of any length, and DataTables will apply each class + * sequentially, looping when required. + * @type array + * @default null Will take the values determined by the oClasses.sStripe* + * options + * @dtopt Option + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "asStripeClasses": [ 'strip1', 'strip2', 'strip3' ] + * } ); + * } ) + */ + "asStripeClasses": null, + + + /** + * Enable or disable automatic column width calculation. This can be disabled + * as an optimisation (it takes some time to calculate the widths) if the + * tables widths are passed in using aoColumns. + * @type boolean + * @default true + * @dtopt Features + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "bAutoWidth": false + * } ); + * } ); + */ + "bAutoWidth": true, + + + /** + * Deferred rendering can provide DataTables with a huge speed boost when you + * are using an Ajax or JS data source for the table. This option, when set to + * true, will cause DataTables to defer the creation of the table elements for + * each row until they are needed for a draw - saving a significant amount of + * time. + * @type boolean + * @default false + * @dtopt Features + * + * @example + * $(document).ready( function() { + * var oTable = $('#example').dataTable( { + * "sAjaxSource": "sources/arrays.txt", + * "bDeferRender": true + * } ); + * } ); + */ + "bDeferRender": false, + + + /** + * Replace a DataTable which matches the given selector and replace it with + * one which has the properties of the new initialisation object passed. If no + * table matches the selector, then the new DataTable will be constructed as + * per normal. + * @type boolean + * @default false + * @dtopt Options + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "sScrollY": "200px", + * "bPaginate": false + * } ); + * + * // Some time later.... + * $('#example').dataTable( { + * "bFilter": false, + * "bDestroy": true + * } ); + * } ); + */ + "bDestroy": false, + + + /** + * Enable or disable filtering of data. Filtering in DataTables is "smart" in + * that it allows the end user to input multiple words (space separated) and + * will match a row containing those words, even if not in the order that was + * specified (this allow matching across multiple columns). Note that if you + * wish to use filtering in DataTables this must remain 'true' - to remove the + * default filtering input box and retain filtering abilities, please use + * {@link DataTable.defaults.sDom}. + * @type boolean + * @default true + * @dtopt Features + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "bFilter": false + * } ); + * } ); + */ + "bFilter": true, + + + /** + * Enable or disable the table information display. This shows information + * about the data that is currently visible on the page, including information + * about filtered data if that action is being performed. + * @type boolean + * @default true + * @dtopt Features + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "bInfo": false + * } ); + * } ); + */ + "bInfo": true, + + + /** + * Enable jQuery UI ThemeRoller support (required as ThemeRoller requires some + * slightly different and additional mark-up from what DataTables has + * traditionally used). + * @type boolean + * @default false + * @dtopt Features + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "bJQueryUI": true + * } ); + * } ); + */ + "bJQueryUI": false, + + + /** + * Allows the end user to select the size of a formatted page from a select + * menu (sizes are 10, 25, 50 and 100). Requires pagination (bPaginate). + * @type boolean + * @default true + * @dtopt Features + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "bLengthChange": false + * } ); + * } ); + */ + "bLengthChange": true, + + + /** + * Enable or disable pagination. + * @type boolean + * @default true + * @dtopt Features + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "bPaginate": false + * } ); + * } ); + */ + "bPaginate": true, + + + /** + * Enable or disable the display of a 'processing' indicator when the table is + * being processed (e.g. a sort). This is particularly useful for tables with + * large amounts of data where it can take a noticeable amount of time to sort + * the entries. + * @type boolean + * @default false + * @dtopt Features + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "bProcessing": true + * } ); + * } ); + */ + "bProcessing": false, + + + /** + * Retrieve the DataTables object for the given selector. Note that if the + * table has already been initialised, this parameter will cause DataTables + * to simply return the object that has already been set up - it will not take + * account of any changes you might have made to the initialisation object + * passed to DataTables (setting this parameter to true is an acknowledgement + * that you understand this). bDestroy can be used to reinitialise a table if + * you need. + * @type boolean + * @default false + * @dtopt Options + * + * @example + * $(document).ready( function() { + * initTable(); + * tableActions(); + * } ); + * + * function initTable () + * { + * return $('#example').dataTable( { + * "sScrollY": "200px", + * "bPaginate": false, + * "bRetrieve": true + * } ); + * } + * + * function tableActions () + * { + * var oTable = initTable(); + * // perform API operations with oTable + * } + */ + "bRetrieve": false, + + + /** + * Indicate if DataTables should be allowed to set the padding / margin + * etc for the scrolling header elements or not. Typically you will want + * this. + * @type boolean + * @default true + * @dtopt Options + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "bScrollAutoCss": false, + * "sScrollY": "200px" + * } ); + * } ); + */ + "bScrollAutoCss": true, + + + /** + * When vertical (y) scrolling is enabled, DataTables will force the height of + * the table's viewport to the given height at all times (useful for layout). + * However, this can look odd when filtering data down to a small data set, + * and the footer is left "floating" further down. This parameter (when + * enabled) will cause DataTables to collapse the table's viewport down when + * the result set will fit within the given Y height. + * @type boolean + * @default false + * @dtopt Options + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "sScrollY": "200", + * "bScrollCollapse": true + * } ); + * } ); + */ + "bScrollCollapse": false, + + + /** + * Enable infinite scrolling for DataTables (to be used in combination with + * sScrollY). Infinite scrolling means that DataTables will continually load + * data as a user scrolls through a table, which is very useful for large + * dataset. This cannot be used with pagination, which is automatically + * disabled. Note - the Scroller extra for DataTables is recommended in + * in preference to this option. + * @type boolean + * @default false + * @dtopt Features + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "bScrollInfinite": true, + * "bScrollCollapse": true, + * "sScrollY": "200px" + * } ); + * } ); + */ + "bScrollInfinite": false, + + + /** + * Configure DataTables to use server-side processing. Note that the + * sAjaxSource parameter must also be given in order to give DataTables a + * source to obtain the required data for each draw. + * @type boolean + * @default false + * @dtopt Features + * @dtopt Server-side + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "bServerSide": true, + * "sAjaxSource": "xhr.php" + * } ); + * } ); + */ + "bServerSide": false, + + + /** + * Enable or disable sorting of columns. Sorting of individual columns can be + * disabled by the "bSortable" option for each column. + * @type boolean + * @default true + * @dtopt Features + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "bSort": false + * } ); + * } ); + */ + "bSort": true, + + + /** + * Allows control over whether DataTables should use the top (true) unique + * cell that is found for a single column, or the bottom (false - default). + * This is useful when using complex headers. + * @type boolean + * @default false + * @dtopt Options + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "bSortCellsTop": true + * } ); + * } ); + */ + "bSortCellsTop": false, + + + /** + * Enable or disable the addition of the classes 'sorting_1', 'sorting_2' and + * 'sorting_3' to the columns which are currently being sorted on. This is + * presented as a feature switch as it can increase processing time (while + * classes are removed and added) so for large data sets you might want to + * turn this off. + * @type boolean + * @default true + * @dtopt Features + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "bSortClasses": false + * } ); + * } ); + */ + "bSortClasses": true, + + + /** + * Enable or disable state saving. When enabled a cookie will be used to save + * table display information such as pagination information, display length, + * filtering and sorting. As such when the end user reloads the page the + * display display will match what thy had previously set up. + * @type boolean + * @default false + * @dtopt Features + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "bStateSave": true + * } ); + * } ); + */ + "bStateSave": false, + + + /** + * Customise the cookie and / or the parameters being stored when using + * DataTables with state saving enabled. This function is called whenever + * the cookie is modified, and it expects a fully formed cookie string to be + * returned. Note that the data object passed in is a Javascript object which + * must be converted to a string (JSON.stringify for example). + * @type function + * @param {string} sName Name of the cookie defined by DataTables + * @param {object} oData Data to be stored in the cookie + * @param {string} sExpires Cookie expires string + * @param {string} sPath Path of the cookie to set + * @returns {string} Cookie formatted string (which should be encoded by + * using encodeURIComponent()) + * @dtopt Callbacks + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "fnCookieCallback": function (sName, oData, sExpires, sPath) { + * // Customise oData or sName or whatever else here + * return sName + "="+JSON.stringify(oData)+"; expires=" + sExpires +"; path=" + sPath; + * } + * } ); + * } ); + */ + "fnCookieCallback": null, + + + /** + * This function is called when a TR element is created (and all TD child + * elements have been inserted), or registered if using a DOM source, allowing + * manipulation of the TR element (adding classes etc). + * @type function + * @param {node} nRow "TR" element for the current row + * @param {array} aData Raw data array for this row + * @param {int} iDataIndex The index of this row in aoData + * @dtopt Callbacks + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "fnCreatedRow": function( nRow, aData, iDataIndex ) { + * // Bold the grade for all 'A' grade browsers + * if ( aData[4] == "A" ) + * { + * $('td:eq(4)', nRow).html( 'A' ); + * } + * } + * } ); + * } ); + */ + "fnCreatedRow": null, + + + /** + * This function is called on every 'draw' event, and allows you to + * dynamically modify any aspect you want about the created DOM. + * @type function + * @param {object} oSettings DataTables settings object + * @dtopt Callbacks + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "fnDrawCallback": function( oSettings ) { + * alert( 'DataTables has redrawn the table' ); + * } + * } ); + * } ); + */ + "fnDrawCallback": null, + + + /** + * Identical to fnHeaderCallback() but for the table footer this function + * allows you to modify the table footer on every 'draw' even. + * @type function + * @param {node} nFoot "TR" element for the footer + * @param {array} aData Full table data (as derived from the original HTML) + * @param {int} iStart Index for the current display starting point in the + * display array + * @param {int} iEnd Index for the current display ending point in the + * display array + * @param {array int} aiDisplay Index array to translate the visual position + * to the full data array + * @dtopt Callbacks + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "fnFooterCallback": function( nFoot, aData, iStart, iEnd, aiDisplay ) { + * nFoot.getElementsByTagName('th')[0].innerHTML = "Starting index is "+iStart; + * } + * } ); + * } ) + */ + "fnFooterCallback": null, + + + /** + * When rendering large numbers in the information element for the table + * (i.e. "Showing 1 to 10 of 57 entries") DataTables will render large numbers + * to have a comma separator for the 'thousands' units (e.g. 1 million is + * rendered as "1,000,000") to help readability for the end user. This + * function will override the default method DataTables uses. + * @type function + * @member + * @param {int} iIn number to be formatted + * @returns {string} formatted string for DataTables to show the number + * @dtopt Callbacks + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "fnFormatNumber": function ( iIn ) { + * if ( iIn < 1000 ) { + * return iIn; + * } else { + * var + * s=(iIn+""), + * a=s.split(""), out="", + * iLen=s.length; + * + * for ( var i=0 ; i<iLen ; i++ ) { + * if ( i%3 === 0 && i !== 0 ) { + * out = "'"+out; + * } + * out = a[iLen-i-1]+out; + * } + * } + * return out; + * }; + * } ); + * } ); + */ + "fnFormatNumber": function ( iIn ) { + if ( iIn < 1000 ) + { + // A small optimisation for what is likely to be the majority of use cases + return iIn; + } + + var s=(iIn+""), a=s.split(""), out="", iLen=s.length; + + for ( var i=0 ; iA
    ' ); + * } + * } + * } ); + * } ); + */ + "fnRowCallback": null, + + + /** + * This parameter allows you to override the default function which obtains + * the data from the server ($.getJSON) so something more suitable for your + * application. For example you could use POST data, or pull information from + * a Gears or AIR database. + * @type function + * @member + * @param {string} sSource HTTP source to obtain the data from (sAjaxSource) + * @param {array} aoData A key/value pair object containing the data to send + * to the server + * @param {function} fnCallback to be called on completion of the data get + * process that will draw the data on the page. + * @param {object} oSettings DataTables settings object + * @dtopt Callbacks + * @dtopt Server-side + * + * @example + * // POST data to server + * $(document).ready( function() { + * $('#example').dataTable( { + * "bProcessing": true, + * "bServerSide": true, + * "sAjaxSource": "xhr.php", + * "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) { + * oSettings.jqXHR = $.ajax( { + * "dataType": 'json', + * "type": "POST", + * "url": sSource, + * "data": aoData, + * "success": fnCallback + * } ); + * } + * } ); + * } ); + */ + "fnServerData": function ( sUrl, aoData, fnCallback, oSettings ) { + oSettings.jqXHR = $.ajax( { + "url": sUrl, + "data": aoData, + "success": function (json) { + if ( json.sError ) { + oSettings.oApi._fnLog( oSettings, 0, json.sError ); + } + + $(oSettings.oInstance).trigger('xhr', [oSettings, json]); + fnCallback( json ); + }, + "dataType": "json", + "cache": false, + "type": oSettings.sServerMethod, + "error": function (xhr, error, thrown) { + if ( error == "parsererror" ) { + oSettings.oApi._fnLog( oSettings, 0, "DataTables warning: JSON data from "+ + "server could not be parsed. This is caused by a JSON formatting error." ); + } + } + } ); + }, + + + /** + * It is often useful to send extra data to the server when making an Ajax + * request - for example custom filtering information, and this callback + * function makes it trivial to send extra information to the server. The + * passed in parameter is the data set that has been constructed by + * DataTables, and you can add to this or modify it as you require. + * @type function + * @param {array} aoData Data array (array of objects which are name/value + * pairs) that has been constructed by DataTables and will be sent to the + * server. In the case of Ajax sourced data with server-side processing + * this will be an empty array, for server-side processing there will be a + * significant number of parameters! + * @returns {undefined} Ensure that you modify the aoData array passed in, + * as this is passed by reference. + * @dtopt Callbacks + * @dtopt Server-side + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "bProcessing": true, + * "bServerSide": true, + * "sAjaxSource": "scripts/server_processing.php", + * "fnServerParams": function ( aoData ) { + * aoData.push( { "name": "more_data", "value": "my_value" } ); + * } + * } ); + * } ); + */ + "fnServerParams": null, + + + /** + * Load the table state. With this function you can define from where, and how, the + * state of a table is loaded. By default DataTables will load from its state saving + * cookie, but you might wish to use local storage (HTML5) or a server-side database. + * @type function + * @member + * @param {object} oSettings DataTables settings object + * @return {object} The DataTables state object to be loaded + * @dtopt Callbacks + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "bStateSave": true, + * "fnStateLoad": function (oSettings) { + * var o; + * + * // Send an Ajax request to the server to get the data. Note that + * // this is a synchronous request. + * $.ajax( { + * "url": "/state_load", + * "async": false, + * "dataType": "json", + * "success": function (json) { + * o = json; + * } + * } ); + * + * return o; + * } + * } ); + * } ); + */ + "fnStateLoad": function ( oSettings ) { + var sData = this.oApi._fnReadCookie( oSettings.sCookiePrefix+oSettings.sInstance ); + var oData; + + try { + oData = (typeof $.parseJSON === 'function') ? + $.parseJSON(sData) : eval( '('+sData+')' ); + } catch (e) { + oData = null; + } + + return oData; + }, + + + /** + * Callback which allows modification of the saved state prior to loading that state. + * This callback is called when the table is loading state from the stored data, but + * prior to the settings object being modified by the saved state. Note that for + * plug-in authors, you should use the 'stateLoadParams' event to load parameters for + * a plug-in. + * @type function + * @param {object} oSettings DataTables settings object + * @param {object} oData The state object that is to be loaded + * @dtopt Callbacks + * + * @example + * // Remove a saved filter, so filtering is never loaded + * $(document).ready( function() { + * $('#example').dataTable( { + * "bStateSave": true, + * "fnStateLoadParams": function (oSettings, oData) { + * oData.oSearch.sSearch = ""; + * } + * } ); + * } ); + * + * @example + * // Disallow state loading by returning false + * $(document).ready( function() { + * $('#example').dataTable( { + * "bStateSave": true, + * "fnStateLoadParams": function (oSettings, oData) { + * return false; + * } + * } ); + * } ); + */ + "fnStateLoadParams": null, + + + /** + * Callback that is called when the state has been loaded from the state saving method + * and the DataTables settings object has been modified as a result of the loaded state. + * @type function + * @param {object} oSettings DataTables settings object + * @param {object} oData The state object that was loaded + * @dtopt Callbacks + * + * @example + * // Show an alert with the filtering value that was saved + * $(document).ready( function() { + * $('#example').dataTable( { + * "bStateSave": true, + * "fnStateLoaded": function (oSettings, oData) { + * alert( 'Saved filter was: '+oData.oSearch.sSearch ); + * } + * } ); + * } ); + */ + "fnStateLoaded": null, + + + /** + * Save the table state. This function allows you to define where and how the state + * information for the table is stored - by default it will use a cookie, but you + * might want to use local storage (HTML5) or a server-side database. + * @type function + * @member + * @param {object} oSettings DataTables settings object + * @param {object} oData The state object to be saved + * @dtopt Callbacks + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "bStateSave": true, + * "fnStateSave": function (oSettings, oData) { + * // Send an Ajax request to the server with the state object + * $.ajax( { + * "url": "/state_save", + * "data": oData, + * "dataType": "json", + * "method": "POST" + * "success": function () {} + * } ); + * } + * } ); + * } ); + */ + "fnStateSave": function ( oSettings, oData ) { + this.oApi._fnCreateCookie( + oSettings.sCookiePrefix+oSettings.sInstance, + this.oApi._fnJsonString(oData), + oSettings.iCookieDuration, + oSettings.sCookiePrefix, + oSettings.fnCookieCallback + ); + }, + + + /** + * Callback which allows modification of the state to be saved. Called when the table + * has changed state a new state save is required. This method allows modification of + * the state saving object prior to actually doing the save, including addition or + * other state properties or modification. Note that for plug-in authors, you should + * use the 'stateSaveParams' event to save parameters for a plug-in. + * @type function + * @param {object} oSettings DataTables settings object + * @param {object} oData The state object to be saved + * @dtopt Callbacks + * + * @example + * // Remove a saved filter, so filtering is never saved + * $(document).ready( function() { + * $('#example').dataTable( { + * "bStateSave": true, + * "fnStateSaveParams": function (oSettings, oData) { + * oData.oSearch.sSearch = ""; + * } + * } ); + * } ); + */ + "fnStateSaveParams": null, + + + /** + * Duration of the cookie which is used for storing session information. This + * value is given in seconds. + * @type int + * @default 7200 (2 hours) + * @dtopt Options + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "iCookieDuration": 60*60*24; // 1 day + * } ); + * } ) + */ + "iCookieDuration": 7200, + + + /** + * When enabled DataTables will not make a request to the server for the first + * page draw - rather it will use the data already on the page (no sorting etc + * will be applied to it), thus saving on an XHR at load time. iDeferLoading + * is used to indicate that deferred loading is required, but it is also used + * to tell DataTables how many records there are in the full table (allowing + * the information element and pagination to be displayed correctly). In the case + * where a filtering is applied to the table on initial load, this can be + * indicated by giving the parameter as an array, where the first element is + * the number of records available after filtering and the second element is the + * number of records without filtering (allowing the table information element + * to be shown correctly). + * @type int | array + * @default null + * @dtopt Options + * + * @example + * // 57 records available in the table, no filtering applied + * $(document).ready( function() { + * $('#example').dataTable( { + * "bServerSide": true, + * "sAjaxSource": "scripts/server_processing.php", + * "iDeferLoading": 57 + * } ); + * } ); + * + * @example + * // 57 records after filtering, 100 without filtering (an initial filter applied) + * $(document).ready( function() { + * $('#example').dataTable( { + * "bServerSide": true, + * "sAjaxSource": "scripts/server_processing.php", + * "iDeferLoading": [ 57, 100 ], + * "oSearch": { + * "sSearch": "my_filter" + * } + * } ); + * } ); + */ + "iDeferLoading": null, + + + /** + * Number of rows to display on a single page when using pagination. If + * feature enabled (bLengthChange) then the end user will be able to override + * this to a custom setting using a pop-up menu. + * @type int + * @default 10 + * @dtopt Options + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "iDisplayLength": 50 + * } ); + * } ) + */ + "iDisplayLength": 10, + + + /** + * Define the starting point for data display when using DataTables with + * pagination. Note that this parameter is the number of records, rather than + * the page number, so if you have 10 records per page and want to start on + * the third page, it should be "20". + * @type int + * @default 0 + * @dtopt Options + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "iDisplayStart": 20 + * } ); + * } ) + */ + "iDisplayStart": 0, + + + /** + * The scroll gap is the amount of scrolling that is left to go before + * DataTables will load the next 'page' of data automatically. You typically + * want a gap which is big enough that the scrolling will be smooth for the + * user, while not so large that it will load more data than need. + * @type int + * @default 100 + * @dtopt Options + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "bScrollInfinite": true, + * "bScrollCollapse": true, + * "sScrollY": "200px", + * "iScrollLoadGap": 50 + * } ); + * } ); + */ + "iScrollLoadGap": 100, + + + /** + * By default DataTables allows keyboard navigation of the table (sorting, paging, + * and filtering) by adding a tabindex attribute to the required elements. This + * allows you to tab through the controls and press the enter key to activate them. + * The tabindex is default 0, meaning that the tab follows the flow of the document. + * You can overrule this using this parameter if you wish. Use a value of -1 to + * disable built-in keyboard navigation. + * @type int + * @default 0 + * @dtopt Options + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "iTabIndex": 1 + * } ); + * } ); + */ + "iTabIndex": 0, + + + /** + * All strings that DataTables uses in the user interface that it creates + * are defined in this object, allowing you to modified them individually or + * completely replace them all as required. + * @namespace + */ + "oLanguage": { + /** + * Strings that are used for WAI-ARIA labels and controls only (these are not + * actually visible on the page, but will be read by screenreaders, and thus + * must be internationalised as well). + * @namespace + */ + "oAria": { + /** + * ARIA label that is added to the table headers when the column may be + * sorted ascending by activing the column (click or return when focused). + * Note that the column header is prefixed to this string. + * @type string + * @default : activate to sort column ascending + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "oAria": { + * "sSortAscending": " - click/return to sort ascending" + * } + * } + * } ); + * } ); + */ + "sSortAscending": ": activate to sort column ascending", + + /** + * ARIA label that is added to the table headers when the column may be + * sorted descending by activing the column (click or return when focused). + * Note that the column header is prefixed to this string. + * @type string + * @default : activate to sort column ascending + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "oAria": { + * "sSortDescending": " - click/return to sort descending" + * } + * } + * } ); + * } ); + */ + "sSortDescending": ": activate to sort column descending" + }, + + /** + * Pagination string used by DataTables for the two built-in pagination + * control types ("two_button" and "full_numbers") + * @namespace + */ + "oPaginate": { + /** + * Text to use when using the 'full_numbers' type of pagination for the + * button to take the user to the first page. + * @type string + * @default First + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "oPaginate": { + * "sFirst": "First page" + * } + * } + * } ); + * } ); + */ + "sFirst": "First", + + + /** + * Text to use when using the 'full_numbers' type of pagination for the + * button to take the user to the last page. + * @type string + * @default Last + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "oPaginate": { + * "sLast": "Last page" + * } + * } + * } ); + * } ); + */ + "sLast": "Last", + + + /** + * Text to use for the 'next' pagination button (to take the user to the + * next page). + * @type string + * @default Next + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "oPaginate": { + * "sNext": "Next page" + * } + * } + * } ); + * } ); + */ + "sNext": "Next", + + + /** + * Text to use for the 'previous' pagination button (to take the user to + * the previous page). + * @type string + * @default Previous + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "oPaginate": { + * "sPrevious": "Previous page" + * } + * } + * } ); + * } ); + */ + "sPrevious": "Previous" + }, + + /** + * This string is shown in preference to sZeroRecords when the table is + * empty of data (regardless of filtering). Note that this is an optional + * parameter - if it is not given, the value of sZeroRecords will be used + * instead (either the default or given value). + * @type string + * @default No data available in table + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "sEmptyTable": "No data available in table" + * } + * } ); + * } ); + */ + "sEmptyTable": "No data available in table", + + + /** + * This string gives information to the end user about the information that + * is current on display on the page. The _START_, _END_ and _TOTAL_ + * variables are all dynamically replaced as the table display updates, and + * can be freely moved or removed as the language requirements change. + * @type string + * @default Showing _START_ to _END_ of _TOTAL_ entries + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "sInfo": "Got a total of _TOTAL_ entries to show (_START_ to _END_)" + * } + * } ); + * } ); + */ + "sInfo": "Showing _START_ to _END_ of _TOTAL_ entries", + + + /** + * Display information string for when the table is empty. Typically the + * format of this string should match sInfo. + * @type string + * @default Showing 0 to 0 of 0 entries + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "sInfoEmpty": "No entries to show" + * } + * } ); + * } ); + */ + "sInfoEmpty": "Showing 0 to 0 of 0 entries", + + + /** + * When a user filters the information in a table, this string is appended + * to the information (sInfo) to give an idea of how strong the filtering + * is. The variable _MAX_ is dynamically updated. + * @type string + * @default (filtered from _MAX_ total entries) + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "sInfoFiltered": " - filtering from _MAX_ records" + * } + * } ); + * } ); + */ + "sInfoFiltered": "(filtered from _MAX_ total entries)", + + + /** + * If can be useful to append extra information to the info string at times, + * and this variable does exactly that. This information will be appended to + * the sInfo (sInfoEmpty and sInfoFiltered in whatever combination they are + * being used) at all times. + * @type string + * @default Empty string + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "sInfoPostFix": "All records shown are derived from real information." + * } + * } ); + * } ); + */ + "sInfoPostFix": "", + + + /** + * DataTables has a build in number formatter (fnFormatNumber) which is used + * to format large numbers that are used in the table information. By + * default a comma is used, but this can be trivially changed to any + * character you wish with this parameter. + * @type string + * @default , + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "sInfoThousands": "'" + * } + * } ); + * } ); + */ + "sInfoThousands": ",", + + + /** + * Detail the action that will be taken when the drop down menu for the + * pagination length option is changed. The '_MENU_' variable is replaced + * with a default select list of 10, 25, 50 and 100, and can be replaced + * with a custom select box if required. + * @type string + * @default Show _MENU_ entries + * @dtopt Language + * + * @example + * // Language change only + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "sLengthMenu": "Display _MENU_ records" + * } + * } ); + * } ); + * + * @example + * // Language and options change + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "sLengthMenu": 'Display records' + * } + * } ); + * } ); + */ + "sLengthMenu": "Show _MENU_ entries", + + + /** + * When using Ajax sourced data and during the first draw when DataTables is + * gathering the data, this message is shown in an empty row in the table to + * indicate to the end user the the data is being loaded. Note that this + * parameter is not used when loading data by server-side processing, just + * Ajax sourced data with client-side processing. + * @type string + * @default Loading... + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "sLoadingRecords": "Please wait - loading..." + * } + * } ); + * } ); + */ + "sLoadingRecords": "Loading...", + + + /** + * Text which is displayed when the table is processing a user action + * (usually a sort command or similar). + * @type string + * @default Processing... + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "sProcessing": "DataTables is currently busy" + * } + * } ); + * } ); + */ + "sProcessing": "Processing...", + + + /** + * Details the actions that will be taken when the user types into the + * filtering input text box. The variable "_INPUT_", if used in the string, + * is replaced with the HTML text box for the filtering input allowing + * control over where it appears in the string. If "_INPUT_" is not given + * then the input box is appended to the string automatically. + * @type string + * @default Search: + * @dtopt Language + * + * @example + * // Input text box will be appended at the end automatically + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "sSearch": "Filter records:" + * } + * } ); + * } ); + * + * @example + * // Specify where the filter should appear + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "sSearch": "Apply filter _INPUT_ to table" + * } + * } ); + * } ); + */ + "sSearch": "Search:", + + + /** + * All of the language information can be stored in a file on the + * server-side, which DataTables will look up if this parameter is passed. + * It must store the URL of the language file, which is in a JSON format, + * and the object has the same properties as the oLanguage object in the + * initialiser object (i.e. the above parameters). Please refer to one of + * the example language files to see how this works in action. + * @type string + * @default Empty string - i.e. disabled + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "sUrl": "http://www.sprymedia.co.uk/dataTables/lang.txt" + * } + * } ); + * } ); + */ + "sUrl": "", + + + /** + * Text shown inside the table records when the is no information to be + * displayed after filtering. sEmptyTable is shown when there is simply no + * information in the table at all (regardless of filtering). + * @type string + * @default No matching records found + * @dtopt Language + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oLanguage": { + * "sZeroRecords": "No records to display" + * } + * } ); + * } ); + */ + "sZeroRecords": "No matching records found" + }, + + + /** + * This parameter allows you to have define the global filtering state at + * initialisation time. As an object the "sSearch" parameter must be + * defined, but all other parameters are optional. When "bRegex" is true, + * the search string will be treated as a regular expression, when false + * (default) it will be treated as a straight string. When "bSmart" + * DataTables will use it's smart filtering methods (to word match at + * any point in the data), when false this will not be done. + * @namespace + * @extends DataTable.models.oSearch + * @dtopt Options + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "oSearch": {"sSearch": "Initial search"} + * } ); + * } ) + */ + "oSearch": $.extend( {}, DataTable.models.oSearch ), + + + /** + * By default DataTables will look for the property 'aaData' when obtaining + * data from an Ajax source or for server-side processing - this parameter + * allows that property to be changed. You can use Javascript dotted object + * notation to get a data source for multiple levels of nesting. + * @type string + * @default aaData + * @dtopt Options + * @dtopt Server-side + * + * @example + * // Get data from { "data": [...] } + * $(document).ready( function() { + * var oTable = $('#example').dataTable( { + * "sAjaxSource": "sources/data.txt", + * "sAjaxDataProp": "data" + * } ); + * } ); + * + * @example + * // Get data from { "data": { "inner": [...] } } + * $(document).ready( function() { + * var oTable = $('#example').dataTable( { + * "sAjaxSource": "sources/data.txt", + * "sAjaxDataProp": "data.inner" + * } ); + * } ); + */ + "sAjaxDataProp": "aaData", + + + /** + * You can instruct DataTables to load data from an external source using this + * parameter (use aData if you want to pass data in you already have). Simply + * provide a url a JSON object can be obtained from. This object must include + * the parameter 'aaData' which is the data source for the table. + * @type string + * @default null + * @dtopt Options + * @dtopt Server-side + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "sAjaxSource": "http://www.sprymedia.co.uk/dataTables/json.php" + * } ); + * } ) + */ + "sAjaxSource": null, + + + /** + * This parameter can be used to override the default prefix that DataTables + * assigns to a cookie when state saving is enabled. + * @type string + * @default SpryMedia_DataTables_ + * @dtopt Options + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "sCookiePrefix": "my_datatable_", + * } ); + * } ); + */ + "sCookiePrefix": "SpryMedia_DataTables_", + + + /** + * This initialisation variable allows you to specify exactly where in the + * DOM you want DataTables to inject the various controls it adds to the page + * (for example you might want the pagination controls at the top of the + * table). DIV elements (with or without a custom class) can also be added to + * aid styling. The follow syntax is used: + *
      + *
    • The following options are allowed: + *
        + *
      • 'l' - Length changing
      • 'f' - Filtering input + *
      • 't' - The table!
      • + *
      • 'i' - Information
      • + *
      • 'p' - Pagination
      • + *
      • 'r' - pRocessing
      • + *
      + *
    • + *
    • The following constants are allowed: + *
        + *
      • 'H' - jQueryUI theme "header" classes ('fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix')
      • + *
      • 'F' - jQueryUI theme "footer" classes ('fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix')
      • + *
      + *
    • + *
    • The following syntax is expected: + *
        + *
      • '<' and '>' - div elements
      • + *
      • '<"class" and '>' - div with a class
      • + *
      • '<"#id" and '>' - div with an ID
      • + *
      + *
    • + *
    • Examples: + *
        + *
      • '<"wrapper"flipt>'
      • + *
      • '<lf<t>ip>'
      • + *
      + *
    • + *
    + * @type string + * @default lfrtip (when bJQueryUI is false) or + * <"H"lfr>t<"F"ip> (when bJQueryUI is true) + * @dtopt Options + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "sDom": '<"top"i>rt<"bottom"flp><"clear">' + * } ); + * } ); + */ + "sDom": "lfrtip", + + + /** + * DataTables features two different built-in pagination interaction methods + * ('two_button' or 'full_numbers') which present different page controls to + * the end user. Further methods can be added using the API (see below). + * @type string + * @default two_button + * @dtopt Options + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "sPaginationType": "full_numbers" + * } ); + * } ) + */ + "sPaginationType": "two_button", + + + /** + * Enable horizontal scrolling. When a table is too wide to fit into a certain + * layout, or you have a large number of columns in the table, you can enable + * x-scrolling to show the table in a viewport, which can be scrolled. This + * property can be any CSS unit, or a number (in which case it will be treated + * as a pixel measurement). + * @type string + * @default blank string - i.e. disabled + * @dtopt Features + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "sScrollX": "100%", + * "bScrollCollapse": true + * } ); + * } ); + */ + "sScrollX": "", + + + /** + * This property can be used to force a DataTable to use more width than it + * might otherwise do when x-scrolling is enabled. For example if you have a + * table which requires to be well spaced, this parameter is useful for + * "over-sizing" the table, and thus forcing scrolling. This property can by + * any CSS unit, or a number (in which case it will be treated as a pixel + * measurement). + * @type string + * @default blank string - i.e. disabled + * @dtopt Options + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "sScrollX": "100%", + * "sScrollXInner": "110%" + * } ); + * } ); + */ + "sScrollXInner": "", + + + /** + * Enable vertical scrolling. Vertical scrolling will constrain the DataTable + * to the given height, and enable scrolling for any data which overflows the + * current viewport. This can be used as an alternative to paging to display + * a lot of data in a small area (although paging and scrolling can both be + * enabled at the same time). This property can be any CSS unit, or a number + * (in which case it will be treated as a pixel measurement). + * @type string + * @default blank string - i.e. disabled + * @dtopt Features + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "sScrollY": "200px", + * "bPaginate": false + * } ); + * } ); + */ + "sScrollY": "", + + + /** + * Set the HTTP method that is used to make the Ajax call for server-side + * processing or Ajax sourced data. + * @type string + * @default GET + * @dtopt Options + * @dtopt Server-side + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "bServerSide": true, + * "sAjaxSource": "scripts/post.php", + * "sServerMethod": "POST" + * } ); + * } ); + */ + "sServerMethod": "GET" + }; + + + + /** + * Column options that can be given to DataTables at initialisation time. + * @namespace + */ + DataTable.defaults.columns = { + /** + * Allows a column's sorting to take multiple columns into account when + * doing a sort. For example first name / last name columns make sense to + * do a multi-column sort over the two columns. + * @type array + * @default null Takes the value of the column index automatically + * @dtopt Columns + * + * @example + * // Using aoColumnDefs + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumnDefs": [ + * { "aDataSort": [ 0, 1 ], "aTargets": [ 0 ] }, + * { "aDataSort": [ 1, 0 ], "aTargets": [ 1 ] }, + * { "aDataSort": [ 2, 3, 4 ], "aTargets": [ 2 ] } + * ] + * } ); + * } ); + * + * @example + * // Using aoColumns + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumns": [ + * { "aDataSort": [ 0, 1 ] }, + * { "aDataSort": [ 1, 0 ] }, + * { "aDataSort": [ 2, 3, 4 ] }, + * null, + * null + * ] + * } ); + * } ); + */ + "aDataSort": null, + + + /** + * You can control the default sorting direction, and even alter the behaviour + * of the sort handler (i.e. only allow ascending sorting etc) using this + * parameter. + * @type array + * @default [ 'asc', 'desc' ] + * @dtopt Columns + * + * @example + * // Using aoColumnDefs + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumnDefs": [ + * { "asSorting": [ "asc" ], "aTargets": [ 1 ] }, + * { "asSorting": [ "desc", "asc", "asc" ], "aTargets": [ 2 ] }, + * { "asSorting": [ "desc" ], "aTargets": [ 3 ] } + * ] + * } ); + * } ); + * + * @example + * // Using aoColumns + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumns": [ + * null, + * { "asSorting": [ "asc" ] }, + * { "asSorting": [ "desc", "asc", "asc" ] }, + * { "asSorting": [ "desc" ] }, + * null + * ] + * } ); + * } ); + */ + "asSorting": [ 'asc', 'desc' ], + + + /** + * Enable or disable filtering on the data in this column. + * @type boolean + * @default true + * @dtopt Columns + * + * @example + * // Using aoColumnDefs + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumnDefs": [ + * { "bSearchable": false, "aTargets": [ 0 ] } + * ] } ); + * } ); + * + * @example + * // Using aoColumns + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumns": [ + * { "bSearchable": false }, + * null, + * null, + * null, + * null + * ] } ); + * } ); + */ + "bSearchable": true, + + + /** + * Enable or disable sorting on this column. + * @type boolean + * @default true + * @dtopt Columns + * + * @example + * // Using aoColumnDefs + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumnDefs": [ + * { "bSortable": false, "aTargets": [ 0 ] } + * ] } ); + * } ); + * + * @example + * // Using aoColumns + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumns": [ + * { "bSortable": false }, + * null, + * null, + * null, + * null + * ] } ); + * } ); + */ + "bSortable": true, + + + /** + * Deprecated When using fnRender() for a column, you may wish + * to use the original data (before rendering) for sorting and filtering + * (the default is to used the rendered data that the user can see). This + * may be useful for dates etc. + * + * Please note that this option has now been deprecated and will be removed + * in the next version of DataTables. Please use mRender / mData rather than + * fnRender. + * @type boolean + * @default true + * @dtopt Columns + * @deprecated + */ + "bUseRendered": true, + + + /** + * Enable or disable the display of this column. + * @type boolean + * @default true + * @dtopt Columns + * + * @example + * // Using aoColumnDefs + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumnDefs": [ + * { "bVisible": false, "aTargets": [ 0 ] } + * ] } ); + * } ); + * + * @example + * // Using aoColumns + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumns": [ + * { "bVisible": false }, + * null, + * null, + * null, + * null + * ] } ); + * } ); + */ + "bVisible": true, + + + /** + * Developer definable function that is called whenever a cell is created (Ajax source, + * etc) or processed for input (DOM source). This can be used as a compliment to mRender + * allowing you to modify the DOM element (add background colour for example) when the + * element is available. + * @type function + * @param {element} nTd The TD node that has been created + * @param {*} sData The Data for the cell + * @param {array|object} oData The data for the whole row + * @param {int} iRow The row index for the aoData data store + * @param {int} iCol The column index for aoColumns + * @dtopt Columns + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumnDefs": [ { + * "aTargets": [3], + * "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) { + * if ( sData == "1.7" ) { + * $(nTd).css('color', 'blue') + * } + * } + * } ] + * }); + * } ); + */ + "fnCreatedCell": null, + + + /** + * Deprecated Custom display function that will be called for the + * display of each cell in this column. + * + * Please note that this option has now been deprecated and will be removed + * in the next version of DataTables. Please use mRender / mData rather than + * fnRender. + * @type function + * @param {object} o Object with the following parameters: + * @param {int} o.iDataRow The row in aoData + * @param {int} o.iDataColumn The column in question + * @param {array} o.aData The data for the row in question + * @param {object} o.oSettings The settings object for this DataTables instance + * @param {object} o.mDataProp The data property used for this column + * @param {*} val The current cell value + * @returns {string} The string you which to use in the display + * @dtopt Columns + * @deprecated + */ + "fnRender": null, + + + /** + * The column index (starting from 0!) that you wish a sort to be performed + * upon when this column is selected for sorting. This can be used for sorting + * on hidden columns for example. + * @type int + * @default -1 Use automatically calculated column index + * @dtopt Columns + * + * @example + * // Using aoColumnDefs + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumnDefs": [ + * { "iDataSort": 1, "aTargets": [ 0 ] } + * ] + * } ); + * } ); + * + * @example + * // Using aoColumns + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumns": [ + * { "iDataSort": 1 }, + * null, + * null, + * null, + * null + * ] + * } ); + * } ); + */ + "iDataSort": -1, + + + /** + * This parameter has been replaced by mData in DataTables to ensure naming + * consistency. mDataProp can still be used, as there is backwards compatibility + * in DataTables for this option, but it is strongly recommended that you use + * mData in preference to mDataProp. + * @name DataTable.defaults.columns.mDataProp + */ + + + /** + * This property can be used to read data from any JSON data source property, + * including deeply nested objects / properties. mData can be given in a + * number of different ways which effect its behaviour: + *
      + *
    • integer - treated as an array index for the data source. This is the + * default that DataTables uses (incrementally increased for each column).
    • + *
    • string - read an object property from the data source. Note that you can + * use Javascript dotted notation to read deep properties / arrays from the + * data source.
    • + *
    • null - the sDefaultContent option will be used for the cell (null + * by default, so you will need to specify the default content you want - + * typically an empty string). This can be useful on generated columns such + * as edit / delete action columns.
    • + *
    • function - the function given will be executed whenever DataTables + * needs to set or get the data for a cell in the column. The function + * takes three parameters: + *
        + *
      • {array|object} The data source for the row
      • + *
      • {string} The type call data requested - this will be 'set' when + * setting data or 'filter', 'display', 'type', 'sort' or undefined when + * gathering data. Note that when undefined is given for the type + * DataTables expects to get the raw data for the object back
      • + *
      • {*} Data to set when the second parameter is 'set'.
      • + *
      + * The return value from the function is not required when 'set' is the type + * of call, but otherwise the return is what will be used for the data + * requested.
    • + *
    + * + * Note that prior to DataTables 1.9.2 mData was called mDataProp. The name change + * reflects the flexibility of this property and is consistent with the naming of + * mRender. If 'mDataProp' is given, then it will still be used by DataTables, as + * it automatically maps the old name to the new if required. + * @type string|int|function|null + * @default null Use automatically calculated column index + * @dtopt Columns + * + * @example + * // Read table data from objects + * $(document).ready( function() { + * var oTable = $('#example').dataTable( { + * "sAjaxSource": "sources/deep.txt", + * "aoColumns": [ + * { "mData": "engine" }, + * { "mData": "browser" }, + * { "mData": "platform.inner" }, + * { "mData": "platform.details.0" }, + * { "mData": "platform.details.1" } + * ] + * } ); + * } ); + * + * @example + * // Using mData as a function to provide different information for + * // sorting, filtering and display. In this case, currency (price) + * $(document).ready( function() { + * var oTable = $('#example').dataTable( { + * "aoColumnDefs": [ { + * "aTargets": [ 0 ], + * "mData": function ( source, type, val ) { + * if (type === 'set') { + * source.price = val; + * // Store the computed dislay and filter values for efficiency + * source.price_display = val=="" ? "" : "$"+numberFormat(val); + * source.price_filter = val=="" ? "" : "$"+numberFormat(val)+" "+val; + * return; + * } + * else if (type === 'display') { + * return source.price_display; + * } + * else if (type === 'filter') { + * return source.price_filter; + * } + * // 'sort', 'type' and undefined all just use the integer + * return source.price; + * } + * } ] + * } ); + * } ); + */ + "mData": null, + + + /** + * This property is the rendering partner to mData and it is suggested that + * when you want to manipulate data for display (including filtering, sorting etc) + * but not altering the underlying data for the table, use this property. mData + * can actually do everything this property can and more, but this parameter is + * easier to use since there is no 'set' option. Like mData is can be given + * in a number of different ways to effect its behaviour, with the addition of + * supporting array syntax for easy outputting of arrays (including arrays of + * objects): + *
      + *
    • integer - treated as an array index for the data source. This is the + * default that DataTables uses (incrementally increased for each column).
    • + *
    • string - read an object property from the data source. Note that you can + * use Javascript dotted notation to read deep properties / arrays from the + * data source and also array brackets to indicate that the data reader should + * loop over the data source array. When characters are given between the array + * brackets, these characters are used to join the data source array together. + * For example: "accounts[, ].name" would result in a comma separated list with + * the 'name' value from the 'accounts' array of objects.
    • + *
    • function - the function given will be executed whenever DataTables + * needs to set or get the data for a cell in the column. The function + * takes three parameters: + *
        + *
      • {array|object} The data source for the row (based on mData)
      • + *
      • {string} The type call data requested - this will be 'filter', 'display', + * 'type' or 'sort'.
      • + *
      • {array|object} The full data source for the row (not based on mData)
      • + *
      + * The return value from the function is what will be used for the data + * requested.
    • + *
    + * @type string|int|function|null + * @default null Use mData + * @dtopt Columns + * + * @example + * // Create a comma separated list from an array of objects + * $(document).ready( function() { + * var oTable = $('#example').dataTable( { + * "sAjaxSource": "sources/deep.txt", + * "aoColumns": [ + * { "mData": "engine" }, + * { "mData": "browser" }, + * { + * "mData": "platform", + * "mRender": "[, ].name" + * } + * ] + * } ); + * } ); + * + * @example + * // Use as a function to create a link from the data source + * $(document).ready( function() { + * var oTable = $('#example').dataTable( { + * "aoColumnDefs": [ + * { + * "aTargets": [ 0 ], + * "mData": "download_link", + * "mRender": function ( data, type, full ) { + * return 'Download'; + * } + * ] + * } ); + * } ); + */ + "mRender": null, + + + /** + * Change the cell type created for the column - either TD cells or TH cells. This + * can be useful as TH cells have semantic meaning in the table body, allowing them + * to act as a header for a row (you may wish to add scope='row' to the TH elements). + * @type string + * @default td + * @dtopt Columns + * + * @example + * // Make the first column use TH cells + * $(document).ready( function() { + * var oTable = $('#example').dataTable( { + * "aoColumnDefs": [ { + * "aTargets": [ 0 ], + * "sCellType": "th" + * } ] + * } ); + * } ); + */ + "sCellType": "td", + + + /** + * Class to give to each cell in this column. + * @type string + * @default Empty string + * @dtopt Columns + * + * @example + * // Using aoColumnDefs + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumnDefs": [ + * { "sClass": "my_class", "aTargets": [ 0 ] } + * ] + * } ); + * } ); + * + * @example + * // Using aoColumns + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumns": [ + * { "sClass": "my_class" }, + * null, + * null, + * null, + * null + * ] + * } ); + * } ); + */ + "sClass": "", + + /** + * When DataTables calculates the column widths to assign to each column, + * it finds the longest string in each column and then constructs a + * temporary table and reads the widths from that. The problem with this + * is that "mmm" is much wider then "iiii", but the latter is a longer + * string - thus the calculation can go wrong (doing it properly and putting + * it into an DOM object and measuring that is horribly(!) slow). Thus as + * a "work around" we provide this option. It will append its value to the + * text that is found to be the longest string for the column - i.e. padding. + * Generally you shouldn't need this, and it is not documented on the + * general DataTables.net documentation + * @type string + * @default Empty string + * @dtopt Columns + * + * @example + * // Using aoColumns + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumns": [ + * null, + * null, + * null, + * { + * "sContentPadding": "mmm" + * } + * ] + * } ); + * } ); + */ + "sContentPadding": "", + + + /** + * Allows a default value to be given for a column's data, and will be used + * whenever a null data source is encountered (this can be because mData + * is set to null, or because the data source itself is null). + * @type string + * @default null + * @dtopt Columns + * + * @example + * // Using aoColumnDefs + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumnDefs": [ + * { + * "mData": null, + * "sDefaultContent": "Edit", + * "aTargets": [ -1 ] + * } + * ] + * } ); + * } ); + * + * @example + * // Using aoColumns + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumns": [ + * null, + * null, + * null, + * { + * "mData": null, + * "sDefaultContent": "Edit" + * } + * ] + * } ); + * } ); + */ + "sDefaultContent": null, + + + /** + * This parameter is only used in DataTables' server-side processing. It can + * be exceptionally useful to know what columns are being displayed on the + * client side, and to map these to database fields. When defined, the names + * also allow DataTables to reorder information from the server if it comes + * back in an unexpected order (i.e. if you switch your columns around on the + * client-side, your server-side code does not also need updating). + * @type string + * @default Empty string + * @dtopt Columns + * + * @example + * // Using aoColumnDefs + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumnDefs": [ + * { "sName": "engine", "aTargets": [ 0 ] }, + * { "sName": "browser", "aTargets": [ 1 ] }, + * { "sName": "platform", "aTargets": [ 2 ] }, + * { "sName": "version", "aTargets": [ 3 ] }, + * { "sName": "grade", "aTargets": [ 4 ] } + * ] + * } ); + * } ); + * + * @example + * // Using aoColumns + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumns": [ + * { "sName": "engine" }, + * { "sName": "browser" }, + * { "sName": "platform" }, + * { "sName": "version" }, + * { "sName": "grade" } + * ] + * } ); + * } ); + */ + "sName": "", + + + /** + * Defines a data source type for the sorting which can be used to read + * real-time information from the table (updating the internally cached + * version) prior to sorting. This allows sorting to occur on user editable + * elements such as form inputs. + * @type string + * @default std + * @dtopt Columns + * + * @example + * // Using aoColumnDefs + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumnDefs": [ + * { "sSortDataType": "dom-text", "aTargets": [ 2, 3 ] }, + * { "sType": "numeric", "aTargets": [ 3 ] }, + * { "sSortDataType": "dom-select", "aTargets": [ 4 ] }, + * { "sSortDataType": "dom-checkbox", "aTargets": [ 5 ] } + * ] + * } ); + * } ); + * + * @example + * // Using aoColumns + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumns": [ + * null, + * null, + * { "sSortDataType": "dom-text" }, + * { "sSortDataType": "dom-text", "sType": "numeric" }, + * { "sSortDataType": "dom-select" }, + * { "sSortDataType": "dom-checkbox" } + * ] + * } ); + * } ); + */ + "sSortDataType": "std", + + + /** + * The title of this column. + * @type string + * @default null Derived from the 'TH' value for this column in the + * original HTML table. + * @dtopt Columns + * + * @example + * // Using aoColumnDefs + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumnDefs": [ + * { "sTitle": "My column title", "aTargets": [ 0 ] } + * ] + * } ); + * } ); + * + * @example + * // Using aoColumns + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumns": [ + * { "sTitle": "My column title" }, + * null, + * null, + * null, + * null + * ] + * } ); + * } ); + */ + "sTitle": null, + + + /** + * The type allows you to specify how the data for this column will be sorted. + * Four types (string, numeric, date and html (which will strip HTML tags + * before sorting)) are currently available. Note that only date formats + * understood by Javascript's Date() object will be accepted as type date. For + * example: "Mar 26, 2008 5:03 PM". May take the values: 'string', 'numeric', + * 'date' or 'html' (by default). Further types can be adding through + * plug-ins. + * @type string + * @default null Auto-detected from raw data + * @dtopt Columns + * + * @example + * // Using aoColumnDefs + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumnDefs": [ + * { "sType": "html", "aTargets": [ 0 ] } + * ] + * } ); + * } ); + * + * @example + * // Using aoColumns + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumns": [ + * { "sType": "html" }, + * null, + * null, + * null, + * null + * ] + * } ); + * } ); + */ + "sType": null, + + + /** + * Defining the width of the column, this parameter may take any CSS value + * (3em, 20px etc). DataTables apples 'smart' widths to columns which have not + * been given a specific width through this interface ensuring that the table + * remains readable. + * @type string + * @default null Automatic + * @dtopt Columns + * + * @example + * // Using aoColumnDefs + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumnDefs": [ + * { "sWidth": "20%", "aTargets": [ 0 ] } + * ] + * } ); + * } ); + * + * @example + * // Using aoColumns + * $(document).ready( function() { + * $('#example').dataTable( { + * "aoColumns": [ + * { "sWidth": "20%" }, + * null, + * null, + * null, + * null + * ] + * } ); + * } ); + */ + "sWidth": null + }; + + + + /** + * DataTables settings object - this holds all the information needed for a + * given table, including configuration, data and current application of the + * table options. DataTables does not have a single instance for each DataTable + * with the settings attached to that instance, but rather instances of the + * DataTable "class" are created on-the-fly as needed (typically by a + * $().dataTable() call) and the settings object is then applied to that + * instance. + * + * Note that this object is related to {@link DataTable.defaults} but this + * one is the internal data store for DataTables's cache of columns. It should + * NOT be manipulated outside of DataTables. Any configuration should be done + * through the initialisation options. + * @namespace + * @todo Really should attach the settings object to individual instances so we + * don't need to create new instances on each $().dataTable() call (if the + * table already exists). It would also save passing oSettings around and + * into every single function. However, this is a very significant + * architecture change for DataTables and will almost certainly break + * backwards compatibility with older installations. This is something that + * will be done in 2.0. + */ + DataTable.models.oSettings = { + /** + * Primary features of DataTables and their enablement state. + * @namespace + */ + "oFeatures": { + + /** + * Flag to say if DataTables should automatically try to calculate the + * optimum table and columns widths (true) or not (false). + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bAutoWidth": null, + + /** + * Delay the creation of TR and TD elements until they are actually + * needed by a driven page draw. This can give a significant speed + * increase for Ajax source and Javascript source data, but makes no + * difference at all fro DOM and server-side processing tables. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bDeferRender": null, + + /** + * Enable filtering on the table or not. Note that if this is disabled + * then there is no filtering at all on the table, including fnFilter. + * To just remove the filtering input use sDom and remove the 'f' option. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bFilter": null, + + /** + * Table information element (the 'Showing x of y records' div) enable + * flag. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bInfo": null, + + /** + * Present a user control allowing the end user to change the page size + * when pagination is enabled. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bLengthChange": null, + + /** + * Pagination enabled or not. Note that if this is disabled then length + * changing must also be disabled. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bPaginate": null, + + /** + * Processing indicator enable flag whenever DataTables is enacting a + * user request - typically an Ajax request for server-side processing. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bProcessing": null, + + /** + * Server-side processing enabled flag - when enabled DataTables will + * get all data from the server for every draw - there is no filtering, + * sorting or paging done on the client-side. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bServerSide": null, + + /** + * Sorting enablement flag. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bSort": null, + + /** + * Apply a class to the columns which are being sorted to provide a + * visual highlight or not. This can slow things down when enabled since + * there is a lot of DOM interaction. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bSortClasses": null, + + /** + * State saving enablement flag. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bStateSave": null + }, + + + /** + * Scrolling settings for a table. + * @namespace + */ + "oScroll": { + /** + * Indicate if DataTables should be allowed to set the padding / margin + * etc for the scrolling header elements or not. Typically you will want + * this. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bAutoCss": null, + + /** + * When the table is shorter in height than sScrollY, collapse the + * table container down to the height of the table (when true). + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bCollapse": null, + + /** + * Infinite scrolling enablement flag. Now deprecated in favour of + * using the Scroller plug-in. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bInfinite": null, + + /** + * Width of the scrollbar for the web-browser's platform. Calculated + * during table initialisation. + * @type int + * @default 0 + */ + "iBarWidth": 0, + + /** + * Space (in pixels) between the bottom of the scrolling container and + * the bottom of the scrolling viewport before the next page is loaded + * when using infinite scrolling. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type int + */ + "iLoadGap": null, + + /** + * Viewport width for horizontal scrolling. Horizontal scrolling is + * disabled if an empty string. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + */ + "sX": null, + + /** + * Width to expand the table to when using x-scrolling. Typically you + * should not need to use this. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + * @deprecated + */ + "sXInner": null, + + /** + * Viewport height for vertical scrolling. Vertical scrolling is disabled + * if an empty string. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + */ + "sY": null + }, + + /** + * Language information for the table. + * @namespace + * @extends DataTable.defaults.oLanguage + */ + "oLanguage": { + /** + * Information callback function. See + * {@link DataTable.defaults.fnInfoCallback} + * @type function + * @default null + */ + "fnInfoCallback": null + }, + + /** + * Browser support parameters + * @namespace + */ + "oBrowser": { + /** + * Indicate if the browser incorrectly calculates width:100% inside a + * scrolling element (IE6/7) + * @type boolean + * @default false + */ + "bScrollOversize": false + }, + + /** + * Array referencing the nodes which are used for the features. The + * parameters of this object match what is allowed by sDom - i.e. + *
      + *
    • 'l' - Length changing
    • + *
    • 'f' - Filtering input
    • + *
    • 't' - The table!
    • + *
    • 'i' - Information
    • + *
    • 'p' - Pagination
    • + *
    • 'r' - pRocessing
    • + *
    + * @type array + * @default [] + */ + "aanFeatures": [], + + /** + * Store data information - see {@link DataTable.models.oRow} for detailed + * information. + * @type array + * @default [] + */ + "aoData": [], + + /** + * Array of indexes which are in the current display (after filtering etc) + * @type array + * @default [] + */ + "aiDisplay": [], + + /** + * Array of indexes for display - no filtering + * @type array + * @default [] + */ + "aiDisplayMaster": [], + + /** + * Store information about each column that is in use + * @type array + * @default [] + */ + "aoColumns": [], + + /** + * Store information about the table's header + * @type array + * @default [] + */ + "aoHeader": [], + + /** + * Store information about the table's footer + * @type array + * @default [] + */ + "aoFooter": [], + + /** + * Search data array for regular expression searching + * @type array + * @default [] + */ + "asDataSearch": [], + + /** + * Store the applied global search information in case we want to force a + * research or compare the old search to a new one. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @namespace + * @extends DataTable.models.oSearch + */ + "oPreviousSearch": {}, + + /** + * Store the applied search for each column - see + * {@link DataTable.models.oSearch} for the format that is used for the + * filtering information for each column. + * @type array + * @default [] + */ + "aoPreSearchCols": [], + + /** + * Sorting that is applied to the table. Note that the inner arrays are + * used in the following manner: + *
      + *
    • Index 0 - column number
    • + *
    • Index 1 - current sorting direction
    • + *
    • Index 2 - index of asSorting for this column
    • + *
    + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type array + * @todo These inner arrays should really be objects + */ + "aaSorting": null, + + /** + * Sorting that is always applied to the table (i.e. prefixed in front of + * aaSorting). + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type array|null + * @default null + */ + "aaSortingFixed": null, + + /** + * Classes to use for the striping of a table. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type array + * @default [] + */ + "asStripeClasses": null, + + /** + * If restoring a table - we should restore its striping classes as well + * @type array + * @default [] + */ + "asDestroyStripes": [], + + /** + * If restoring a table - we should restore its width + * @type int + * @default 0 + */ + "sDestroyWidth": 0, + + /** + * Callback functions array for every time a row is inserted (i.e. on a draw). + * @type array + * @default [] + */ + "aoRowCallback": [], + + /** + * Callback functions for the header on each draw. + * @type array + * @default [] + */ + "aoHeaderCallback": [], + + /** + * Callback function for the footer on each draw. + * @type array + * @default [] + */ + "aoFooterCallback": [], + + /** + * Array of callback functions for draw callback functions + * @type array + * @default [] + */ + "aoDrawCallback": [], + + /** + * Array of callback functions for row created function + * @type array + * @default [] + */ + "aoRowCreatedCallback": [], + + /** + * Callback functions for just before the table is redrawn. A return of + * false will be used to cancel the draw. + * @type array + * @default [] + */ + "aoPreDrawCallback": [], + + /** + * Callback functions for when the table has been initialised. + * @type array + * @default [] + */ + "aoInitComplete": [], + + + /** + * Callbacks for modifying the settings to be stored for state saving, prior to + * saving state. + * @type array + * @default [] + */ + "aoStateSaveParams": [], + + /** + * Callbacks for modifying the settings that have been stored for state saving + * prior to using the stored values to restore the state. + * @type array + * @default [] + */ + "aoStateLoadParams": [], + + /** + * Callbacks for operating on the settings object once the saved state has been + * loaded + * @type array + * @default [] + */ + "aoStateLoaded": [], + + /** + * Cache the table ID for quick access + * @type string + * @default Empty string + */ + "sTableId": "", + + /** + * The TABLE node for the main table + * @type node + * @default null + */ + "nTable": null, + + /** + * Permanent ref to the thead element + * @type node + * @default null + */ + "nTHead": null, + + /** + * Permanent ref to the tfoot element - if it exists + * @type node + * @default null + */ + "nTFoot": null, + + /** + * Permanent ref to the tbody element + * @type node + * @default null + */ + "nTBody": null, + + /** + * Cache the wrapper node (contains all DataTables controlled elements) + * @type node + * @default null + */ + "nTableWrapper": null, + + /** + * Indicate if when using server-side processing the loading of data + * should be deferred until the second draw. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + * @default false + */ + "bDeferLoading": false, + + /** + * Indicate if all required information has been read in + * @type boolean + * @default false + */ + "bInitialised": false, + + /** + * Information about open rows. Each object in the array has the parameters + * 'nTr' and 'nParent' + * @type array + * @default [] + */ + "aoOpenRows": [], + + /** + * Dictate the positioning of DataTables' control elements - see + * {@link DataTable.model.oInit.sDom}. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + * @default null + */ + "sDom": null, + + /** + * Which type of pagination should be used. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + * @default two_button + */ + "sPaginationType": "two_button", + + /** + * The cookie duration (for bStateSave) in seconds. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type int + * @default 0 + */ + "iCookieDuration": 0, + + /** + * The cookie name prefix. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + * @default Empty string + */ + "sCookiePrefix": "", + + /** + * Callback function for cookie creation. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type function + * @default null + */ + "fnCookieCallback": null, + + /** + * Array of callback functions for state saving. Each array element is an + * object with the following parameters: + *
      + *
    • function:fn - function to call. Takes two parameters, oSettings + * and the JSON string to save that has been thus far created. Returns + * a JSON string to be inserted into a json object + * (i.e. '"param": [ 0, 1, 2]')
    • + *
    • string:sName - name of callback
    • + *
    + * @type array + * @default [] + */ + "aoStateSave": [], + + /** + * Array of callback functions for state loading. Each array element is an + * object with the following parameters: + *
      + *
    • function:fn - function to call. Takes two parameters, oSettings + * and the object stored. May return false to cancel state loading
    • + *
    • string:sName - name of callback
    • + *
    + * @type array + * @default [] + */ + "aoStateLoad": [], + + /** + * State that was loaded from the cookie. Useful for back reference + * @type object + * @default null + */ + "oLoadedState": null, + + /** + * Source url for AJAX data for the table. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + * @default null + */ + "sAjaxSource": null, + + /** + * Property from a given object from which to read the table data from. This + * can be an empty string (when not server-side processing), in which case + * it is assumed an an array is given directly. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + */ + "sAjaxDataProp": null, + + /** + * Note if draw should be blocked while getting data + * @type boolean + * @default true + */ + "bAjaxDataGet": true, + + /** + * The last jQuery XHR object that was used for server-side data gathering. + * This can be used for working with the XHR information in one of the + * callbacks + * @type object + * @default null + */ + "jqXHR": null, + + /** + * Function to get the server-side data. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type function + */ + "fnServerData": null, + + /** + * Functions which are called prior to sending an Ajax request so extra + * parameters can easily be sent to the server + * @type array + * @default [] + */ + "aoServerParams": [], + + /** + * Send the XHR HTTP method - GET or POST (could be PUT or DELETE if + * required). + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + */ + "sServerMethod": null, + + /** + * Format numbers for display. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type function + */ + "fnFormatNumber": null, + + /** + * List of options that can be used for the user selectable length menu. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type array + * @default [] + */ + "aLengthMenu": null, + + /** + * Counter for the draws that the table does. Also used as a tracker for + * server-side processing + * @type int + * @default 0 + */ + "iDraw": 0, + + /** + * Indicate if a redraw is being done - useful for Ajax + * @type boolean + * @default false + */ + "bDrawing": false, + + /** + * Draw index (iDraw) of the last error when parsing the returned data + * @type int + * @default -1 + */ + "iDrawError": -1, + + /** + * Paging display length + * @type int + * @default 10 + */ + "_iDisplayLength": 10, + + /** + * Paging start point - aiDisplay index + * @type int + * @default 0 + */ + "_iDisplayStart": 0, + + /** + * Paging end point - aiDisplay index. Use fnDisplayEnd rather than + * this property to get the end point + * @type int + * @default 10 + * @private + */ + "_iDisplayEnd": 10, + + /** + * Server-side processing - number of records in the result set + * (i.e. before filtering), Use fnRecordsTotal rather than + * this property to get the value of the number of records, regardless of + * the server-side processing setting. + * @type int + * @default 0 + * @private + */ + "_iRecordsTotal": 0, + + /** + * Server-side processing - number of records in the current display set + * (i.e. after filtering). Use fnRecordsDisplay rather than + * this property to get the value of the number of records, regardless of + * the server-side processing setting. + * @type boolean + * @default 0 + * @private + */ + "_iRecordsDisplay": 0, + + /** + * Flag to indicate if jQuery UI marking and classes should be used. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bJUI": null, + + /** + * The classes to use for the table + * @type object + * @default {} + */ + "oClasses": {}, + + /** + * Flag attached to the settings object so you can check in the draw + * callback if filtering has been done in the draw. Deprecated in favour of + * events. + * @type boolean + * @default false + * @deprecated + */ + "bFiltered": false, + + /** + * Flag attached to the settings object so you can check in the draw + * callback if sorting has been done in the draw. Deprecated in favour of + * events. + * @type boolean + * @default false + * @deprecated + */ + "bSorted": false, + + /** + * Indicate that if multiple rows are in the header and there is more than + * one unique cell per column, if the top one (true) or bottom one (false) + * should be used for sorting / title by DataTables. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bSortCellsTop": null, + + /** + * Initialisation object that is used for the table + * @type object + * @default null + */ + "oInit": null, + + /** + * Destroy callback functions - for plug-ins to attach themselves to the + * destroy so they can clean up markup and events. + * @type array + * @default [] + */ + "aoDestroyCallback": [], + + + /** + * Get the number of records in the current record set, before filtering + * @type function + */ + "fnRecordsTotal": function () + { + if ( this.oFeatures.bServerSide ) { + return parseInt(this._iRecordsTotal, 10); + } else { + return this.aiDisplayMaster.length; + } + }, + + /** + * Get the number of records in the current record set, after filtering + * @type function + */ + "fnRecordsDisplay": function () + { + if ( this.oFeatures.bServerSide ) { + return parseInt(this._iRecordsDisplay, 10); + } else { + return this.aiDisplay.length; + } + }, + + /** + * Set the display end point - aiDisplay index + * @type function + * @todo Should do away with _iDisplayEnd and calculate it on-the-fly here + */ + "fnDisplayEnd": function () + { + if ( this.oFeatures.bServerSide ) { + if ( this.oFeatures.bPaginate === false || this._iDisplayLength == -1 ) { + return this._iDisplayStart+this.aiDisplay.length; + } else { + return Math.min( this._iDisplayStart+this._iDisplayLength, + this._iRecordsDisplay ); + } + } else { + return this._iDisplayEnd; + } + }, + + /** + * The DataTables object for this table + * @type object + * @default null + */ + "oInstance": null, + + /** + * Unique identifier for each instance of the DataTables object. If there + * is an ID on the table node, then it takes that value, otherwise an + * incrementing internal counter is used. + * @type string + * @default null + */ + "sInstance": null, + + /** + * tabindex attribute value that is added to DataTables control elements, allowing + * keyboard navigation of the table and its controls. + */ + "iTabIndex": 0, + + /** + * DIV container for the footer scrolling table if scrolling + */ + "nScrollHead": null, + + /** + * DIV container for the footer scrolling table if scrolling + */ + "nScrollFoot": null + }; + + /** + * Extension object for DataTables that is used to provide all extension options. + * + * Note that the DataTable.ext object is available through + * jQuery.fn.dataTable.ext where it may be accessed and manipulated. It is + * also aliased to jQuery.fn.dataTableExt for historic reasons. + * @namespace + * @extends DataTable.models.ext + */ + DataTable.ext = $.extend( true, {}, DataTable.models.ext ); + + $.extend( DataTable.ext.oStdClasses, { + "sTable": "dataTable", + + /* Two buttons buttons */ + "sPagePrevEnabled": "paginate_enabled_previous", + "sPagePrevDisabled": "paginate_disabled_previous", + "sPageNextEnabled": "paginate_enabled_next", + "sPageNextDisabled": "paginate_disabled_next", + "sPageJUINext": "", + "sPageJUIPrev": "", + + /* Full numbers paging buttons */ + "sPageButton": "paginate_button", + "sPageButtonActive": "paginate_active", + "sPageButtonStaticDisabled": "paginate_button paginate_button_disabled", + "sPageFirst": "first", + "sPagePrevious": "previous", + "sPageNext": "next", + "sPageLast": "last", + + /* Striping classes */ + "sStripeOdd": "odd", + "sStripeEven": "even", + + /* Empty row */ + "sRowEmpty": "dataTables_empty", + + /* Features */ + "sWrapper": "dataTables_wrapper", + "sFilter": "dataTables_filter", + "sInfo": "dataTables_info", + "sPaging": "dataTables_paginate paging_", /* Note that the type is postfixed */ + "sLength": "dataTables_length", + "sProcessing": "dataTables_processing", + + /* Sorting */ + "sSortAsc": "sorting_asc", + "sSortDesc": "sorting_desc", + "sSortable": "sorting", /* Sortable in both directions */ + "sSortableAsc": "sorting_asc_disabled", + "sSortableDesc": "sorting_desc_disabled", + "sSortableNone": "sorting_disabled", + "sSortColumn": "sorting_", /* Note that an int is postfixed for the sorting order */ + "sSortJUIAsc": "", + "sSortJUIDesc": "", + "sSortJUI": "", + "sSortJUIAscAllowed": "", + "sSortJUIDescAllowed": "", + "sSortJUIWrapper": "", + "sSortIcon": "", + + /* Scrolling */ + "sScrollWrapper": "dataTables_scroll", + "sScrollHead": "dataTables_scrollHead", + "sScrollHeadInner": "dataTables_scrollHeadInner", + "sScrollBody": "dataTables_scrollBody", + "sScrollFoot": "dataTables_scrollFoot", + "sScrollFootInner": "dataTables_scrollFootInner", + + /* Misc */ + "sFooterTH": "", + "sJUIHeader": "", + "sJUIFooter": "" + } ); + + + $.extend( DataTable.ext.oJUIClasses, DataTable.ext.oStdClasses, { + /* Two buttons buttons */ + "sPagePrevEnabled": "fg-button ui-button ui-state-default ui-corner-left", + "sPagePrevDisabled": "fg-button ui-button ui-state-default ui-corner-left ui-state-disabled", + "sPageNextEnabled": "fg-button ui-button ui-state-default ui-corner-right", + "sPageNextDisabled": "fg-button ui-button ui-state-default ui-corner-right ui-state-disabled", + "sPageJUINext": "ui-icon ui-icon-circle-arrow-e", + "sPageJUIPrev": "ui-icon ui-icon-circle-arrow-w", + + /* Full numbers paging buttons */ + "sPageButton": "fg-button ui-button ui-state-default", + "sPageButtonActive": "fg-button ui-button ui-state-default ui-state-disabled", + "sPageButtonStaticDisabled": "fg-button ui-button ui-state-default ui-state-disabled", + "sPageFirst": "first ui-corner-tl ui-corner-bl", + "sPageLast": "last ui-corner-tr ui-corner-br", + + /* Features */ + "sPaging": "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi "+ + "ui-buttonset-multi paging_", /* Note that the type is postfixed */ + + /* Sorting */ + "sSortAsc": "ui-state-default", + "sSortDesc": "ui-state-default", + "sSortable": "ui-state-default", + "sSortableAsc": "ui-state-default", + "sSortableDesc": "ui-state-default", + "sSortableNone": "ui-state-default", + "sSortJUIAsc": "css_right ui-icon ui-icon-triangle-1-n", + "sSortJUIDesc": "css_right ui-icon ui-icon-triangle-1-s", + "sSortJUI": "css_right ui-icon ui-icon-carat-2-n-s", + "sSortJUIAscAllowed": "css_right ui-icon ui-icon-carat-1-n", + "sSortJUIDescAllowed": "css_right ui-icon ui-icon-carat-1-s", + "sSortJUIWrapper": "DataTables_sort_wrapper", + "sSortIcon": "DataTables_sort_icon", + + /* Scrolling */ + "sScrollHead": "dataTables_scrollHead ui-state-default", + "sScrollFoot": "dataTables_scrollFoot ui-state-default", + + /* Misc */ + "sFooterTH": "ui-state-default", + "sJUIHeader": "fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix", + "sJUIFooter": "fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix" + } ); + + /* + * Variable: oPagination + * Purpose: + * Scope: jQuery.fn.dataTableExt + */ + $.extend( DataTable.ext.oPagination, { + /* + * Variable: two_button + * Purpose: Standard two button (forward/back) pagination + * Scope: jQuery.fn.dataTableExt.oPagination + */ + "two_button": { + /* + * Function: oPagination.two_button.fnInit + * Purpose: Initialise dom elements required for pagination with forward/back buttons only + * Returns: - + * Inputs: object:oSettings - dataTables settings object + * node:nPaging - the DIV which contains this pagination control + * function:fnCallbackDraw - draw function which must be called on update + */ + "fnInit": function ( oSettings, nPaging, fnCallbackDraw ) + { + var oLang = oSettings.oLanguage.oPaginate; + var oClasses = oSettings.oClasses; + var fnClickHandler = function ( e ) { + if ( oSettings.oApi._fnPageChange( oSettings, e.data.action ) ) + { + fnCallbackDraw( oSettings ); + } + }; + + var sAppend = (!oSettings.bJUI) ? + ''+oLang.sPrevious+''+ + ''+oLang.sNext+'' + : + ''+ + ''; + $(nPaging).append( sAppend ); + + var els = $('a', nPaging); + var nPrevious = els[0], + nNext = els[1]; + + oSettings.oApi._fnBindAction( nPrevious, {action: "previous"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler ); + + /* ID the first elements only */ + if ( !oSettings.aanFeatures.p ) + { + nPaging.id = oSettings.sTableId+'_paginate'; + nPrevious.id = oSettings.sTableId+'_previous'; + nNext.id = oSettings.sTableId+'_next'; + + nPrevious.setAttribute('aria-controls', oSettings.sTableId); + nNext.setAttribute('aria-controls', oSettings.sTableId); + } + }, + + /* + * Function: oPagination.two_button.fnUpdate + * Purpose: Update the two button pagination at the end of the draw + * Returns: - + * Inputs: object:oSettings - dataTables settings object + * function:fnCallbackDraw - draw function to call on page change + */ + "fnUpdate": function ( oSettings, fnCallbackDraw ) + { + if ( !oSettings.aanFeatures.p ) + { + return; + } + + var oClasses = oSettings.oClasses; + var an = oSettings.aanFeatures.p; + var nNode; + + /* Loop over each instance of the pager */ + for ( var i=0, iLen=an.length ; i'+oLang.sFirst+''+ + ''+oLang.sPrevious+''+ + ''+ + ''+oLang.sNext+''+ + ''+oLang.sLast+'' + ); + var els = $('a', nPaging); + var nFirst = els[0], + nPrev = els[1], + nNext = els[2], + nLast = els[3]; + + oSettings.oApi._fnBindAction( nFirst, {action: "first"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nPrev, {action: "previous"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nNext, {action: "next"}, fnClickHandler ); + oSettings.oApi._fnBindAction( nLast, {action: "last"}, fnClickHandler ); + + /* ID the first elements only */ + if ( !oSettings.aanFeatures.p ) + { + nPaging.id = oSettings.sTableId+'_paginate'; + nFirst.id =oSettings.sTableId+'_first'; + nPrev.id =oSettings.sTableId+'_previous'; + nNext.id =oSettings.sTableId+'_next'; + nLast.id =oSettings.sTableId+'_last'; + } + }, + + /* + * Function: oPagination.full_numbers.fnUpdate + * Purpose: Update the list of page buttons shows + * Returns: - + * Inputs: object:oSettings - dataTables settings object + * function:fnCallbackDraw - draw function to call on page change + */ + "fnUpdate": function ( oSettings, fnCallbackDraw ) + { + if ( !oSettings.aanFeatures.p ) + { + return; + } + + var iPageCount = DataTable.ext.oPagination.iFullNumbersShowPages; + var iPageCountHalf = Math.floor(iPageCount / 2); + var iPages = Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength); + var iCurrentPage = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1; + var sList = ""; + var iStartButton, iEndButton, i, iLen; + var oClasses = oSettings.oClasses; + var anButtons, anStatic, nPaginateList, nNode; + var an = oSettings.aanFeatures.p; + var fnBind = function (j) { + oSettings.oApi._fnBindAction( this, {"page": j+iStartButton-1}, function(e) { + /* Use the information in the element to jump to the required page */ + oSettings.oApi._fnPageChange( oSettings, e.data.page ); + fnCallbackDraw( oSettings ); + e.preventDefault(); + } ); + }; + + /* Pages calculation */ + if ( oSettings._iDisplayLength === -1 ) + { + iStartButton = 1; + iEndButton = 1; + iCurrentPage = 1; + } + else if (iPages < iPageCount) + { + iStartButton = 1; + iEndButton = iPages; + } + else if (iCurrentPage <= iPageCountHalf) + { + iStartButton = 1; + iEndButton = iPageCount; + } + else if (iCurrentPage >= (iPages - iPageCountHalf)) + { + iStartButton = iPages - iPageCount + 1; + iEndButton = iPages; + } + else + { + iStartButton = iCurrentPage - Math.ceil(iPageCount / 2) + 1; + iEndButton = iStartButton + iPageCount - 1; + } + + + /* Build the dynamic list */ + for ( i=iStartButton ; i<=iEndButton ; i++ ) + { + sList += (iCurrentPage !== i) ? + ''+oSettings.fnFormatNumber(i)+'' : + ''+oSettings.fnFormatNumber(i)+''; + } + + /* Loop over each instance of the pager */ + for ( i=0, iLen=an.length ; i y) ? 1 : 0)); + }, + + "string-desc": function ( x, y ) + { + return ((x < y) ? 1 : ((x > y) ? -1 : 0)); + }, + + + /* + * html sorting (ignore html tags) + */ + "html-pre": function ( a ) + { + return a.replace( /<.*?>/g, "" ).toLowerCase(); + }, + + "html-asc": function ( x, y ) + { + return ((x < y) ? -1 : ((x > y) ? 1 : 0)); + }, + + "html-desc": function ( x, y ) + { + return ((x < y) ? 1 : ((x > y) ? -1 : 0)); + }, + + + /* + * date sorting + */ + "date-pre": function ( a ) + { + var x = Date.parse( a ); + + if ( isNaN(x) || x==="" ) + { + x = Date.parse( "01/01/1970 00:00:00" ); + } + return x; + }, + + "date-asc": function ( x, y ) + { + return x - y; + }, + + "date-desc": function ( x, y ) + { + return y - x; + }, + + + /* + * numerical sorting + */ + "numeric-pre": function ( a ) + { + return (a=="-" || a==="") ? 0 : a*1; + }, + + "numeric-asc": function ( x, y ) + { + return x - y; + }, + + "numeric-desc": function ( x, y ) + { + return y - x; + } + } ); + + + $.extend( DataTable.ext.aTypes, [ + /* + * Function: - + * Purpose: Check to see if a string is numeric + * Returns: string:'numeric' or null + * Inputs: mixed:sText - string to check + */ + function ( sData ) + { + /* Allow zero length strings as a number */ + if ( typeof sData === 'number' ) + { + return 'numeric'; + } + else if ( typeof sData !== 'string' ) + { + return null; + } + + var sValidFirstChars = "0123456789-"; + var sValidChars = "0123456789."; + var Char; + var bDecimal = false; + + /* Check for a valid first char (no period and allow negatives) */ + Char = sData.charAt(0); + if (sValidFirstChars.indexOf(Char) == -1) + { + return null; + } + + /* Check all the other characters are valid */ + for ( var i=1 ; i') != -1 ) + { + return 'html'; + } + return null; + } + ] ); + + + // jQuery aliases + $.fn.DataTable = DataTable; + $.fn.dataTable = DataTable; + $.fn.dataTableSettings = DataTable.settings; + $.fn.dataTableExt = DataTable.ext; + + + // Information about events fired by DataTables - for documentation. + /** + * Draw event, fired whenever the table is redrawn on the page, at the same point as + * fnDrawCallback. This may be useful for binding events or performing calculations when + * the table is altered at all. + * @name DataTable#draw + * @event + * @param {event} e jQuery event object + * @param {object} o DataTables settings object {@link DataTable.models.oSettings} + */ + + /** + * Filter event, fired when the filtering applied to the table (using the build in global + * global filter, or column filters) is altered. + * @name DataTable#filter + * @event + * @param {event} e jQuery event object + * @param {object} o DataTables settings object {@link DataTable.models.oSettings} + */ + + /** + * Page change event, fired when the paging of the table is altered. + * @name DataTable#page + * @event + * @param {event} e jQuery event object + * @param {object} o DataTables settings object {@link DataTable.models.oSettings} + */ + + /** + * Sort event, fired when the sorting applied to the table is altered. + * @name DataTable#sort + * @event + * @param {event} e jQuery event object + * @param {object} o DataTables settings object {@link DataTable.models.oSettings} + */ + + /** + * DataTables initialisation complete event, fired when the table is fully drawn, + * including Ajax data loaded, if Ajax data is required. + * @name DataTable#init + * @event + * @param {event} e jQuery event object + * @param {object} oSettings DataTables settings object + * @param {object} json The JSON object request from the server - only + * present if client-side Ajax sourced data is used
  • + */ + + /** + * State save event, fired when the table has changed state a new state save is required. + * This method allows modification of the state saving object prior to actually doing the + * save, including addition or other state properties (for plug-ins) or modification + * of a DataTables core property. + * @name DataTable#stateSaveParams + * @event + * @param {event} e jQuery event object + * @param {object} oSettings DataTables settings object + * @param {object} json The state information to be saved + */ + + /** + * State load event, fired when the table is loading state from the stored data, but + * prior to the settings object being modified by the saved state - allowing modification + * of the saved state is required or loading of state for a plug-in. + * @name DataTable#stateLoadParams + * @event + * @param {event} e jQuery event object + * @param {object} oSettings DataTables settings object + * @param {object} json The saved state information + */ + + /** + * State loaded event, fired when state has been loaded from stored data and the settings + * object has been modified by the loaded data. + * @name DataTable#stateLoaded + * @event + * @param {event} e jQuery event object + * @param {object} oSettings DataTables settings object + * @param {object} json The saved state information + */ + + /** + * Processing event, fired when DataTables is doing some kind of processing (be it, + * sort, filter or anything else). Can be used to indicate to the end user that + * there is something happening, or that something has finished. + * @name DataTable#processing + * @event + * @param {event} e jQuery event object + * @param {object} oSettings DataTables settings object + * @param {boolean} bShow Flag for if DataTables is doing processing or not + */ + + /** + * Ajax (XHR) event, fired whenever an Ajax request is completed from a request to + * made to the server for new data (note that this trigger is called in fnServerData, + * if you override fnServerData and which to use this event, you need to trigger it in + * you success function). + * @name DataTable#xhr + * @event + * @param {event} e jQuery event object + * @param {object} o DataTables settings object {@link DataTable.models.oSettings} + * @param {object} json JSON returned from the server + */ + + /** + * Destroy event, fired when the DataTable is destroyed by calling fnDestroy or passing + * the bDestroy:true parameter in the initialisation object. This can be used to remove + * bound events, added DOM nodes, etc. + * @name DataTable#destroy + * @event + * @param {event} e jQuery event object + * @param {object} o DataTables settings object {@link DataTable.models.oSettings} + */ +})); + +}(window, document)); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/css/basic.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/css/basic.css" new file mode 100644 index 0000000..4df7870 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/css/basic.css" @@ -0,0 +1,153 @@ +.dropzone, +.dropzone *, +.dropzone-previews, +.dropzone-previews * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.dropzone { + position: relative; + border: 1px solid rgba(0,0,0,0.08); + background: rgba(0,0,0,0.02); + padding: 1em; +} +.dropzone.clickable { + cursor: pointer; +} +.dropzone.clickable .message { + cursor: pointer; +} +.dropzone.clickable * { + cursor: default; +} +.dropzone .message { + opacity: 1; + -ms-filter: none; + filter: none; +} +.dropzone.drag-hover { + border-color: rgba(0,0,0,0.15); + background: rgba(0,0,0,0.04); +} +.dropzone.started .message { + display: none; +} +.dropzone .preview, +.dropzone-previews .preview { + background: rgba(255,255,255,0.8); + position: relative; + display: inline-block; + margin: 17px; + vertical-align: top; + border: 1px solid #acacac; + padding: 6px 6px 28px 6px; +} +.dropzone .preview .details, +.dropzone-previews .preview .details { + width: 100px; + height: 100px; + position: relative; + background: #ebebeb; + padding: 5px; +} +.dropzone .preview .details .filename, +.dropzone-previews .preview .details .filename { + overflow: hidden; + height: 100%; +} +.dropzone .preview .details img, +.dropzone-previews .preview .details img { + position: absolute; + top: 0; + left: 0; + width: 100px; + height: 100px; +} +.dropzone .preview .details .size, +.dropzone-previews .preview .details .size { + position: absolute; + bottom: -28px; + left: 3px; + height: 28px; + line-height: 28px; +} +.dropzone .preview.error .error-mark, +.dropzone-previews .preview.error .error-mark { + display: block; +} +.dropzone .preview.success .success-mark, +.dropzone-previews .preview.success .success-mark { + display: block; +} +.dropzone .preview:hover .details img, +.dropzone-previews .preview:hover .details img { + display: none; +} +.dropzone .preview:hover .success-mark, +.dropzone-previews .preview:hover .success-mark, +.dropzone .preview:hover .error-mark, +.dropzone-previews .preview:hover .error-mark { + display: none; +} +.dropzone .preview .success-mark, +.dropzone-previews .preview .success-mark, +.dropzone .preview .error-mark, +.dropzone-previews .preview .error-mark { + display: none; + position: absolute; + width: 40px; + height: 40px; + font-size: 30px; + text-align: center; + right: -10px; + top: -10px; +} +.dropzone .preview .success-mark, +.dropzone-previews .preview .success-mark { + color: #8cc657; +} +.dropzone .preview .error-mark, +.dropzone-previews .preview .error-mark { + color: #ee162d; +} +.dropzone .preview .progress, +.dropzone-previews .preview .progress { + position: absolute; + top: 100px; + left: 6px; + right: 6px; + height: 6px; + background: #d7d7d7; + display: none; +} +.dropzone .preview .progress .upload, +.dropzone-previews .preview .progress .upload { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 0%; + background-color: #8cc657; +} +.dropzone .preview.processing .progress, +.dropzone-previews .preview.processing .progress { + display: block; +} +.dropzone .preview .error-message, +.dropzone-previews .preview .error-message { + display: none; + position: absolute; + top: -5px; + left: -20px; + background: rgba(245,245,245,0.8); + padding: 8px 10px; + color: #800; + min-width: 140px; + max-width: 500px; + z-index: 500; +} +.dropzone .preview:hover.error .error-message, +.dropzone-previews .preview:hover.error .error-message { + display: block; +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/css/dropzone.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/css/dropzone.css" new file mode 100644 index 0000000..9583288 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/css/dropzone.css" @@ -0,0 +1,392 @@ +.dropzone, +.dropzone *, +.dropzone-previews, +.dropzone-previews * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.dropzone { + position: relative; + border: 1px solid rgba(0,0,0,0.08); + background: rgba(0,0,0,0.02); + padding: 1em; +} +.dropzone.clickable { + cursor: pointer; +} +.dropzone.clickable .message { + cursor: pointer; +} +.dropzone.clickable * { + cursor: default; +} +.dropzone .message { + opacity: 1; + -ms-filter: none; + filter: none; +} +.dropzone.drag-hover { + border-color: rgba(0,0,0,0.15); + background: rgba(0,0,0,0.04); +} +.dropzone.started .message { + display: none; +} +.dropzone .preview, +.dropzone-previews .preview { + background: rgba(255,255,255,0.8); + position: relative; + display: inline-block; + margin: 17px; + vertical-align: top; + border: 1px solid #acacac; + padding: 6px 6px 28px 6px; +} +.dropzone .preview .details, +.dropzone-previews .preview .details { + width: 100px; + height: 100px; + position: relative; + background: #ebebeb; + padding: 5px; +} +.dropzone .preview .details .filename, +.dropzone-previews .preview .details .filename { + overflow: hidden; + height: 100%; +} +.dropzone .preview .details img, +.dropzone-previews .preview .details img { + position: absolute; + top: 0; + left: 0; + width: 100px; + height: 100px; +} +.dropzone .preview .details .size, +.dropzone-previews .preview .details .size { + position: absolute; + bottom: -28px; + left: 3px; + height: 28px; + line-height: 28px; +} +.dropzone .preview.error .error-mark, +.dropzone-previews .preview.error .error-mark { + display: block; +} +.dropzone .preview.success .success-mark, +.dropzone-previews .preview.success .success-mark { + display: block; +} +.dropzone .preview:hover .details img, +.dropzone-previews .preview:hover .details img { + display: none; +} +.dropzone .preview:hover .success-mark, +.dropzone-previews .preview:hover .success-mark, +.dropzone .preview:hover .error-mark, +.dropzone-previews .preview:hover .error-mark { + display: none; +} +.dropzone .preview .success-mark, +.dropzone-previews .preview .success-mark, +.dropzone .preview .error-mark, +.dropzone-previews .preview .error-mark { + display: none; + position: absolute; + width: 40px; + height: 40px; + font-size: 30px; + text-align: center; + right: -10px; + top: -10px; +} +.dropzone .preview .success-mark, +.dropzone-previews .preview .success-mark { + color: #8cc657; +} +.dropzone .preview .error-mark, +.dropzone-previews .preview .error-mark { + color: #ee162d; +} +.dropzone .preview .progress, +.dropzone-previews .preview .progress { + position: absolute; + top: 100px; + left: 6px; + right: 6px; + height: 6px; + background: #d7d7d7; + display: none; +} +.dropzone .preview .progress .upload, +.dropzone-previews .preview .progress .upload { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 0%; + background-color: #8cc657; +} +.dropzone .preview.processing .progress, +.dropzone-previews .preview.processing .progress { + display: block; +} +.dropzone .preview .error-message, +.dropzone-previews .preview .error-message { + display: none; + position: absolute; + top: -5px; + left: -20px; + background: rgba(245,245,245,0.8); + padding: 8px 10px; + color: #800; + min-width: 140px; + max-width: 500px; + z-index: 500; +} +.dropzone .preview:hover.error .error-message, +.dropzone-previews .preview:hover.error .error-message { + display: block; +} +.dropzone { + border: 1px solid rgba(0,0,0,0.03); + min-height: 360px; + -webkit-border-radius: 3px; + border-radius: 3px; + background: rgba(0,0,0,0.03); + padding: 23px; +} +.dropzone .default.message { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transition: opacity 0.3s ease-in-out; + -moz-transition: opacity 0.3s ease-in-out; + -o-transition: opacity 0.3s ease-in-out; + -ms-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; + background-image: url("../images/spritemap.png"); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + width: 428px; + height: 123px; + margin-left: -214px; + margin-top: -61.5px; + top: 50%; + left: 50%; +} +@media all and (-webkit-min-device-pixel-ratio: 1.5) { + .dropzone .default.message { + background-image: url("../images/spritemap@2x.png"); + -webkit-background-size: 428px 406px; + -moz-background-size: 428px 406px; + background-size: 428px 406px; + } +} +.dropzone .default.message span { + display: none; +} +.dropzone.square .default.message { + background-position: 0 -123px; + width: 268px; + margin-left: -134px; + height: 174px; + margin-top: -87px; +} +.dropzone.drag-hover .message { + opacity: 0.15; + filter: alpha(opacity=15); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=15)"; +} +.dropzone.started .message { + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; +} +.dropzone .preview, +.dropzone-previews .preview { + -webkit-box-shadow: 1px 1px 4px rgba(0,0,0,0.16); + box-shadow: 1px 1px 4px rgba(0,0,0,0.16); + font-size: 14px; +} +.dropzone .preview .details img, +.dropzone-previews .preview .details img { + width: 100px; + height: 100px; +} +.dropzone .preview.image-preview:hover .details img, +.dropzone-previews .preview.image-preview:hover .details img { + display: block; + opacity: 0.1; + filter: alpha(opacity=10); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; +} +.dropzone .preview.success .success-mark, +.dropzone-previews .preview.success .success-mark { + opacity: 1; + -ms-filter: none; + filter: none; +} +.dropzone .preview.error .error-mark, +.dropzone-previews .preview.error .error-mark { + opacity: 1; + -ms-filter: none; + filter: none; +} +.dropzone .preview.error .progress .upload, +.dropzone-previews .preview.error .progress .upload { + background: #ee1e2d; +} +.dropzone .preview .error-mark, +.dropzone-previews .preview .error-mark, +.dropzone .preview .success-mark, +.dropzone-previews .preview .success-mark { + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity 0.4s ease-in-out; + -moz-transition: opacity 0.4s ease-in-out; + -o-transition: opacity 0.4s ease-in-out; + -ms-transition: opacity 0.4s ease-in-out; + transition: opacity 0.4s ease-in-out; + background-image: url("../images/spritemap.png"); + background-repeat: no-repeat; +} +@media all and (-webkit-min-device-pixel-ratio: 1.5) { + .dropzone .preview .error-mark, + .dropzone-previews .preview .error-mark, + .dropzone .preview .success-mark, + .dropzone-previews .preview .success-mark { + background-image: url("../images/spritemap@2x.png"); + -webkit-background-size: 428px 406px; + -moz-background-size: 428px 406px; + background-size: 428px 406px; + } +} +.dropzone .preview .error-mark span, +.dropzone-previews .preview .error-mark span, +.dropzone .preview .success-mark span, +.dropzone-previews .preview .success-mark span { + display: none; +} +.dropzone .preview .error-mark, +.dropzone-previews .preview .error-mark { + background-position: -268px -123px; +} +.dropzone .preview .success-mark, +.dropzone-previews .preview .success-mark { + background-position: -268px -163px; +} +.dropzone .preview .progress .upload, +.dropzone-previews .preview .progress .upload { + -webkit-animation: loading 0.4s linear infinite; + -moz-animation: loading 0.4s linear infinite; + -o-animation: loading 0.4s linear infinite; + -ms-animation: loading 0.4s linear infinite; + animation: loading 0.4s linear infinite; + -webkit-transition: width 0.3s ease-in-out; + -moz-transition: width 0.3s ease-in-out; + -o-transition: width 0.3s ease-in-out; + -ms-transition: width 0.3s ease-in-out; + transition: width 0.3s ease-in-out; + -webkit-border-radius: 2px; + border-radius: 2px; + position: absolute; + top: 0; + left: 0; + width: 0%; + height: 100%; + background-image: url("../images/spritemap.png"); + background-repeat: repeat-x; + background-position: 0px -400px; +} +@media all and (-webkit-min-device-pixel-ratio: 1.5) { + .dropzone .preview .progress .upload, + .dropzone-previews .preview .progress .upload { + background-image: url("../images/spritemap@2x.png"); + -webkit-background-size: 428px 406px; + -moz-background-size: 428px 406px; + background-size: 428px 406px; + } +} +.dropzone .preview.success .progress, +.dropzone-previews .preview.success .progress { + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity 0.4s ease-in-out; + -moz-transition: opacity 0.4s ease-in-out; + -o-transition: opacity 0.4s ease-in-out; + -ms-transition: opacity 0.4s ease-in-out; + transition: opacity 0.4s ease-in-out; +} +.dropzone .preview .error-message, +.dropzone-previews .preview .error-message { + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity 0.3s ease-in-out; + -moz-transition: opacity 0.3s ease-in-out; + -o-transition: opacity 0.3s ease-in-out; + -ms-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; +} +.dropzone .preview:hover.error .error-message, +.dropzone-previews .preview:hover.error .error-message { + opacity: 1; + -ms-filter: none; + filter: none; +} +@-moz-keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} +@-webkit-keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} +@-o-keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} +@-ms-keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} +@keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/css/stylus/basic.styl" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/css/stylus/basic.styl" new file mode 100644 index 0000000..82a753e --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/css/stylus/basic.styl" @@ -0,0 +1,141 @@ +@import "nib" + +.dropzone +.dropzone * +.dropzone-previews +.dropzone-previews * + box-sizing border-box + + +.dropzone + position relative + border 1px solid rgba(0, 0, 0, 0.08) + background rgba(0, 0, 0, 0.02) + padding 1em + + &.clickable + cursor pointer + .message + cursor pointer + * + cursor default + + .message + opacity 1 + + &.drag-hover + border-color rgba(0, 0, 0, 0.15) + background rgba(0, 0, 0, 0.04) + + &.started + .message + display none + +.dropzone +.dropzone-previews + .preview + background rgba(255, 255, 255, 0.8) + position relative + display inline-block + margin 17px + + vertical-align top + + border 1px solid #acacac + + padding 6px 6px 28px 6px + + .details + width 100px + height @width + position relative + background #ebebeb + padding 5px + + .filename + overflow hidden + height 100% + + + img + absolute top left + width @width + height @width + + .size + absolute bottom -28px left 3px + height 28px + line-height @height + + + &.error + .error-mark + display block + &.success + .success-mark + display block + + + &:hover + .details + img + display none + .success-mark + .error-mark + display none + + + .success-mark + .error-mark + display none + position absolute + + width 40px + height 40px + + font-size 30px + text-align center + right -10px + top -10px + + .success-mark + color #8CC657 + .error-mark + color #EE162D + + + .progress + position absolute + top 100px + left 6px + right 6px + height 6px + background #d7d7d7 + display none + + .upload + position absolute + top 0 + bottom 0 + left 0 + width 0% + background-color #8CC657 + + + &.processing + .progress + display block + + + .error-message + display none + absolute top -5px left -20px + background rgba(245, 245, 245, 0.8) + padding 8px 10px + color #800 + min-width 140px + max-width 500px + z-index 500 + &:hover.error + .error-message + display block diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/css/stylus/dropzone.styl" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/css/stylus/dropzone.styl" new file mode 100644 index 0000000..3d660e1 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/css/stylus/dropzone.styl" @@ -0,0 +1,152 @@ +@import "nib" +@import "basic" + +@keyframes loading + from + background-position: 0 -400px + to + background-position: -7px -400px + +.dropzone + border 1px solid rgba(0, 0, 0, 0.03) + min-height 360px + border-radius 3px + background rgba(0, 0, 0, 0.03) + padding 23px + + .default.message + opacity 1 + transition opacity 0.3s ease-in-out + + image "../images/spritemap.png" 428px 406px + background-repeat no-repeat + background-position 0 0 + + position absolute + width 428px + height 123px + margin-left -(@width / 2) + margin-top -(@height / 2) + top 50% + left 50% + span + display none + + &.square + .default.message + background-position 0 -123px + width 268px + margin-left -(@width / 2) + height 174px + margin-top -(@height / 2) + + &.drag-hover + .message + opacity 0.15 + + &.started + .message + display block + opacity 0 // Rather fade out nicely + + +.dropzone +.dropzone-previews + + .preview + box-shadow 1px 1px 4px rgba(0, 0, 0, 0.16) + font-size 14px + + + .details + img + width 100px + height 100px + + // Not implemented yet. This is the CSS definition of the file + // content as text. + // .content + // font-size 3px + // white-space pre + // position absolute + // top 5px + // left 12px + // right 19px + // bottom 5px + // overflow hidden + // line-height 100% + // cursor default + // word-wrap break-word + + &.image-preview + &:hover + .details + img + display block + opacity 0.1 + + &.success + .success-mark + opacity 1 + &.error + .error-mark + opacity 1 + .progress .upload + background #EE1E2D + + .error-mark + .success-mark + display block + opacity 0 // Fade in / out + transition opacity 0.4s ease-in-out + image "../images/spritemap.png" 428px 406px + background-repeat no-repeat + + span + display none + .error-mark + background-position -268px -123px + .success-mark + background-position -268px -163px + + + + .progress + .upload + animation loading 0.4s linear infinite + transition width 0.3s ease-in-out + border-radius 2px + position absolute + top 0 + left 0 + width 0% + height 100% + + image "../images/spritemap.png" 428px 406px + background-repeat repeat-x + background-position 0px -400px + + + &.success + .progress + display block + opacity 0 + transition opacity 0.4s ease-in-out + + + // Disabled for now until I find a better way to cope with long filenames + // .filename + // span + // overflow ellipsis + + .error-message + display block + opacity 0 // Rather fade in / out + transition opacity 0.3s ease-in-out + + &:hover.error + .error-message + opacity 1 + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/dropzone-amd-module.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/dropzone-amd-module.js" new file mode 100644 index 0000000..3320845 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/dropzone-amd-module.js" @@ -0,0 +1,726 @@ +// Uses AMD or browser globals to create a jQuery plugin. +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery'], factory); + } else { + // Browser globals + factory(jQuery); + } +} (function (jQuery) { + var module = { exports: { } }; // Fake component + +/** + * Expose `Emitter`. + */ + +module.exports = Emitter; + +/** + * Initialize a new `Emitter`. + * + * @api public + */ + +function Emitter(obj) { + if (obj) return mixin(obj); +}; + +/** + * Mixin the emitter properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + +function mixin(obj) { + for (var key in Emitter.prototype) { + obj[key] = Emitter.prototype[key]; + } + return obj; +} + +/** + * Listen on the given `event` with `fn`. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.on = function(event, fn){ + this._callbacks = this._callbacks || {}; + (this._callbacks[event] = this._callbacks[event] || []) + .push(fn); + return this; +}; + +/** + * Adds an `event` listener that will be invoked a single + * time then automatically removed. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.once = function(event, fn){ + var self = this; + this._callbacks = this._callbacks || {}; + + function on() { + self.off(event, on); + fn.apply(this, arguments); + } + + fn._off = on; + this.on(event, on); + return this; +}; + +/** + * Remove the given callback for `event` or all + * registered callbacks. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.off = +Emitter.prototype.removeListener = +Emitter.prototype.removeAllListeners = function(event, fn){ + this._callbacks = this._callbacks || {}; + var callbacks = this._callbacks[event]; + if (!callbacks) return this; + + // remove all handlers + if (1 == arguments.length) { + delete this._callbacks[event]; + return this; + } + + // remove specific handler + var i = callbacks.indexOf(fn._off || fn); + if (~i) callbacks.splice(i, 1); + return this; +}; + +/** + * Emit `event` with the given args. + * + * @param {String} event + * @param {Mixed} ... + * @return {Emitter} + */ + +Emitter.prototype.emit = function(event){ + this._callbacks = this._callbacks || {}; + var args = [].slice.call(arguments, 1) + , callbacks = this._callbacks[event]; + + if (callbacks) { + callbacks = callbacks.slice(0); + for (var i = 0, len = callbacks.length; i < len; ++i) { + callbacks[i].apply(this, args); + } + } + + return this; +}; + +/** + * Return array of callbacks for `event`. + * + * @param {String} event + * @return {Array} + * @api public + */ + +Emitter.prototype.listeners = function(event){ + this._callbacks = this._callbacks || {}; + return this._callbacks[event] || []; +}; + +/** + * Check if this emitter has `event` handlers. + * + * @param {String} event + * @return {Boolean} + * @api public + */ + +Emitter.prototype.hasListeners = function(event){ + return !! this.listeners(event).length; +}; + + // Generated by CoffeeScript 1.4.0 + +/* +# +# More info at [www.dropzonejs.com](http://www.dropzonejs.com) +# +# Copyright (c) 2012, Matias Meno +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +*/ + + +(function() { + var Dropzone, Em, camelize, o, without, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + __slice = [].slice; + + o = typeof jQuery !== "undefined" && jQuery !== null ? jQuery : require("jquery"); + + Em = typeof Emitter !== "undefined" && Emitter !== null ? Emitter : require("emitter"); + + Dropzone = (function(_super) { + + __extends(Dropzone, _super); + + Dropzone.prototype.version = "1.3.10"; + + /* + This is a list of all available events you can register on a dropzone object. + + You can register an event handler like this: + + dropzone.on("dragEnter", function() { }); + */ + + + Dropzone.prototype.events = ["drop", "dragstart", "dragend", "dragenter", "dragover", "dragleave", "selectedfiles", "addedfile", "removedfile", "thumbnail", "error", "processingfile", "uploadprogress", "sending", "success", "complete", "reset"]; + + Dropzone.prototype.blacklistedBrowsers = [/opera.*Macintosh.*version\/12/i]; + + Dropzone.prototype.defaultOptions = { + url: null, + parallelUploads: 2, + maxFilesize: 256, + paramName: "file", + createImageThumbnails: true, + maxThumbnailFilesize: 2, + thumbnailWidth: 100, + thumbnailHeight: 100, + params: {}, + clickable: true, + enqueueForUpload: true, + previewsContainer: null, + accept: function(file, done) { + return done(); + }, + fallback: function() { + this.element.addClass("browser-not-supported"); + this.element.find(".message").removeClass("default"); + this.element.find(".message span").html("Your browser does not support drag'n'drop file uploads."); + this.element.append("Please use the fallback form below to upload your files like in the olden days.

    "); + return this.element.append(this.getFallbackForm()); + }, + /* + Those functions register themselves to the events on init and handle all + the user interface specific stuff. Overwriting them won't break the upload + but can break the way it's displayed. + You can overwrite them if you don't like the default behavior. If you just + want to add an additional event handler, register it on the dropzone object + and don't overwrite those options. + */ + + drop: function(e) { + return this.element.removeClass("drag-hover"); + }, + dragstart: o.noop, + dragend: function(e) { + return this.element.removeClass("drag-hover"); + }, + dragenter: function(e) { + return this.element.addClass("drag-hover"); + }, + dragover: function(e) { + return this.element.addClass("drag-hover"); + }, + dragleave: function(e) { + return this.element.removeClass("drag-hover"); + }, + selectedfiles: function(files) { + if (this.element.is(this.previewsContainer)) { + return this.element.addClass("started"); + } + }, + reset: function() { + return this.element.removeClass("started"); + }, + addedfile: function(file) { + file.previewTemplate = o(this.options.previewTemplate); + this.previewsContainer.append(file.previewTemplate); + file.previewTemplate.find(".filename span").text(file.name); + return file.previewTemplate.find(".details").append(o("
    " + (this.filesize(file.size)) + "
    ")); + }, + removedfile: function(file) { + return file.previewTemplate.remove(); + }, + thumbnail: function(file, dataUrl) { + file.previewTemplate.removeClass("file-preview").addClass("image-preview"); + return file.previewTemplate.find(".details").append(o("\""")); + }, + error: function(file, message) { + file.previewTemplate.addClass("error"); + return file.previewTemplate.find(".error-message span").text(message); + }, + processingfile: function(file) { + return file.previewTemplate.addClass("processing"); + }, + uploadprogress: function(file, progress) { + return file.previewTemplate.find(".progress .upload").css({ + width: "" + progress + "%" + }); + }, + sending: o.noop, + success: function(file) { + return file.previewTemplate.addClass("success"); + }, + complete: o.noop, + previewTemplate: "
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    " + }; + + function Dropzone(element, options) { + var elementId, elementOptions, extend, _ref; + this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\n*/g, ""); + this.element = o(element); + if (this.element.length !== 1) { + throw new Error("You can only instantiate dropzone on a single element."); + } + if (this.element.data("dropzone")) { + throw new Error("Dropzone already attached."); + } + this.element.data("dropzone", this); + elementId = this.element.attr("id"); + elementOptions = (_ref = (elementId ? Dropzone.options[camelize(elementId)] : void 0)) != null ? _ref : {}; + this.elementTagName = this.element.get(0).tagName; + extend = function() { + var key, object, objects, target, val, _i, _len; + target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + for (_i = 0, _len = objects.length; _i < _len; _i++) { + object = objects[_i]; + for (key in object) { + val = object[key]; + target[key] = val; + } + } + return target; + }; + this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {}); + if (this.options.url == null) { + this.options.url = this.element.attr("action"); + } + if (!this.options.url) { + throw new Error("No URL provided."); + } + this.previewsContainer = this.options.previewsContainer ? o(this.options.previewsContainer) : this.element; + this.init(); + } + + Dropzone.prototype.init = function() { + var capableBrowser, regex, _i, _len, _ref, _ref1, + _this = this; + if (this.elementTagName === "form" && this.element.attr("enctype") !== "multipart/form-data") { + this.element.attr("enctype", "multipart/form-data"); + } + if (this.element.hasClass("dropzone") && this.element.find(".message").length === 0) { + this.element.append(o("
    Drop files here to upload
    ")); + } + capableBrowser = true; + if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData) { + _ref = this.blacklistedBrowsers; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + regex = _ref[_i]; + if (regex.test(navigator.userAgent)) { + capableBrowser = false; + continue; + } + } + } else { + capableBrowser = false; + } + if (!capableBrowser) { + return this.options.fallback.call(this); + } + if (this.options.clickable) { + this.element.addClass("clickable"); + this.hiddenFileInput = o(""); + this.element.click(function(evt) { + var target; + target = o(evt.target); + if (target.is(_this.element) || target.is(_this.element.find(".message"))) { + return _this.hiddenFileInput.click(); + } + }); + this.hiddenFileInput.change(function() { + var files; + files = _this.hiddenFileInput.get(0).files; + _this.emit("selectedfiles", files); + if (files.length) { + return _this.handleFiles(files); + } + }); + } + this.files = []; + this.filesQueue = []; + this.filesProcessing = []; + this.URL = (_ref1 = window.URL) != null ? _ref1 : window.webkitURL; + return this.setupEventListeners(); + }; + + Dropzone.prototype.getFallbackForm = function() { + var fields; + fields = o("
    "); + if (this.elementTagName !== "FORM") { + fields = o("
    ").append(fields); + } else { + if (!this.element.attr("enctype")) { + this.element.attr("enctype", "multipart/form-data"); + } + if (!this.element.attr("method")) { + this.element.attr("method", "post"); + } + } + return fields; + }; + + Dropzone.prototype.setupEventListeners = function() { + var eventName, noPropagation, _i, _len, _ref, + _this = this; + _ref = this.events; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + eventName = _ref[_i]; + this.on(eventName, this.options[eventName]); + } + noPropagation = function(e) { + e.stopPropagation(); + return e.preventDefault(); + }; + this.element.on("dragstart.dropzone", function(e) { + return _this.emit("dragstart", e); + }); + this.element.on("dragenter.dropzone", function(e) { + noPropagation(e); + return _this.emit("dragenter", e); + }); + this.element.on("dragover.dropzone", function(e) { + noPropagation(e); + return _this.emit("dragover", e); + }); + this.element.on("dragleave.dropzone", function(e) { + return _this.emit("dragleave", e); + }); + this.element.on("drop.dropzone", function(e) { + noPropagation(e); + _this.drop(e); + return _this.emit("drop", e); + }); + return this.element.on("dragend.dropzone", function(e) { + return _this.emit("dragend", e); + }); + }; + + Dropzone.prototype.removeEventListeners = function() { + return this.element.off(".dropzone"); + }; + + Dropzone.prototype.disable = function() { + this.removeEventListeners(); + this.files = []; + this.filesProcessing = []; + return this.filesQueue = []; + }; + + Dropzone.prototype.filesize = function(size) { + var string; + if (size >= 100000000000) { + size = size / 100000000000; + string = "TB"; + } else if (size >= 100000000) { + size = size / 100000000; + string = "GB"; + } else if (size >= 100000) { + size = size / 100000; + string = "MB"; + } else if (size >= 100) { + size = size / 100; + string = "KB"; + } else { + size = size * 10; + string = "b"; + } + return "" + (Math.round(size) / 10) + " " + string; + }; + + Dropzone.prototype.drop = function(e) { + var files; + if (!e.originalEvent.dataTransfer) { + return; + } + files = e.originalEvent.dataTransfer.files; + this.emit("selectedfiles", files); + if (files.length) { + return this.handleFiles(files); + } + }; + + Dropzone.prototype.handleFiles = function(files) { + var file, _i, _len, _results; + _results = []; + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + _results.push(this.addFile(file)); + } + return _results; + }; + + Dropzone.prototype.accept = function(file, done) { + if (file.size > this.options.maxFilesize * 1024 * 1024) { + return done("File is too big (" + (Math.round(file.size / 1024 / 10.24) / 100) + "MB). Max filesize: " + this.options.maxFilesize + "MB"); + } else { + return this.options.accept.call(this, file, done); + } + }; + + Dropzone.prototype.addFile = function(file) { + var _this = this; + this.files.push(file); + this.emit("addedfile", file); + if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) { + this.createThumbnail(file); + } + return this.accept(file, function(error) { + if (error) { + return _this.errorProcessing(file, error); + } else { + if (_this.options.enqueueForUpload) { + _this.filesQueue.push(file); + return _this.processQueue(); + } + } + }); + }; + + Dropzone.prototype.removeFile = function(file) { + if (file.processing) { + throw new Error("Can't remove file currently processing"); + } + this.files = without(this.files, file); + this.filesQueue = without(this.filesQueue, file); + this.emit("removedfile", file); + if (this.files.length === 0) { + return this.emit("reset"); + } + }; + + Dropzone.prototype.createThumbnail = function(file) { + var fileReader, + _this = this; + fileReader = new FileReader; + fileReader.onload = function() { + var img; + img = new Image; + img.onload = function() { + var canvas, ctx, srcHeight, srcRatio, srcWidth, srcX, srcY, thumbnail, trgHeight, trgRatio, trgWidth, trgX, trgY; + canvas = document.createElement("canvas"); + ctx = canvas.getContext("2d"); + srcX = 0; + srcY = 0; + srcWidth = img.width; + srcHeight = img.height; + canvas.width = _this.options.thumbnailWidth; + canvas.height = _this.options.thumbnailHeight; + trgX = 0; + trgY = 0; + trgWidth = canvas.width; + trgHeight = canvas.height; + srcRatio = img.width / img.height; + trgRatio = canvas.width / canvas.height; + if (img.height < canvas.height || img.width < canvas.width) { + trgHeight = srcHeight; + trgWidth = srcWidth; + } else { + if (srcRatio > trgRatio) { + srcHeight = img.height; + srcWidth = srcHeight * trgRatio; + } else { + srcWidth = img.width; + srcHeight = srcWidth / trgRatio; + } + } + srcX = (img.width - srcWidth) / 2; + srcY = (img.height - srcHeight) / 2; + trgY = (canvas.height - trgHeight) / 2; + trgX = (canvas.width - trgWidth) / 2; + ctx.drawImage(img, srcX, srcY, srcWidth, srcHeight, trgX, trgY, trgWidth, trgHeight); + thumbnail = canvas.toDataURL("image/png"); + return _this.emit("thumbnail", file, thumbnail); + }; + return img.src = fileReader.result; + }; + return fileReader.readAsDataURL(file); + }; + + Dropzone.prototype.processQueue = function() { + var i, parallelUploads, processingLength; + parallelUploads = this.options.parallelUploads; + processingLength = this.filesProcessing.length; + i = processingLength; + while (i < parallelUploads) { + if (!this.filesQueue.length) { + return; + } + this.processFile(this.filesQueue.shift()); + i++; + } + }; + + Dropzone.prototype.processFile = function(file) { + this.filesProcessing.push(file); + file.processing = true; + this.emit("processingfile", file); + return this.uploadFile(file); + }; + + Dropzone.prototype.uploadFile = function(file) { + var formData, handleError, input, inputElement, inputName, key, progressObj, value, xhr, _i, _len, _ref, _ref1, _ref2, + _this = this; + xhr = new XMLHttpRequest(); + xhr.open("POST", this.options.url, true); + handleError = function() { + return _this.errorProcessing(file, xhr.responseText || ("Server responded with " + xhr.status + " code.")); + }; + xhr.onload = function(e) { + var response; + if (xhr.status !== 200) { + return handleError(); + } else { + _this.emit("uploadprogress", file, 100); + response = xhr.responseText; + if (xhr.getResponseHeader("content-type") && ~xhr.getResponseHeader("content-type").indexOf("application/json")) { + response = JSON.parse(response); + } + return _this.finished(file, response, e); + } + }; + xhr.onerror = function() { + return handleError(); + }; + progressObj = (_ref = xhr.upload) != null ? _ref : xhr; + progressObj.onprogress = function(e) { + return _this.emit("uploadprogress", file, Math.max(0, Math.min(100, (e.loaded / e.total) * 100))); + }; + xhr.setRequestHeader("Accept", "application/json"); + xhr.setRequestHeader("Cache-Control", "no-cache"); + xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); + xhr.setRequestHeader("X-File-Name", file.name); + formData = new FormData(); + if (this.options.params) { + _ref1 = this.options.params; + for (key in _ref1) { + value = _ref1[key]; + formData.append(key, value); + } + } + if (this.elementTagName = "FORM") { + _ref2 = this.element.find("input, textarea, select, button"); + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + inputElement = _ref2[_i]; + input = o(inputElement); + inputName = input.attr("name"); + if (!input.attr("type") || input.attr("type").toLowerCase() !== "checkbox" || inputElement.checked) { + formData.append(input.attr("name"), input.val()); + } + } + } + this.emit("sending", file, xhr, formData); + formData.append(this.options.paramName, file); + return xhr.send(formData); + }; + + Dropzone.prototype.finished = function(file, responseText, e) { + this.filesProcessing = without(this.filesProcessing, file); + file.processing = false; + this.processQueue(); + this.emit("success", file, responseText, e); + this.emit("finished", file, responseText, e); + return this.emit("complete", file); + }; + + Dropzone.prototype.errorProcessing = function(file, message) { + this.filesProcessing = without(this.filesProcessing, file); + file.processing = false; + this.processQueue(); + this.emit("error", file, message); + return this.emit("complete", file); + }; + + return Dropzone; + + })(Em); + + Dropzone.options = {}; + + without = function(list, rejectedItem) { + var item, _i, _len, _results; + _results = []; + for (_i = 0, _len = list.length; _i < _len; _i++) { + item = list[_i]; + if (item !== rejectedItem) { + _results.push(item); + } + } + return _results; + }; + + camelize = function(str) { + return str.replace(/[\-_](\w)/g, function(match) { + return match[1].toUpperCase(); + }); + }; + + o.fn.dropzone = function(options) { + return this.each(function() { + return new Dropzone(this, options); + }); + }; + + o(function() { + return o(".dropzone").dropzone(); + }); + + if (typeof module !== "undefined" && module !== null) { + module.exports = Dropzone; + } else { + window.Dropzone = Dropzone; + } + +}).call(this); + + return module.exports; +})); \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/dropzone.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/dropzone.js" new file mode 100644 index 0000000..e1dbd39 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/dropzone.js" @@ -0,0 +1,942 @@ +;(function(){ + + +/** + * hasOwnProperty. + */ + +var has = Object.prototype.hasOwnProperty; + +/** + * Require the given path. + * + * @param {String} path + * @return {Object} exports + * @api public + */ + +function require(path, parent, orig) { + var resolved = require.resolve(path); + + // lookup failed + if (null == resolved) { + orig = orig || path; + parent = parent || 'root'; + var err = new Error('Failed to require "' + orig + '" from "' + parent + '"'); + err.path = orig; + err.parent = parent; + err.require = true; + throw err; + } + + var module = require.modules[resolved]; + + // perform real require() + // by invoking the module's + // registered function + if (!module.exports) { + module.exports = {}; + module.client = module.component = true; + module.call(this, module.exports, require.relative(resolved), module); + } + + return module.exports; +} + +/** + * Registered modules. + */ + +require.modules = {}; + +/** + * Registered aliases. + */ + +require.aliases = {}; + +/** + * Resolve `path`. + * + * Lookup: + * + * - PATH/index.js + * - PATH.js + * - PATH + * + * @param {String} path + * @return {String} path or null + * @api private + */ + +require.resolve = function(path) { + var index = path + '/index.js'; + + var paths = [ + path, + path + '.js', + path + '.json', + path + '/index.js', + path + '/index.json' + ]; + + for (var i = 0; i < paths.length; i++) { + var path = paths[i]; + if (has.call(require.modules, path)) return path; + } + + if (has.call(require.aliases, index)) { + return require.aliases[index]; + } +}; + +/** + * Normalize `path` relative to the current path. + * + * @param {String} curr + * @param {String} path + * @return {String} + * @api private + */ + +require.normalize = function(curr, path) { + var segs = []; + + if ('.' != path.charAt(0)) return path; + + curr = curr.split('/'); + path = path.split('/'); + + for (var i = 0; i < path.length; ++i) { + if ('..' == path[i]) { + curr.pop(); + } else if ('.' != path[i] && '' != path[i]) { + segs.push(path[i]); + } + } + + return curr.concat(segs).join('/'); +}; + +/** + * Register module at `path` with callback `definition`. + * + * @param {String} path + * @param {Function} definition + * @api private + */ + +require.register = function(path, definition) { + require.modules[path] = definition; +}; + +/** + * Alias a module definition. + * + * @param {String} from + * @param {String} to + * @api private + */ + +require.alias = function(from, to) { + if (!has.call(require.modules, from)) { + throw new Error('Failed to alias "' + from + '", it does not exist'); + } + require.aliases[to] = from; +}; + +/** + * Return a require function relative to the `parent` path. + * + * @param {String} parent + * @return {Function} + * @api private + */ + +require.relative = function(parent) { + var p = require.normalize(parent, '..'); + + /** + * lastIndexOf helper. + */ + + function lastIndexOf(arr, obj) { + var i = arr.length; + while (i--) { + if (arr[i] === obj) return i; + } + return -1; + } + + /** + * The relative require() itself. + */ + + function localRequire(path) { + var resolved = localRequire.resolve(path); + return require(resolved, parent, path); + } + + /** + * Resolve relative to the parent. + */ + + localRequire.resolve = function(path) { + // resolve deps by returning + // the dep in the nearest "deps" + // directory + if ('.' != path.charAt(0)) { + var segs = parent.split('/'); + var i = lastIndexOf(segs, 'deps') + 1; + if (!i) i = 0; + path = segs.slice(0, i + 1).join('/') + '/deps/' + path; + return path; + } + return require.normalize(p, path); + }; + + /** + * Check if module is defined at `path`. + */ + + localRequire.exists = function(path) { + return has.call(require.modules, localRequire.resolve(path)); + }; + + return localRequire; +}; +require.register("component-emitter/index.js", function(exports, require, module){ + +/** + * Expose `Emitter`. + */ + +module.exports = Emitter; + +/** + * Initialize a new `Emitter`. + * + * @api public + */ + +function Emitter(obj) { + if (obj) return mixin(obj); +}; + +/** + * Mixin the emitter properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + +function mixin(obj) { + for (var key in Emitter.prototype) { + obj[key] = Emitter.prototype[key]; + } + return obj; +} + +/** + * Listen on the given `event` with `fn`. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.on = function(event, fn){ + this._callbacks = this._callbacks || {}; + (this._callbacks[event] = this._callbacks[event] || []) + .push(fn); + return this; +}; + +/** + * Adds an `event` listener that will be invoked a single + * time then automatically removed. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.once = function(event, fn){ + var self = this; + this._callbacks = this._callbacks || {}; + + function on() { + self.off(event, on); + fn.apply(this, arguments); + } + + fn._off = on; + this.on(event, on); + return this; +}; + +/** + * Remove the given callback for `event` or all + * registered callbacks. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.off = +Emitter.prototype.removeListener = +Emitter.prototype.removeAllListeners = function(event, fn){ + this._callbacks = this._callbacks || {}; + var callbacks = this._callbacks[event]; + if (!callbacks) return this; + + // remove all handlers + if (1 == arguments.length) { + delete this._callbacks[event]; + return this; + } + + // remove specific handler + var i = callbacks.indexOf(fn._off || fn); + if (~i) callbacks.splice(i, 1); + return this; +}; + +/** + * Emit `event` with the given args. + * + * @param {String} event + * @param {Mixed} ... + * @return {Emitter} + */ + +Emitter.prototype.emit = function(event){ + this._callbacks = this._callbacks || {}; + var args = [].slice.call(arguments, 1) + , callbacks = this._callbacks[event]; + + if (callbacks) { + callbacks = callbacks.slice(0); + for (var i = 0, len = callbacks.length; i < len; ++i) { + callbacks[i].apply(this, args); + } + } + + return this; +}; + +/** + * Return array of callbacks for `event`. + * + * @param {String} event + * @return {Array} + * @api public + */ + +Emitter.prototype.listeners = function(event){ + this._callbacks = this._callbacks || {}; + return this._callbacks[event] || []; +}; + +/** + * Check if this emitter has `event` handlers. + * + * @param {String} event + * @return {Boolean} + * @api public + */ + +Emitter.prototype.hasListeners = function(event){ + return !! this.listeners(event).length; +}; + +}); +require.register("dropzone/index.js", function(exports, require, module){ + + +/** + * Exposing dropzone + */ +module.exports = require("./lib/dropzone.js"); + +}); +require.register("dropzone/lib/dropzone.js", function(exports, require, module){ +// Generated by CoffeeScript 1.4.0 + +/* +# +# More info at [www.dropzonejs.com](http://www.dropzonejs.com) +# +# Copyright (c) 2012, Matias Meno +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +*/ + + +(function() { + var Dropzone, Em, camelize, o, without, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + __slice = [].slice; + + o = typeof jQuery !== "undefined" && jQuery !== null ? jQuery : require("jquery"); + + Em = typeof Emitter !== "undefined" && Emitter !== null ? Emitter : require("emitter"); + + Dropzone = (function(_super) { + + __extends(Dropzone, _super); + + Dropzone.prototype.version = "1.3.10"; + + /* + This is a list of all available events you can register on a dropzone object. + + You can register an event handler like this: + + dropzone.on("dragEnter", function() { }); + */ + + + Dropzone.prototype.events = ["drop", "dragstart", "dragend", "dragenter", "dragover", "dragleave", "selectedfiles", "addedfile", "removedfile", "thumbnail", "error", "processingfile", "uploadprogress", "sending", "success", "complete", "reset"]; + + Dropzone.prototype.blacklistedBrowsers = [/opera.*Macintosh.*version\/12/i]; + + Dropzone.prototype.defaultOptions = { + url: null, + parallelUploads: 2, + maxFilesize: 256, + paramName: "file", + createImageThumbnails: true, + maxThumbnailFilesize: 2, + thumbnailWidth: 100, + thumbnailHeight: 100, + params: {}, + clickable: true, + enqueueForUpload: true, + previewsContainer: null, + accept: function(file, done) { + return done(); + }, + fallback: function() { + this.element.addClass("browser-not-supported"); + this.element.find(".message").removeClass("default"); + this.element.find(".message span").html("Your browser does not support drag'n'drop file uploads."); + this.element.append("Please use the fallback form below to upload your files like in the olden days.

    "); + return this.element.append(this.getFallbackForm()); + }, + /* + Those functions register themselves to the events on init and handle all + the user interface specific stuff. Overwriting them won't break the upload + but can break the way it's displayed. + You can overwrite them if you don't like the default behavior. If you just + want to add an additional event handler, register it on the dropzone object + and don't overwrite those options. + */ + + drop: function(e) { + return this.element.removeClass("drag-hover"); + }, + dragstart: o.noop, + dragend: function(e) { + return this.element.removeClass("drag-hover"); + }, + dragenter: function(e) { + return this.element.addClass("drag-hover"); + }, + dragover: function(e) { + return this.element.addClass("drag-hover"); + }, + dragleave: function(e) { + return this.element.removeClass("drag-hover"); + }, + selectedfiles: function(files) { + if (this.element.is(this.previewsContainer)) { + return this.element.addClass("started"); + } + }, + reset: function() { + return this.element.removeClass("started"); + }, + addedfile: function(file) { + file.previewTemplate = o(this.options.previewTemplate); + this.previewsContainer.append(file.previewTemplate); + file.previewTemplate.find(".filename span").text(file.name); + return file.previewTemplate.find(".details").append(o("
    " + (this.filesize(file.size)) + "
    ")); + }, + removedfile: function(file) { + return file.previewTemplate.remove(); + }, + thumbnail: function(file, dataUrl) { + file.previewTemplate.removeClass("file-preview").addClass("image-preview"); + return file.previewTemplate.find(".details").append(o("\""")); + }, + error: function(file, message) { + file.previewTemplate.addClass("error"); + return file.previewTemplate.find(".error-message span").text(message); + }, + processingfile: function(file) { + return file.previewTemplate.addClass("processing"); + }, + uploadprogress: function(file, progress) { + return file.previewTemplate.find(".progress .upload").css({ + width: "" + progress + "%" + }); + }, + sending: o.noop, + success: function(file) { + return file.previewTemplate.addClass("success"); + }, + complete: o.noop, + previewTemplate: "
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    " + }; + + function Dropzone(element, options) { + var elementId, elementOptions, extend, _ref; + this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\n*/g, ""); + this.element = o(element); + if (this.element.length !== 1) { + throw new Error("You can only instantiate dropzone on a single element."); + } + if (this.element.data("dropzone")) { + throw new Error("Dropzone already attached."); + } + this.element.data("dropzone", this); + elementId = this.element.attr("id"); + elementOptions = (_ref = (elementId ? Dropzone.options[camelize(elementId)] : void 0)) != null ? _ref : {}; + this.elementTagName = this.element.get(0).tagName; + extend = function() { + var key, object, objects, target, val, _i, _len; + target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + for (_i = 0, _len = objects.length; _i < _len; _i++) { + object = objects[_i]; + for (key in object) { + val = object[key]; + target[key] = val; + } + } + return target; + }; + this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {}); + if (this.options.url == null) { + this.options.url = this.element.attr("action"); + } + if (!this.options.url) { + throw new Error("No URL provided."); + } + this.previewsContainer = this.options.previewsContainer ? o(this.options.previewsContainer) : this.element; + this.init(); + } + + Dropzone.prototype.init = function() { + var capableBrowser, regex, _i, _len, _ref, _ref1, + _this = this; + if (this.elementTagName === "form" && this.element.attr("enctype") !== "multipart/form-data") { + this.element.attr("enctype", "multipart/form-data"); + } + if (this.element.hasClass("dropzone") && this.element.find(".message").length === 0) { + this.element.append(o("
    Drop files here to upload
    ")); + } + capableBrowser = true; + if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData) { + _ref = this.blacklistedBrowsers; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + regex = _ref[_i]; + if (regex.test(navigator.userAgent)) { + capableBrowser = false; + continue; + } + } + } else { + capableBrowser = false; + } + if (!capableBrowser) { + return this.options.fallback.call(this); + } + if (this.options.clickable) { + this.element.addClass("clickable"); + this.hiddenFileInput = o(""); + this.element.click(function(evt) { + var target; + target = o(evt.target); + if (target.is(_this.element) || target.is(_this.element.find(".message"))) { + return _this.hiddenFileInput.click(); + } + }); + this.hiddenFileInput.change(function() { + var files; + files = _this.hiddenFileInput.get(0).files; + _this.emit("selectedfiles", files); + if (files.length) { + return _this.handleFiles(files); + } + }); + } + this.files = []; + this.filesQueue = []; + this.filesProcessing = []; + this.URL = (_ref1 = window.URL) != null ? _ref1 : window.webkitURL; + return this.setupEventListeners(); + }; + + Dropzone.prototype.getFallbackForm = function() { + var fields; + fields = o("
    "); + if (this.elementTagName !== "FORM") { + fields = o("
    ").append(fields); + } else { + if (!this.element.attr("enctype")) { + this.element.attr("enctype", "multipart/form-data"); + } + if (!this.element.attr("method")) { + this.element.attr("method", "post"); + } + } + return fields; + }; + + Dropzone.prototype.setupEventListeners = function() { + var eventName, noPropagation, _i, _len, _ref, + _this = this; + _ref = this.events; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + eventName = _ref[_i]; + this.on(eventName, this.options[eventName]); + } + noPropagation = function(e) { + e.stopPropagation(); + return e.preventDefault(); + }; + this.element.on("dragstart.dropzone", function(e) { + return _this.emit("dragstart", e); + }); + this.element.on("dragenter.dropzone", function(e) { + noPropagation(e); + return _this.emit("dragenter", e); + }); + this.element.on("dragover.dropzone", function(e) { + noPropagation(e); + return _this.emit("dragover", e); + }); + this.element.on("dragleave.dropzone", function(e) { + return _this.emit("dragleave", e); + }); + this.element.on("drop.dropzone", function(e) { + noPropagation(e); + _this.drop(e); + return _this.emit("drop", e); + }); + return this.element.on("dragend.dropzone", function(e) { + return _this.emit("dragend", e); + }); + }; + + Dropzone.prototype.removeEventListeners = function() { + return this.element.off(".dropzone"); + }; + + Dropzone.prototype.disable = function() { + this.removeEventListeners(); + this.files = []; + this.filesProcessing = []; + return this.filesQueue = []; + }; + + Dropzone.prototype.filesize = function(size) { + var string; + if (size >= 100000000000) { + size = size / 100000000000; + string = "TB"; + } else if (size >= 100000000) { + size = size / 100000000; + string = "GB"; + } else if (size >= 100000) { + size = size / 100000; + string = "MB"; + } else if (size >= 100) { + size = size / 100; + string = "KB"; + } else { + size = size * 10; + string = "b"; + } + return "" + (Math.round(size) / 10) + " " + string; + }; + + Dropzone.prototype.drop = function(e) { + var files; + if (!e.originalEvent.dataTransfer) { + return; + } + files = e.originalEvent.dataTransfer.files; + this.emit("selectedfiles", files); + if (files.length) { + return this.handleFiles(files); + } + }; + + Dropzone.prototype.handleFiles = function(files) { + var file, _i, _len, _results; + _results = []; + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + _results.push(this.addFile(file)); + } + return _results; + }; + + Dropzone.prototype.accept = function(file, done) { + if (file.size > this.options.maxFilesize * 1024 * 1024) { + return done("File is too big (" + (Math.round(file.size / 1024 / 10.24) / 100) + "MB). Max filesize: " + this.options.maxFilesize + "MB"); + } else { + return this.options.accept.call(this, file, done); + } + }; + + Dropzone.prototype.addFile = function(file) { + var _this = this; + this.files.push(file); + this.emit("addedfile", file); + if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) { + this.createThumbnail(file); + } + return this.accept(file, function(error) { + if (error) { + return _this.errorProcessing(file, error); + } else { + if (_this.options.enqueueForUpload) { + _this.filesQueue.push(file); + return _this.processQueue(); + } + } + }); + }; + + Dropzone.prototype.removeFile = function(file) { + if (file.processing) { + throw new Error("Can't remove file currently processing"); + } + this.files = without(this.files, file); + this.filesQueue = without(this.filesQueue, file); + this.emit("removedfile", file); + if (this.files.length === 0) { + return this.emit("reset"); + } + }; + + Dropzone.prototype.createThumbnail = function(file) { + var fileReader, + _this = this; + fileReader = new FileReader; + fileReader.onload = function() { + var img; + img = new Image; + img.onload = function() { + var canvas, ctx, srcHeight, srcRatio, srcWidth, srcX, srcY, thumbnail, trgHeight, trgRatio, trgWidth, trgX, trgY; + canvas = document.createElement("canvas"); + ctx = canvas.getContext("2d"); + srcX = 0; + srcY = 0; + srcWidth = img.width; + srcHeight = img.height; + canvas.width = _this.options.thumbnailWidth; + canvas.height = _this.options.thumbnailHeight; + trgX = 0; + trgY = 0; + trgWidth = canvas.width; + trgHeight = canvas.height; + srcRatio = img.width / img.height; + trgRatio = canvas.width / canvas.height; + if (img.height < canvas.height || img.width < canvas.width) { + trgHeight = srcHeight; + trgWidth = srcWidth; + } else { + if (srcRatio > trgRatio) { + srcHeight = img.height; + srcWidth = srcHeight * trgRatio; + } else { + srcWidth = img.width; + srcHeight = srcWidth / trgRatio; + } + } + srcX = (img.width - srcWidth) / 2; + srcY = (img.height - srcHeight) / 2; + trgY = (canvas.height - trgHeight) / 2; + trgX = (canvas.width - trgWidth) / 2; + ctx.drawImage(img, srcX, srcY, srcWidth, srcHeight, trgX, trgY, trgWidth, trgHeight); + thumbnail = canvas.toDataURL("image/png"); + return _this.emit("thumbnail", file, thumbnail); + }; + return img.src = fileReader.result; + }; + return fileReader.readAsDataURL(file); + }; + + Dropzone.prototype.processQueue = function() { + var i, parallelUploads, processingLength; + parallelUploads = this.options.parallelUploads; + processingLength = this.filesProcessing.length; + i = processingLength; + while (i < parallelUploads) { + if (!this.filesQueue.length) { + return; + } + this.processFile(this.filesQueue.shift()); + i++; + } + }; + + Dropzone.prototype.processFile = function(file) { + this.filesProcessing.push(file); + file.processing = true; + this.emit("processingfile", file); + return this.uploadFile(file); + }; + + Dropzone.prototype.uploadFile = function(file) { + var formData, handleError, input, inputElement, inputName, key, progressObj, value, xhr, _i, _len, _ref, _ref1, _ref2, + _this = this; + xhr = new XMLHttpRequest(); + xhr.open("POST", this.options.url, true); + handleError = function() { + return _this.errorProcessing(file, xhr.responseText || ("Server responded with " + xhr.status + " code.")); + }; + xhr.onload = function(e) { + var response; + if (xhr.status !== 200) { + return handleError(); + } else { + _this.emit("uploadprogress", file, 100); + response = xhr.responseText; + if (xhr.getResponseHeader("content-type") && ~xhr.getResponseHeader("content-type").indexOf("application/json")) { + response = JSON.parse(response); + } + return _this.finished(file, response, e); + } + }; + xhr.onerror = function() { + return handleError(); + }; + progressObj = (_ref = xhr.upload) != null ? _ref : xhr; + progressObj.onprogress = function(e) { + return _this.emit("uploadprogress", file, Math.max(0, Math.min(100, (e.loaded / e.total) * 100))); + }; + xhr.setRequestHeader("Accept", "application/json"); + xhr.setRequestHeader("Cache-Control", "no-cache"); + xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); + xhr.setRequestHeader("X-File-Name", file.name); + formData = new FormData(); + if (this.options.params) { + _ref1 = this.options.params; + for (key in _ref1) { + value = _ref1[key]; + formData.append(key, value); + } + } + if (this.elementTagName = "FORM") { + _ref2 = this.element.find("input, textarea, select, button"); + for (_i = 0, _len = _ref2.length; _i < _len; _i++) { + inputElement = _ref2[_i]; + input = o(inputElement); + inputName = input.attr("name"); + if (!input.attr("type") || input.attr("type").toLowerCase() !== "checkbox" || inputElement.checked) { + formData.append(input.attr("name"), input.val()); + } + } + } + this.emit("sending", file, xhr, formData); + formData.append(this.options.paramName, file); + return xhr.send(formData); + }; + + Dropzone.prototype.finished = function(file, responseText, e) { + this.filesProcessing = without(this.filesProcessing, file); + file.processing = false; + this.processQueue(); + this.emit("success", file, responseText, e); + this.emit("finished", file, responseText, e); + return this.emit("complete", file); + }; + + Dropzone.prototype.errorProcessing = function(file, message) { + this.filesProcessing = without(this.filesProcessing, file); + file.processing = false; + this.processQueue(); + this.emit("error", file, message); + return this.emit("complete", file); + }; + + return Dropzone; + + })(Em); + + Dropzone.options = {}; + + without = function(list, rejectedItem) { + var item, _i, _len, _results; + _results = []; + for (_i = 0, _len = list.length; _i < _len; _i++) { + item = list[_i]; + if (item !== rejectedItem) { + _results.push(item); + } + } + return _results; + }; + + camelize = function(str) { + return str.replace(/[\-_](\w)/g, function(match) { + return match[1].toUpperCase(); + }); + }; + + o.fn.dropzone = function(options) { + return this.each(function() { + return new Dropzone(this, options); + }); + }; + + o(function() { + return o(".dropzone").dropzone(); + }); + + if (typeof module !== "undefined" && module !== null) { + module.exports = Dropzone; + } else { + window.Dropzone = Dropzone; + } + +}).call(this); + +}); +require.alias("component-emitter/index.js", "dropzone/deps/emitter/index.js"); + +if (typeof exports == "object") { + module.exports = require("dropzone"); +} else if (typeof define == "function" && define.amd) { + define(require("dropzone")); +} else { + window["Dropzone"] = require("dropzone"); +}})(); \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/images/spritemap.png" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/dropzone/images/spritemap.png" new file mode 100644 index 0000000000000000000000000000000000000000..9f21314542aa49d389c88a2d4d2e733a227279ed GIT binary patch literal 16954 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 section of your HTML document. Make sure you also add the jQuery library. + + + + + + + +Create your links with a `title` if you want a title to be shown, and add a class: + + + +If you have a set of related items that you would like to group, +additionally include a group name in the `rel` (or `data-fancybox-group`) attribute: + + + + +Initialise the script like this: + + + +May also be passed an optional options object which will extend the default values. Example: + + + +Tip: Automatically group and apply fancyBox to all images: + + $("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.png'],a[href$='.gif']").attr('rel', 'gallery').fancybox(); + +Script uses the `href` attribute of the matched elements to obtain the location of the content and to figure out content type you want to display. +You can specify type directly by adding classname (fancybox.image, fancybox.iframe, etc) or `data-fancybox-type` attribute: + + //Ajax: + Example + //or + Example + + //Iframe: + Example + + //Inline (will display an element with `id="example"`) + Example + + //SWF: + Example + + //Image: + Example + +Note, ajax requests are subject to the [same origin policy](http://en.wikipedia.org/wiki/Same_origin_policy). +If fancyBox will not be able to get content type, it will try to guess based on 'href' and will quit silently if would not succeed. +(this is different from previsous versions where 'ajax' was used as default type or an error message was displayed). + +Advanced +-------- + +### Helpers + +Helpers provide a simple mechanism to extend the capabilities of fancyBox. There are two built-in helpers - 'overlay' and 'title'. +You can disable them, set custom options or enable other helpers. Examples: + + //Disable title helper + $(".fancybox").fancybox({ + helpers: { + title: null + } + }); + + //Disable overlay helper + $(".fancybox").fancybox({ + helpers: { + overlay : null + } + }); + + //Change title position and overlay color + $(".fancybox").fancybox({ + helpers: { + title : { + type : 'inside' + }, + overlay : { + css : { + 'background' : 'rgba(255,255,255,0.5)' + } + } + } + }); + + //Enable thumbnail helper and set custom options + $(".fancybox").fancybox({ + helpers: { + thumbs : { + width: 50, + height: 50 + } + } + }); + + +### API + +Also available are event driven callback methods. The `this` keyword refers to the current or upcoming object (depends on callback method). Here is how you can change title: + + $(".fancybox").fancybox({ + beforeLoad : function() { + this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : ''); + + /* + "this.element" refers to current element, so you can, for example, use the "alt" attribute of the image to store the title: + this.title = $(this.element).find('img').attr('alt'); + */ + } + }); + +It`s possible to open fancyBox programmatically in various ways: + + //HTML content: + $.fancybox( '

    Lorem Lipsum

    Lorem lipsum

    ', { + title : 'Custom Title' + }); + + //DOM element: + $.fancybox( $("#inline"), { + title : 'Custom Title' + }); + + //Custom object: + $.fancybox({ + href: 'example.jpg', + title : 'Custom Title' + }); + + //Array of objects: + $.fancybox([ + { + href: 'example1.jpg', + title : 'Custom Title 1' + }, + { + href: 'example2.jpg', + title : 'Custom Title 2' + } + ], { + padding: 0 + }); + +There are several methods that allow you to interact with and manipulate fancyBox, example: + + //Close fancybox: + $.fancybox.close(); + +There is a simply way to access wrapping elements using JS: + + $.fancybox.wrap + $.fancybox.skin + $.fancybox.outer + $.fancybox.inner + +You can override CSS to customize the look. For example, make navigation arrows always visible, +change width and move them outside of area (use this snippet after including fancybox.css): + + .fancybox-nav span { + visibility: visible; + } + + .fancybox-nav { + width: 80px; + } + + .fancybox-prev { + left: -80px; + } + + .fancybox-next { + right: -80px; + } + +In that case, you might want to increase space around box: + + $(".fancybox").fancybox({ + margin : [20, 60, 20, 60] + }); + + +Bug tracker +----------- + +Have a bug? Please create an issue on GitHub at https://github.com/fancyapps/fancyBox/issues \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/1_b.jpg" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/1_b.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..0f662e341e65350cc7aa7f88fed34eff3b44d0db GIT binary patch literal 82080 zcmb4KRa6{2uwI-ZrBIy3p*R$GC~gIc%VNbBU)(8B+@U~=!{Y9XyK8ZGcXzw}AMQE# z^-i85XJ(Q~W=_6L-sa!d0UzY0<)i^{Z~y?@zXEuB1<)%yID>7$o@S;L#vT;%-=t)0 z!FFI4H#av{D+e=+|0=8|_O}0zkxKvx017G+8WIW$8X6iV3d(yN91I*ZG#nZtay%R+ z0!|V(0yZKtN=1G$4tfeAHVKdfy)p}%78@rumzlmAuOcfO%iBLDa449VIA}O@7#MUc zyllKI|8IKh0AQoSo5GtSz)=Cy`Zg zfQLgsfJa0?ME%!}fPe%Cj{rc#M#7=|$c{`Urh?1yomw2?kAkOa9G6|y$vLrcP9xzM zaDlHDPivA>-8Fehz!kXpj}tK*;GdNLE9W04L;w=(g}aPa?RApNHZ96UA- zB?3E@7>CM7@$b|S|F~>K)hdb3b6ig2iH)~K00siwzeylq14IFP0ki>kG{--2m+xt? z%9+agAKB_IbXiVXPg>JB(ojpsG-&&6_A+ZOWJYElX0MH5;!4DiAeRQD{E;nT@}7$ z#8Edv>kY6N{i$EqqkkM|BDYQx`mc8z-^Xo&MmZkJq48pFOQqYHtn87QUp1a2FI+~n z>TfSb?enAr)9<9DW%wU5!#^qtA-Qe}owrAoUauIcPtmg37R2}Qv&Awo^s{q|q3rJ~ zoV$J0@5jvDK9)8r*oO*nOO;9F_M#hNp-cg$XCI}d;!*q{C)^Cab!$D z5RU5@zH&w3_)Qj<@&`S4@U0A!_8G}t<-oSvqI-URw|2Wouurnf0oJ*Duym2$;e`HmK&2DS?NhP4O3e-CC z=UD>m=IGD62Cmwr&&eDbCiAoOeC0aQIj3zcPyCc;QN&gCk-)cKM85!~q1=oiSsFiA zS`{CzyWPB`JagmWW*9wP^~5yw>$kDVj-y|T>_2kv$R~3*0!OhN6+SY1D}wXEZuN7n zXMTQ^htdO3V-aC#-#W6wrmwSuED3rbLrz=#3i3p0KWiahovhkF)OBsOjSVZ@l`O4V zfb~d?F42jXo7~;a`LfZRCI$E*F^)bZr<0DN!)sn;80(vPM_HCnU0_ zTdD8}Q-w|DhHINNCPu2Ytp~jyS?}}V5WGFpdM89_0(oUAKajoppd@y;*|^%6J-8uv z_eG+kgPj$@=IY`_v`!-CMN)KTnDCa-P87~m6Q`fKQ(mU3A@2Qg+zsw4q1kj!=;KVQ(o{Duxcd6K-~+p|BwFp?3b9!hU=&gReDp`8JFTbEWev zKE45Tr%j?QJ`=&t_6OeS=aDolwE6Bz)S4V|J zom22j@>YiA1F6=xBPj*twhj!{(s>AyMwko2q)CV?9Nl-u?h$k9;KMWO(FP9fTp zrY5Ss7R(nft?Abgedf5=hNwv*O%Yxu2Fmb9a=NF@#{7g$g$i^-DHkw9uo)lqMDnfd z4c?r$%m#UozugeWA&f&{pisg&aSokaB(>^cj%D_l({DIEZ&`d8M?dNfB9#qkt0-2U z6N{ihs*DA8{dY*c?C;6!Ld)Ryt#o*xlAlUk}Sy4ikx@jvgyN{I8C;7gTBe2%*Nl^^E`Ht0w z#x7p3^Ocy%!=bUC|E8n(LsP>Gxi!v#IW}7e+xDRZ?oSW>hQ8x-UOy`(f%rbEVSZr! zmJ)ulngnq&<$^fh6$UYz%A}uas$7Z`#0h>mpzY6={Z_Aa(X&)ig|FUq`OiuFd8d$- zCGJV?HvoE+a;E`lTQtR;LpOoSTx5@0`^D=`)xq&px&Yrs3`M2j-$%AQkhf^DgpvLC z#;_c)I_`9>jWpB3^8_n*Y690);5s@)_*Y#bMw9XQL$!^7_ z!ip6O@3+QDO=|$KFfD1LxwS_W8BUQJ4PPkP}Qo$3^?XX_5s@%h=g#kuf$+NKHY2ktYdw? z@{3@RAdH3;Y5H5uGe6&P$Vubbs7TE$1&GgPRgR@Js;&hFk^M6`UksnNH`@HD!G~ze zx?IhZ?mKjzH#z#sY<5-IzyH~9EoYeY3+>9U_DWG6gfnNHe*o6lOy}li3*sw3!GfRBnIsD4<(W#5!-SjEhe%#bxxv9%+}hLg}d^6 zeC5uO--&ts+^5JSskJCpi>wukPh%U?rbYJpt4br=0B-d?|8_ z+^L?sntpr08g)|?l!$)|IQx5t@F6}yasSazEEaUHEES=|FmoW?oVU$n;so^NFDEKA zWL|u^<{h1iCZeOxizIUM?st1S(KnRC%353iA8?Eeh8isLMeN#aC(s!Yh$M=?P*}1b zr0h3RFuO6e#`yppl%F1FQS<1&j`w@pwHJxCwca1xn&kXEIa~0<5|fe2JqsXlUbv9Q zh#pv~WET zh^wx(g3maQopGFzxQ(+cH=%_l28`SyDx|fjHHVN;s@2M+nS{rT_en=63{k>H5$W46 zqz^(hWT7@Eoqax4@=%Luy68pv#Zy;4DY2uIZzLPG@mh5Jz?sQmsfP3DWG5%L{EyrN zk-b8>(ZA2`on8~=pH&v{PwvAqR&9xynq{I)Q!z?o#=pjLEW3*6R=KN^2rDSH1n;`r zuxUzv9)|pQZ_>x>_3tQysO2CKXWOp6DQVBYp!|-ERuSdX**0MNq)pk4-|XLE9#3P= z4`YIRbLU0Y@q+laUAaG8Lh*_8sbyf2EZ7{8JWfXkXTKwLmxJJc>w!G&9!9Y)t9Ip!%UA z*^bu~iR?xyMV%BsEOk?Cus;uUBZ@Yf3ubUDR;r(iuaP2+YJ0~lti6YD`KSq|W2~-E zV0>raD#k(atY`)%?doclPkP*~F4_JRAvFt~{DL8_tsb?%niHHMTekCuQYlx@`13|3 z>iCG@G)@4HjL#6zl`6P0ELR83&IroZ|2?IbFpq?rwuxES)_+=_B%mJu=kbxe1N0!% z;AVSKvB!;<<4cJ4#EGe3K1>h3;jEd6v>h$HkGmt9;yoaKvqi$3$e3;Lgui-KfFILb#CUL{}g+QV9q zEH+l~6+%aQ=799>9TdJIUG*0P`)>f{nhCobL7z(fgjv-06I137Jg+Vz%8~Z9)^yS6 zjmF}{AK`3=V;+@Bi#1X&IO*ufku^&rh)&HGdq3ce1qw<-Qs`8gR=6O&Y(3KApS?}u z1x=P!Jf(Wt$nQb0u+rrF6ojEjAc_6pkt`O^(WIg(Mj%wH-L<8sT(_cO7Ead=*#}qa}-;+>3k=s zc;QsWibeq#nzJq{>4rU*o)Cc^?rGt0fg#`*-NMejOn@yL%h0GJ{eF@_5Ua2p0qnuj z_WO2XMCw<3-mql%8GWDVd%rvcJagjM+)I>Kea>#pcdrM>5_?)MoX z(&D!@bg!&yF9j15GYU+Jox$ znVpwFau%G+!|`#WX*51rJmdJv~zlqpYp>k(Z<4lY4IX>Iti3tDZZqod@b2@|+u%wB6_U zbeKc}JbInBU#P6MZ3v>4fH_aTcsyZH@GMWaO54Y;gVeEc3=UuJ`t7bKzz4tI03Q{G z-vBkm+U`kx3VaaOzo#sJ$50RD?%j&(vmd#u=ImD}!)ou~(sv?$0B;FJ7eiWFri8@6 zZvZTgwyZmyAI#~(ks|lwL#VGV<}rPk`Muxqa{?AmH8!P;I$|O5GQ(1}^+C~kzIswB zwJ#>2wKk9=xS-6DpR3m`+`e9o{;Rky68aT>l>oCo1VyWAaN7wE(2>uvYvof5I_;~5V@YVCV9!CGT8wX(?iN~%Aw zWv;mfJTq^A#2lFQW>!;DI`hutEW^*TkC7Ms73Dl=M=Hub(M&k+4|pAg@5iUYvzFcQw7UfJv$;C>$TE0SW0++Oyl-$lGKr> z>U&J)#T$T8NAAL-ik7HPCsPOq66^Z-ink&vL%cD~HL9#+VY$jVtMlP1c>N6k&lI6- zbz37F&nDG*g9kZxt-}hrS>cf~7I-=_i+r@Gv3M=jESk;{+Omos_bBYl?X}0dE;sK+ zoQWm>*2dQ|!%bqTku|d()+N(I_*nkgv*Dzl?_>;9m)jm&tYq+gIow|Yi| z0?O=!nVn1V@XKV%U+*PEF?{c$SCdUMiZ`iGS2^@dNTizC@rHS)BYsVYm+-l8=|y_d zt+J_BvZnP%Y5q*LV|QjZ&{IX^L(;6UD`5pCC<3gpfwm5mm6qA-)$zLycehZLp0@4y zTdsiY*!)QS*Y4luPIv&Od>!SKY`plzp})9H<1qA9dYK&w^$n2Z)1mUruo4`3w@4R> z_%(htB0qBAr~j=LiU0lNi$aH|Z;G16RQqF6=nog$tY2vbww?Z`B6Z|}LY%qoKdn(U z!T9{Ig9}3mAK9uiSGZ~MuxOOj8g~5FVaxX-<2~#y_B0EHL2^-}DL>$t*5(3lDl+E> zF?YJ85y!?m76R9nCYxtd*WF8Pb+L;Kz_7ok%W>n8S?eNGeLVkM4CDo8^o9-R;EZ;p z{!)QeYQ%k|Au}~YFr^gClKxI0J1LGdYGtRc9Et$Gpi%9*qq&?4S&Q}}twYY<01i=M59i@>md>pZ1U-x~2P{5Z^%I37jKL7IIjcoD^hY`R(f z1=}jchL?Ao*$K66{`z-3;MwO#zJ@15;`JM#LFNsxNYasAb_z9HY8>%Twx7an|Mr5t zHqZTwNr-b<@8dRNR57xf=`Hyh-uJc_+BHMV@Aw1av=67>9XrY$wC>~{A2n236x{Es z^jva}Fhfl&=o|x^?R}-Kh{iD3$K+RV2d@umy%x%LRAJbpL7el`;G$uq4u{Tp((Ynj zj8~NKszWsd=PBuGmwNgqM-CD@VbL|KVp0JOO~(S`H2XV|nQ{)jh!Kt`Zy9Sp( zlc(mt*kwucmt|Kq_^7z76%x-LbE2M!ewc|>C^cmnH#qN0>8mR2wZ(O-NM-l|{CIOc zHSFdz!AKR0)JbNCGWDnxpMU>=`0PG3reIGS(L2?kCC&OSUc@_d57bk+dX0xCsnVt+ zas}`8;()}u6yOd$=I;M%0sbClMq_k?Vs(>8pambUeki6?hOuL!>H8(pe+|CACD<ZH6}bBA)qa!rUl%ud z1cF~_$3u_rpC2LWK7uMCiav_Et4#OlJbpcmUrE<^P&}(fx9(4~+QHCxj~y0bnh~G` z7ReXtxG}$Ht7Ji5jU^17Fk?NpPt|=~`;)2h^H&PzJF758mW=OF{#aag0Cbou)*O6M zyiBtBQ|{wT``6}au0{)<57Jk1BusKJK>*Q4Of+7A%SbFP2&XW|ou4M66+3}Yma zBzkROR9<=`W1j2=dHE`1riy4>jS}VsoCBS&?e`t^UPu*M2`0#35B?1)f+2{kMx-ByfOQL8;q6PpT5l%J*yXGgu2 zJNd!SOwsCZ0M?uFld{PbQypB>4BBxkvrV~^x=}xsrm19N z4}27^ zD11p}$H`T0c1z>k(I)jZxMrr4tV6_y&VO_o-oD5BHRIZU?c!#_;3LbEnIDWTJcYSL z__Tie29UQXzvsIb5cG;r7})k-@Fm@}=iJLww)&aaitFg3%Rh4#a(ca@bU8Rz>cP0R za7#bxB!(?{d*tpfJuth3XkXo-GDfwWO`IgwitwdKa3Rc>z99p33Q9B&Uz@eZHKjCD zJG{gjeUM*2{f;p{p9e0Q^N{~lUpw4KixjB?Z>(Alpf+wHLIz%ECM$$!3ywyrxx5TfaC-a1 z2%oX=)Gm1HSW_`nm%ieBjL?*Q1KjcKA<5oyAtzQSc;)HUDBW_J(M1zRFDL5Zoka4i z9cekLa1JUY+*h(JACaY#c$VNWgkK4;{&ZT%SvaIx$9#vcZ?i)Uq^1O)OQSU4{XVda*R&c{m zw6jg?pK>p72SA101kW8Ajb_t`h9PVCOAabfD*K>R3U`hq^@`_NU z^!3ggP<*Edc1oYuGy1&kfpS?M=pnooblv|!slGum!q!(Z4Iye`^w8tjflQGeoaAb8;i-^Q0)zcP@^i{Zv(#~+)U=E%#xpQBYijd5hH$83x- zr7>R|sIG}Iv%TNd$)c}4uLZT>mL!E6*vL`_mP|A2Dws)3gxh;A0(@@FG@y?2Tl6G+(#b6ArupRq2r zY?4khX_#g?Lo^D~&K;y~^R-iS^g80Z31hWSS@rvI$nmUAWJ8`TVsE3yz&Kx(WEU&E z8)fEhXU9^p2qFv>qbc<3rlyYRi8y_@>5J`Rq5$;PC56M#C?t}M2TU8 z9Q2Zd9nTjIRlBW#zvc;@rj(XS%6fI|y-53u2iuXhGzw zmY6t)9Y0io0ept`-VlvZ68Xki)<3!@Ho)@Ur0v8pl)=od(r>LdHHvs$VbmJ#vx-?e zKOT7BcZYWlr5UJXZhePV@~%Zb$YuB8cD z@v<9nc*gYxfU_6_u|fk>gINMtddf*Oylo$tnnBJZ^1v0Fvl?u?%6mT!2gqSbQ zJ`ddbibNGl)|F@iso!Zx3y4ntA#r>g{$!~U(?NsPMft9(KTAxjXO&J}&0j^VPF!Hwd@>r3z&dYTi zE3BxZRr78GRQUR*E^6%h@k-DiAD2-aYK8D-J)6wrh+uYl~64wX1cB1Kl zGD9`*5a#Z+#>qG8k5L9YmjyM>lrPMyMB*P^nzi@-Y+4Epq0y<7{Pq=D z2zXcM@gq<;*NhYW;c|NCJyUO{?TENW!Z9|)n2ocP$U%Q+$=%mWJQr|bOwizUo!u0!$_Fanv ziKA6n(F&N1c9KnVOD%X$b$+tHz7TM#5>Zhow$f&lTNA*?Y=#-_E2p`HO z>&q$4#w#wcWi}~4pe2p>A#_hDT9kCV0DqpF!zF`(51rcCi2NGZ2*(<#_Bh)&IKm?6LxBK5a z(Nc%N(*!pgU#bK`A}A|vTtZS=S%j`KM%M3u>H$(L8?u|SUT$&I)8XhEsQ!Ux@0No7 z`O}02&*7I2I@ngPel2J?=7qmR%7Snj$EXCSm~>Mbm~d@aL4>!{`kKCZhF_O^rRZS? z$3Dd2c0#mpb|!ZNx_T6zbqW1$UM2UPLyQqeM}p@hFpX8YJ?pMQSZdU`?-x|qPZb8q z>-CsI&8LgB{Z2T}m1N5R1#1<%GT!ihe$^nHPT@xYh>4ga36F9Hzu4~7uO89Inug$+ z7WDpI<@_Mpqeoi{7-mN?g*bZ9Rg$Y|aZi>BF+q=9Va44}E-F|4tep>HJ*39qg|_v#Kgs(!CGSzBk1wPb2ogsIFL1rv-^7b5HDgm*lt? zw&J1g-a8!j`zo_qtJg%yd>g?74WS4hZfttBvgz8gJO5?L4#%F2`w$}{?AxLt%}?!L zPnQnZl;{O3&165#FDb=rX?=r*&)AtQ%-}S3YM=l;fxAC`(Rc|YR13t#@^N_;Ll@wVS@B;yS2XHqDh<{_(l*Tl7Bwn0mol1%ztuPNb{0 z?53u~HL7BBN_Ef&J6kKDUw2CT2P(naVwW1M%JB+uWF_iEdl$?dEdD7^s+`X~?KE~{ zk7f@*X}9WUpsk*$?%xtj40hMnj-q-(`wICmbb)lpEQf(;LlKbwJP-J`X(U8_p;PQaH&4an$xCh z5e?dL#_VXce!AUcnrFlI+hEa?*YIa*UOGtAi01lh1zUD}q!cfXxx@15UW(I7cqDI_JUKPv^wujO_$6~HERs_+m@_t& zD@`Y-y-pn&5R&PsGxnS~_l`mt%1yYT!722R@G_4dGE+zT2(c_i6@`WAz zVx|mjs60koLp*(@#x26YZ3XcvJ*{f_SA#~Bu;!J5yLp(wIvmBxWrm+(cPZ?HA~*GAuk#c1YZ3dnco;OJ! zftCXMf9=Irm@`q8Xrcf^ad(wIVikq8pj3V7!BZC6;FCyUh zVzw@}_OwH`@DCqxfL@h+HZNAfILO*SF1-}SDMIGjt&^h<2mto5@atXlHZ zxr7b=4v^ZdGsngf#oemMCXo7poI||DC(878!>&Ybyex%ym-{iD!uzgEVdYJ<(Y$0~ z!YM#N!;SYHqMvTrePD+`bhZU+1PDOTdTFmLsQD0mabK}em%(7NY(F#Hq|oeiYM)Zvi%VFc$c^fR5QH_PG-5bwu5in= zRhgaXZ17ZctVyHywrJ}}45*CM7Q-L;hw6&Uf`8HDY_Vog)M!jgO8iW1Vx)4ZHENlE z^^@#v{nV3{jAyytq2}h!dS#NA;5+fsfSphjltzSu=PS+B3ak}(j@vH17B!w@A@{+j zT+Vom8$>b=(0^)+Qr zH9xDlzMtk>2hOQXwjgsiD-KZkDUY?V095{lnsc)b8t1QAc{t;zJvi-z*aJ zWhCQw@06^E74oWDVPe=tSiu%DPyKV z&TjJ9jD~iSsB!&1kLN2}Rmu4j<|qK_Xt$WS;=7!hL?5wc+RJpW)18!)zqSylN)^{3*J_MBhp|JOGbs&7vO_H+n69tXQpW0gxTRy}bcC%epH| z8O8F)*z=H~O#6zf>~iPamY~4%J&Hl>KGB%j{5@r(>A+9t>$6V+Xy2%-1k}g{ES6{x~SVEP4A71@zlALmiv%Sh}EQvEuzD6AF4aFpHKMysju+TAk{r( zMr9qX=XdJg-FQyN`{-f=72MWT>CZzn{ZPMjFIx;XJvgT8SSEV6Yrd_^Q9=Z}UsYXc zQH_N^nS%lfy`!Bn7{?@N46g4_u7R>K7?+V)=8?JgT ztfPH+7*@FSglADR;!+gzz7@3@m}1lPh`~C1ozzza_zER*Zb;Wv%gZ$OQyhI9;&wYI z1x{+=uJZC)@qn3H-U;(~CJ%E(;w|SmXgu%9mg|~TwuHXz{}GydJywGv(zg> zsjpvVKq-)jNN6{W+1`S+A+c~!QkMG;k@*2B^tSUX?Lyq?7jk&r?t3F%#qXHCO`Vj; z^yX2HF~pgvM-ofDn19;7KrICu(1&gMo#vgCe19wkeZ%|I&_Fp@Nw^$3D@1i71=n7@g1- z;!=GDYnM2Dzn_9S>S^{Ut3kDsWhPVCMJKyWRV{}k76Amq7{Is(llyN+8!<1YtWbSp z>$;^@4Y4b7;`^*^-Gv1(Uy^uS;t^o;jyH6q&E9qS!A* zTvG~e)Wg(V<=aVdV~)z)+!z_g-uh9<2_z*A=?1hoVrT zJ9(DhQO#+Y7p|_~W>VuBRr68hR;WPANaOj6F5kHe6E>-z`14{5#bC5UZpQ3KdOkgo zy&T$wizt7!Ae^JFu%?zgoWqW?%DPA#C8g7X@tbiNa-&_|#=y#eaSGuKP;WOk^}%md>u>A0l3UcBqr*6ku_Ls{LLyLh%H zE(o5Js+lqaHzm8lt!(!30Q|_DGV`=cTR#6ox{GyJSThhYapM#y*!bxXZOIw`OW@mN z!38_AYHrxci7Q?V+b*5*!9($(j8ar-ajKzqzbxt@z1*>(Kj7+3M!tDY?);*$32Z+> zSS*l>T1@t)H$dd9uH0n;Q`MqY2(uam-|;tDV> z5`^Me8g7(w=H`jyPigt?g#AeYny#GcXD58ld%jmZ%mlsEgI_FO5|Qp1B&7I;v#0}{ zxPC5IQEjV*u%7;v0DLOQ(iHcw z%Nt_pjjbVl9P_8$ z`l0}#k+6fT&d?BB_kd?Yk^9(5w;3XG?tYRMBR|;UmaF?QbwAHR9Pj6uXs6Zt?UQ&9 zM~==)_~i`WI_#RTOed=5*Qxh2D$Or+y1I0#=w7K$&L+V4o}bR+FVl^F@@$2i5rSeg zzTapZmEPSgiKmc4Mz5W%^DxpIP{YQj8WUZ3_)$|ER~;k7LwP{eOK?6oB%FC+J7guqjJK4^STi2!b* zY>y*W3l?lgYv9`2k4QK5$bDn7JTeS@QEJ>Nx_nJ6;a*GOc)4zi0v&7OB%>;SRlltO zIb|Z_x16@)lhfIeie-k#^fM_9L_UAB!{Zglclj~!;DsK24gHXe*dwz3K9oHuPbK!f zXfkqBbmkT&o%$4I;J3P%Evlba9r{_pUY2OvQwj*1J4IF?ZfOYa>f;js z$v>$7hOL&MBeqBOjKqgsCyiRTgB8E|&AV&YE37wwlx^uj(&9|S(pbmGrSzQxFaL-+zc>m<=p!Sj1!;3D;JvfpK`+KY+9T@ESH3DXT{ACfe=jzj%u+m0 z66jjSy)d9Nwn0W-N#pRDL4T^(+B9ylW?aaIm#ZB4TjcTCQv03;DaBynvhIACq{=V_ zTv{4~sQjT5m}iwBjAf_le*K_!RhDz_Ss2Oqm;UzHw2)tienJ$EC2d|WEdqCQmsTZ2hMGur~+u!$9Gc+xmV>VKuJPScy+JiV7 zCRk`18v?+RVf2SWtUX5WdHo*LWX!#x{Y*0OUq^NvTJMQEaF-N#d76G=6^IOXXI3X5 z0zK+qe06oG*;IObTK6N+^QS6o3&^?bs<8(4@Cp}aiUoGVHWe~I@T>ieTTqZ~n4j2+ zYF80obGHJ;y+5Ks!x|coU$!up*-(O>j|OMO>CY!kovxig6Mb9$UEG=vl_#b*6?BrV znfGPii=Ac4C&G>(b2QzGomBNuLF+G%TyryHR+ZW=82lKr9)1=cv;tNV$HdP2duBMER%hXJJU1FK$(Mbd;X= zA6)Jww2onFp{xMcNL%tuCw&yL;4O{HmVL2>+b}aoT>s+?=|)GNpvF?SZpC4<*8$lE z_J`7R6rlzLpqf0ReqySNrM-2wmF6~qw#nk!24^Pw-Bv5O#o-T=L7%e7}ohAVwOR(Cenn^&440<_PR$MAUqAdk=C<~lH`lt)azmCw9kGaX z0LO%S|ND6*XsNlPv&eHO6q)B5z2uip^S6%cuM45sdXJ3U;8vhsIx>6mW-d>|d27GF zz1Fv>ZoMA7$RaiowS$xza8u@Mb~sanM{g<*?-#=K-`7h^X=>;%p6EKBII#m-v|gu( zu8(MYhjuN(eq4(Ndo}h#vDlY|d4tN5@!rL2ewVy{=!U*kEi<+$f@#SrV1ehOsNB2t zNkW(XGv*x~ediVF`Om?GRE%Qdz6DP=?xU3}(P!nphH-O<-_KXl7xDYg? zg2;>n}`+N8fZ0c>lQvhURL_phVQ$lKjPd+sLwG zNeV&V3Gu!!lvgJQ&-)6^LBA>#{l_6oxRQ}04>&$?Pf#JW#oZYdDAA`6?ETpV%5GHY zW$zIAFgot|@S4Gw{e+2~Ks)M#Gnw3gRfq4&p@0vXDr$QAFtO)h681jMz?iOD{^kj8 zykqG|AQe9&j8d;Fu6XT%DrD_Kcl4B_?qWlv(fF|+9$a)!4h9d7z84a zHVh7aUth1~as47lhr{|~d^+1s({9>GCmVUH4~KkNG;;r1Z<0uBg-ZReA~ADdBta+BT`GUED4I07eJ4wYHS1IV!*6kQ=i7a&h@qURAW%$*~8!Ysm*1oLU!YcBlBQq=N$4X)u;F>`&hO3yE6^+YQr(c{Ewz7Cq^5s zJ@3w=YWGS`>pPNnxB1eGeRlrMqT zXxKL4{{V5$YOz0xEIeo9BdK0TG#V5^6u#2iK=%W-<3c=cFUY}Pl2phwj}cnf_+LuW zH0cY80G{W|-Twe%KSDh|m9CrOsPw%8<4C%)YqK`#V`RqVbHMNQ6p6e+V-Ja?zBYdm zrFEJ`v(7x8g09{f)RJqRLsI=sHSVb_r{SZFeVS+P?me+uT5Vj7Dw=O%-53uHskORX8c{mk8(R^BbJ9~32 z+e@kDHTx*s{{V;&Vh`-qlK%i!xbYsEFQwC#@-piW*tRx-ChfaO=Wybn_u0}?lEs!} zdu>|Ud6w^VS7&H8#BWB%3T+=SG|CSPN2ck4bg}T4pm}ALa7fN}AI7+N@j7V}-3>a> z+F42p8+ltN9*w+mrGAxmu>C5v=AO`XlS;frY)Lwo>OXMV91h;UL--tNc#xE4mx*q$ z)ODDy8GapF(8kz`?rgHkryn>SiT?n8l$m@zbFFHoX|Ck7)c1*mQm!!{?(@#m{&Y5h z`arw!9;Fq9)x0U4`<+fZ9QvO_PCR!yN2c2V!aMNck=G!B?UCBKy6j!Tbw#%0#Fmy5 z2qcs>$QzkZ6SQNw$7FmZ>;gF9n`~H+(x+u8UTtlxHczXM-cXvEH*F9dWc)^SuZsWGm zkLGHZVXr=mcLQ6i36X&yo(Rry_*H|gtIZXKrOPzd!B0&5`A$LLwhjeVUeZlGqYwyj zmCrnXu}>PTO)<2pM@F^rj-{x*{EKNE`=k#n=Os36+k+p_e@diX*~x!v1uG}^6~igsJZ?&GJ=cH ziOtr7eWzRM$sx6a%q`#1806#Mk^F0{HP(sZO)}*)>qw@3rQJe=X#W6v9sdA_6;0PH z{xn)#Yee#b_~09o z$s52rTd|A|`Nc*rk}8?gZVxH+b8Cy8VA-SGd`y~hGO#6!1#$KC?^93uLb=qU$;Gt9 zjnYNNc*o*DD(X6o{8qwScy5*(i4}Jl##E`}jPObR6~?ulIdqLiLj)!}4dg1h&Iscf z{Hpe);~^uDC!=ex5I&`A3{qxNttm4|Mo#0O#)g&Mqfo94NB&d#X1XyN2EV7(ipI}lA~Ntn+^zZ7M7sSc z&8S;gA&p^~4rG*^hdXid`gi^{a+maBr+fv(Q7bjZ4#{Lao7?cNJ8u+r_o|b{)`edW z8TO`h1mVrJScmB=Q|cM_rvYO=LFV=C?@RCeS9RhSFLAUJjP%zXtElMy8`5Up_N^V= zuiaKrm2c0V<5SIQx^}WeR()$mh!=?f5S$+4=qc2b=+dQ{v{|$t6iK7a6mqe9 zEdKz8PsmC6tFEM$`qi*uw&LBr#c;bB#f985NfO+k&SI0)S4T}Y`@^=z;@VL)vGeqo zCklVB6bu}&P25ILsY{^U$8Ra$WXH)XpOk;4Sqm(YZsCxO^X*mJFA!UJnM@MK5^QH< z9{&KH6%x;*0J5>UvK$6p>HcE7vny67gH2hki(6;mBpaoRAmg9&6#ew;SG1W{HRW5l z>}ZQ?MT9fQCiQN3sicI<6RTmEf;i%qHj&bmy&OJ!K#st7tFMJ1iKD%V;||Ab4dXm^ zrB`}+wv>qmaCru-9vzu}D(5F@VZ#1(Mr)j#h`@L@+CUV>AVuUfM2z!LCxOx#QP$>M zjzI^p_p3CM6pWnhV89=*HM_`ApjF?KgU&HZW&D#VdX|TAbrsB#TuCfZ?{tnrI|`x8 zWURrlh0ZqDSr)H3nON*xm14&@9sdA_HA%bDMYOV_w^2ditC72kUW#|kBOxUK=bEs? zeQR`@d~&lRMoKv;oX58Vw>1>nXnw;D?hOO*-6r51<3EK~lQ&YAL;YgT)_X*oPlQ9T zgpuRM2sKxRBC@Koo^qo+VB@_rS)(vA?Npn;P!9h9O5PiA_YkW#VcZn+jtTnG{>
    S-X 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 qvPGE7Hqr;nUIKjMCxh=5=ub; literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/1_s.jpg" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/1_s.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..ef0bd550d7f90d7b2e65522b39964667621eea9c GIT binary patch literal 8097 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

    n=we6e--3}h=4vDMb~LF6a)Ds8X| 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 z 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

    }~5F|)rUz|iv;kR%lh|Ldw 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 P6W(}~U*JmGp?UZ(k9AwC literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/3_b.jpg" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/3_b.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..e007a51c3ed027304f3605b25e9b9a77b8dbd254 GIT binary patch literal 55777 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Ξ&GzqNJhd~9+Y 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çs!|kJ>Voym*|w~uJGfO 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%0DtP{o?^w*KE{cL9|H%tNic~a-w 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

    W@|` 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 F|JihF9)JJ< literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/4_s.jpg" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/4_s.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..b9ea423224cc3492af4d9b2a2b0b6073c35a58b6 GIT binary patch literal 5203 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 literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/5_b.jpg" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/5_b.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..ea1cfbc3fad38858318a9aac2f13e3ed3601abbe GIT binary patch literal 76217 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 VWHr=<(;Nnx3<2l3H3?l!{SRPrFGBzT literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/ajax.txt" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/ajax.txt" new file mode 100644 index 0000000..0850e80 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/ajax.txt" @@ -0,0 +1,15 @@ +

    +

    Lorem ipsum dolor sit amet3

    +

    + Close me +

    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas fermentum ante et sapien dignissim in viverra magna feugiat. Donec tempus ipsum nec neque dignissim quis eleifend eros gravida. Praesent nisi massa, sodales quis tincidunt ac, semper quis risus. In suscipit nisl sed leo aliquet consequat. Integer vitae augue in risus porttitor pellentesque eu eget odio. Fusce ut sagittis quam. Morbi aliquam interdum blandit. Integer pharetra tempor velit, aliquam dictum justo tempus sed. Morbi congue fringilla justo a feugiat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent quis metus et nisl consectetur pharetra. Nam bibendum turpis eu metus luctus eu volutpat sem molestie. Nam sollicitudin porttitor lorem, ac ultricies est venenatis eu. Ut dignissim elit et orci feugiat ac placerat purus euismod. Ut mi lorem, cursus et sagittis elementum, luctus ac massa. +

    +

    + Phasellus et ligula vel diam ullamcorper volutpat. Integer rhoncus rhoncus aliquam. Aliquam erat volutpat. Aenean luctus vestibulum placerat. Quisque quam neque, lacinia aliquet eleifend ac, aliquet blandit felis. Curabitur porta ultricies dui, sit amet mattis quam euismod a. Ut eleifend scelerisque neque, sit amet accumsan odio consequat ut. Proin facilisis auctor elit sed accumsan. Cras dapibus nisl in nisi rhoncus laoreet. Nullam pellentesque tortor libero, eget facilisis ipsum. Donec ultricies tellus tellus, in tincidunt purus. Nullam in est aliquam velit scelerisque blandit. In tincidunt, magna a dapibus imperdiet, quam urna elementum leo, vitae rhoncus nisl velit cursus velit. In dignissim sem ac mauris rhoncus ornare. +

    +

    + Duis imperdiet velit vel quam malesuada suscipit imperdiet tellus hendrerit. Mauris vestibulum odio mauris, ut placerat leo. Mauris quis neque at tellus feugiat congue id non enim. Nam vehicula posuere nulla eget vehicula. Donec pretium purus nec ligula porta eu laoreet sapien venenatis. Nulla facilisi. Phasellus eget mi enim. Phasellus molestie tincidunt ultrices. Aenean id sem a tellus lobortis tincidunt. Nam laoreet nulla vel velit tincidunt ac rutrum libero malesuada. Nulla consequat dolor quis nisl tempor fermentum. Integer sodales pretium varius. Aenean a leo vitae odio dictum dignissim malesuada nec dolor. Phasellus adipiscing viverra est, ac sagittis libero sagittis quis. Sed interdum dapibus nunc et fringilla. Nunc vel velit et urna laoreet bibendum. +

    +
    \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/iframe.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/iframe.html" new file mode 100644 index 0000000..b586e15 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/iframe.html" @@ -0,0 +1,26 @@ + + + + fancyBox - iframe demo + + + +

    fancyBox - iframe demo

    + +

    + Close iframe parent + + | + + Change content +

    + +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam scelerisque justo ac eros consectetur bibendum. In hac habitasse platea dictumst. Nulla aliquam turpis et tellus elementum luctus. Duis sit amet rhoncus velit. Duis nisl ligula, mattis interdum blandit laoreet, mattis id ante. Cras pulvinar lacus vitae nisi egestas non euismod neque bibendum. Vestibulum faucibus libero id ante molestie ultricies. Vestibulum quis nibh felis. Vestibulum libero nisl, vehicula vel ullamcorper sit amet, tristique sit amet augue. Etiam urna neque, porttitor sed sodales lacinia, posuere a nisl. Vestibulum blandit neque in sapien volutpat ac condimentum sapien auctor. Ut imperdiet venenatis ultricies. Phasellus accumsan, sem eu placerat commodo, felis purus commodo ipsum, sit amet vulputate orci est viverra est. +

    + +

    + Aenean velit est, condimentum ut iaculis ut, accumsan at mi. Maecenas velit mi, venenatis ut condimentum at, ultrices vel tortor. Curabitur pharetra ornare dapibus. Ut volutpat cursus semper. In hac habitasse platea dictumst. Donec eu iaculis ipsum. Morbi eu dolor velit, a semper nunc. +

    + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/index.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/index.html" new file mode 100644 index 0000000..b9764aa --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/demo/index.html" @@ -0,0 +1,307 @@ + + + + fancyBox - Fancy jQuery Lightbox Alternative | Demonstration + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    fancyBox

    + +

    This is a demonstration. More information and examples: www.fancyapps.com/fancybox/

    + +

    Simple image gallery

    +

    + + + + + + + +

    + +

    Different effects

    +

    + + + + + + + +

    + +

    Various types

    +

    + fancyBox will try to guess content type from href attribute but you can specify it directly by adding classname (fancybox.image, fancybox.iframe, etc). +

    + + + + +

    + Ajax example will not run from your local computer and requires a server to run. +

    + +

    Button helper

    +

    + + + + + + + +

    + +

    Thumbnail helper

    +

    + + + + + + + +

    + +

    Media helper

    +

    + Will not run from your local computer, requires a server to run. +

    + + + +

    Open manually

    + + +

    + Photo Credit: Instagrammer @whitjohns +

    + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/lib/jquery-1.8.2.min.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/lib/jquery-1.8.2.min.js" new file mode 100644 index 0000000..bc3fbc8 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/lib/jquery-1.8.2.min.js" @@ -0,0 +1,2 @@ +/*! jQuery v1.8.2 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.2",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,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(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return a!=null?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
    a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
    t
    ",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
    ",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||p.guid++:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c=0)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.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,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j=0:p.find(m,this,null,[f]).length),h[m]&&j.push(l);j.length&&u.push({elem:f,matches:j})}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bc(a,b,c,d){c=c||[],b=b||r;var e,f,i,j,k=b.nodeType;if(!a||typeof a!="string")return c;if(k!==1&&k!==9)return[];i=g(b);if(!i&&!d)if(e=P.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&h(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return w.apply(c,x.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&_&&b.getElementsByClassName)return w.apply(c,x.call(b.getElementsByClassName(j),0)),c}return bp(a.replace(L,"$1"),b,c,d,i)}function bd(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function be(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bf(a){return z(function(b){return b=+b,z(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function bg(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bh(a,b){var c,d,f,g,h,i,j,k=C[o][a];if(k)return b?0:k.slice(0);h=a,i=[],j=e.preFilter;while(h){if(!c||(d=M.exec(h)))d&&(h=h.slice(d[0].length)),i.push(f=[]);c=!1;if(d=N.exec(h))f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=d[0].replace(L," ");for(g in e.filter)(d=W[g].exec(h))&&(!j[g]||(d=j[g](d,r,!0)))&&(f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=g,c.matches=d);if(!c)break}return b?h.length:h?bc.error(a):C(a,i).slice(0)}function bi(a,b,d){var e=b.dir,f=d&&b.dir==="parentNode",g=u++;return b.first?function(b,c,d){while(b=b[e])if(f||b.nodeType===1)return a(b,c,d)}:function(b,d,h){if(!h){var i,j=t+" "+g+" ",k=j+c;while(b=b[e])if(f||b.nodeType===1){if((i=b[o])===k)return b.sizset;if(typeof i=="string"&&i.indexOf(j)===0){if(b.sizset)return b}else{b[o]=k;if(a(b,d,h))return b.sizset=!0,b;b.sizset=!1}}}else while(b=b[e])if(f||b.nodeType===1)if(a(b,d,h))return b}}function bj(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function bk(a,b,c,d,e){var f,g=[],h=0,i=a.length,j=b!=null;for(;h-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==l)||((b=c).nodeType?j(a,c,d):k(a,c,d))}];for(;i1&&bj(m),i>1&&a.slice(0,i-1).join("").replace(L,"$1"),c,i0,f=a.length>0,g=function(h,i,j,k,m){var n,o,p,q=[],s=0,u="0",x=h&&[],y=m!=null,z=l,A=h||f&&e.find.TAG("*",m&&i.parentNode||i),B=t+=z==null?1:Math.E;y&&(l=i!==r&&i,c=g.el);for(;(n=A[u])!=null;u++){if(f&&n){for(o=0;p=a[o];o++)if(p(n,i,j)){k.push(n);break}y&&(t=B,c=++g.el)}d&&((n=!p&&n)&&s--,h&&x.push(n))}s+=u;if(d&&u!==s){for(o=0;p=b[o];o++)p(x,q,i,j);if(h){if(s>0)while(u--)!x[u]&&!q[u]&&(q[u]=v.call(k));q=bk(q)}w.apply(k,q),y&&!h&&q.length>0&&s+b.length>1&&bc.uniqueSort(k)}return y&&(t=B,l=z),x};return g.el=0,d?z(g):g}function bo(a,b,c,d){var e=0,f=b.length;for(;e2&&(j=h[0]).type==="ID"&&b.nodeType===9&&!f&&e.relative[h[1].type]){b=e.find.ID(j.matches[0].replace(V,""),b,f)[0];if(!b)return c;a=a.slice(h.shift().length)}for(g=W.POS.test(a)?-1:h.length-1;g>=0;g--){j=h[g];if(e.relative[k=j.type])break;if(l=e.find[k])if(d=l(j.matches[0].replace(V,""),R.test(h[0].type)&&b.parentNode||b,f)){h.splice(g,1),a=d.length&&h.join("");if(!a)return w.apply(c,x.call(d,0)),c;break}}}return i(a,m)(d,b,f,c,R.test(a)),c}function bq(){}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=String,r=a.document,s=r.documentElement,t=0,u=0,v=[].pop,w=[].push,x=[].slice,y=[].indexOf||function(a){var b=0,c=this.length;for(;be.cacheLength&&delete a[b.shift()],a[c]=d},a)},B=A(),C=A(),D=A(),E="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",G=F.replace("w","w#"),H="([*^$|!~]?=)",I="\\["+E+"*("+F+")"+E+"*(?:"+H+E+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+G+")|)|)"+E+"*\\]",J=":("+F+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+I+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+E+"*((?:-\\d)?\\d*)"+E+"*\\)|)(?=[^-]|$)",L=new RegExp("^"+E+"+|((?:^|[^\\\\])(?:\\\\.)*)"+E+"+$","g"),M=new RegExp("^"+E+"*,"+E+"*"),N=new RegExp("^"+E+"*([\\x20\\t\\r\\n\\f>+~])"+E+"*"),O=new RegExp(J),P=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,Q=/^:not/,R=/[\x20\t\r\n\f]*[+~]/,S=/:not\($/,T=/h\d/i,U=/input|select|textarea|button/i,V=/\\(?!\\)/g,W={ID:new RegExp("^#("+F+")"),CLASS:new RegExp("^\\.("+F+")"),NAME:new RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:new RegExp("^("+F.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+E+"*(even|odd|(([+-]|)(\\d*)n|)"+E+"*(?:([+-]|)"+E+"*(\\d+)|))"+E+"*\\)|)","i"),needsContext:new RegExp("^"+E+"*[>+~]|"+K,"i")},X=function(a){var b=r.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},Y=X(function(a){return a.appendChild(r.createComment("")),!a.getElementsByTagName("*").length}),Z=X(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),$=X(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),_=X(function(a){return a.innerHTML="",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),ba=X(function(a){a.id=o+0,a.innerHTML="
    ",s.insertBefore(a,s.firstChild);var b=r.getElementsByName&&r.getElementsByName(o).length===2+r.getElementsByName(o+0).length;return d=!r.getElementById(o),s.removeChild(a),b});try{x.call(s.childNodes,0)[0].nodeType}catch(bb){x=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}bc.matches=function(a,b){return bc(a,null,null,b)},bc.matchesSelector=function(a,b){return bc(b,null,null,[a]).length>0},f=bc.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=f(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=f(b);return c},g=bc.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},h=bc.contains=s.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:s.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc.attr=function(a,b){var c,d=g(a);return d||(b=b.toLowerCase()),(c=e.attrHandle[b])?c(a):d||$?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},e=bc.selectors={cacheLength:50,createPseudo:z,match:W,attrHandle:Z?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:d?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:Y?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:ba&&function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:_&&function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(V,""),a[3]=(a[4]||a[5]||"").replace(V,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||bc.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&bc.error(a[0]),a},PSEUDO:function(a){var b,c;if(W.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(b=a[4])O.test(b)&&(c=bh(b,!0))&&(c=b.indexOf(")",b.length-c)-b.length)&&(b=b.slice(0,c),a[0]=a[0].slice(0,c)),a[2]=b;return a.slice(0,3)}},filter:{ID:d?function(a){return a=a.replace(V,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(V,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(V,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=B[o][a];return b||(b=B(a,new RegExp("(^|"+E+")"+a+"("+E+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return function(d,e){var f=bc.attr(d,a);return f==null?b==="!=":b?(f+="",b==="="?f===c:b==="!="?f!==c:b==="^="?c&&f.indexOf(c)===0:b==="*="?c&&f.indexOf(c)>-1:b==="$="?c&&f.substr(f.length-c.length)===c:b==="~="?(" "+f+" ").indexOf(c)>-1:b==="|="?f===c||f.substr(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d){return a==="nth"?function(a){var b,e,f=a.parentNode;if(c===1&&d===0)return!0;if(f){e=0;for(b=f.firstChild;b;b=b.nextSibling)if(b.nodeType===1){e++;if(a===b)break}}return e-=d,e===c||e%c===0&&e/c>=0}:function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b){var c,d=e.pseudos[a]||e.setFilters[a.toLowerCase()]||bc.error("unsupported pseudo: "+a);return d[o]?d(b):d.length>1?(c=[a,a,"",b],e.setFilters.hasOwnProperty(a.toLowerCase())?z(function(a,c){var e,f=d(a,b),g=f.length;while(g--)e=y.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:z(function(a){var b=[],c=[],d=i(a.replace(L,"$1"));return d[o]?z(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)if(f=g[h])a[h]=!(b[h]=f)}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:z(function(a){return function(b){return bc(a,b).length>0}}),contains:z(function(a){return function(b){return(b.textContent||b.innerText||f(b)).indexOf(a)>-1}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!e.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},header:function(a){return T.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:bd("radio"),checkbox:bd("checkbox"),file:bd("file"),password:bd("password"),image:bd("image"),submit:be("submit"),reset:be("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return U.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement},first:bf(function(a,b,c){return[0]}),last:bf(function(a,b,c){return[b-1]}),eq:bf(function(a,b,c){return[c<0?c+b:c]}),even:bf(function(a,b,c){for(var d=0;d=0;)a.push(d);return a}),gt:bf(function(a,b,c){for(var d=c<0?c+b:c;++d",a.querySelectorAll("[selected]").length||e.push("\\["+E+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),X(function(a){a.innerHTML="

    ",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+E+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=new RegExp(e.join("|")),bp=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a))){var i,j,k=!0,l=o,m=d,n=d.nodeType===9&&a;if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){i=bh(a),(k=d.getAttribute("id"))?l=k.replace(c,"\\$&"):d.setAttribute("id",l),l="[id='"+l+"'] ",j=i.length;while(j--)i[j]=l+i[j].join("");m=R.test(a)&&d.parentNode||d,n=i.join(",")}if(n)try{return w.apply(f,x.call(m.querySelectorAll(n),0)),f}catch(p){}finally{k||d.removeAttribute("id")}}return b(a,d,f,g,h)},h&&(X(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),f.push("!=",J)}catch(c){}}),f=new RegExp(f.join("|")),bc.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!g(b)&&!f.test(c)&&(!e||!e.test(c)))try{var i=h.call(b,c);if(i||a||b.document&&b.document.nodeType!==11)return i}catch(j){}return bc(c,null,null,[b]).length>0})}(),e.pseudos.nth=e.pseudos.eq,e.filters=bq.prototype=e.pseudos,e.setFilters=new bq,bc.attr=p.attr,p.find=bc,p.expr=bc.selectors,p.expr[":"]=p.expr.pseudos,p.unique=bc.uniqueSort,p.text=bc.getText,p.isXMLDoc=bc.isXML,p.contains=bc.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
    ","
    "]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(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){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{ck=f.href}catch(cy){ck=e.createElement("a"),ck.href="",ck=ck.href}cj=ct.exec(ck.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
    ").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:ck,isLocal:cn.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=(c||y)+"",k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase())||!1,l.crossDomain=i&&i.join(":")+(i[3]?"":i[1]==="http:"?80:443)!==cj.join(":")+(cj[3]?"":cj[1]==="http:"?80:443)),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e=this.createTween(a,b),f=cQ.exec(b),g=e.cur(),h=+g||0,i=1,j=20;if(f){c=+f[2],d=f[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&h){h=p.css(e.elem,a,!0)||c||1;do i=i||".5",h=h/i,p.style(e.elem,a,h+d);while(i!==(i=e.cur()/g)&&i!==1&&--j)}e.unit=d,e.start=h,e.end=f[1]?h+(f[1]+1)*c:c}return e}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/lib/jquery.mousewheel-3.0.6.pack.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/lib/jquery.mousewheel-3.0.6.pack.js" new file mode 100644 index 0000000..e39a83a --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/lib/jquery.mousewheel-3.0.6.pack.js" @@ -0,0 +1,13 @@ +/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net) + * Licensed under the MIT License (LICENSE.txt). + * + * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. + * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. + * Thanks to: Seamus Leahy for adding deltaX and deltaY + * + * Version: 3.0.6 + * + * Requires: 1.2.2+ + */ +(function(d){function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0,g=0,a=d.event.fix(b);a.type="mousewheel";b.wheelDelta&&(f=b.wheelDelta/120);b.detail&&(f=-b.detail/3);g=f;b.axis!==void 0&&b.axis===b.HORIZONTAL_AXIS&&(g=0,e=-1*f);b.wheelDeltaY!==void 0&&(g=b.wheelDeltaY/120);b.wheelDeltaX!==void 0&&(e=-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch||d.event.handle).apply(this,c)}var c=["DOMMouseScroll","mousewheel"];if(d.event.fixHooks)for(var h=c.length;h;)d.event.fixHooks[c[--h]]= +d.event.mouseHooks;d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],e,false);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],e,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery); \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/blank.gif" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/blank.gif" new file mode 100644 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/fancybox_loading.gif" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/fancybox_loading.gif" new file mode 100644 index 0000000000000000000000000000000000000000..01586176d793c261db6b6ca4ca7822b2d3b35703 GIT binary patch literal 3866 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 literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-buttons.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-buttons.css" new file mode 100644 index 0000000..9453b46 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-buttons.css" @@ -0,0 +1,96 @@ +#fancybox-buttons { + position: fixed; + left: 0; + width: 100%; + z-index: 8050; +} + +#fancybox-buttons.top { + top: 10px; +} + +#fancybox-buttons.bottom { + bottom: 10px; +} + +#fancybox-buttons ul { + display: block; + width: 166px; + height: 30px; + margin: 0 auto; + padding: 0; + list-style: none; + border: 1px solid #111; + border-radius: 3px; + -webkit-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); + -moz-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); + box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); + background: rgb(50,50,50); + background: -moz-linear-gradient(top, rgb(68,68,68) 0%, rgb(52,52,52) 50%, rgb(41,41,41) 50%, rgb(51,51,51) 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(68,68,68)), color-stop(50%,rgb(52,52,52)), color-stop(50%,rgb(41,41,41)), color-stop(100%,rgb(51,51,51))); + background: -webkit-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + background: -o-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + background: -ms-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + background: linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#444444', endColorstr='#222222',GradientType=0 ); +} + +#fancybox-buttons ul li { + float: left; + margin: 0; + padding: 0; +} + +#fancybox-buttons a { + display: block; + width: 30px; + height: 30px; + text-indent: -9999px; + background-image: url('fancybox_buttons.png'); + background-repeat: no-repeat; + outline: none; + opacity: 0.8; +} + +#fancybox-buttons a:hover { + opacity: 1; +} + +#fancybox-buttons a.btnPrev { + background-position: 5px 0; +} + +#fancybox-buttons a.btnNext { + background-position: -33px 0; + border-right: 1px solid #3e3e3e; +} + +#fancybox-buttons a.btnPlay { + background-position: 0 -30px; +} + +#fancybox-buttons a.btnPlayOn { + background-position: -30px -30px; +} + +#fancybox-buttons a.btnToggle { + background-position: 3px -60px; + border-left: 1px solid #111; + border-right: 1px solid #3e3e3e; + width: 35px +} + +#fancybox-buttons a.btnToggleOn { + background-position: -27px -60px; +} + +#fancybox-buttons a.btnClose { + border-left: 1px solid #111; + width: 35px; + background-position: -56px 0px; +} + +#fancybox-buttons a.btnDisabled { + opacity : 0.4; + cursor: default; +} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-buttons.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-buttons.js" new file mode 100644 index 0000000..50baeca --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-buttons.js" @@ -0,0 +1,121 @@ + /*! + * Buttons helper for fancyBox + * version: 1.0.5 (Mon, 15 Oct 2012) + * @requires fancyBox v2.0 or later + * + * Usage: + * $(".fancybox").fancybox({ + * helpers : { + * buttons: { + * position : 'top' + * } + * } + * }); + * + */ +(function ($) { + //Shortcut for fancyBox object + var F = $.fancybox; + + //Add helper object + F.helpers.buttons = { + defaults : { + skipSingle : false, // disables if gallery contains single image + position : 'top', // 'top' or 'bottom' + tpl : '
    ' + }, + + list : null, + buttons: null, + + beforeLoad: function (opts, obj) { + //Remove self if gallery do not have at least two items + + if (opts.skipSingle && obj.group.length < 2) { + obj.helpers.buttons = false; + obj.closeBtn = true; + + return; + } + + //Increase top margin to give space for buttons + obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30; + }, + + onPlayStart: function () { + if (this.buttons) { + this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn'); + } + }, + + onPlayEnd: function () { + if (this.buttons) { + this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn'); + } + }, + + afterShow: function (opts, obj) { + var buttons = this.buttons; + + if (!buttons) { + this.list = $(opts.tpl).addClass(opts.position).appendTo('body'); + + buttons = { + prev : this.list.find('.btnPrev').click( F.prev ), + next : this.list.find('.btnNext').click( F.next ), + play : this.list.find('.btnPlay').click( F.play ), + toggle : this.list.find('.btnToggle').click( F.toggle ) + } + } + + //Prev + if (obj.index > 0 || obj.loop) { + buttons.prev.removeClass('btnDisabled'); + } else { + buttons.prev.addClass('btnDisabled'); + } + + //Next / Play + if (obj.loop || obj.index < obj.group.length - 1) { + buttons.next.removeClass('btnDisabled'); + buttons.play.removeClass('btnDisabled'); + + } else { + buttons.next.addClass('btnDisabled'); + buttons.play.addClass('btnDisabled'); + } + + this.buttons = buttons; + + this.onUpdate(opts, obj); + }, + + onUpdate: function (opts, obj) { + var toggle; + + if (!this.buttons) { + return; + } + + toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn'); + + //Size toggle button + if (obj.canShrink) { + toggle.addClass('btnToggleOn'); + + } else if (!obj.canExpand) { + toggle.addClass('btnDisabled'); + } + }, + + beforeClose: function () { + if (this.list) { + this.list.remove(); + } + + this.list = null; + this.buttons = null; + } + }; + +}(jQuery)); \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-media.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-media.js" new file mode 100644 index 0000000..4b5e783 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-media.js" @@ -0,0 +1,196 @@ +/*! + * Media helper for fancyBox + * version: 1.0.5 (Tue, 23 Oct 2012) + * @requires fancyBox v2.0 or later + * + * Usage: + * $(".fancybox").fancybox({ + * helpers : { + * media: true + * } + * }); + * + * Set custom URL parameters: + * $(".fancybox").fancybox({ + * helpers : { + * media: { + * youtube : { + * params : { + * autoplay : 0 + * } + * } + * } + * } + * }); + * + * Or: + * $(".fancybox").fancybox({, + * helpers : { + * media: true + * }, + * youtube : { + * autoplay: 0 + * } + * }); + * + * Supports: + * + * Youtube + * http://www.youtube.com/watch?v=opj24KnzrWo + * http://www.youtube.com/embed/opj24KnzrWo + * http://youtu.be/opj24KnzrWo + * Vimeo + * http://vimeo.com/40648169 + * http://vimeo.com/channels/staffpicks/38843628 + * http://vimeo.com/groups/surrealism/videos/36516384 + * http://player.vimeo.com/video/45074303 + * Metacafe + * http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/ + * http://www.metacafe.com/watch/7635964/ + * Dailymotion + * http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people + * Twitvid + * http://twitvid.com/QY7MD + * Twitpic + * http://twitpic.com/7p93st + * Instagram + * http://instagr.am/p/IejkuUGxQn/ + * http://instagram.com/p/IejkuUGxQn/ + * Google maps + * http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17 + * http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16 + * http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56 + */ +(function ($) { + "use strict"; + + //Shortcut for fancyBox object + var F = $.fancybox, + format = function( url, rez, params ) { + params = params || ''; + + if ( $.type( params ) === "object" ) { + params = $.param(params, true); + } + + $.each(rez, function(key, value) { + url = url.replace( '$' + key, value || '' ); + }); + + if (params.length) { + url += ( url.indexOf('?') > 0 ? '&' : '?' ) + params; + } + + return url; + }; + + //Add helper object + F.helpers.media = { + defaults : { + youtube : { + matcher : /(youtube\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i, + params : { + autoplay : 1, + autohide : 1, + fs : 1, + rel : 0, + hd : 1, + wmode : 'opaque', + enablejsapi : 1 + }, + type : 'iframe', + url : '//www.youtube.com/embed/$3' + }, + vimeo : { + matcher : /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/, + params : { + autoplay : 1, + hd : 1, + show_title : 1, + show_byline : 1, + show_portrait : 0, + fullscreen : 1 + }, + type : 'iframe', + url : '//player.vimeo.com/video/$1' + }, + metacafe : { + matcher : /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/, + params : { + autoPlay : 'yes' + }, + type : 'swf', + url : function( rez, params, obj ) { + obj.swf.flashVars = 'playerVars=' + $.param( params, true ); + + return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf'; + } + }, + dailymotion : { + matcher : /dailymotion.com\/video\/(.*)\/?(.*)/, + params : { + additionalInfos : 0, + autoStart : 1 + }, + type : 'swf', + url : '//www.dailymotion.com/swf/video/$1' + }, + twitvid : { + matcher : /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i, + params : { + autoplay : 0 + }, + type : 'iframe', + url : '//www.twitvid.com/embed.php?guid=$1' + }, + twitpic : { + matcher : /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i, + type : 'image', + url : '//twitpic.com/show/full/$1/' + }, + instagram : { + matcher : /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, + type : 'image', + url : '//$1/p/$2/media/' + }, + google_maps : { + matcher : /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i, + type : 'iframe', + url : function( rez ) { + return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed'); + } + } + }, + + beforeLoad : function(opts, obj) { + var url = obj.href || '', + type = false, + what, + item, + rez, + params; + + for (what in opts) { + item = opts[ what ]; + rez = url.match( item.matcher ); + + if (rez) { + type = item.type; + params = $.extend(true, {}, item.params, obj[ what ] || ($.isPlainObject(opts[ what ]) ? opts[ what ].params : null)); + + url = $.type( item.url ) === "function" ? item.url.call( this, rez, params, obj ) : format( item.url, rez, params ); + + break; + } + } + + if (type) { + obj.href = url; + obj.type = type; + + obj.autoHeight = false; + } + } + }; + +}(jQuery)); \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-thumbs.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-thumbs.css" new file mode 100644 index 0000000..e40ae82 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-thumbs.css" @@ -0,0 +1,54 @@ +#fancybox-thumbs { + position: fixed; + left: 0; + width: 100%; + overflow: hidden; + z-index: 8050; +} + +#fancybox-thumbs.bottom { + bottom: 2px; +} + +#fancybox-thumbs.top { + top: 2px; +} + +#fancybox-thumbs ul { + position: relative; + list-style: none; + margin: 0; + padding: 0; +} + +#fancybox-thumbs ul li { + float: left; + padding: 1px; + opacity: 0.5; +} + +#fancybox-thumbs ul li.active { + opacity: 0.75; + padding: 0; + border: 1px solid #fff; +} + +#fancybox-thumbs ul li:hover { + opacity: 1; +} + +#fancybox-thumbs ul li a { + display: block; + position: relative; + overflow: hidden; + border: 1px solid #222; + background: #111; + outline: none; +} + +#fancybox-thumbs ul li img { + display: block; + position: relative; + border: 0; + padding: 0; +} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-thumbs.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-thumbs.js" new file mode 100644 index 0000000..5db3d4a --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/helpers/jquery.fancybox-thumbs.js" @@ -0,0 +1,162 @@ + /*! + * Thumbnail helper for fancyBox + * version: 1.0.7 (Mon, 01 Oct 2012) + * @requires fancyBox v2.0 or later + * + * Usage: + * $(".fancybox").fancybox({ + * helpers : { + * thumbs: { + * width : 50, + * height : 50 + * } + * } + * }); + * + */ +(function ($) { + //Shortcut for fancyBox object + var F = $.fancybox; + + //Add helper object + F.helpers.thumbs = { + defaults : { + width : 50, // thumbnail width + height : 50, // thumbnail height + position : 'bottom', // 'top' or 'bottom' + source : function ( item ) { // function to obtain the URL of the thumbnail image + var href; + + if (item.element) { + href = $(item.element).find('img').attr('src'); + } + + if (!href && item.type === 'image' && item.href) { + href = item.href; + } + + return href; + } + }, + + wrap : null, + list : null, + width : 0, + + init: function (opts, obj) { + var that = this, + list, + thumbWidth = opts.width, + thumbHeight = opts.height, + thumbSource = opts.source; + + //Build list structure + list = ''; + + for (var n = 0; n < obj.group.length; n++) { + list += '
  • '; + } + + this.wrap = $('
    ').addClass(opts.position).appendTo('body'); + this.list = $('
      ' + list + '
    ').appendTo(this.wrap); + + //Load each thumbnail + $.each(obj.group, function (i) { + var href = thumbSource( obj.group[ i ] ); + + if (!href) { + return; + } + + $("").load(function () { + var width = this.width, + height = this.height, + widthRatio, heightRatio, parent; + + if (!that.list || !width || !height) { + return; + } + + //Calculate thumbnail width/height and center it + widthRatio = width / thumbWidth; + heightRatio = height / thumbHeight; + + parent = that.list.children().eq(i).find('a'); + + if (widthRatio >= 1 && heightRatio >= 1) { + if (widthRatio > heightRatio) { + width = Math.floor(width / heightRatio); + height = thumbHeight; + + } else { + width = thumbWidth; + height = Math.floor(height / widthRatio); + } + } + + $(this).css({ + width : width, + height : height, + top : Math.floor(thumbHeight / 2 - height / 2), + left : Math.floor(thumbWidth / 2 - width / 2) + }); + + parent.width(thumbWidth).height(thumbHeight); + + $(this).hide().appendTo(parent).fadeIn(300); + + }).attr('src', href); + }); + + //Set initial width + this.width = this.list.children().eq(0).outerWidth(true); + + this.list.width(this.width * (obj.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5))); + }, + + beforeLoad: function (opts, obj) { + //Remove self if gallery do not have at least two items + if (obj.group.length < 2) { + obj.helpers.thumbs = false; + + return; + } + + //Increase bottom margin to give space for thumbs + obj.margin[ opts.position === 'top' ? 0 : 2 ] += ((opts.height) + 15); + }, + + afterShow: function (opts, obj) { + //Check if exists and create or update list + if (this.list) { + this.onUpdate(opts, obj); + + } else { + this.init(opts, obj); + } + + //Set active element + this.list.children().removeClass('active').eq(obj.index).addClass('active'); + }, + + //Center list + onUpdate: function (opts, obj) { + if (this.list) { + this.list.stop(true).animate({ + 'left': Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5)) + }, 150); + } + }, + + beforeClose: function () { + if (this.wrap) { + this.wrap.remove(); + } + + this.wrap = null; + this.list = null; + this.width = 0; + } + } + +}(jQuery)); \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/jquery.fancybox.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/jquery.fancybox.css" new file mode 100644 index 0000000..d6ff8a1 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/jquery.fancybox.css" @@ -0,0 +1,249 @@ +/*! fancyBox v2.1.3 fancyapps.com | fancyapps.com/fancybox/#license */ +.fancybox-wrap, +.fancybox-skin, +.fancybox-outer, +.fancybox-inner, +.fancybox-image, +.fancybox-wrap iframe, +.fancybox-wrap object, +.fancybox-nav, +.fancybox-nav span, +.fancybox-tmp +{ + padding: 0; + margin: 0; + border: 0; + outline: none; + vertical-align: top; +} + +.fancybox-wrap { + position: absolute; + top: 0; + left: 0; + z-index: 8020; +} + +.fancybox-skin { + position: relative; + background: #f9f9f9; + color: #444; + text-shadow: none; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.fancybox-opened { + z-index: 8030; +} + +.fancybox-opened .fancybox-skin { + -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); +} + +.fancybox-outer, .fancybox-inner { + position: relative; +} + +.fancybox-inner { + overflow: hidden; +} + +.fancybox-type-iframe .fancybox-inner { + -webkit-overflow-scrolling: touch; +} + +.fancybox-error { + color: #444; + font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + margin: 0; + padding: 15px; + white-space: nowrap; +} + +.fancybox-image, .fancybox-iframe { + display: block; + width: 100%; + height: 100%; +} + +.fancybox-image { + max-width: 100%; + max-height: 100%; +} + +#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { + background-image: url('fancybox_sprite.png'); +} + +#fancybox-loading { + position: fixed; + top: 50%; + left: 50%; + margin-top: -22px; + margin-left: -22px; + background-position: 0 -108px; + opacity: 0.8; + cursor: pointer; + z-index: 8060; +} + +#fancybox-loading div { + width: 44px; + height: 44px; + background: url('fancybox_loading.gif') center center no-repeat; +} + +.fancybox-close { + position: absolute; + top: -18px; + right: -18px; + width: 36px; + height: 36px; + cursor: pointer; + z-index: 8040; +} + +.fancybox-nav { + position: absolute; + top: 0; + width: 40%; + height: 100%; + cursor: pointer; + text-decoration: none; + background: transparent url('blank.gif'); /* helps IE */ + -webkit-tap-highlight-color: rgba(0,0,0,0); + z-index: 8040; +} + +.fancybox-prev { + left: 0; +} + +.fancybox-next { + right: 0; +} + +.fancybox-nav span { + position: absolute; + top: 50%; + width: 36px; + height: 34px; + margin-top: -18px; + cursor: pointer; + z-index: 8040; + visibility: hidden; +} + +.fancybox-prev span { + left: 10px; + background-position: 0 -36px; +} + +.fancybox-next span { + right: 10px; + background-position: 0 -72px; +} + +.fancybox-nav:hover span { + visibility: visible; +} + +.fancybox-tmp { + position: absolute; + top: -99999px; + left: -99999px; + visibility: hidden; + max-width: 99999px; + max-height: 99999px; + overflow: visible !important; +} + +/* Overlay helper */ + +.fancybox-lock { + overflow: hidden; +} + +.fancybox-overlay { + position: absolute; + top: 0; + left: 0; + overflow: hidden; + display: none; + z-index: 8010; + background: url('fancybox_overlay.png'); +} + +.fancybox-overlay-fixed { + position: fixed; + bottom: 0; + right: 0; +} + +.fancybox-lock .fancybox-overlay { + overflow: auto; + overflow-y: scroll; +} + +/* Title helper */ + +.fancybox-title { + visibility: hidden; + font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + position: relative; + text-shadow: none; + z-index: 8050; +} + +.fancybox-opened .fancybox-title { + visibility: visible; +} + +.fancybox-title-float-wrap { + position: absolute; + bottom: 0; + right: 50%; + margin-bottom: -35px; + z-index: 8050; + text-align: center; +} + +.fancybox-title-float-wrap .child { + display: inline-block; + margin-right: -100%; + padding: 2px 20px; + background: transparent; /* Fallback for web browsers that doesn't support RGBa */ + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; + text-shadow: 0 1px 2px #222; + color: #FFF; + font-weight: bold; + line-height: 24px; + white-space: nowrap; +} + +.fancybox-title-outside-wrap { + position: relative; + margin-top: 10px; + color: #fff; +} + +.fancybox-title-inside-wrap { + padding-top: 10px; +} + +.fancybox-title-over-wrap { + position: absolute; + bottom: 0; + left: 0; + color: #fff; + padding: 10px; + background: #000; + background: rgba(0, 0, 0, .8); +} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/jquery.fancybox.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/jquery.fancybox.js" new file mode 100644 index 0000000..ee88e35 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/jquery.fancybox.js" @@ -0,0 +1,1985 @@ +/*! + * fancyBox - jQuery Plugin + * version: 2.1.3 (Tue, 23 Oct 2012) + * @requires jQuery v1.6 or later + * + * Examples at http://fancyapps.com/fancybox/ + * License: www.fancyapps.com/fancybox/#license + * + * Copyright 2012 Janis Skarnelis - janis@fancyapps.com + * + */ + +(function (window, document, $, undefined) { + "use strict"; + + var W = $(window), + D = $(document), + F = $.fancybox = function () { + F.open.apply( this, arguments ); + }, + didUpdate = null, + isTouch = document.createTouch !== undefined, + + isQuery = function(obj) { + return obj && obj.hasOwnProperty && obj instanceof $; + }, + isString = function(str) { + return str && $.type(str) === "string"; + }, + isPercentage = function(str) { + return isString(str) && str.indexOf('%') > 0; + }, + isScrollable = function(el) { + return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight))); + }, + getScalar = function(orig, dim) { + var value = parseInt(orig, 10) || 0; + + if (dim && isPercentage(orig)) { + value = F.getViewport()[ dim ] / 100 * value; + } + + return Math.ceil(value); + }, + getValue = function(value, dim) { + return getScalar(value, dim) + 'px'; + }; + + $.extend(F, { + // The current version of fancyBox + version: '2.1.3', + + defaults: { + padding : 15, + margin : 20, + + width : 800, + height : 600, + minWidth : 100, + minHeight : 100, + maxWidth : 9999, + maxHeight : 9999, + + autoSize : true, + autoHeight : false, + autoWidth : false, + + autoResize : true, + autoCenter : !isTouch, + fitToView : true, + aspectRatio : false, + topRatio : 0.5, + leftRatio : 0.5, + + scrolling : 'auto', // 'auto', 'yes' or 'no' + wrapCSS : '', + + arrows : true, + closeBtn : true, + closeClick : false, + nextClick : false, + mouseWheel : true, + autoPlay : false, + playSpeed : 3000, + preload : 3, + modal : false, + loop : true, + + ajax : { + dataType : 'html', + headers : { 'X-fancyBox': true } + }, + iframe : { + scrolling : 'auto', + preload : true + }, + swf : { + wmode: 'transparent', + allowfullscreen : 'true', + allowscriptaccess : 'always' + }, + + keys : { + next : { + 13 : 'left', // enter + 34 : 'up', // page down + 39 : 'left', // right arrow + 40 : 'up' // down arrow + }, + prev : { + 8 : 'right', // backspace + 33 : 'down', // page up + 37 : 'right', // left arrow + 38 : 'down' // up arrow + }, + close : [27], // escape key + play : [32], // space - start/stop slideshow + toggle : [70] // letter "f" - toggle fullscreen + }, + + direction : { + next : 'left', + prev : 'right' + }, + + scrollOutside : true, + + // Override some properties + index : 0, + type : null, + href : null, + content : null, + title : null, + + // HTML templates + tpl: { + wrap : '
    ', + image : '', + iframe : '', + error : '

    The requested content cannot be loaded.
    Please try again later.

    ', + closeBtn : '', + next : '', + prev : '' + }, + + // Properties for each animation type + // Opening fancyBox + openEffect : 'fade', // 'elastic', 'fade' or 'none' + openSpeed : 250, + openEasing : 'swing', + openOpacity : true, + openMethod : 'zoomIn', + + // Closing fancyBox + closeEffect : 'fade', // 'elastic', 'fade' or 'none' + closeSpeed : 250, + closeEasing : 'swing', + closeOpacity : true, + closeMethod : 'zoomOut', + + // Changing next gallery item + nextEffect : 'elastic', // 'elastic', 'fade' or 'none' + nextSpeed : 250, + nextEasing : 'swing', + nextMethod : 'changeIn', + + // Changing previous gallery item + prevEffect : 'elastic', // 'elastic', 'fade' or 'none' + prevSpeed : 250, + prevEasing : 'swing', + prevMethod : 'changeOut', + + // Enable default helpers + helpers : { + overlay : true, + title : true + }, + + // Callbacks + onCancel : $.noop, // If canceling + beforeLoad : $.noop, // Before loading + afterLoad : $.noop, // After loading + beforeShow : $.noop, // Before changing in current item + afterShow : $.noop, // After opening + beforeChange : $.noop, // Before changing gallery item + beforeClose : $.noop, // Before closing + afterClose : $.noop // After closing + }, + + //Current state + group : {}, // Selected group + opts : {}, // Group options + previous : null, // Previous element + coming : null, // Element being loaded + current : null, // Currently loaded element + isActive : false, // Is activated + isOpen : false, // Is currently open + isOpened : false, // Have been fully opened at least once + + wrap : null, + skin : null, + outer : null, + inner : null, + + player : { + timer : null, + isActive : false + }, + + // Loaders + ajaxLoad : null, + imgPreload : null, + + // Some collections + transitions : {}, + helpers : {}, + + /* + * Static methods + */ + + open: function (group, opts) { + if (!group) { + return; + } + + if (!$.isPlainObject(opts)) { + opts = {}; + } + + // Close if already active + if (false === F.close(true)) { + return; + } + + // Normalize group + if (!$.isArray(group)) { + group = isQuery(group) ? $(group).get() : [group]; + } + + // Recheck if the type of each element is `object` and set content type (image, ajax, etc) + $.each(group, function(i, element) { + var obj = {}, + href, + title, + content, + type, + rez, + hrefParts, + selector; + + if ($.type(element) === "object") { + // Check if is DOM element + if (element.nodeType) { + element = $(element); + } + + if (isQuery(element)) { + obj = { + href : element.data('fancybox-href') || element.attr('href'), + title : element.data('fancybox-title') || element.attr('title'), + isDom : true, + element : element + }; + + if ($.metadata) { + $.extend(true, obj, element.metadata()); + } + + } else { + obj = element; + } + } + + href = opts.href || obj.href || (isString(element) ? element : null); + title = opts.title !== undefined ? opts.title : obj.title || ''; + + content = opts.content || obj.content; + type = content ? 'html' : (opts.type || obj.type); + + if (!type && obj.isDom) { + type = element.data('fancybox-type'); + + if (!type) { + rez = element.prop('class').match(/fancybox\.(\w+)/); + type = rez ? rez[1] : null; + } + } + + if (isString(href)) { + // Try to guess the content type + if (!type) { + if (F.isImage(href)) { + type = 'image'; + + } else if (F.isSWF(href)) { + type = 'swf'; + + } else if (href.charAt(0) === '#') { + type = 'inline'; + + } else if (isString(element)) { + type = 'html'; + content = element; + } + } + + // Split url into two pieces with source url and content selector, e.g, + // "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id" + if (type === 'ajax') { + hrefParts = href.split(/\s+/, 2); + href = hrefParts.shift(); + selector = hrefParts.shift(); + } + } + + if (!content) { + if (type === 'inline') { + if (href) { + content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7 + + } else if (obj.isDom) { + content = element; + } + + } else if (type === 'html') { + content = href; + + } else if (!type && !href && obj.isDom) { + type = 'inline'; + content = element; + } + } + + $.extend(obj, { + href : href, + type : type, + content : content, + title : title, + selector : selector + }); + + group[ i ] = obj; + }); + + // Extend the defaults + F.opts = $.extend(true, {}, F.defaults, opts); + + // All options are merged recursive except keys + if (opts.keys !== undefined) { + F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false; + } + + F.group = group; + + return F._start(F.opts.index); + }, + + // Cancel image loading or abort ajax request + cancel: function () { + var coming = F.coming; + + if (!coming || false === F.trigger('onCancel')) { + return; + } + + F.hideLoading(); + + if (F.ajaxLoad) { + F.ajaxLoad.abort(); + } + + F.ajaxLoad = null; + + if (F.imgPreload) { + F.imgPreload.onload = F.imgPreload.onerror = null; + } + + if (coming.wrap) { + coming.wrap.stop(true, true).trigger('onReset').remove(); + } + + F.coming = null; + + // If the first item has been canceled, then clear everything + if (!F.current) { + F._afterZoomOut( coming ); + } + }, + + // Start closing animation if is open; remove immediately if opening/closing + close: function (event) { + F.cancel(); + + if (false === F.trigger('beforeClose')) { + return; + } + + F.unbindEvents(); + + if (!F.isActive) { + return; + } + + if (!F.isOpen || event === true) { + $('.fancybox-wrap').stop(true).trigger('onReset').remove(); + + F._afterZoomOut(); + + } else { + F.isOpen = F.isOpened = false; + F.isClosing = true; + + $('.fancybox-item, .fancybox-nav').remove(); + + F.wrap.stop(true, true).removeClass('fancybox-opened'); + + F.transitions[ F.current.closeMethod ](); + } + }, + + // Manage slideshow: + // $.fancybox.play(); - toggle slideshow + // $.fancybox.play( true ); - start + // $.fancybox.play( false ); - stop + play: function ( action ) { + var clear = function () { + clearTimeout(F.player.timer); + }, + set = function () { + clear(); + + if (F.current && F.player.isActive) { + F.player.timer = setTimeout(F.next, F.current.playSpeed); + } + }, + stop = function () { + clear(); + + $('body').unbind('.player'); + + F.player.isActive = false; + + F.trigger('onPlayEnd'); + }, + start = function () { + if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) { + F.player.isActive = true; + + $('body').bind({ + 'afterShow.player onUpdate.player' : set, + 'onCancel.player beforeClose.player' : stop, + 'beforeLoad.player' : clear + }); + + set(); + + F.trigger('onPlayStart'); + } + }; + + if (action === true || (!F.player.isActive && action !== false)) { + start(); + } else { + stop(); + } + }, + + // Navigate to next gallery item + next: function ( direction ) { + var current = F.current; + + if (current) { + if (!isString(direction)) { + direction = current.direction.next; + } + + F.jumpto(current.index + 1, direction, 'next'); + } + }, + + // Navigate to previous gallery item + prev: function ( direction ) { + var current = F.current; + + if (current) { + if (!isString(direction)) { + direction = current.direction.prev; + } + + F.jumpto(current.index - 1, direction, 'prev'); + } + }, + + // Navigate to gallery item by index + jumpto: function ( index, direction, router ) { + var current = F.current; + + if (!current) { + return; + } + + index = getScalar(index); + + F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ]; + F.router = router || 'jumpto'; + + if (current.loop) { + if (index < 0) { + index = current.group.length + (index % current.group.length); + } + + index = index % current.group.length; + } + + if (current.group[ index ] !== undefined) { + F.cancel(); + + F._start(index); + } + }, + + // Center inside viewport and toggle position type to fixed or absolute if needed + reposition: function (e, onlyAbsolute) { + var current = F.current, + wrap = current ? current.wrap : null, + pos; + + if (wrap) { + pos = F._getPosition(onlyAbsolute); + + if (e && e.type === 'scroll') { + delete pos.position; + + wrap.stop(true, true).animate(pos, 200); + + } else { + wrap.css(pos); + + current.pos = $.extend({}, current.dim, pos); + } + } + }, + + update: function (e) { + var type = (e && e.type), + anyway = !type || type === 'orientationchange'; + + if (anyway) { + clearTimeout(didUpdate); + + didUpdate = null; + } + + if (!F.isOpen || didUpdate) { + return; + } + + didUpdate = setTimeout(function() { + var current = F.current; + + if (!current || F.isClosing) { + return; + } + + F.wrap.removeClass('fancybox-tmp'); + + if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) { + F._setDimension(); + } + + if (!(type === 'scroll' && current.canShrink)) { + F.reposition(e); + } + + F.trigger('onUpdate'); + + didUpdate = null; + + }, (anyway && !isTouch ? 0 : 300)); + }, + + // Shrink content to fit inside viewport or restore if resized + toggle: function ( action ) { + if (F.isOpen) { + F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView; + + // Help browser to restore document dimensions + if (isTouch) { + F.wrap.removeAttr('style').addClass('fancybox-tmp'); + + F.trigger('onUpdate'); + } + + F.update(); + } + }, + + hideLoading: function () { + D.unbind('.loading'); + + $('#fancybox-loading').remove(); + }, + + showLoading: function () { + var el, viewport; + + F.hideLoading(); + + el = $('
    ').click(F.cancel).appendTo('body'); + + // If user will press the escape-button, the request will be canceled + D.bind('keydown.loading', function(e) { + if ((e.which || e.keyCode) === 27) { + e.preventDefault(); + + F.cancel(); + } + }); + + if (!F.defaults.fixed) { + viewport = F.getViewport(); + + el.css({ + position : 'absolute', + top : (viewport.h * 0.5) + viewport.y, + left : (viewport.w * 0.5) + viewport.x + }); + } + }, + + getViewport: function () { + var locked = (F.current && F.current.locked) || false, + rez = { + x: W.scrollLeft(), + y: W.scrollTop() + }; + + if (locked) { + rez.w = locked[0].clientWidth; + rez.h = locked[0].clientHeight; + + } else { + // See http://bugs.jquery.com/ticket/6724 + rez.w = isTouch && window.innerWidth ? window.innerWidth : W.width(); + rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height(); + } + + return rez; + }, + + // Unbind the keyboard / clicking actions + unbindEvents: function () { + if (F.wrap && isQuery(F.wrap)) { + F.wrap.unbind('.fb'); + } + + D.unbind('.fb'); + W.unbind('.fb'); + }, + + bindEvents: function () { + var current = F.current, + keys; + + if (!current) { + return; + } + + // Changing document height on iOS devices triggers a 'resize' event, + // that can change document height... repeating infinitely + W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update); + + keys = current.keys; + + if (keys) { + D.bind('keydown.fb', function (e) { + var code = e.which || e.keyCode, + target = e.target || e.srcElement; + + // Skip esc key if loading, because showLoading will cancel preloading + if (code === 27 && F.coming) { + return false; + } + + // Ignore key combinations and key events within form elements + if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) { + $.each(keys, function(i, val) { + if (current.group.length > 1 && val[ code ] !== undefined) { + F[ i ]( val[ code ] ); + + e.preventDefault(); + return false; + } + + if ($.inArray(code, val) > -1) { + F[ i ] (); + + e.preventDefault(); + return false; + } + }); + } + }); + } + + if ($.fn.mousewheel && current.mouseWheel) { + F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) { + var target = e.target || null, + parent = $(target), + canScroll = false; + + while (parent.length) { + if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) { + break; + } + + canScroll = isScrollable( parent[0] ); + parent = $(parent).parent(); + } + + if (delta !== 0 && !canScroll) { + if (F.group.length > 1 && !current.canShrink) { + if (deltaY > 0 || deltaX > 0) { + F.prev( deltaY > 0 ? 'down' : 'left' ); + + } else if (deltaY < 0 || deltaX < 0) { + F.next( deltaY < 0 ? 'up' : 'right' ); + } + + e.preventDefault(); + } + } + }); + } + }, + + trigger: function (event, o) { + var ret, obj = o || F.coming || F.current; + + if (!obj) { + return; + } + + if ($.isFunction( obj[event] )) { + ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1)); + } + + if (ret === false) { + return false; + } + + if (obj.helpers) { + $.each(obj.helpers, function (helper, opts) { + if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) { + opts = $.extend(true, {}, F.helpers[helper].defaults, opts); + + F.helpers[helper][event](opts, obj); + } + }); + } + + $.event.trigger(event + '.fb'); + }, + + isImage: function (str) { + return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp)((\?|#).*)?$)/i); + }, + + isSWF: function (str) { + return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i); + }, + + _start: function (index) { + var coming = {}, + obj, + href, + type, + margin, + padding; + + index = getScalar( index ); + obj = F.group[ index ] || null; + + if (!obj) { + return false; + } + + coming = $.extend(true, {}, F.opts, obj); + + // Convert margin and padding properties to array - top, right, bottom, left + margin = coming.margin; + padding = coming.padding; + + if ($.type(margin) === 'number') { + coming.margin = [margin, margin, margin, margin]; + } + + if ($.type(padding) === 'number') { + coming.padding = [padding, padding, padding, padding]; + } + + // 'modal' propery is just a shortcut + if (coming.modal) { + $.extend(true, coming, { + closeBtn : false, + closeClick : false, + nextClick : false, + arrows : false, + mouseWheel : false, + keys : null, + helpers: { + overlay : { + closeClick : false + } + } + }); + } + + // 'autoSize' property is a shortcut, too + if (coming.autoSize) { + coming.autoWidth = coming.autoHeight = true; + } + + if (coming.width === 'auto') { + coming.autoWidth = true; + } + + if (coming.height === 'auto') { + coming.autoHeight = true; + } + + /* + * Add reference to the group, so it`s possible to access from callbacks, example: + * afterLoad : function() { + * this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : ''); + * } + */ + + coming.group = F.group; + coming.index = index; + + // Give a chance for callback or helpers to update coming item (type, title, etc) + F.coming = coming; + + if (false === F.trigger('beforeLoad')) { + F.coming = null; + + return; + } + + type = coming.type; + href = coming.href; + + if (!type) { + F.coming = null; + + //If we can not determine content type then drop silently or display next/prev item if looping through gallery + if (F.current && F.router && F.router !== 'jumpto') { + F.current.index = index; + + return F[ F.router ]( F.direction ); + } + + return false; + } + + F.isActive = true; + + if (type === 'image' || type === 'swf') { + coming.autoHeight = coming.autoWidth = false; + coming.scrolling = 'visible'; + } + + if (type === 'image') { + coming.aspectRatio = true; + } + + if (type === 'iframe' && isTouch) { + coming.scrolling = 'scroll'; + } + + // Build the neccessary markup + coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' ); + + $.extend(coming, { + skin : $('.fancybox-skin', coming.wrap), + outer : $('.fancybox-outer', coming.wrap), + inner : $('.fancybox-inner', coming.wrap) + }); + + $.each(["Top", "Right", "Bottom", "Left"], function(i, v) { + coming.skin.css('padding' + v, getValue(coming.padding[ i ])); + }); + + F.trigger('onReady'); + + // Check before try to load; 'inline' and 'html' types need content, others - href + if (type === 'inline' || type === 'html') { + if (!coming.content || !coming.content.length) { + return F._error( 'content' ); + } + + } else if (!href) { + return F._error( 'href' ); + } + + if (type === 'image') { + F._loadImage(); + + } else if (type === 'ajax') { + F._loadAjax(); + + } else if (type === 'iframe') { + F._loadIframe(); + + } else { + F._afterLoad(); + } + }, + + _error: function ( type ) { + $.extend(F.coming, { + type : 'html', + autoWidth : true, + autoHeight : true, + minWidth : 0, + minHeight : 0, + scrolling : 'no', + hasError : type, + content : F.coming.tpl.error + }); + + F._afterLoad(); + }, + + _loadImage: function () { + // Reset preload image so it is later possible to check "complete" property + var img = F.imgPreload = new Image(); + + img.onload = function () { + this.onload = this.onerror = null; + + F.coming.width = this.width; + F.coming.height = this.height; + + F._afterLoad(); + }; + + img.onerror = function () { + this.onload = this.onerror = null; + + F._error( 'image' ); + }; + + img.src = F.coming.href; + + if (img.complete !== true) { + F.showLoading(); + } + }, + + _loadAjax: function () { + var coming = F.coming; + + F.showLoading(); + + F.ajaxLoad = $.ajax($.extend({}, coming.ajax, { + url: coming.href, + error: function (jqXHR, textStatus) { + if (F.coming && textStatus !== 'abort') { + F._error( 'ajax', jqXHR ); + + } else { + F.hideLoading(); + } + }, + success: function (data, textStatus) { + if (textStatus === 'success') { + coming.content = data; + + F._afterLoad(); + } + } + })); + }, + + _loadIframe: function() { + var coming = F.coming, + iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime())) + .attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling) + .attr('src', coming.href); + + // This helps IE + $(coming.wrap).bind('onReset', function () { + try { + $(this).find('iframe').hide().attr('src', '//about:blank').end().empty(); + } catch (e) {} + }); + + if (coming.iframe.preload) { + F.showLoading(); + + iframe.one('load', function() { + $(this).data('ready', 1); + + // iOS will lose scrolling if we resize + if (!isTouch) { + $(this).bind('load.fb', F.update); + } + + // Without this trick: + // - iframe won't scroll on iOS devices + // - IE7 sometimes displays empty iframe + $(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show(); + + F._afterLoad(); + }); + } + + coming.content = iframe.appendTo( coming.inner ); + + if (!coming.iframe.preload) { + F._afterLoad(); + } + }, + + _preloadImages: function() { + var group = F.group, + current = F.current, + len = group.length, + cnt = current.preload ? Math.min(current.preload, len - 1) : 0, + item, + i; + + for (i = 1; i <= cnt; i += 1) { + item = group[ (current.index + i ) % len ]; + + if (item.type === 'image' && item.href) { + new Image().src = item.href; + } + } + }, + + _afterLoad: function () { + var coming = F.coming, + previous = F.current, + placeholder = 'fancybox-placeholder', + current, + content, + type, + scrolling, + href, + embed; + + F.hideLoading(); + + if (!coming || F.isActive === false) { + return; + } + + if (false === F.trigger('afterLoad', coming, previous)) { + coming.wrap.stop(true).trigger('onReset').remove(); + + F.coming = null; + + return; + } + + if (previous) { + F.trigger('beforeChange', previous); + + previous.wrap.stop(true).removeClass('fancybox-opened') + .find('.fancybox-item, .fancybox-nav') + .remove(); + } + + F.unbindEvents(); + + current = coming; + content = coming.content; + type = coming.type; + scrolling = coming.scrolling; + + $.extend(F, { + wrap : current.wrap, + skin : current.skin, + outer : current.outer, + inner : current.inner, + current : current, + previous : previous + }); + + href = current.href; + + switch (type) { + case 'inline': + case 'ajax': + case 'html': + if (current.selector) { + content = $('
    ').html(content).find(current.selector); + + } else if (isQuery(content)) { + if (!content.data(placeholder)) { + content.data(placeholder, $('
    ').insertAfter( content ).hide() ); + } + + content = content.show().detach(); + + current.wrap.bind('onReset', function () { + if ($(this).find(content).length) { + content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false); + } + }); + } + break; + + case 'image': + content = current.tpl.image.replace('{href}', href); + break; + + case 'swf': + content = ''; + embed = ''; + + $.each(current.swf, function(name, val) { + content += ''; + embed += ' ' + name + '="' + val + '"'; + }); + + content += ''; + break; + } + + if (!(isQuery(content) && content.parent().is(current.inner))) { + current.inner.append( content ); + } + + // Give a chance for helpers or callbacks to update elements + F.trigger('beforeShow'); + + // Set scrolling before calculating dimensions + current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling)); + + // Set initial dimensions and start position + F._setDimension(); + + F.reposition(); + + F.isOpen = false; + F.coming = null; + + F.bindEvents(); + + if (!F.isOpened) { + $('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove(); + + } else if (previous.prevMethod) { + F.transitions[ previous.prevMethod ](); + } + + F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ](); + + F._preloadImages(); + }, + + _setDimension: function () { + var viewport = F.getViewport(), + steps = 0, + canShrink = false, + canExpand = false, + wrap = F.wrap, + skin = F.skin, + inner = F.inner, + current = F.current, + width = current.width, + height = current.height, + minWidth = current.minWidth, + minHeight = current.minHeight, + maxWidth = current.maxWidth, + maxHeight = current.maxHeight, + scrolling = current.scrolling, + scrollOut = current.scrollOutside ? current.scrollbarWidth : 0, + margin = current.margin, + wMargin = getScalar(margin[1] + margin[3]), + hMargin = getScalar(margin[0] + margin[2]), + wPadding, + hPadding, + wSpace, + hSpace, + origWidth, + origHeight, + origMaxWidth, + origMaxHeight, + ratio, + width_, + height_, + maxWidth_, + maxHeight_, + iframe, + body; + + // Reset dimensions so we could re-check actual size + wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp'); + + wPadding = getScalar(skin.outerWidth(true) - skin.width()); + hPadding = getScalar(skin.outerHeight(true) - skin.height()); + + // Any space between content and viewport (margin, padding, border, title) + wSpace = wMargin + wPadding; + hSpace = hMargin + hPadding; + + origWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width; + origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height; + + if (current.type === 'iframe') { + iframe = current.content; + + if (current.autoHeight && iframe.data('ready') === 1) { + try { + if (iframe[0].contentWindow.document.location) { + inner.width( origWidth ).height(9999); + + body = iframe.contents().find('body'); + + if (scrollOut) { + body.css('overflow-x', 'hidden'); + } + + origHeight = body.height(); + } + + } catch (e) {} + } + + } else if (current.autoWidth || current.autoHeight) { + inner.addClass( 'fancybox-tmp' ); + + // Set width or height in case we need to calculate only one dimension + if (!current.autoWidth) { + inner.width( origWidth ); + } + + if (!current.autoHeight) { + inner.height( origHeight ); + } + + if (current.autoWidth) { + origWidth = inner.width(); + } + + if (current.autoHeight) { + origHeight = inner.height(); + } + + inner.removeClass( 'fancybox-tmp' ); + } + + width = getScalar( origWidth ); + height = getScalar( origHeight ); + + ratio = origWidth / origHeight; + + // Calculations for the content + minWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth); + maxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth); + + minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight); + maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight); + + // These will be used to determine if wrap can fit in the viewport + origMaxWidth = maxWidth; + origMaxHeight = maxHeight; + + if (current.fitToView) { + maxWidth = Math.min(viewport.w - wSpace, maxWidth); + maxHeight = Math.min(viewport.h - hSpace, maxHeight); + } + + maxWidth_ = viewport.w - wMargin; + maxHeight_ = viewport.h - hMargin; + + if (current.aspectRatio) { + if (width > maxWidth) { + width = maxWidth; + height = getScalar(width / ratio); + } + + if (height > maxHeight) { + height = maxHeight; + width = getScalar(height * ratio); + } + + if (width < minWidth) { + width = minWidth; + height = getScalar(width / ratio); + } + + if (height < minHeight) { + height = minHeight; + width = getScalar(height * ratio); + } + + } else { + width = Math.max(minWidth, Math.min(width, maxWidth)); + + if (current.autoHeight && current.type !== 'iframe') { + inner.width( width ); + + height = inner.height(); + } + + height = Math.max(minHeight, Math.min(height, maxHeight)); + } + + // Try to fit inside viewport (including the title) + if (current.fitToView) { + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + // Real wrap dimensions + width_ = wrap.width(); + height_ = wrap.height(); + + if (current.aspectRatio) { + while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) { + if (steps++ > 19) { + break; + } + + height = Math.max(minHeight, Math.min(maxHeight, height - 10)); + width = getScalar(height * ratio); + + if (width < minWidth) { + width = minWidth; + height = getScalar(width / ratio); + } + + if (width > maxWidth) { + width = maxWidth; + height = getScalar(width / ratio); + } + + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + width_ = wrap.width(); + height_ = wrap.height(); + } + + } else { + width = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_))); + height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_))); + } + } + + if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) { + width += scrollOut; + } + + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + width_ = wrap.width(); + height_ = wrap.height(); + + canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight; + canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight)); + + $.extend(current, { + dim : { + width : getValue( width_ ), + height : getValue( height_ ) + }, + origWidth : origWidth, + origHeight : origHeight, + canShrink : canShrink, + canExpand : canExpand, + wPadding : wPadding, + hPadding : hPadding, + wrapSpace : height_ - skin.outerHeight(true), + skinSpace : skin.height() - height + }); + + if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) { + inner.height('auto'); + } + }, + + _getPosition: function (onlyAbsolute) { + var current = F.current, + viewport = F.getViewport(), + margin = current.margin, + width = F.wrap.width() + margin[1] + margin[3], + height = F.wrap.height() + margin[0] + margin[2], + rez = { + position: 'absolute', + top : margin[0], + left : margin[3] + }; + + if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) { + rez.position = 'fixed'; + + } else if (!current.locked) { + rez.top += viewport.y; + rez.left += viewport.x; + } + + rez.top = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio))); + rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio))); + + return rez; + }, + + _afterZoomIn: function () { + var current = F.current; + + if (!current) { + return; + } + + F.isOpen = F.isOpened = true; + + F.wrap.css('overflow', 'visible').addClass('fancybox-opened'); + + F.update(); + + // Assign a click event + if ( current.closeClick || (current.nextClick && F.group.length > 1) ) { + F.inner.css('cursor', 'pointer').bind('click.fb', function(e) { + if (!$(e.target).is('a') && !$(e.target).parent().is('a')) { + e.preventDefault(); + + F[ current.closeClick ? 'close' : 'next' ](); + } + }); + } + + // Create a close button + if (current.closeBtn) { + $(current.tpl.closeBtn).appendTo(F.skin).bind( isTouch ? 'touchstart.fb' : 'click.fb', function(e) { + e.preventDefault(); + + F.close(); + }); + } + + // Create navigation arrows + if (current.arrows && F.group.length > 1) { + if (current.loop || current.index > 0) { + $(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev); + } + + if (current.loop || current.index < F.group.length - 1) { + $(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next); + } + } + + F.trigger('afterShow'); + + // Stop the slideshow if this is the last item + if (!current.loop && current.index === current.group.length - 1) { + F.play( false ); + + } else if (F.opts.autoPlay && !F.player.isActive) { + F.opts.autoPlay = false; + + F.play(); + } + }, + + _afterZoomOut: function ( obj ) { + obj = obj || F.current; + + $('.fancybox-wrap').trigger('onReset').remove(); + + $.extend(F, { + group : {}, + opts : {}, + router : false, + current : null, + isActive : false, + isOpened : false, + isOpen : false, + isClosing : false, + wrap : null, + skin : null, + outer : null, + inner : null + }); + + F.trigger('afterClose', obj); + } + }); + + /* + * Default transitions + */ + + F.transitions = { + getOrigPosition: function () { + var current = F.current, + element = current.element, + orig = current.orig, + pos = {}, + width = 50, + height = 50, + hPadding = current.hPadding, + wPadding = current.wPadding, + viewport = F.getViewport(); + + if (!orig && current.isDom && element.is(':visible')) { + orig = element.find('img:first'); + + if (!orig.length) { + orig = element; + } + } + + if (isQuery(orig)) { + pos = orig.offset(); + + if (orig.is('img')) { + width = orig.outerWidth(); + height = orig.outerHeight(); + } + + } else { + pos.top = viewport.y + (viewport.h - height) * current.topRatio; + pos.left = viewport.x + (viewport.w - width) * current.leftRatio; + } + + if (F.wrap.css('position') === 'fixed' || current.locked) { + pos.top -= viewport.y; + pos.left -= viewport.x; + } + + pos = { + top : getValue(pos.top - hPadding * current.topRatio), + left : getValue(pos.left - wPadding * current.leftRatio), + width : getValue(width + wPadding), + height : getValue(height + hPadding) + }; + + return pos; + }, + + step: function (now, fx) { + var ratio, + padding, + value, + prop = fx.prop, + current = F.current, + wrapSpace = current.wrapSpace, + skinSpace = current.skinSpace; + + if (prop === 'width' || prop === 'height') { + ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start); + + if (F.isClosing) { + ratio = 1 - ratio; + } + + padding = prop === 'width' ? current.wPadding : current.hPadding; + value = now - padding; + + F.skin[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) ) ); + F.inner[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) ); + } + }, + + zoomIn: function () { + var current = F.current, + startPos = current.pos, + effect = current.openEffect, + elastic = effect === 'elastic', + endPos = $.extend({opacity : 1}, startPos); + + // Remove "position" property that breaks older IE + delete endPos.position; + + if (elastic) { + startPos = this.getOrigPosition(); + + if (current.openOpacity) { + startPos.opacity = 0.1; + } + + } else if (effect === 'fade') { + startPos.opacity = 0.1; + } + + F.wrap.css(startPos).animate(endPos, { + duration : effect === 'none' ? 0 : current.openSpeed, + easing : current.openEasing, + step : elastic ? this.step : null, + complete : F._afterZoomIn + }); + }, + + zoomOut: function () { + var current = F.current, + effect = current.closeEffect, + elastic = effect === 'elastic', + endPos = {opacity : 0.1}; + + if (elastic) { + endPos = this.getOrigPosition(); + + if (current.closeOpacity) { + endPos.opacity = 0.1; + } + } + + F.wrap.animate(endPos, { + duration : effect === 'none' ? 0 : current.closeSpeed, + easing : current.closeEasing, + step : elastic ? this.step : null, + complete : F._afterZoomOut + }); + }, + + changeIn: function () { + var current = F.current, + effect = current.nextEffect, + startPos = current.pos, + endPos = { opacity : 1 }, + direction = F.direction, + distance = 200, + field; + + startPos.opacity = 0.1; + + if (effect === 'elastic') { + field = direction === 'down' || direction === 'up' ? 'top' : 'left'; + + if (direction === 'down' || direction === 'right') { + startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance); + endPos[ field ] = '+=' + distance + 'px'; + + } else { + startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance); + endPos[ field ] = '-=' + distance + 'px'; + } + } + + // Workaround for http://bugs.jquery.com/ticket/12273 + if (effect === 'none') { + F._afterZoomIn(); + + } else { + F.wrap.css(startPos).animate(endPos, { + duration : current.nextSpeed, + easing : current.nextEasing, + complete : function() { + // This helps FireFox to properly render the box + setTimeout(F._afterZoomIn, 20); + } + }); + } + }, + + changeOut: function () { + var previous = F.previous, + effect = previous.prevEffect, + endPos = { opacity : 0.1 }, + direction = F.direction, + distance = 200; + + if (effect === 'elastic') { + endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px'; + } + + previous.wrap.animate(endPos, { + duration : effect === 'none' ? 0 : previous.prevSpeed, + easing : previous.prevEasing, + complete : function () { + $(this).trigger('onReset').remove(); + } + }); + } + }; + + /* + * Overlay helper + */ + + F.helpers.overlay = { + defaults : { + closeClick : true, // if true, fancyBox will be closed when user clicks on the overlay + speedOut : 200, // duration of fadeOut animation + showEarly : true, // indicates if should be opened immediately or wait until the content is ready + css : {}, // custom CSS properties + locked : !isTouch, // if true, the content will be locked into overlay + fixed : true // if false, the overlay CSS position property will not be set to "fixed" + }, + + overlay : null, // current handle + fixed : false, // indicates if the overlay has position "fixed" + + // Public methods + create : function(opts) { + opts = $.extend({}, this.defaults, opts); + + if (this.overlay) { + this.close(); + } + + this.overlay = $('
    ').appendTo( 'body' ); + this.fixed = false; + + if (opts.fixed && F.defaults.fixed) { + this.overlay.addClass('fancybox-overlay-fixed'); + + this.fixed = true; + } + }, + + open : function(opts) { + var that = this; + + opts = $.extend({}, this.defaults, opts); + + if (this.overlay) { + this.overlay.unbind('.overlay').width('auto').height('auto'); + + } else { + this.create(opts); + } + + if (!this.fixed) { + W.bind('resize.overlay', $.proxy( this.update, this) ); + + this.update(); + } + + if (opts.closeClick) { + this.overlay.bind('click.overlay', function(e) { + if ($(e.target).hasClass('fancybox-overlay')) { + if (F.isActive) { + F.close(); + } else { + that.close(); + } + } + }); + } + + this.overlay.css( opts.css ).show(); + }, + + close : function() { + $('.fancybox-overlay').remove(); + + W.unbind('resize.overlay'); + + this.overlay = null; + + if (this.margin !== false) { + $('body').css('margin-right', this.margin); + + this.margin = false; + } + + if (this.el) { + this.el.removeClass('fancybox-lock'); + } + }, + + // Private, callbacks + + update : function () { + var width = '100%', offsetWidth; + + // Reset width/height so it will not mess + this.overlay.width(width).height('100%'); + + // jQuery does not return reliable result for IE + if ($.browser.msie) { + offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); + + if (D.width() > offsetWidth) { + width = D.width(); + } + + } else if (D.width() > W.width()) { + width = D.width(); + } + + this.overlay.width(width).height(D.height()); + }, + + // This is where we can manipulate DOM, because later it would cause iframes to reload + onReady : function (opts, obj) { + $('.fancybox-overlay').stop(true, true); + + if (!this.overlay) { + this.margin = D.height() > W.height() || $('body').css('overflow-y') === 'scroll' ? $('body').css('margin-right') : false; + this.el = document.all && !document.querySelector ? $('html') : $('body'); + + this.create(opts); + } + + if (opts.locked && this.fixed) { + obj.locked = this.overlay.append( obj.wrap ); + obj.fixed = false; + } + + if (opts.showEarly === true) { + this.beforeShow.apply(this, arguments); + } + }, + + beforeShow : function(opts, obj) { + if (obj.locked) { + this.el.addClass('fancybox-lock'); + + if (this.margin !== false) { + $('body').css('margin-right', getScalar( this.margin ) + obj.scrollbarWidth); + } + } + + this.open(opts); + }, + + onUpdate : function() { + if (!this.fixed) { + this.update(); + } + }, + + afterClose: function (opts) { + // Remove overlay if exists and fancyBox is not opening + // (e.g., it is not being open using afterClose callback) + if (this.overlay && !F.isActive) { + this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this )); + } + } + }; + + /* + * Title helper + */ + + F.helpers.title = { + defaults : { + type : 'float', // 'float', 'inside', 'outside' or 'over', + position : 'bottom' // 'top' or 'bottom' + }, + + beforeShow: function (opts) { + var current = F.current, + text = current.title, + type = opts.type, + title, + target; + + if ($.isFunction(text)) { + text = text.call(current.element, current); + } + + if (!isString(text) || $.trim(text) === '') { + return; + } + + title = $('
    ' + text + '
    '); + + switch (type) { + case 'inside': + target = F.skin; + break; + + case 'outside': + target = F.wrap; + break; + + case 'over': + target = F.inner; + break; + + default: // 'float' + target = F.skin; + + title.appendTo('body'); + + if ($.browser.msie) { + title.width( title.width() ); + } + + title.wrapInner(''); + + //Increase bottom margin so this title will also fit into viewport + F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) ); + break; + } + + title[ (opts.position === 'top' ? 'prependTo' : 'appendTo') ](target); + } + }; + + // jQuery plugin initialization + $.fn.fancybox = function (options) { + var index, + that = $(this), + selector = this.selector || '', + run = function(e) { + var what = $(this).blur(), idx = index, relType, relVal; + + if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) { + relType = options.groupAttr || 'data-fancybox-group'; + relVal = what.attr(relType); + + if (!relVal) { + relType = 'rel'; + relVal = what.get(0)[ relType ]; + } + + if (relVal && relVal !== '' && relVal !== 'nofollow') { + what = selector.length ? $(selector) : that; + what = what.filter('[' + relType + '="' + relVal + '"]'); + idx = what.index(this); + } + + options.index = idx; + + // Stop an event from bubbling if everything is fine + if (F.open(what, options) !== false) { + e.preventDefault(); + } + } + }; + + options = options || {}; + index = options.index || 0; + + if (!selector || options.live === false) { + that.unbind('click.fb-start').bind('click.fb-start', run); + + } else { + D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run); + } + + this.filter('[data-fancybox-start=1]').trigger('click'); + + return this; + }; + + // Tests that need a body at doc ready + D.ready(function() { + if ( $.scrollbarWidth === undefined ) { + // http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth + $.scrollbarWidth = function() { + var parent = $('
    ').appendTo('body'), + child = parent.children(), + width = child.innerWidth() - child.height( 99 ).innerWidth(); + + parent.remove(); + + return width; + }; + } + + if ( $.support.fixedPosition === undefined ) { + $.support.fixedPosition = (function() { + var elem = $('
    ').appendTo('body'), + fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 ); + + elem.remove(); + + return fixed; + }()); + } + + $.extend(F.defaults, { + scrollbarWidth : $.scrollbarWidth(), + fixed : $.support.fixedPosition, + parent : $('body') + }); + }); + +}(window, document, jQuery)); \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/jquery.fancybox.pack.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/jquery.fancybox.pack.js" new file mode 100644 index 0000000..088b5c6 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fancybox/source/jquery.fancybox.pack.js" @@ -0,0 +1,45 @@ +/*! fancyBox v2.1.3 fancyapps.com | fancyapps.com/fancybox/#license */ +(function(B,x,f,q){var r=f(B),m=f(x),b=f.fancybox=function(){b.open.apply(this,arguments)},u=null,n=x.createTouch!==q,s=function(a){return a&&a.hasOwnProperty&&a instanceof f},p=function(a){return a&&"string"===f.type(a)},E=function(a){return p(a)&&0
    ',image:'',iframe:'",error:'

    The requested content cannot be loaded.
    Please try again later.

    ',closeBtn:'',next:'',prev:''},openEffect:"fade",openSpeed:250,openEasing:"swing", +openOpacity:!0,openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null, +isActive:!1,isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=s(a)?f(a).get():[a]),f.each(a,function(e,c){var j={},g,h,i,l,k;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),s(c)?(j={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0, +j,c.metadata())):j=c);g=d.href||j.href||(p(c)?c:null);h=d.title!==q?d.title:j.title||"";l=(i=d.content||j.content)?"html":d.type||j.type;!l&&j.isDom&&(l=c.data("fancybox-type"),l||(l=(l=c.prop("class").match(/fancybox\.(\w+)/))?l[1]:null));p(g)&&(l||(b.isImage(g)?l="image":b.isSWF(g)?l="swf":"#"===g.charAt(0)?l="inline":p(c)&&(l="html",i=c)),"ajax"===l&&(k=g.split(/\s+/,2),g=k.shift(),k=k.shift()));i||("inline"===l?g?i=f(p(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):j.isDom&&(i=c):"html"===l?i=g:!l&&(!g&& +j.isDom)&&(l="inline",i=c));f.extend(j,{href:g,type:l,content:i,title:h,selector:k});a[e]=j}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==q&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current|| +b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer= +setTimeout(b.next,b.current.playSpeed))},c=function(){d();f("body").unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==q&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,j;c&&(j=b._getPosition(d),a&&"scroll"===a.type?(delete j.position,c.stop(!0,!0).animate(j,200)):(c.css(j),e.pos=f.extend({}, +e.dim,j)))},update:function(a){var d=a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(u),u=null);b.isOpen&&!u&&(u=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),u=null)},e&&!n?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,n&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"), +b.trigger("onUpdate")),b.update())},hideLoading:function(){m.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('
    ').click(b.cancel).appendTo("body");m.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked|| +!1,d={x:r.scrollLeft(),y:r.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=n&&B.innerWidth?B.innerWidth:r.width(),d.h=n&&B.innerHeight?B.innerHeight:r.height());return d},unbindEvents:function(){b.wrap&&s(b.wrap)&&b.wrap.unbind(".fb");m.unbind(".fb");r.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(r.bind("orientationchange.fb"+(n?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&m.bind("keydown.fb",function(e){var c=e.which||e.keyCode,j= +e.target||e.srcElement;if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!j||!j.type&&!f(j).is("[contenteditable]")))&&f.each(d,function(d,j){if(1h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!i&&1g||0>j)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d, +e){e&&(b.helpers[d]&&f.isFunction(b.helpers[d][a]))&&(e=f.extend(!0,{},b.helpers[d].defaults,e),b.helpers[d][a](e,c))});f.event.trigger(a+".fb")}},isImage:function(a){return p(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp)((\?|#).*)?$)/i)},isSWF:function(a){return p(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c,a=k(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&& +(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive= +!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio=!0);"iframe"===c&&n&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(n?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,v(d.padding[a]))});b.trigger("onReady"); +if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href");"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width= +this.width;b.coming.height=this.height;b._afterLoad()};a.onerror=function(){this.onload=this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g, +(new Date).getTime())).attr("scrolling",n?"auto":a.iframe.scrolling).attr("src",a.href);f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);n||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a= +b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload,e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,j,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents(); +e=a.content;c=a.type;j=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin,outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("
    ").html(e).find(a.selector):s(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('
    ').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder", +!1)}));break;case "image":e=a.tpl.image.replace("{href}",g);break;case "swf":e='',h="",f.each(a.swf,function(a,b){e+='';h+=" "+a+'="'+b+'"'}),e+='"}(!s(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow"); +a.inner.css("overflow","yes"===j?"scroll":"no"===j?"hidden":j);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,j=b.skin,g=b.inner,h=b.current,c=h.width,i=h.height,l=h.minWidth,t=h.minHeight,m=h.maxWidth, +n=h.maxHeight,r=h.scrolling,p=h.scrollOutside?h.scrollbarWidth:0,w=h.margin,y=k(w[1]+w[3]),q=k(w[0]+w[2]),x,z,s,C,A,F,B,D,u;e.add(j).add(g).width("auto").height("auto").removeClass("fancybox-tmp");w=k(j.outerWidth(!0)-j.width());x=k(j.outerHeight(!0)-j.height());z=y+w;s=q+x;C=E(c)?(a.w-z)*k(c)/100:c;A=E(i)?(a.h-s)*k(i)/100:i;if("iframe"===h.type){if(u=h.content,h.autoHeight&&1===u.data("ready"))try{u[0].contentWindow.document.location&&(g.width(C).height(9999),F=u.contents().find("body"),p&&F.css("overflow-x", +"hidden"),A=F.height())}catch(G){}}else if(h.autoWidth||h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=k(C);i=k(A);D=C/A;l=k(E(l)?k(l,"w")-z:l);m=k(E(m)?k(m,"w")-z:m);t=k(E(t)?k(t,"h")-s:t);n=k(E(n)?k(n,"h")-s:n);F=m;B=n;h.fitToView&&(m=Math.min(a.w-z,m),n=Math.min(a.h-s,n));z=a.w-y;q=a.h-q;h.aspectRatio?(c>m&&(c=m,i=k(c/D)),i>n&&(i=n,c=k(i*D)),cz||y>q)&&(c>l&&i>t)&&!(19m&&(c=m,i=k(c/D)),g.width(c).height(i),e.width(c+w),a=e.width(),y=e.height();else c=Math.max(l,Math.min(c,c-(a-z))),i=Math.max(t,Math.min(i,i-(y-q)));p&&("auto"===r&&iz||y>q)&&c>l&&i>t;c=h.aspectRatio?ct&&i
    ').appendTo("body");this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this,a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(r.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){f(a.target).hasClass("fancybox-overlay")&& +(b.isActive?b.close():d.close())});this.overlay.css(a.css).show()},close:function(){f(".fancybox-overlay").remove();r.unbind("resize.overlay");this.overlay=null;!1!==this.margin&&(f("body").css("margin-right",this.margin),this.margin=!1);this.el&&this.el.removeClass("fancybox-lock")},update:function(){var a="100%",b;this.overlay.width(a).height("100%");f.browser.msie?(b=Math.max(x.documentElement.offsetWidth,x.body.offsetWidth),m.width()>b&&(a=m.width())):m.width()>r.width()&&(a=m.width());this.overlay.width(a).height(m.height())}, +onReady:function(a,b){f(".fancybox-overlay").stop(!0,!0);this.overlay||(this.margin=m.height()>r.height()||"scroll"===f("body").css("overflow-y")?f("body").css("margin-right"):!1,this.el=x.all&&!x.querySelector?f("html"):f("body"),this.create(a));a.locked&&this.fixed&&(b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){b.locked&&(this.el.addClass("fancybox-lock"),!1!==this.margin&&f("body").css("margin-right",k(this.margin)+ +b.scrollbarWidth));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.isActive&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d=b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(p(e)&&""!==f.trim(e)){d=f('
    '+e+"
    ");switch(c){case "inside":c=b.skin;break;case "outside":c= +b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),f.browser.msie&&d.width(d.width()),d.wrapInner(''),b.current.margin[2]+=Math.abs(k(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d,e=f(this),c=this.selector||"",j=function(g){var h=f(this).blur(),i=d,j,k;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(j=a.groupAttr||"data-fancybox-group",k=h.attr(j),k||(j="rel", +k=h.get(0)[j]),k&&(""!==k&&"nofollow"!==k)&&(h=c.length?f(c):e,h=h.filter("["+j+'="'+k+'"]'),i=h.index(this)),a.index=i,!1!==b.open(h,a)&&g.preventDefault())},a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",j):m.undelegate(c,"click.fb-start").delegate(c+":not('.fancybox-item, .fancybox-nav')","click.fb-start",j);this.filter("[data-fancybox-start=1]").trigger("click");return this};m.ready(function(){f.scrollbarWidth===q&&(f.scrollbarWidth=function(){var a=f('
    ').appendTo("body"), +b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===q){var a=f.support,d=f('
    ').appendTo("body"),e=20===d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")})})})(window,document,jQuery); \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/API.txt" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/API.txt" new file mode 100644 index 0000000..8a8dbc2 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/API.txt" @@ -0,0 +1,1201 @@ +Flot Reference +-------------- + +Consider a call to the plot function: + + var plot = $.plot(placeholder, data, options) + +The placeholder is a jQuery object or DOM element or jQuery expression +that the plot will be put into. This placeholder needs to have its +width and height set as explained in the README (go read that now if +you haven't, it's short). The plot will modify some properties of the +placeholder so it's recommended you simply pass in a div that you +don't use for anything else. Make sure you check any fancy styling +you apply to the div, e.g. background images have been reported to be a +problem on IE 7. + +The format of the data is documented below, as is the available +options. The plot object returned from the call has some methods you +can call. These are documented separately below. + +Note that in general Flot gives no guarantees if you change any of the +objects you pass in to the plot function or get out of it since +they're not necessarily deep-copied. + + +Data Format +----------- + +The data is an array of data series: + + [ series1, series2, ... ] + +A series can either be raw data or an object with properties. The raw +data format is an array of points: + + [ [x1, y1], [x2, y2], ... ] + +E.g. + + [ [1, 3], [2, 14.01], [3.5, 3.14] ] + +Note that to simplify the internal logic in Flot both the x and y +values must be numbers (even if specifying time series, see below for +how to do this). This is a common problem because you might retrieve +data from the database and serialize them directly to JSON without +noticing the wrong type. If you're getting mysterious errors, double +check that you're inputting numbers and not strings. + +If a null is specified as a point or if one of the coordinates is null +or couldn't be converted to a number, the point is ignored when +drawing. As a special case, a null value for lines is interpreted as a +line segment end, i.e. the points before and after the null value are +not connected. + +Lines and points take two coordinates. For filled lines and bars, you +can specify a third coordinate which is the bottom of the filled +area/bar (defaults to 0). + +The format of a single series object is as follows: + + { + color: color or number + data: rawdata + label: string + lines: specific lines options + bars: specific bars options + points: specific points options + xaxis: number + yaxis: number + clickable: boolean + hoverable: boolean + shadowSize: number + } + +You don't have to specify any of them except the data, the rest are +options that will get default values. Typically you'd only specify +label and data, like this: + + { + label: "y = 3", + data: [[0, 3], [10, 3]] + } + +The label is used for the legend, if you don't specify one, the series +will not show up in the legend. + +If you don't specify color, the series will get a color from the +auto-generated colors. The color is either a CSS color specification +(like "rgb(255, 100, 123)") or an integer that specifies which of +auto-generated colors to select, e.g. 0 will get color no. 0, etc. + +The latter is mostly useful if you let the user add and remove series, +in which case you can hard-code the color index to prevent the colors +from jumping around between the series. + +The "xaxis" and "yaxis" options specify which axis to use. The axes +are numbered from 1 (default), so { yaxis: 2} means that the series +should be plotted against the second y axis. + +"clickable" and "hoverable" can be set to false to disable +interactivity for specific series if interactivity is turned on in +the plot, see below. + +The rest of the options are all documented below as they are the same +as the default options passed in via the options parameter in the plot +commmand. When you specify them for a specific data series, they will +override the default options for the plot for that data series. + +Here's a complete example of a simple data specification: + + [ { label: "Foo", data: [ [10, 1], [17, -14], [30, 5] ] }, + { label: "Bar", data: [ [11, 13], [19, 11], [30, -7] ] } ] + + +Plot Options +------------ + +All options are completely optional. They are documented individually +below, to change them you just specify them in an object, e.g. + + var options = { + series: { + lines: { show: true }, + points: { show: true } + } + }; + + $.plot(placeholder, data, options); + + +Customizing the legend +====================== + + legend: { + show: boolean + labelFormatter: null or (fn: string, series object -> string) + labelBoxBorderColor: color + noColumns: number + position: "ne" or "nw" or "se" or "sw" + margin: number of pixels or [x margin, y margin] + backgroundColor: null or color + backgroundOpacity: number between 0 and 1 + container: null or jQuery object/DOM element/jQuery expression + } + +The legend is generated as a table with the data series labels and +small label boxes with the color of the series. If you want to format +the labels in some way, e.g. make them to links, you can pass in a +function for "labelFormatter". Here's an example that makes them +clickable: + + labelFormatter: function(label, series) { + // series is the series object for the label + return '' + label + ''; + } + +"noColumns" is the number of columns to divide the legend table into. +"position" specifies the overall placement of the legend within the +plot (top-right, top-left, etc.) and margin the distance to the plot +edge (this can be either a number or an array of two numbers like [x, +y]). "backgroundColor" and "backgroundOpacity" specifies the +background. The default is a partly transparent auto-detected +background. + +If you want the legend to appear somewhere else in the DOM, you can +specify "container" as a jQuery object/expression to put the legend +table into. The "position" and "margin" etc. options will then be +ignored. Note that Flot will overwrite the contents of the container. + + +Customizing the axes +==================== + + xaxis, yaxis: { + show: null or true/false + position: "bottom" or "top" or "left" or "right" + mode: null or "time" + + color: null or color spec + tickColor: null or color spec + + min: null or number + max: null or number + autoscaleMargin: null or number + + transform: null or fn: number -> number + inverseTransform: null or fn: number -> number + + ticks: null or number or ticks array or (fn: range -> ticks array) + tickSize: number or array + minTickSize: number or array + tickFormatter: (fn: number, object -> string) or string + tickDecimals: null or number + + labelWidth: null or number + labelHeight: null or number + reserveSpace: null or true + + tickLength: null or number + + alignTicksWithAxis: null or number + } + +All axes have the same kind of options. The following describes how to +configure one axis, see below for what to do if you've got more than +one x axis or y axis. + +If you don't set the "show" option (i.e. it is null), visibility is +auto-detected, i.e. the axis will show up if there's data associated +with it. You can override this by setting the "show" option to true or +false. + +The "position" option specifies where the axis is placed, bottom or +top for x axes, left or right for y axes. The "mode" option determines +how the data is interpreted, the default of null means as decimal +numbers. Use "time" for time series data, see the time series data +section. + +The "color" option determines the color of the labels and ticks for +the axis (default is the grid color). For more fine-grained control +you can also set the color of the ticks separately with "tickColor" +(otherwise it's autogenerated as the base color with some +transparency). + +The options "min"/"max" are the precise minimum/maximum value on the +scale. If you don't specify either of them, a value will automatically +be chosen based on the minimum/maximum data values. Note that Flot +always examines all the data values you feed to it, even if a +restriction on another axis may make some of them invisible (this +makes interactive use more stable). + +The "autoscaleMargin" is a bit esoteric: it's the fraction of margin +that the scaling algorithm will add to avoid that the outermost points +ends up on the grid border. Note that this margin is only applied when +a min or max value is not explicitly set. If a margin is specified, +the plot will furthermore extend the axis end-point to the nearest +whole tick. The default value is "null" for the x axes and 0.02 for y +axes which seems appropriate for most cases. + +"transform" and "inverseTransform" are callbacks you can put in to +change the way the data is drawn. You can design a function to +compress or expand certain parts of the axis non-linearly, e.g. +suppress weekends or compress far away points with a logarithm or some +other means. When Flot draws the plot, each value is first put through +the transform function. Here's an example, the x axis can be turned +into a natural logarithm axis with the following code: + + xaxis: { + transform: function (v) { return Math.log(v); }, + inverseTransform: function (v) { return Math.exp(v); } + } + +Similarly, for reversing the y axis so the values appear in inverse +order: + + yaxis: { + transform: function (v) { return -v; }, + inverseTransform: function (v) { return -v; } + } + +Note that for finding extrema, Flot assumes that the transform +function does not reorder values (it should be monotone). + +The inverseTransform is simply the inverse of the transform function +(so v == inverseTransform(transform(v)) for all relevant v). It is +required for converting from canvas coordinates to data coordinates, +e.g. for a mouse interaction where a certain pixel is clicked. If you +don't use any interactive features of Flot, you may not need it. + + +The rest of the options deal with the ticks. + +If you don't specify any ticks, a tick generator algorithm will make +some for you. The algorithm has two passes. It first estimates how +many ticks would be reasonable and uses this number to compute a nice +round tick interval size. Then it generates the ticks. + +You can specify how many ticks the algorithm aims for by setting +"ticks" to a number. The algorithm always tries to generate reasonably +round tick values so even if you ask for three ticks, you might get +five if that fits better with the rounding. If you don't want any +ticks at all, set "ticks" to 0 or an empty array. + +Another option is to skip the rounding part and directly set the tick +interval size with "tickSize". If you set it to 2, you'll get ticks at +2, 4, 6, etc. Alternatively, you can specify that you just don't want +ticks at a size less than a specific tick size with "minTickSize". +Note that for time series, the format is an array like [2, "month"], +see the next section. + +If you want to completely override the tick algorithm, you can specify +an array for "ticks", either like this: + + ticks: [0, 1.2, 2.4] + +Or like this where the labels are also customized: + + ticks: [[0, "zero"], [1.2, "one mark"], [2.4, "two marks"]] + +You can mix the two if you like. + +For extra flexibility you can specify a function as the "ticks" +parameter. The function will be called with an object with the axis +min and max and should return a ticks array. Here's a simplistic tick +generator that spits out intervals of pi, suitable for use on the x +axis for trigonometric functions: + + function piTickGenerator(axis) { + var res = [], i = Math.floor(axis.min / Math.PI); + do { + var v = i * Math.PI; + res.push([v, i + "\u03c0"]); + ++i; + } while (v < axis.max); + + return res; + } + +You can control how the ticks look like with "tickDecimals", the +number of decimals to display (default is auto-detected). + +Alternatively, for ultimate control over how ticks are formatted you can +provide a function to "tickFormatter". The function is passed two +parameters, the tick value and an axis object with information, and +should return a string. The default formatter looks like this: + + function formatter(val, axis) { + return val.toFixed(axis.tickDecimals); + } + +The axis object has "min" and "max" with the range of the axis, +"tickDecimals" with the number of decimals to round the value to and +"tickSize" with the size of the interval between ticks as calculated +by the automatic axis scaling algorithm (or specified by you). Here's +an example of a custom formatter: + + function suffixFormatter(val, axis) { + if (val > 1000000) + return (val / 1000000).toFixed(axis.tickDecimals) + " MB"; + else if (val > 1000) + return (val / 1000).toFixed(axis.tickDecimals) + " kB"; + else + return val.toFixed(axis.tickDecimals) + " B"; + } + +"labelWidth" and "labelHeight" specifies a fixed size of the tick +labels in pixels. They're useful in case you need to align several +plots. "reserveSpace" means that even if an axis isn't shown, Flot +should reserve space for it - it is useful in combination with +labelWidth and labelHeight for aligning multi-axis charts. + +"tickLength" is the length of the tick lines in pixels. By default, the +innermost axes will have ticks that extend all across the plot, while +any extra axes use small ticks. A value of null means use the default, +while a number means small ticks of that length - set it to 0 to hide +the lines completely. + +If you set "alignTicksWithAxis" to the number of another axis, e.g. +alignTicksWithAxis: 1, Flot will ensure that the autogenerated ticks +of this axis are aligned with the ticks of the other axis. This may +improve the looks, e.g. if you have one y axis to the left and one to +the right, because the grid lines will then match the ticks in both +ends. The trade-off is that the forced ticks won't necessarily be at +natural places. + + +Multiple axes +============= + +If you need more than one x axis or y axis, you need to specify for +each data series which axis they are to use, as described under the +format of the data series, e.g. { data: [...], yaxis: 2 } specifies +that a series should be plotted against the second y axis. + +To actually configure that axis, you can't use the xaxis/yaxis options +directly - instead there are two arrays in the options: + + xaxes: [] + yaxes: [] + +Here's an example of configuring a single x axis and two y axes (we +can leave options of the first y axis empty as the defaults are fine): + + { + xaxes: [ { position: "top" } ], + yaxes: [ { }, { position: "right", min: 20 } ] + } + +The arrays get their default values from the xaxis/yaxis settings, so +say you want to have all y axes start at zero, you can simply specify +yaxis: { min: 0 } instead of adding a min parameter to all the axes. + +Generally, the various interfaces in Flot dealing with data points +either accept an xaxis/yaxis parameter to specify which axis number to +use (starting from 1), or lets you specify the coordinate directly as +x2/x3/... or x2axis/x3axis/... instead of "x" or "xaxis". + + +Time series data +================ + +Time series are a bit more difficult than scalar data because +calendars don't follow a simple base 10 system. For many cases, Flot +abstracts most of this away, but it can still be a bit difficult to +get the data into Flot. So we'll first discuss the data format. + +The time series support in Flot is based on Javascript timestamps, +i.e. everywhere a time value is expected or handed over, a Javascript +timestamp number is used. This is a number, not a Date object. A +Javascript timestamp is the number of milliseconds since January 1, +1970 00:00:00 UTC. This is almost the same as Unix timestamps, except it's +in milliseconds, so remember to multiply by 1000! + +You can see a timestamp like this + + alert((new Date()).getTime()) + +Normally you want the timestamps to be displayed according to a +certain time zone, usually the time zone in which the data has been +produced. However, Flot always displays timestamps according to UTC. +It has to as the only alternative with core Javascript is to interpret +the timestamps according to the time zone that the visitor is in, +which means that the ticks will shift unpredictably with the time zone +and daylight savings of each visitor. + +So given that there's no good support for custom time zones in +Javascript, you'll have to take care of this server-side. + +The easiest way to think about it is to pretend that the data +production time zone is UTC, even if it isn't. So if you have a +datapoint at 2002-02-20 08:00, you can generate a timestamp for eight +o'clock UTC even if it really happened eight o'clock UTC+0200. + +In PHP you can get an appropriate timestamp with +'strtotime("2002-02-20 UTC") * 1000', in Python with +'calendar.timegm(datetime_object.timetuple()) * 1000', in .NET with +something like: + + public static int GetJavascriptTimestamp(System.DateTime input) + { + System.TimeSpan span = new System.TimeSpan(System.DateTime.Parse("1/1/1970").Ticks); + System.DateTime time = input.Subtract(span); + return (long)(time.Ticks / 10000); + } + +Javascript also has some support for parsing date strings, so it is +possible to generate the timestamps manually client-side. + +If you've already got the real UTC timestamp, it's too late to use the +pretend trick described above. But you can fix up the timestamps by +adding the time zone offset, e.g. for UTC+0200 you would add 2 hours +to the UTC timestamp you got. Then it'll look right on the plot. Most +programming environments have some means of getting the timezone +offset for a specific date (note that you need to get the offset for +each individual timestamp to account for daylight savings). + +Once you've gotten the timestamps into the data and specified "time" +as the axis mode, Flot will automatically generate relevant ticks and +format them. As always, you can tweak the ticks via the "ticks" option +- just remember that the values should be timestamps (numbers), not +Date objects. + +Tick generation and formatting can also be controlled separately +through the following axis options: + + minTickSize: array + timeformat: null or format string + monthNames: null or array of size 12 of strings + twelveHourClock: boolean + +Here "timeformat" is a format string to use. You might use it like +this: + + xaxis: { + mode: "time" + timeformat: "%y/%m/%d" + } + +This will result in tick labels like "2000/12/24". The following +specifiers are supported + + %h: hours + %H: hours (left-padded with a zero) + %M: minutes (left-padded with a zero) + %S: seconds (left-padded with a zero) + %d: day of month (1-31), use %0d for zero-padding + %m: month (1-12), use %0m for zero-padding + %y: year (four digits) + %b: month name (customizable) + %p: am/pm, additionally switches %h/%H to 12 hour instead of 24 + %P: AM/PM (uppercase version of %p) + +Inserting a zero like %0m or %0d means that the specifier will be +left-padded with a zero if it's only single-digit. So %y-%0m-%0d +results in unambigious ISO timestamps like 2007-05-10 (for May 10th). + +You can customize the month names with the "monthNames" option. For +instance, for Danish you might specify: + + monthNames: ["jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "okt", "nov", "dec"] + +If you set "twelveHourClock" to true, the autogenerated timestamps +will use 12 hour AM/PM timestamps instead of 24 hour. + +The format string and month names are used by a very simple built-in +format function that takes a date object, a format string (and +optionally an array of month names) and returns the formatted string. +If needed, you can access it as $.plot.formatDate(date, formatstring, +monthNames) or even replace it with another more advanced function +from a date library if you're feeling adventurous. + +If everything else fails, you can control the formatting by specifying +a custom tick formatter function as usual. Here's a simple example +which will format December 24 as 24/12: + + tickFormatter: function (val, axis) { + var d = new Date(val); + return d.getUTCDate() + "/" + (d.getUTCMonth() + 1); + } + +Note that for the time mode "tickSize" and "minTickSize" are a bit +special in that they are arrays on the form "[value, unit]" where unit +is one of "second", "minute", "hour", "day", "month" and "year". So +you can specify + + minTickSize: [1, "month"] + +to get a tick interval size of at least 1 month and correspondingly, +if axis.tickSize is [2, "day"] in the tick formatter, the ticks have +been produced with two days in-between. + + + +Customizing the data series +=========================== + + series: { + lines, points, bars: { + show: boolean + lineWidth: number + fill: boolean or number + fillColor: null or color/gradient + } + + points: { + radius: number + symbol: "circle" or function + } + + bars: { + barWidth: number + align: "left" or "center" + horizontal: boolean + } + + lines: { + steps: boolean + } + + shadowSize: number + } + + colors: [ color1, color2, ... ] + +The options inside "series: {}" are copied to each of the series. So +you can specify that all series should have bars by putting it in the +global options, or override it for individual series by specifying +bars in a particular the series object in the array of data. + +The most important options are "lines", "points" and "bars" that +specify whether and how lines, points and bars should be shown for +each data series. In case you don't specify anything at all, Flot will +default to showing lines (you can turn this off with +lines: { show: false }). You can specify the various types +independently of each other, and Flot will happily draw each of them +in turn (this is probably only useful for lines and points), e.g. + + var options = { + series: { + lines: { show: true, fill: true, fillColor: "rgba(255, 255, 255, 0.8)" }, + points: { show: true, fill: false } + } + }; + +"lineWidth" is the thickness of the line or outline in pixels. You can +set it to 0 to prevent a line or outline from being drawn; this will +also hide the shadow. + +"fill" is whether the shape should be filled. For lines, this produces +area graphs. You can use "fillColor" to specify the color of the fill. +If "fillColor" evaluates to false (default for everything except +points which are filled with white), the fill color is auto-set to the +color of the data series. You can adjust the opacity of the fill by +setting fill to a number between 0 (fully transparent) and 1 (fully +opaque). + +For bars, fillColor can be a gradient, see the gradient documentation +below. "barWidth" is the width of the bars in units of the x axis (or +the y axis if "horizontal" is true), contrary to most other measures +that are specified in pixels. For instance, for time series the unit +is milliseconds so 24 * 60 * 60 * 1000 produces bars with the width of +a day. "align" specifies whether a bar should be left-aligned +(default) or centered on top of the value it represents. When +"horizontal" is on, the bars are drawn horizontally, i.e. from the y +axis instead of the x axis; note that the bar end points are still +defined in the same way so you'll probably want to swap the +coordinates if you've been plotting vertical bars first. + +For lines, "steps" specifies whether two adjacent data points are +connected with a straight (possibly diagonal) line or with first a +horizontal and then a vertical line. Note that this transforms the +data by adding extra points. + +For points, you can specify the radius and the symbol. The only +built-in symbol type is circles, for other types you can use a plugin +or define them yourself by specifying a callback: + + function cross(ctx, x, y, radius, shadow) { + var size = radius * Math.sqrt(Math.PI) / 2; + ctx.moveTo(x - size, y - size); + ctx.lineTo(x + size, y + size); + ctx.moveTo(x - size, y + size); + ctx.lineTo(x + size, y - size); + } + +The parameters are the drawing context, x and y coordinates of the +center of the point, a radius which corresponds to what the circle +would have used and whether the call is to draw a shadow (due to +limited canvas support, shadows are currently faked through extra +draws). It's good practice to ensure that the area covered by the +symbol is the same as for the circle with the given radius, this +ensures that all symbols have approximately the same visual weight. + +"shadowSize" is the default size of shadows in pixels. Set it to 0 to +remove shadows. + +The "colors" array specifies a default color theme to get colors for +the data series from. You can specify as many colors as you like, like +this: + + colors: ["#d18b2c", "#dba255", "#919733"] + +If there are more data series than colors, Flot will try to generate +extra colors by lightening and darkening colors in the theme. + + +Customizing the grid +==================== + + grid: { + show: boolean + aboveData: boolean + color: color + backgroundColor: color/gradient or null + labelMargin: number + axisMargin: number + markings: array of markings or (fn: axes -> array of markings) + borderWidth: number + borderColor: color or null + minBorderMargin: number or null + clickable: boolean + hoverable: boolean + autoHighlight: boolean + mouseActiveRadius: number + } + +The grid is the thing with the axes and a number of ticks. Many of the +things in the grid are configured under the individual axes, but not +all. "color" is the color of the grid itself whereas "backgroundColor" +specifies the background color inside the grid area, here null means +that the background is transparent. You can also set a gradient, see +the gradient documentation below. + +You can turn off the whole grid including tick labels by setting +"show" to false. "aboveData" determines whether the grid is drawn +above the data or below (below is default). + +"labelMargin" is the space in pixels between tick labels and axis +line, and "axisMargin" is the space in pixels between axes when there +are two next to each other. Note that you can style the tick labels +with CSS, e.g. to change the color. They have class "tickLabel". + +"borderWidth" is the width of the border around the plot. Set it to 0 +to disable the border. You can also set "borderColor" if you want the +border to have a different color than the grid lines. +"minBorderMargin" controls the default minimum margin around the +border - it's used to make sure that points aren't accidentally +clipped by the canvas edge so by default the value is computed from +the point radius. + +"markings" is used to draw simple lines and rectangular areas in the +background of the plot. You can either specify an array of ranges on +the form { xaxis: { from, to }, yaxis: { from, to } } (with multiple +axes, you can specify coordinates for other axes instead, e.g. as +x2axis/x3axis/...) or with a function that returns such an array given +the axes for the plot in an object as the first parameter. + +You can set the color of markings by specifying "color" in the ranges +object. Here's an example array: + + markings: [ { xaxis: { from: 0, to: 2 }, yaxis: { from: 10, to: 10 }, color: "#bb0000" }, ... ] + +If you leave out one of the values, that value is assumed to go to the +border of the plot. So for example if you only specify { xaxis: { +from: 0, to: 2 } } it means an area that extends from the top to the +bottom of the plot in the x range 0-2. + +A line is drawn if from and to are the same, e.g. + + markings: [ { yaxis: { from: 1, to: 1 } }, ... ] + +would draw a line parallel to the x axis at y = 1. You can control the +line width with "lineWidth" in the range object. + +An example function that makes vertical stripes might look like this: + + markings: function (axes) { + var markings = []; + for (var x = Math.floor(axes.xaxis.min); x < axes.xaxis.max; x += 2) + markings.push({ xaxis: { from: x, to: x + 1 } }); + return markings; + } + + +If you set "clickable" to true, the plot will listen for click events +on the plot area and fire a "plotclick" event on the placeholder with +a position and a nearby data item object as parameters. The coordinates +are available both in the unit of the axes (not in pixels) and in +global screen coordinates. + +Likewise, if you set "hoverable" to true, the plot will listen for +mouse move events on the plot area and fire a "plothover" event with +the same parameters as the "plotclick" event. If "autoHighlight" is +true (the default), nearby data items are highlighted automatically. +If needed, you can disable highlighting and control it yourself with +the highlight/unhighlight plot methods described elsewhere. + +You can use "plotclick" and "plothover" events like this: + + $.plot($("#placeholder"), [ d ], { grid: { clickable: true } }); + + $("#placeholder").bind("plotclick", function (event, pos, item) { + alert("You clicked at " + pos.x + ", " + pos.y); + // axis coordinates for other axes, if present, are in pos.x2, pos.x3, ... + // if you need global screen coordinates, they are pos.pageX, pos.pageY + + if (item) { + highlight(item.series, item.datapoint); + alert("You clicked a point!"); + } + }); + +The item object in this example is either null or a nearby object on the form: + + item: { + datapoint: the point, e.g. [0, 2] + dataIndex: the index of the point in the data array + series: the series object + seriesIndex: the index of the series + pageX, pageY: the global screen coordinates of the point + } + +For instance, if you have specified the data like this + + $.plot($("#placeholder"), [ { label: "Foo", data: [[0, 10], [7, 3]] } ], ...); + +and the mouse is near the point (7, 3), "datapoint" is [7, 3], +"dataIndex" will be 1, "series" is a normalized series object with +among other things the "Foo" label in series.label and the color in +series.color, and "seriesIndex" is 0. Note that plugins and options +that transform the data can shift the indexes from what you specified +in the original data array. + +If you use the above events to update some other information and want +to clear out that info in case the mouse goes away, you'll probably +also need to listen to "mouseout" events on the placeholder div. + +"mouseActiveRadius" specifies how far the mouse can be from an item +and still activate it. If there are two or more points within this +radius, Flot chooses the closest item. For bars, the top-most bar +(from the latest specified data series) is chosen. + +If you want to disable interactivity for a specific data series, you +can set "hoverable" and "clickable" to false in the options for that +series, like this { data: [...], label: "Foo", clickable: false }. + + +Specifying gradients +==================== + +A gradient is specified like this: + + { colors: [ color1, color2, ... ] } + +For instance, you might specify a background on the grid going from +black to gray like this: + + grid: { + backgroundColor: { colors: ["#000", "#999"] } + } + +For the series you can specify the gradient as an object that +specifies the scaling of the brightness and the opacity of the series +color, e.g. + + { colors: [{ opacity: 0.8 }, { brightness: 0.6, opacity: 0.8 } ] } + +where the first color simply has its alpha scaled, whereas the second +is also darkened. For instance, for bars the following makes the bars +gradually disappear, without outline: + + bars: { + show: true, + lineWidth: 0, + fill: true, + fillColor: { colors: [ { opacity: 0.8 }, { opacity: 0.1 } ] } + } + +Flot currently only supports vertical gradients drawn from top to +bottom because that's what works with IE. + + +Plot Methods +------------ + +The Plot object returned from the plot function has some methods you +can call: + + - highlight(series, datapoint) + + Highlight a specific datapoint in the data series. You can either + specify the actual objects, e.g. if you got them from a + "plotclick" event, or you can specify the indices, e.g. + highlight(1, 3) to highlight the fourth point in the second series + (remember, zero-based indexing). + + + - unhighlight(series, datapoint) or unhighlight() + + Remove the highlighting of the point, same parameters as + highlight. + + If you call unhighlight with no parameters, e.g. as + plot.unhighlight(), all current highlights are removed. + + + - setData(data) + + You can use this to reset the data used. Note that axis scaling, + ticks, legend etc. will not be recomputed (use setupGrid() to do + that). You'll probably want to call draw() afterwards. + + You can use this function to speed up redrawing a small plot if + you know that the axes won't change. Put in the new data with + setData(newdata), call draw(), and you're good to go. Note that + for large datasets, almost all the time is consumed in draw() + plotting the data so in this case don't bother. + + + - setupGrid() + + Recalculate and set axis scaling, ticks, legend etc. + + Note that because of the drawing model of the canvas, this + function will immediately redraw (actually reinsert in the DOM) + the labels and the legend, but not the actual tick lines because + they're drawn on the canvas. You need to call draw() to get the + canvas redrawn. + + - draw() + + Redraws the plot canvas. + + - triggerRedrawOverlay() + + Schedules an update of an overlay canvas used for drawing + interactive things like a selection and point highlights. This + is mostly useful for writing plugins. The redraw doesn't happen + immediately, instead a timer is set to catch multiple successive + redraws (e.g. from a mousemove). You can get to the overlay by + setting up a drawOverlay hook. + + - width()/height() + + Gets the width and height of the plotting area inside the grid. + This is smaller than the canvas or placeholder dimensions as some + extra space is needed (e.g. for labels). + + - offset() + + Returns the offset of the plotting area inside the grid relative + to the document, useful for instance for calculating mouse + positions (event.pageX/Y minus this offset is the pixel position + inside the plot). + + - pointOffset({ x: xpos, y: ypos }) + + Returns the calculated offset of the data point at (x, y) in data + space within the placeholder div. If you are working with multiple axes, you + can specify the x and y axis references, e.g. + + o = pointOffset({ x: xpos, y: ypos, xaxis: 2, yaxis: 3 }) + // o.left and o.top now contains the offset within the div + + - resize() + + Tells Flot to resize the drawing canvas to the size of the + placeholder. You need to run setupGrid() and draw() afterwards as + canvas resizing is a destructive operation. This is used + internally by the resize plugin. + + - shutdown() + + Cleans up any event handlers Flot has currently registered. This + is used internally. + + +There are also some members that let you peek inside the internal +workings of Flot which is useful in some cases. Note that if you change +something in the objects returned, you're changing the objects used by +Flot to keep track of its state, so be careful. + + - getData() + + Returns an array of the data series currently used in normalized + form with missing settings filled in according to the global + options. So for instance to find out what color Flot has assigned + to the data series, you could do this: + + var series = plot.getData(); + for (var i = 0; i < series.length; ++i) + alert(series[i].color); + + A notable other interesting field besides color is datapoints + which has a field "points" with the normalized data points in a + flat array (the field "pointsize" is the increment in the flat + array to get to the next point so for a dataset consisting only of + (x,y) pairs it would be 2). + + - getAxes() + + Gets an object with the axes. The axes are returned as the + attributes of the object, so for instance getAxes().xaxis is the + x axis. + + Various things are stuffed inside an axis object, e.g. you could + use getAxes().xaxis.ticks to find out what the ticks are for the + xaxis. Two other useful attributes are p2c and c2p, functions for + transforming from data point space to the canvas plot space and + back. Both returns values that are offset with the plot offset. + Check the Flot source code for the complete set of attributes (or + output an axis with console.log() and inspect it). + + With multiple axes, the extra axes are returned as x2axis, x3axis, + etc., e.g. getAxes().y2axis is the second y axis. You can check + y2axis.used to see whether the axis is associated with any data + points and y2axis.show to see if it is currently shown. + + - getPlaceholder() + + Returns placeholder that the plot was put into. This can be useful + for plugins for adding DOM elements or firing events. + + - getCanvas() + + Returns the canvas used for drawing in case you need to hack on it + yourself. You'll probably need to get the plot offset too. + + - getPlotOffset() + + Gets the offset that the grid has within the canvas as an object + with distances from the canvas edges as "left", "right", "top", + "bottom". I.e., if you draw a circle on the canvas with the center + placed at (left, top), its center will be at the top-most, left + corner of the grid. + + - getOptions() + + Gets the options for the plot, normalized, with default values + filled in. You get a reference to actual values used by Flot, so + if you modify the values in here, Flot will use the new values. + If you change something, you probably have to call draw() or + setupGrid() or triggerRedrawOverlay() to see the change. + + +Hooks +===== + +In addition to the public methods, the Plot object also has some hooks +that can be used to modify the plotting process. You can install a +callback function at various points in the process, the function then +gets access to the internal data structures in Flot. + +Here's an overview of the phases Flot goes through: + + 1. Plugin initialization, parsing options + + 2. Constructing the canvases used for drawing + + 3. Set data: parsing data specification, calculating colors, + copying raw data points into internal format, + normalizing them, finding max/min for axis auto-scaling + + 4. Grid setup: calculating axis spacing, ticks, inserting tick + labels, the legend + + 5. Draw: drawing the grid, drawing each of the series in turn + + 6. Setting up event handling for interactive features + + 7. Responding to events, if any + + 8. Shutdown: this mostly happens in case a plot is overwritten + +Each hook is simply a function which is put in the appropriate array. +You can add them through the "hooks" option, and they are also available +after the plot is constructed as the "hooks" attribute on the returned +plot object, e.g. + + // define a simple draw hook + function hellohook(plot, canvascontext) { alert("hello!"); }; + + // pass it in, in an array since we might want to specify several + var plot = $.plot(placeholder, data, { hooks: { draw: [hellohook] } }); + + // we can now find it again in plot.hooks.draw[0] unless a plugin + // has added other hooks + +The available hooks are described below. All hook callbacks get the +plot object as first parameter. You can find some examples of defined +hooks in the plugins bundled with Flot. + + - processOptions [phase 1] + + function(plot, options) + + Called after Flot has parsed and merged options. Useful in the + instance where customizations beyond simple merging of default + values is needed. A plugin might use it to detect that it has been + enabled and then turn on or off other options. + + + - processRawData [phase 3] + + function(plot, series, data, datapoints) + + Called before Flot copies and normalizes the raw data for the given + series. If the function fills in datapoints.points with normalized + points and sets datapoints.pointsize to the size of the points, + Flot will skip the copying/normalization step for this series. + + In any case, you might be interested in setting datapoints.format, + an array of objects for specifying how a point is normalized and + how it interferes with axis scaling. + + The default format array for points is something along the lines of: + + [ + { x: true, number: true, required: true }, + { y: true, number: true, required: true } + ] + + The first object means that for the first coordinate it should be + taken into account when scaling the x axis, that it must be a + number, and that it is required - so if it is null or cannot be + converted to a number, the whole point will be zeroed out with + nulls. Beyond these you can also specify "defaultValue", a value to + use if the coordinate is null. This is for instance handy for bars + where one can omit the third coordinate (the bottom of the bar) + which then defaults to 0. + + + - processDatapoints [phase 3] + + function(plot, series, datapoints) + + Called after normalization of the given series but before finding + min/max of the data points. This hook is useful for implementing data + transformations. "datapoints" contains the normalized data points in + a flat array as datapoints.points with the size of a single point + given in datapoints.pointsize. Here's a simple transform that + multiplies all y coordinates by 2: + + function multiply(plot, series, datapoints) { + var points = datapoints.points, ps = datapoints.pointsize; + for (var i = 0; i < points.length; i += ps) + points[i + 1] *= 2; + } + + Note that you must leave datapoints in a good condition as Flot + doesn't check it or do any normalization on it afterwards. + + + - drawSeries [phase 5] + + function(plot, canvascontext, series) + + Hook for custom drawing of a single series. Called just before the + standard drawing routine has been called in the loop that draws + each series. + + + - draw [phase 5] + + function(plot, canvascontext) + + Hook for drawing on the canvas. Called after the grid is drawn + (unless it's disabled or grid.aboveData is set) and the series have + been plotted (in case any points, lines or bars have been turned + on). For examples of how to draw things, look at the source code. + + + - bindEvents [phase 6] + + function(plot, eventHolder) + + Called after Flot has setup its event handlers. Should set any + necessary event handlers on eventHolder, a jQuery object with the + canvas, e.g. + + function (plot, eventHolder) { + eventHolder.mousedown(function (e) { + alert("You pressed the mouse at " + e.pageX + " " + e.pageY); + }); + } + + Interesting events include click, mousemove, mouseup/down. You can + use all jQuery events. Usually, the event handlers will update the + state by drawing something (add a drawOverlay hook and call + triggerRedrawOverlay) or firing an externally visible event for + user code. See the crosshair plugin for an example. + + Currently, eventHolder actually contains both the static canvas + used for the plot itself and the overlay canvas used for + interactive features because some versions of IE get the stacking + order wrong. The hook only gets one event, though (either for the + overlay or for the static canvas). + + Note that custom plot events generated by Flot are not generated on + eventHolder, but on the div placeholder supplied as the first + argument to the plot call. You can get that with + plot.getPlaceholder() - that's probably also the one you should use + if you need to fire a custom event. + + + - drawOverlay [phase 7] + + function (plot, canvascontext) + + The drawOverlay hook is used for interactive things that need a + canvas to draw on. The model currently used by Flot works the way + that an extra overlay canvas is positioned on top of the static + canvas. This overlay is cleared and then completely redrawn + whenever something interesting happens. This hook is called when + the overlay canvas is to be redrawn. + + "canvascontext" is the 2D context of the overlay canvas. You can + use this to draw things. You'll most likely need some of the + metrics computed by Flot, e.g. plot.width()/plot.height(). See the + crosshair plugin for an example. + + + - shutdown [phase 8] + + function (plot, eventHolder) + + Run when plot.shutdown() is called, which usually only happens in + case a plot is overwritten by a new plot. If you're writing a + plugin that adds extra DOM elements or event handlers, you should + add a callback to clean up after you. Take a look at the section in + PLUGINS.txt for more info. + + +Plugins +------- + +Plugins extend the functionality of Flot. To use a plugin, simply +include its Javascript file after Flot in the HTML page. + +If you're worried about download size/latency, you can concatenate all +the plugins you use, and Flot itself for that matter, into one big file +(make sure you get the order right), then optionally run it through a +Javascript minifier such as YUI Compressor. + +Here's a brief explanation of how the plugin plumbings work: + +Each plugin registers itself in the global array $.plot.plugins. When +you make a new plot object with $.plot, Flot goes through this array +calling the "init" function of each plugin and merging default options +from the "option" attribute of the plugin. The init function gets a +reference to the plot object created and uses this to register hooks +and add new public methods if needed. + +See the PLUGINS.txt file for details on how to write a plugin. As the +above description hints, it's actually pretty easy. + + +Version number +-------------- + +The version number of Flot is available in $.plot.version. diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/FAQ.txt" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/FAQ.txt" new file mode 100644 index 0000000..e02b761 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/FAQ.txt" @@ -0,0 +1,76 @@ +Frequently asked questions +-------------------------- + +Q: How much data can Flot cope with? + +A: Flot will happily draw everything you send to it so the answer +depends on the browser. The excanvas emulation used for IE (built with +VML) makes IE by far the slowest browser so be sure to test with that +if IE users are in your target group. + +1000 points is not a problem, but as soon as you start having more +points than the pixel width, you should probably start thinking about +downsampling/aggregation as this is near the resolution limit of the +chart anyway. If you downsample server-side, you also save bandwidth. + + +Q: Flot isn't working when I'm using JSON data as source! + +A: Actually, Flot loves JSON data, you just got the format wrong. +Double check that you're not inputting strings instead of numbers, +like [["0", "-2.13"], ["5", "4.3"]]. This is most common mistake, and +the error might not show up immediately because Javascript can do some +conversion automatically. + + +Q: Can I export the graph? + +A: This is a limitation of the canvas technology. There's a hook in +the canvas object for getting an image out, but you won't get the tick +labels. And it's not likely to be supported by IE. At this point, your +best bet is probably taking a screenshot, e.g. with PrtScn. + + +Q: The bars are all tiny in time mode? + +A: It's not really possible to determine the bar width automatically. +So you have to set the width with the barWidth option which is NOT in +pixels, but in the units of the x axis (or the y axis for horizontal +bars). For time mode that's milliseconds so the default value of 1 +makes the bars 1 millisecond wide. + + +Q: Can I use Flot with libraries like Mootools or Prototype? + +A: Yes, Flot supports it out of the box and it's easy! Just use jQuery +instead of $, e.g. call jQuery.plot instead of $.plot and use +jQuery(something) instead of $(something). As a convenience, you can +put in a DOM element for the graph placeholder where the examples and +the API documentation are using jQuery objects. + +Depending on how you include jQuery, you may have to add one line of +code to prevent jQuery from overwriting functions from the other +libraries, see the documentation in jQuery ("Using jQuery with other +libraries") for details. + + +Q: Flot doesn't work with [insert name of Javascript UI framework]! + +A: The only non-standard thing used by Flot is the canvas tag; +otherwise it is simply a series of absolute positioned divs within the +placeholder tag you put in. If this is not working, it's probably +because the framework you're using is doing something weird with the +DOM, or you're using it the wrong way. + +A common problem is that there's display:none on a container until the +user does something. Many tab widgets work this way, and there's +nothing wrong with it - you just can't call Flot inside a display:none +container as explained in the README so you need to hold off the Flot +call until the container is actually displayed (or use +visibility:hidden instead of display:none or move the container +off-screen). + +If you find there's a specific thing we can do to Flot to help, feel +free to submit a bug report. Otherwise, you're welcome to ask for help +on the forum/mailing list, but please don't submit a bug report to +Flot. diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/LICENSE.txt" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/LICENSE.txt" new file mode 100644 index 0000000..07d5b20 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/LICENSE.txt" @@ -0,0 +1,22 @@ +Copyright (c) 2007-2009 IOLA and Ole Laursen + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/Makefile" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/Makefile" new file mode 100644 index 0000000..b300f1a --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/Makefile" @@ -0,0 +1,9 @@ +# Makefile for generating minified files + +.PHONY: all + +# we cheat and process all .js files instead of an exhaustive list +all: $(patsubst %.js,%.min.js,$(filter-out %.min.js,$(wildcard *.js))) + +%.min.js: %.js + yui-compressor $< -o $@ diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/NEWS.txt" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/NEWS.txt" new file mode 100644 index 0000000..5f8e1a0 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/NEWS.txt" @@ -0,0 +1,508 @@ +Flot 0.7 +-------- + +API changes: + +Multiple axes support. Code using dual axes should be changed from +using x2axis/y2axis in the options to using an array (although +backwards-compatibility hooks are in place). For instance, + + { + xaxis: { ... }, x2axis: { ... }, + yaxis: { ... }, y2axis: { ... } + } + +becomes + + { + xaxes: [ { ... }, { ... } ], + yaxes: [ { ... }, { ... } ] + } + +Note that if you're just using one axis, continue to use the +xaxis/yaxis directly (it now sets the default settings for the +arrays). Plugins touching the axes must be ported to take the extra +axes into account, check the source to see some examples. + +A related change is that the visibility of axes is now auto-detected. +So if you were relying on an axis to show up even without any data in +the chart, you now need to set the axis "show" option explicitly. + +"tickColor" on the grid options is now deprecated in favour of a +corresponding option on the axes, so { grid: { tickColor: "#000" }} +becomes { xaxis: { tickColor: "#000"}, yaxis: { tickColor: "#000"} }, +but if you just configure a base color Flot will now autogenerate a +tick color by adding transparency. Backwards-compatibility hooks are +in place. + +Final note: now that IE 9 is coming out with canvas support, you may +want to adapt the excanvas include to skip loading it in IE 9 (the +examples have been adapted thanks to Ryley Breiddal). An alternative +to excanvas using Flash has also surfaced, if your graphs are slow in +IE, you may want to give it a spin: + + http://code.google.com/p/flashcanvas/ + + +Changes: + +- Support for specifying a bottom for each point for line charts when + filling them, this means that an arbitrary bottom can be used + instead of just the x axis (based on patches patiently provided by + Roman V. Prikhodchenko). +- New fillbetween plugin that can compute a bottom for a series from + another series, useful for filling areas between lines (see new + example percentiles.html for a use case). +- More predictable handling of gaps for the stacking plugin, now all + undefined ranges are skipped. +- Stacking plugin can stack horizontal bar charts. +- Navigate plugin now redraws the plot while panning instead of only + after the fact (can be disabled by setting the pan.frameRate option + to null), raised by lastthemy (issue 235). +- Date formatter now accepts %0m and %0d to get a zero-padded month or + day (issue raised by Maximillian Dornseif). +- Revamped internals to support an unlimited number of axes, not just + dual (sponsored by Flight Data Services, + www.flightdataservices.com). +- New setting on axes, "tickLength", to control the size of ticks or + turn them off without turning off the labels. +- Axis labels are now put in container divs with classes, for instance + labels in the x axes can be reached via ".xAxis .tickLabel". +- Support for setting the color of an axis (sponsored by Flight Data + Services, www.flightdataservices.com). +- Tick color is now auto-generated as the base color with some + transparency (unless you override it). +- Support for aligning ticks in the axes with "alignTicksWithAxis" to + ensure that they appear next to each other rather than in between, + at the expense of possibly awkward tick steps (sponsored by Flight + Data Services, www.flightdataservices.com). +- Support for customizing the point type through a callback when + plotting points and new symbol plugin with some predefined point + types (sponsored by Utility Data Corporation). +- Resize plugin for automatically redrawing when the placeholder + changes size, e.g. on window resizes (sponsored by Novus Partners). + A resize() method has been added to plot object facilitate this. +- Support Infinity/-Infinity for plotting asymptotes by hacking it + into +/-Number.MAX_VALUE (reported by rabaea.mircea). +- Support for restricting navigate plugin to not pan/zoom an axis (based + on patch by kkaefer). +- Support for providing the drag cursor for the navigate plugin as an + option (based on patch by Kelly T. Moore). +- Options for controlling whether an axis is shown or not (suggestion + by Timo Tuominen) and whether to reserve space for it even if it + isn't shown. +- New attribute $.plot.version with the Flot version as a string. +- The version comment is now included in the minified jquery.flot.min.js. +- New options.grid.minBorderMargin for adjusting the minimum margin + provided around the border (based on patch by corani, issue 188). +- Refactor replot behaviour so Flot tries to reuse the existing + canvas, adding shutdown() methods to the plot (based on patch by + Ryley Breiddal, issue 269). This prevents a memory leak in Chrome + and hopefully makes replotting faster for those who are using $.plot + instead of .setData()/.draw(). Also update jQuery to 1.5.1 to + prevent IE leaks fixed in jQuery. +- New real-time line chart example. + +- New hooks: drawSeries, shutdown + +Bug fixes: + +- Fixed problem with findNearbyItem and bars on top of each other + (reported by ragingchikn, issue 242). +- Fixed problem with ticks and the border (based on patch from + ultimatehustler69, issue 236). +- Fixed problem with plugins adding options to the series objects. +- Fixed a problem introduced in 0.6 with specifying a gradient with { + brightness: x, opacity: y }. +- Don't use $.browser.msie, check for getContext on the created canvas + element instead and try to use excanvas if it's not found (fixes IE + 9 compatibility). +- highlight(s, index) was looking up the point in the original s.data + instead of in the computed datapoints array, which breaks with + plugins that modify the datapoints (such as the stacking plugin). + Issue 316 reported by curlypaul924. +- More robust handling of axis from data passed in from getData() + (problem reported by Morgan). +- Fixed problem with turning off bar outline (issue 253, fix by Jordi + Castells). +- Check the selection passed into setSelection in the selection + plugin, to guard against errors when synchronizing plots (fix by Lau + Bech Lauritzen). +- Fix bug in crosshair code with mouseout resetting the crosshair even + if it is locked (fix by Lau Bech Lauritzen and Banko Adam). +- Fix bug with points plotting using line width from lines rather than + points. +- Fix bug with passing non-array 0 data (for plugins that don't expect + arrays, patch by vpapp1). +- Fix errors in JSON in examples so they work with jQuery 1.4.2 + (fix reported by honestbleeps, issue 357). +- Fix bug with tooltip in interacting.html, this makes the tooltip + much smoother (fix by bdkahn). Fix related bug inside highlighting + handler in Flot. +- Use closure trick to make inline colorhelpers plugin respect + jQuery.noConflict(true), renaming the global jQuery object (reported + by Nick Stielau). +- Listen for mouseleave events and fire a plothover event with empty + item when it occurs to drop highlights when the mouse leaves the + plot (reported by by outspirit). +- Fix bug with using aboveData with a background (reported by + amitayd). +- Fix possible excanvas leak (report and suggested fix by tom9729). +- Fix bug with backwards compatibility for shadowSize = 0 (report and + suggested fix by aspinak). +- Adapt examples to skip loading excanvas (fix by Ryley Breiddal). +- Fix bug that prevent a simple f(x) = -x transform from working + correctly (fix by Mike, issue 263). +- Fix bug in restoring cursor in navigate plugin (reported by Matteo + Gattanini, issue 395). +- Fix bug in picking items when transform/inverseTransform is in use + (reported by Ofri Raviv, and patches and analysis by Jan and Tom + Paton, issue 334 and 467). +- Fix problem with unaligned ticks and hover/click events caused by + padding on the placeholder by hardcoding the placeholder padding to + 0 (reported by adityadineshsaxena, Matt Sommer, Daniel Atos and some + other people, issue 301). +- Update colorhelpers plugin to avoid dying when trying to parse an + invalid string (reported by cadavor, issue 483). + + +Flot 0.6 +-------- + +API changes: + +1. Selection support has been moved to a plugin. Thus if you're +passing selection: { mode: something }, you MUST include the file +jquery.flot.selection.js after jquery.flot.js. This reduces the size +of base Flot and makes it easier to customize the selection as well as +improving code clarity. The change is based on a patch from andershol. + +2. In the global options specified in the $.plot command, +"lines", "points", "bars" and "shadowSize" have been moved to a +sub-object called "series", i.e. + + $.plot(placeholder, data, { lines: { show: true }}) + +should be changed to + + $.plot(placeholder, data, { series: { lines: { show: true }}}) + +All future series-specific options will go into this sub-object to +simplify plugin writing. Backward-compatibility code is in place, so +old code should not break. + +3. "plothover" no longer provides the original data point, but instead +a normalized one, since there may be no corresponding original point. + +4. Due to a bug in previous versions of jQuery, you now need at least +jQuery 1.2.6. But if you can, try jQuery 1.3.2 as it got some +improvements in event handling speed. + + +Changes: + +- Added support for disabling interactivity for specific data series + (request from Ronald Schouten and Steve Upton). + +- Flot now calls $() on the placeholder and optional legend container + passed in so you can specify DOM elements or CSS expressions to make + it easier to use Flot with libraries like Prototype or Mootools or + through raw JSON from Ajax responses. + +- A new "plotselecting" event is now emitted while the user is making + a selection. + +- The "plothover" event is now emitted immediately instead of at most + 10 times per second, you'll have to put in a setTimeout yourself if + you're doing something really expensive on this event. + +- The built-in date formatter can now be accessed as + $.plot.formatDate(...) (suggestion by Matt Manela) and even + replaced. + +- Added "borderColor" option to the grid (patch from Amaury Chamayou + and patch from Mike R. Williamson). + +- Added support for gradient backgrounds for the grid, take a look at + the "setting options" example (based on patch from Amaury Chamayou, + issue 90). + +- Gradient bars (suggestion by stefpet). + +- Added a "plotunselected" event which is triggered when the selection + is removed, see "selection" example (suggestion by Meda Ugo); + +- The option legend.margin can now specify horizontal and vertical + margins independently (suggestion by someone who's annoyed). + +- Data passed into Flot is now copied to a new canonical format to + enable further processing before it hits the drawing routines. As a + side-effect, this should make Flot more robust in the face of bad + data (and fixes issue 112). + +- Step-wise charting: line charts have a new option "steps" that when + set to true connects the points with horizontal/vertical steps + instead of diagonal lines. + +- The legend labelFormatter now passes the series in addition to just + the label (suggestion by Vincent Lemeltier). + +- Horizontal bars (based on patch by Jason LeBrun). + +- Support for partial bars by specifying a third coordinate, i.e. they + don't have to start from the axis. This can be used to make stacked + bars. + +- New option to disable the (grid.show). + +- Added pointOffset method for converting a point in data space to an + offset within the placeholder. + +- Plugin system: register an init method in the $.flot.plugins array + to get started, see PLUGINS.txt for details on how to write plugins + (it's easy). There are also some extra methods to enable access to + internal state. + +- Hooks: you can register functions that are called while Flot is + crunching the data and doing the plot. This can be used to modify + Flot without changing the source, useful for writing plugins. Some + hooks are defined, more are likely to come. + +- Threshold plugin: you can set a threshold and a color, and the data + points below that threshold will then get the color. Useful for + marking data below 0, for instance. + +- Stack plugin: you can specify a stack key for each series to have + them summed. This is useful for drawing additive/cumulative graphs + with bars and (currently unfilled) lines. + +- Crosshairs plugin: trace the mouse position on the axes, enable with + crosshair: { mode: "x"} (see the new tracking example for a use). + +- Image plugin: plot prerendered images. + +- Navigation plugin for panning and zooming a plot. + +- More configurable grid. + +- Axis transformation support, useful for non-linear plots, e.g. log + axes and compressed time axes (like omitting weekends). + +- Support for twelve-hour date formatting (patch by Forrest Aldridge). + +- The color parsing code in Flot has been cleaned up and split out so + it's now available as a separate jQuery plugin. It's included inline + in the Flot source to make dependency managing easier. This also + makes it really easy to use the color helpers in Flot plugins. + +Bug fixes: + +- Fixed two corner-case bugs when drawing filled curves (report and + analysis by Joshua Varner). +- Fix auto-adjustment code when setting min to 0 for an axis where the + dataset is completely flat on that axis (report by chovy). +- Fixed a bug with passing in data from getData to setData when the + secondary axes are used (issue 65, reported by nperelman). +- Fixed so that it is possible to turn lines off when no other chart + type is shown (based on problem reported by Glenn Vanderburg), and + fixed so that setting lineWidth to 0 also hides the shadow (based on + problem reported by Sergio Nunes). +- Updated mousemove position expression to the latest from jQuery (bug + reported by meyuchas). +- Use CSS borders instead of background in legend (fix printing issue 25 + and 45). +- Explicitly convert axis min/max to numbers. +- Fixed a bug with drawing marking lines with different colors + (reported by Khurram). +- Fixed a bug with returning y2 values in the selection event (fix + by exists, issue 75). +- Only set position relative on placeholder if it hasn't already a + position different from static (reported by kyberneticist, issue 95). +- Don't round markings to prevent sub-pixel problems (reported by Dan + Lipsitt). +- Make the grid border act similarly to a regular CSS border, i.e. + prevent it from overlapping the plot itself. This also fixes a + problem with anti-aliasing when the width is 1 pixel (reported by + Anthony Ettinger). +- Imported version 3 of excanvas and fixed two issues with the newer + version. Hopefully, this will make Flot work with IE8 (nudge by + Fabien Menager, further analysis by Booink, issue 133). +- Changed the shadow code for lines to hopefully look a bit better + with vertical lines. +- Round tick positions to avoid possible problems with fractions + (suggestion by Fred, issue 130). +- Made the heuristic for determining how many ticks to aim for a bit + smarter. +- Fix for uneven axis margins (report and patch by Paul Kienzle) and + snapping to ticks (concurrent report and patch by lifthrasiir). +- Fixed bug with slicing in findNearbyItems (patch by zollman). +- Make heuristic for x axis label widths more dynamic (patch by + rickinhethuis). +- Make sure points on top take precedence when finding nearby points + when hovering (reported by didroe, issue 224). + +Flot 0.5 +-------- + +Backwards API change summary: Timestamps are now in UTC. Also +"selected" event -> becomes "plotselected" with new data, the +parameters for setSelection are now different (but backwards +compatibility hooks are in place), coloredAreas becomes markings with +a new interface (but backwards compatibility hooks are in place). + + +Interactivity: added a new "plothover" event and this and the +"plotclick" event now returns the closest data item (based on patch by +/david, patch by Mark Byers for bar support). See the revamped +"interacting with the data" example for some hints on what you can do. + +Highlighting: you can now highlight points and datapoints are +autohighlighted when you hover over them (if hovering is turned on). + +Support for dual axis has been added (based on patch by someone who's +annoyed and /david). For each data series you can specify which axes +it belongs to, and there are two more axes, x2axis and y2axis, to +customize. This affects the "selected" event which has been renamed to +"plotselected" and spews out { xaxis: { from: -10, to: 20 } ... }, +setSelection in which the parameters are on a new form (backwards +compatible hooks are in place so old code shouldn't break) and +markings (formerly coloredAreas). + +Timestamps in time mode are now displayed according to +UTC instead of the time zone of the visitor. This affects the way the +timestamps should be input; you'll probably have to offset the +timestamps according to your local time zone. It also affects any +custom date handling code (which basically now should use the +equivalent UTC date mehods, e.g. .setUTCMonth() instead of +.setMonth(). + +Added support for specifying the size of tick labels (axis.labelWidth, +axis.labelHeight). Useful for specifying a max label size to keep +multiple plots aligned. + +Markings, previously coloredAreas, are now specified as ranges on the +axes, like { xaxis: { from: 0, to: 10 }}. Furthermore with markings +you can now draw horizontal/vertical lines by setting from and to to +the same coordinate (idea from line support patch by by Ryan Funduk). + +The "fill" option can now be a number that specifies the opacity of +the fill. + +You can now specify a coordinate as null (like [2, null]) and Flot +will take the other coordinate into account when scaling the axes +(based on patch by joebno). + +New option for bars "align". Set it to "center" to center the bars on +the value they represent. + +setSelection now takes a second parameter which you can use to prevent +the method from firing the "plotselected" handler. + +Using the "container" option in legend now overwrites the container +element instead of just appending to it (fixes infinite legend bug, +reported by several people, fix by Brad Dewey). + +Fixed a bug in calculating spacing around the plot (reported by +timothytoe). Fixed a bug in finding max values for all-negative data +sets. Prevent the possibility of eternal looping in tick calculations. +Fixed a bug when borderWidth is set to 0 (reported by +Rob/sanchothefat). Fixed a bug with drawing bars extending below 0 +(reported by James Hewitt, patch by Ryan Funduk). Fixed a +bug with line widths of bars (reported by MikeM). Fixed a bug with +'nw' and 'sw' legend positions. Improved the handling of axis +auto-scaling with bars. Fixed a bug with multi-line x-axis tick +labels (reported by Luca Ciano). IE-fix help by Savage Zhang. + + +Flot 0.4 +-------- + +API changes: deprecated axis.noTicks in favor of just specifying the +number as axis.ticks. So "xaxis: { noTicks: 10 }" becomes +"xaxis: { ticks: 10 }" + +Time series support. Specify axis.mode: "time", put in Javascript +timestamps as data, and Flot will automatically spit out sensible +ticks. Take a look at the two new examples. The format can be +customized with axis.timeformat and axis.monthNames, or if that fails +with axis.tickFormatter. + +Support for colored background areas via grid.coloredAreas. Specify an +array of { x1, y1, x2, y2 } objects or a function that returns these +given { xmin, xmax, ymin, ymax }. + +More members on the plot object (report by Chris Davies and others). +"getData" for inspecting the assigned settings on data series (e.g. +color) and "setData", "setupGrid" and "draw" for updating the contents +without a total replot. + +The default number of ticks to aim for is now dependent on the size of +the plot in pixels. Support for customizing tick interval sizes +directly with axis.minTickSize and axis.tickSize. + +Cleaned up the automatic axis scaling algorithm and fixed how it +interacts with ticks. Also fixed a couple of tick-related corner case +bugs (one reported by mainstreetmark, another reported by timothytoe). + +The option axis.tickFormatter now takes a function with two +parameters, the second parameter is an optional object with +information about the axis. It has min, max, tickDecimals, tickSize. + +Added support for segmented lines (based on patch from Michael +MacDonald) and for ignoring null and bad values (suggestion from Nick +Konidaris and joshwaihi). + +Added support for changing the border width (joebno and safoo). +Label colors can be changed via CSS by selecting the tickLabel class. + +Fixed a bug in handling single-item bar series (reported by Emil +Filipov). Fixed erratic behaviour when interacting with the plot +with IE 7 (reported by Lau Bech Lauritzen). Prevent IE/Safari text +selection when selecting stuff on the canvas. + + + +Flot 0.3 +-------- + +This is mostly a quick-fix release because jquery.js wasn't included +in the previous zip/tarball. + +Support clicking on the plot. Turn it on with grid: { clickable: true }, +then you get a "plotclick" event on the graph placeholder with the +position in units of the plot. + +Fixed a bug in dealing with data where min = max, thanks to Michael +Messinides. + +Include jquery.js in the zip/tarball. + + +Flot 0.2 +-------- + +Added support for putting a background behind the default legend. The +default is the partly transparent background color. Added +backgroundColor and backgroundOpacity to the legend options to control +this. + +The ticks options can now be a callback function that takes one +parameter, an object with the attributes min and max. The function +should return a ticks array. + +Added labelFormatter option in legend, useful for turning the legend +labels into links. + +Fixed a couple of bugs. + +The API should now be fully documented. + +Patch from Guy Fraser to make parts of the code smaller. + +API changes: Moved labelMargin option to grid from x/yaxis. + + +Flot 0.1 +-------- + +First public release. diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/PLUGINS.txt" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/PLUGINS.txt" new file mode 100644 index 0000000..af3d90b --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/PLUGINS.txt" @@ -0,0 +1,137 @@ +Writing plugins +--------------- + +All you need to do to make a new plugin is creating an init function +and a set of options (if needed), stuffing it into an object and +putting it in the $.plot.plugins array. For example: + + function myCoolPluginInit(plot) { + plot.coolstring = "Hello!"; + }; + + $.plot.plugins.push({ init: myCoolPluginInit, options: { ... } }); + + // if $.plot is called, it will return a plot object with the + // attribute "coolstring" + +Now, given that the plugin might run in many different places, it's +a good idea to avoid leaking names. The usual trick here is wrap the +above lines in an anonymous function which is called immediately, like +this: (function () { inner code ... })(). To make it even more robust +in case $ is not bound to jQuery but some other Javascript library, we +can write it as + + (function ($) { + // plugin definition + // ... + })(jQuery); + +There's a complete example below, but you should also check out the +plugins bundled with Flot. + + +Complete example +---------------- + +Here is a simple debug plugin which alerts each of the series in the +plot. It has a single option that control whether it is enabled and +how much info to output: + + (function ($) { + function init(plot) { + var debugLevel = 1; + + function checkDebugEnabled(plot, options) { + if (options.debug) { + debugLevel = options.debug; + + plot.hooks.processDatapoints.push(alertSeries); + } + } + + function alertSeries(plot, series, datapoints) { + var msg = "series " + series.label; + if (debugLevel > 1) + msg += " with " + series.data.length + " points"; + alert(msg); + } + + plot.hooks.processOptions.push(checkDebugEnabled); + } + + var options = { debug: 0 }; + + $.plot.plugins.push({ + init: init, + options: options, + name: "simpledebug", + version: "0.1" + }); + })(jQuery); + +We also define "name" and "version". It's not used by Flot, but might +be helpful for other plugins in resolving dependencies. + +Put the above in a file named "jquery.flot.debug.js", include it in an +HTML page and then it can be used with: + + $.plot($("#placeholder"), [...], { debug: 2 }); + +This simple plugin illustrates a couple of points: + + - It uses the anonymous function trick to avoid name pollution. + - It can be enabled/disabled through an option. + - Variables in the init function can be used to store plot-specific + state between the hooks. + +The two last points are important because there may be multiple plots +on the same page, and you'd want to make sure they are not mixed up. + + +Shutting down a plugin +---------------------- + +Each plot object has a shutdown hook which is run when plot.shutdown() +is called. This usually mostly happens in case another plot is made on +top of an existing one. + +The purpose of the hook is to give you a chance to unbind any event +handlers you've registered and remove any extra DOM things you've +inserted. + +The problem with event handlers is that you can have registered a +handler which is run in some point in the future, e.g. with +setTimeout(). Meanwhile, the plot may have been shutdown and removed, +but because your event handler is still referencing it, it can't be +garbage collected yet, and worse, if your handler eventually runs, it +may overwrite stuff on a completely different plot. + + +Some hints on the options +------------------------- + +Plugins should always support appropriate options to enable/disable +them because the plugin user may have several plots on the same page +where only one should use the plugin. In most cases it's probably a +good idea if the plugin is turned off rather than on per default, just +like most of the powerful features in Flot. + +If the plugin needs options that are specific to each series, like the +points or lines options in core Flot, you can put them in "series" in +the options object, e.g. + + var options = { + series: { + downsample: { + algorithm: null, + maxpoints: 1000 + } + } + } + +Then they will be copied by Flot into each series, providing default +values in case none are specified. + +Think hard and long about naming the options. These names are going to +be public API, and code is going to depend on them if the plugin is +successful. diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/README.txt" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/README.txt" new file mode 100644 index 0000000..1e49787 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/README.txt" @@ -0,0 +1,90 @@ +About +----- + +Flot is a Javascript plotting library for jQuery. Read more at the +website: + + http://code.google.com/p/flot/ + +Take a look at the examples linked from above, they should give a good +impression of what Flot can do and the source code of the examples is +probably the fastest way to learn how to use Flot. + + +Installation +------------ + +Just include the Javascript file after you've included jQuery. + +Generally, all browsers that support the HTML5 canvas tag are +supported. + +For support for Internet Explorer < 9, you can use Excanvas, a canvas +emulator; this is used in the examples bundled with Flot. You just +include the excanvas script like this: + + + +If it's not working on your development IE 6.0, check that it has +support for VML which Excanvas is relying on. It appears that some +stripped down versions used for test environments on virtual machines +lack the VML support. + +You can also try using Flashcanvas (see +http://code.google.com/p/flashcanvas/), which uses Flash to do the +emulation. Although Flash can be a bit slower to load than VML, if +you've got a lot of points, the Flash version can be much faster +overall. Flot contains some wrapper code for activating Excanvas which +Flashcanvas is compatible with. + +You need at least jQuery 1.2.6, but try at least 1.3.2 for interactive +charts because of performance improvements in event handling. + + +Basic usage +----------- + +Create a placeholder div to put the graph in: + +
    + +You need to set the width and height of this div, otherwise the plot +library doesn't know how to scale the graph. You can do it inline like +this: + +
    + +You can also do it with an external stylesheet. Make sure that the +placeholder isn't within something with a display:none CSS property - +in that case, Flot has trouble measuring label dimensions which +results in garbled looks and might have trouble measuring the +placeholder dimensions which is fatal (it'll throw an exception). + +Then when the div is ready in the DOM, which is usually on document +ready, run the plot function: + + $.plot($("#placeholder"), data, options); + +Here, data is an array of data series and options is an object with +settings if you want to customize the plot. Take a look at the +examples for some ideas of what to put in or look at the reference +in the file "API.txt". Here's a quick example that'll draw a line from +(0, 0) to (1, 1): + + $.plot($("#placeholder"), [ [[0, 0], [1, 1]] ], { yaxis: { max: 1 } }); + +The plot function immediately draws the chart and then returns a plot +object with a couple of methods. + + +What's with the name? +--------------------- + +First: it's pronounced with a short o, like "plot". Not like "flawed". + +So "Flot" rhymes with "plot". + +And if you look up "flot" in a Danish-to-English dictionary, some up +the words that come up are "good-looking", "attractive", "stylish", +"smart", "impressive", "extravagant". One of the main goals with Flot +is pretty looks. diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/ajax.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/ajax.html" new file mode 100644 index 0000000..9b5ec85 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/ajax.html" @@ -0,0 +1,143 @@ + + + + + Flot Examples + + + + + + +

    Flot Examples

    + +
    + +

    Example of loading data dynamically with AJAX. Percentage change in GDP (source: Eurostat). Click the buttons below.

    + +

    The data is fetched over HTTP, in this case directly from text + files. Usually the URL would point to some web server handler + (e.g. a PHP page or Java/.NET/Python/Ruby on Rails handler) that + extracts it from a database and serializes it to JSON.

    + +

    + - + data - + +

    + +

    + - + data - + +

    + +

    + - + data - + +

    + +

    If you combine AJAX with setTimeout, you can poll the server + for new data.

    + +

    + +

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/annotating.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/annotating.html" new file mode 100644 index 0000000..72c212b --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/annotating.html" @@ -0,0 +1,75 @@ + + + + + Flot Examples + + + + + + +

    Flot Examples

    + +
    + +

    Flot has support for simple background decorations such as + lines and rectangles. They can be useful for marking up certain + areas. You can easily add any HTML you need with standard DOM + manipulation, e.g. for labels. For drawing custom shapes there is + also direct access to the canvas.

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/arrow-down.gif" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/arrow-down.gif" new file mode 100644 index 0000000000000000000000000000000000000000..e239d11aa65b7f9e65978ea1306ee0d8562ff66e GIT binary patch literal 916 zcmV;F18e+8Nk%w1VG{ro0Ouh9000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~A^8LW3IP8AEC2ui022Tc000Pa0RIUbNU)&6fAjPm6sT|B!A!#L6}%@b z(?VdGGWn8t&sRoZ3)f}LNNZ%KbqoKEGC6Wo%74sQW@PrVp3F@3UjA#vvX#z%*jQrw q$&V$!pZ{)+yoK~%xRK$S{@avklhl70K}r>g@~Y3P2*K(M2mm{w^}*Nx literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/arrow-left.gif" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/arrow-left.gif" new file mode 100644 index 0000000000000000000000000000000000000000..93ffd5a9e0ddd08a790c3da95a228b2235aae7f7 GIT binary patch literal 891 zcmV->1BCoXNk%w1VG{ro0Ow}_000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~A^8LW3IP8AEC2ui022Tc000PB0RIUbNU)&6g9sBUT!?TU!-4C7Wzxs6 z96ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~A^8LW3IP8AEC2ui022Tc000PH0RIUbNU)&6g9sBU95`>`L4BEkt#e3F zSf)&)nAM|r@1n<6*!V5<<+0?ga0xq>EV)VIL0T(gwrV&~Wz0-1Cl(|b^CUu>7eR_l XXc41EhY(#-{6}-C)2C1s1_S^*=cTQ_ literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/arrow-up.gif" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/arrow-up.gif" new file mode 100644 index 0000000000000000000000000000000000000000..7d196267ebff0e127db6ad9a4fc42a75ff7a348e GIT binary patch literal 916 zcmV;F18e+8Nk%w1VG{ro0Ox@K000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~A^8LW3IP8AEC2ui022Tc000Pa0RIUbNU)&6gYyn59N221!gZO}IW!0? z6R?Q|H)Yy{abUPiAj5V1cMD{uTOIkC1j!F0ww0N%VQdAnp~HGGLDqA~EN3QW4oCSM qwGg67S}P?UteDByy?^(7fxLJyldz`*?+MF + + + + Flot Examples + + + + + + +

    Flot Examples

    + +
    + +

    Simple example. You don't need to specify much to get an + attractive look. Put in a placeholder, make sure you set its + dimensions (otherwise the plot library will barf) and call the + plot function with the data. The axes are automatically + scaled.

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-1.json" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-1.json" new file mode 100644 index 0000000..51952cf --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-1.json" @@ -0,0 +1,4 @@ +{ + "label": "Europe (EU27)", + "data": [[1999, 3.0], [2000, 3.9]] +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-2.json" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-2.json" new file mode 100644 index 0000000..82004d6 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-2.json" @@ -0,0 +1,4 @@ +{ + "label": "Europe (EU27)", + "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2]] +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-3.json" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-3.json" new file mode 100644 index 0000000..8684479 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-3.json" @@ -0,0 +1,4 @@ +{ + "label": "Europe (EU27)", + "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5]] +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-4.json" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-4.json" new file mode 100644 index 0000000..b363578 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-4.json" @@ -0,0 +1,4 @@ +{ + "label": "Europe (EU27)", + "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1]] +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-5.json" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-5.json" new file mode 100644 index 0000000..a7e1e13 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth-5.json" @@ -0,0 +1,4 @@ +{ + "label": "Europe (EU27)", + "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1], [2007, 2.9], [2008, 0.9]] +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth.json" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth.json" new file mode 100644 index 0000000..a7e1e13 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-eu-gdp-growth.json" @@ -0,0 +1,4 @@ +{ + "label": "Europe (EU27)", + "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1], [2007, 2.9], [2008, 0.9]] +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-japan-gdp-growth.json" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-japan-gdp-growth.json" new file mode 100644 index 0000000..855477c --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-japan-gdp-growth.json" @@ -0,0 +1,4 @@ +{ + "label": "Japan", + "data": [[1999, -0.1], [2000, 2.9], [2001, 0.2], [2002, 0.3], [2003, 1.4], [2004, 2.7], [2005, 1.9], [2006, 2.0], [2007, 2.3], [2008, -0.7]] +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-usa-gdp-growth.json" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-usa-gdp-growth.json" new file mode 100644 index 0000000..33f66c6 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/data-usa-gdp-growth.json" @@ -0,0 +1,4 @@ +{ + "label": "USA", + "data": [[1999, 4.4], [2000, 3.7], [2001, 0.8], [2002, 1.6], [2003, 2.5], [2004, 3.6], [2005, 2.9], [2006, 2.8], [2007, 2.0], [2008, 1.1]] +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/graph-types.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/graph-types.html" new file mode 100644 index 0000000..dd21a31 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/graph-types.html" @@ -0,0 +1,75 @@ + + + + + Flot Examples + + + + + + +

    Flot Examples

    + +
    + +

    Flot supports lines, points, filled areas, bars and any + combinations of these, in the same plot and even on the same data + series.

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/hs-2004-27-a-large_web.jpg" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/hs-2004-27-a-large_web.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..a1d5c05837576a37a8a7631d8549472154a74807 GIT binary patch literal 34489 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 K0Y!iSAOG38#4Yy# literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/image.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/image.html" new file mode 100644 index 0000000..073ad43 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/image.html" @@ -0,0 +1,45 @@ + + + + + Flot Examples + + + + + + + +

    Flot Examples

    + +
    + +

    The Cat's Eye Nebula (picture from Hubble).

    + +

    With the image plugin, you can plot images. This is for example + useful for getting ticks on complex prerendered visualizations. + Instead of inputting data points, you put in the images and where + their two opposite corners are supposed to be in plot space.

    + +

    Images represent a little further complication because you need + to make sure they are loaded before you can use them (Flot skips + incomplete images). The plugin comes with a couple of helpers + for doing that.

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/index.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/index.html" new file mode 100644 index 0000000..f24f750 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/index.html" @@ -0,0 +1,44 @@ + + + + + Flot Examples + + + +

    Flot Examples

    + +

    Here are some examples for Flot, the Javascript charting library for jQuery:

    + + + +

    Being interactive:

    + + + +

    Various features:

    + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/interacting-axes.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/interacting-axes.html" new file mode 100644 index 0000000..5b6e3bb --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/interacting-axes.html" @@ -0,0 +1,97 @@ + + + + + Flot Examples + + + + + + +

    Flot Examples

    + +
    + +

    With multiple axes, you sometimes need to interact with them. A + simple way to do this is to draw the plot, deduce the axis + placements and insert a couple of divs on top to catch events. + Try clicking an axis.

    + +

    + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/interacting.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/interacting.html" new file mode 100644 index 0000000..d04eedd --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/interacting.html" @@ -0,0 +1,93 @@ + + + + + Flot Examples + + + + + + +

    Flot Examples

    + +
    + +

    One of the goals of Flot is to support user interactions. Try + pointing and clicking on the points.

    + +

    Mouse hovers at + (0, 0).

    + +

    A tooltip is easy to build with a bit of jQuery code and the + data returned from the plot.

    + +

    Enable tooltip

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/layout.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/layout.css" new file mode 100644 index 0000000..7ef7dd4 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/layout.css" @@ -0,0 +1,6 @@ +body { + font-family: sans-serif; + font-size: 16px; + margin: 50px; + max-width: 800px; +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/multiple-axes.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/multiple-axes.html" new file mode 100644 index 0000000..4b32e64 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/multiple-axes.html" @@ -0,0 +1,60 @@ + + + + + Flot Examples + + + + + + +

    Flot Examples

    + +
    + +

    Multiple axis support showing the raw oil price in US $/barrel of + crude oil vs. the exchange rate from US $ to €.

    + +

    As illustrated, you can put in multiple axes if you + need to. For each data series, simply specify the axis number. + In the options, you can then configure where you want the extra + axes to appear.

    + +

    Position axis or .

    + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/navigate.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/navigate.html" new file mode 100644 index 0000000..c916ef2 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/navigate.html" @@ -0,0 +1,118 @@ + + + + + Flot Examples + + + + + + + + +

    Flot Examples

    + +
    + +

    + +

    With the navigate plugin it is easy to add panning and zooming. + Drag to pan, double click to zoom (or use the mouse scrollwheel).

    + +

    The plugin fires events (useful for synchronizing several + plots) and adds a couple of public methods so you can easily build + a little user interface around it, like the little buttons at the + top right in the plot.

    + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/percentiles.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/percentiles.html" new file mode 100644 index 0000000..9f2ba3a --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/percentiles.html" @@ -0,0 +1,57 @@ + + + + + Flot Examples + + + + + + + +

    Flot Examples

    + +
    + +

    Height in centimeters of individuals from the US (2003-2006) as function of + age in years (source: CDC). + The 15%-85%, 25%-75% and 50% percentiles are indicated.

    + +

    For each point of a filled curve, you can specify an arbitrary + bottom. As this example illustrates, this can be useful for + plotting percentiles. If you have the data sets available without + appropriate fill bottoms, you can use the fillbetween plugin to + compute the data point bottoms automatically.

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/pie.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/pie.html" new file mode 100644 index 0000000..77fb141 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/pie.html" @@ -0,0 +1,756 @@ + + + + + Flot Pie Examples + + + + + + + + + +

    Flot Pie Examples

    + +

    Default with Legend

    +
    + + +

    Default without Legend

    +
    + + +

    Graph2

    +
    + + +

    Graph3

    +
    + + +

    Graph4

    +
    + + +

    Graph5

    +
    + + +

    Graph6

    +
    + + +

    Graph7

    +
    + + +

    Graph8

    +
    + + +

    Graph9

    +
    + + +

    Donut

    +
    + + +

    Interactive

    +
    + + +

    Pie Options

    +
      +
    • option: default value - Description of option
    • +
    • show: false - Enable the plugin and draw as a pie.
    • +
    • radius: 'auto' - Sets the radius of the pie. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the available space (size of the container), otherwise it will use the value as a direct pixel length. If set to 'auto', it will be set to 1 if the legend is enabled and 3/4 if not.
    • +
    • innerRadius: 0 - Sets the radius of the donut hole. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the radius, otherwise it will use the value as a direct pixel length.
    • +
    • startAngle: 3/2 - Factor of PI used for the starting angle (in radians) It can range between 0 and 2 (where 0 and 2 have the same result).
    • +
    • tilt: 1 - Percentage of tilt ranging from 0 and 1, where 1 has no change (fully vertical) and 0 is completely flat (fully horizontal -- in which case nothing actually gets drawn).
    • +
    • offset:
        +
      • top: 0 - Pixel distance to move the pie up and down (relative to the center).
      • +
      • left: 'auto' - Pixel distance to move the pie left and right (relative to the center).
      • +
      +
    • stroke:
        +
      • color: '#FFF' - Color of the border of each slice. Hexadecimal color definitions are prefered (other formats may or may not work).
      • +
      • width: 1 - Pixel width of the border of each slice.
      • +
      +
    • label:
        +
      • show: 'auto' - Enable/Disable the labels. This can be set to true, false, or 'auto'. When set to 'auto', it will be set to false if the legend is enabled and true if not.
      • +
      • radius: 1 - Sets the radius at which to place the labels. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the available space (size of the container), otherwise it will use the value as a direct pixel length.
      • +
      • threshold: 0 - Hides the labels of any pie slice that is smaller than the specified percentage (ranging from 0 to 1) i.e. a value of '0.03' will hide all slices 3% or less of the total.
      • +
      • formatter: [function] - This function specifies how the positioned labels should be formatted, and is applied after the legend's labelFormatter function. The labels can also still be styled using the class "pieLabel" (i.e. ".pieLabel" or "#graph1 .pieLabel").
      • +
      • radius: 1 - Sets the radius at which to place the labels. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the available space (size of the container), otherwise it will use the value as a direct pixel length.
      • +
      • background:
          +
        • color: null - Backgound color of the positioned labels. If null, the plugin will automatically use the color of the slice.
        • +
        • opacity: 0 - Opacity of the background for the positioned labels. Acceptable values range from 0 to 1, where 0 is completely transparent and 1 is completely opaque.
        • +
        +
      +
    • combine:
        +
      • threshold: 0 - Combines all slices that are smaller than the specified percentage (ranging from 0 to 1) i.e. a value of '0.03' will combine all slices 3% or less into one slice).
      • +
      • color: null - Backgound color of the positioned labels. If null, the plugin will automatically use the color of the first slice to be combined.
      • +
      • label: 'Other' - Label text for the combined slice.
      • +
      +
    • highlight:
        +
      • opacity: 0.5 - Opacity of the highlight overlay on top of the current pie slice. Currently this just uses a white overlay, but support for changing the color of the overlay will also be added at a later date. +
      +
    + +

    Changes/Features

    +
      +
    • v1.0 - November 20th, 2009 - Brian Medendorp
    • +
    • The pie plug-in is now part of the Flot repository! This should make it a lot easier to deal with.
    • +
    • Added a new option (innerRadius) to add a "donut hole" to the center of the pie, based on comtributions from Anthony Aragues. I was a little reluctant to add this feature because it doesn't work very well with the shadow created for the tilted pie, but figured it was worthwhile for non-tilted pies. Also, excanvas apparently doesn't support compositing, so it will fall back to using the stroke color to fill in the center (but I recommend setting the stroke color to the background color anyway).
    • +
    • Changed the lineJoin for the border of the pie slices to use the 'round' option. This should make the center of the pie look better, particularly when there are numerous thin slices.
    • +
    • Included a bug fix submitted by btburnett3 to display a slightly smaller slice in the event that the slice is 100% and being rendered with Internet Explorer. I haven't experienced this bug myself, but it doesn't seem to hurt anything so I've included it.
    • +
    • The tilt value is now used when calculating the maximum radius of the pie in relation to the height of the container. This should prevent the pie from being smaller than it needed to in some cases, as well as reducing the amount of extra white space generated above and below the pie.
    • +
    • Hover and Click functionality are now availabe!
        +
      • Thanks to btburnett3 for the original hover functionality and Anthony Aragues for the modification that makes it compatable with excanvas, this was a huge help!
      • +
      • Added a new option (highlight opacity) to modify the highlight created when mousing over a slice. Currently this just uses a white overlay, but an option to change the hightlight color will be added when the appropriate functionality becomes available. +
      • I had a major setback that required me to practically rebuild the hover/click events from scratch one piece at a time (I discovered that it only worked with a single pie on a page at a time), but the end result ended up being virtually identical to the original, so I'm not quite sure what exactly made it work.
      • +
      • Warning: There are some minor issues with using this functionality in conjuction with some of the other more advanced features (tilt and donut). When using a donut hole, the inner portion still triggers the events even though that portion of the pie is no longer visible. When tilted, the interactive portions still use the original, untilted version of the pie when determining mouse position (this is because the isPointInPath function apparently doesn't work with transformations), however hover and click both work this way, so the appropriate slice is still highlighted when clicking, and it isn't as noticable of a problem.
      • +
    • +
    • Included a bug fix submitted by Xavi Ivars to fix array issues when other javascript libraries are included in addition to jQuery
    • +
      +
    • v0.4 - July 1st, 2009 - Brian Medendorp
    • +
    • Each series will now be shown in the legend, even if it's value is zero. The series will not get a positioned label because it will overlap with the other labels present and often makes them unreadable.
    • +
    • Data can now be passed in using the standard Flot method using an array of datapoints, the pie plugin will simply use the first y-value that it finds for each series in this case. The plugin uses this datastructure internally, but you can still use the old method of passing in a single numerical value for each series (the plugin will convert it as necessary). This should make it easier to transition from other types of graphs (such as a stacked bar graph) to a pie.
    • +
    • The pie can now be tilted at an angle with a new "tilt" option. Acceptable values range from 0-1, where 1 has no change (fully vertical) and 0 is completely flat (fully horizontal -- in which case nothing actually gets drawn). If the plugin determines that it will fit within the canvas, a drop shadow will be drawn under the tilted pie (this also requires a tilt value of 0.8 or less).
    • +
      +
    • v0.3.2 - June 25th, 2009 - Brian Medendorp
    • +
    • Fixed a bug that was causing the pie to be shifted too far left or right when the legend is showing in some cases.
    • +
      +
    • v0.3.1 - June 24th, 2009 - Brian Medendorp
    • +
    • Fixed a bug that was causing nothing to be drawn and generating a javascript error if any of the data values were set to zero.
    • +
      +
    • v0.3 - June 23rd, 2009 - Brian Medendorp
    • +
    • The legend now works without any modifications! Because of changes made to flot and the plugin system (thanks Ole Laursen!) I was able to simplify a number of things and am now able to use the legend without the direct access hack that was required in the previous version.
    • +
      +
    • v0.2 - June 22nd, 2009 - Brian Medendorp
    • +
    • The legend now works but only if you make the necessary changes to jquery.flot.js. Because of this, I changed the default values for pie.radius and pie.label.show to new 'auto' settings that change the default behavior of the size and labels depending on whether the legend functionality is available or not.
    • +
      +
    • v0.1 - June 18th, 2009 - Brian Medendorp
    • +
    • Rewrote the entire pie code into a flot plugin (since that is now an option), so it should be much easier to use and the code is cleaned up a bit. However, the (standard flot) legend is no longer available because the only way to prevent the grid lines from being displayed also prevents the legend from being displayed. Hopefully this can be fixed at a later date.
    • +
    • Restructured and combined some of the options. It should be much easier to deal with now.
    • +
    • Added the ability to change the starting point of the pie (still defaults to the top).
    • +
    • Modified the default options to show the labels to compensate for the lack of a legend.
    • +
    • Modified this page to use a random dataset. Note: you may need to refresh the page to see the effects of some of the examples.
    • +
      +
    • May 21st, 2009 - Brian Medendorp
    • +
    • Merged original pie modifications by Sergey Nosenko into the latest SVN version (as of May 15th, 2009) so that it will work with ie8.
    • +
    • Pie graph will now be centered in the canvas unless moved because of the legend or manually via the options. Additionally it prevents the pie from being moved beyond the edge of the canvas.
    • +
    • Modified the code related to the labelFormatter option to apply flot's legend labelFormatter first. This is so that the labels will be consistent, but still provide extra formatting for the positioned labels (such as adding the percentage value).
    • +
    • Positioned labels now have their backgrounds applied as a seperate element (much like the legend background) so that the opacity value can be set independently from the label itself (foreground). Additionally, the background color defaults to that of the matching slice.
    • +
    • As long as the labelOffset and radiusLimit are not set to hard values, the pie will be shrunk if the labels will extend outside the edge of the canvas
    • +
    • Added new options "radiusLimitFactor" and "radiusLimit" which limits how large the (visual) radius of the pie is in relation to the full radius (as calculated from the canvas dimensions) or a hard-pixel value (respectively). This allows for pushing the labels "outside" the pie.
    • +
    • Added a new option "labelHidePercent" that does not show the positioned labels of slices smaller than the specified percentage. This is to help prevent a bunch of overlapping labels from small slices.
    • +
    • Added a new option "sliceCombinePercent" that combines all slices smaller than the specified percentage into one larger slice. This is to help make the pie more attractive when there are a number of tiny slices. The options "sliceCombineColor" and "sliceCombineLabel" have also been added to change the color and name of the new slice if desired.
    • +
    • Tested in Firefox (3.0.10, 3.5b4), Internet Explorer (6.0.2900, 7.0.5730, 8.0.6001), Chrome (1.0.154), Opera (9.64), and Safari (3.1.1, 4 beta 5528.16). +
    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/realtime.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/realtime.html" new file mode 100644 index 0000000..3b427e1 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/realtime.html" @@ -0,0 +1,83 @@ + + + + + Flot Examples + + + + + + +

    Flot Examples

    + +
    + +

    You can update a chart periodically to get a real-time effect + by using a timer to insert the new data in the plot and redraw it.

    + +

    Time between updates: milliseconds

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/resize.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/resize.html" new file mode 100644 index 0000000..d1e18c3 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/resize.html" @@ -0,0 +1,61 @@ + + + + + Flot Examples + + + + + + + + +

    Flot Examples

    + +
    + +

    + +

    Sometimes it makes more sense to just let the plot take up the + available space. In that case, we need to redraw the plot each + time the placeholder changes its size. If you include the resize + plugin, this is handled automatically.

    + +

    Try resizing the window.

    + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/selection.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/selection.html" new file mode 100644 index 0000000..1646f5a --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/selection.html" @@ -0,0 +1,114 @@ + + + + + Flot Examples + + + + + + + +

    Flot Examples

    + +
    + +

    1000 kg. CO2 emissions per year per capita for various countries (source: Wikipedia).

    + +

    Flot supports selections through the selection plugin. + You can enable rectangular selection + or one-dimensional selection if the user should only be able to + select on one axis. Try left-click and drag on the plot above + where selection on the x axis is enabled.

    + +

    You selected:

    + +

    The plot command returns a plot object you can use to control + the selection. Click the buttons below.

    + +

    +

    + +

    Selections are really useful for zooming. Just replot the + chart with min and max values for the axes set to the values + in the "plotselected" event triggered. Enable the checkbox + below and select a region again.

    + +

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/setting-options.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/setting-options.html" new file mode 100644 index 0000000..8d1967e --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/setting-options.html" @@ -0,0 +1,61 @@ + + + + + Flot Examples + + + + + + +

    Flot Examples

    + +
    + +

    There are plenty of options you can set to control the precise + looks of your plot. You can control the ticks on the axes, the + legend, the graph type, etc. The idea is that Flot goes to great + lengths to provide sensible defaults so that you don't have to + customize much for a good result.

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/stacking.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/stacking.html" new file mode 100644 index 0000000..b7de391 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/stacking.html" @@ -0,0 +1,77 @@ + + + + + Flot Examples + + + + + + + +

    Flot Examples

    + +
    + +

    With the stack plugin, you can have Flot stack the + series. This is useful if you wish to display both a total and the + constituents it is made of. The only requirement is that you provide + the input sorted on x.

    + +

    + + +

    + +

    + + + +

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/symbols.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/symbols.html" new file mode 100644 index 0000000..e71b1aa --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/symbols.html" @@ -0,0 +1,49 @@ + + + + + Flot Examples + + + + + + + +

    Flot Examples

    + +
    + +

    Various point types. Circles are built-in. For other + point types, you can define a little callback function to draw the + symbol; some common ones are available in the symbol plugin.

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/thresholding.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/thresholding.html" new file mode 100644 index 0000000..f10144a --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/thresholding.html" @@ -0,0 +1,54 @@ + + + + + Flot Examples + + + + + + + +

    Flot Examples

    + +
    + +

    With the threshold plugin, you can apply a specific color to + the part of a data series below a threshold. This is can be useful + for highlighting negative values, e.g. when displaying net results + or what's in stock.

    + +

    + + + +

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/time.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/time.html" new file mode 100644 index 0000000..da62347 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/time.html" @@ -0,0 +1,71 @@ + + + + + Flot Examples + + + + + + +

    Flot Examples

    + +
    + +

    Monthly mean atmospheric CO2 in PPM at Mauna Loa, Hawaii (source: NOAA/ESRL).

    + +

    If you tell Flot that an axis represents time, the data will + be interpreted as timestamps and the ticks adjusted and + formatted accordingly.

    + +

    Zoom to: + +

    + +

    The timestamps must be specified as Javascript timestamps, as + milliseconds since January 1, 1970 00:00. This is like Unix + timestamps, but in milliseconds instead of seconds (remember to + multiply with 1000!).

    + +

    As an extra caveat, the timestamps are interpreted according to + UTC to avoid having the graph shift with each visitor's local + time zone. So you might have to add your local time zone offset + to the timestamps or simply pretend that the data was produced + in UTC instead of your local time zone.

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/tracking.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/tracking.html" new file mode 100644 index 0000000..c116159 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/tracking.html" @@ -0,0 +1,95 @@ + + + + + Flot Examples + + + + + + + +

    Flot Examples

    + +
    + +

    You can add crosshairs that'll track the mouse position, either + on both axes or as here on only one.

    + +

    If you combine it with listening on hover events, you can use + it to track the intersection on the curves by interpolating + the data points (look at the legend).

    + +

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/turning-series.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/turning-series.html" new file mode 100644 index 0000000..bc6fd9f --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/turning-series.html" @@ -0,0 +1,98 @@ + + + + + Flot Examples + + + + + + +

    Flot Examples

    + +
    + +

    Here is an example with real data: military budgets for + various countries in constant (2005) million US dollars (source: SIPRI).

    + +

    Since all data is available client-side, it's pretty easy to + make the plot interactive. Try turning countries on/off with the + checkboxes below.

    + +

    Show:

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/visitors.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/visitors.html" new file mode 100644 index 0000000..8a9d4d7 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/visitors.html" @@ -0,0 +1,90 @@ + + + + + Flot Examples + + + + + + + +

    Flot Examples

    + +
    + +

    Visitors per day to the Flot homepage. Weekends are colored. Try zooming. + The plot below shows an overview.

    + +
    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/zooming.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/zooming.html" new file mode 100644 index 0000000..9a4ef22 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/examples/zooming.html" @@ -0,0 +1,98 @@ + + + + + Flot Examples + + + + + + + +

    Flot Examples

    + +
    +
    +
    + +
    +
    + +

    +
    + +

    The selection support makes it easy to + construct flexible zooming schemes. With a few lines of code, the + small overview plot to the right has been connected to the large + plot. Try selecting a rectangle on either of them.

    + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/excanvas.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/excanvas.js" new file mode 100644 index 0000000..c40d6f7 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/excanvas.js" @@ -0,0 +1,1427 @@ +// Copyright 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +// Known Issues: +// +// * Patterns only support repeat. +// * Radial gradient are not implemented. The VML version of these look very +// different from the canvas one. +// * Clipping paths are not implemented. +// * Coordsize. The width and height attribute have higher priority than the +// width and height style values which isn't correct. +// * Painting mode isn't implemented. +// * Canvas width/height should is using content-box by default. IE in +// Quirks mode will draw the canvas using border-box. Either change your +// doctype to HTML5 +// (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype) +// or use Box Sizing Behavior from WebFX +// (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html) +// * Non uniform scaling does not correctly scale strokes. +// * Filling very large shapes (above 5000 points) is buggy. +// * Optimize. There is always room for speed improvements. + +// Only add this code if we do not already have a canvas implementation +if (!document.createElement('canvas').getContext) { + +(function() { + + // alias some functions to make (compiled) code shorter + var m = Math; + var mr = m.round; + var ms = m.sin; + var mc = m.cos; + var abs = m.abs; + var sqrt = m.sqrt; + + // this is used for sub pixel precision + var Z = 10; + var Z2 = Z / 2; + + /** + * This funtion is assigned to the elements as element.getContext(). + * @this {HTMLElement} + * @return {CanvasRenderingContext2D_} + */ + function getContext() { + return this.context_ || + (this.context_ = new CanvasRenderingContext2D_(this)); + } + + var slice = Array.prototype.slice; + + /** + * Binds a function to an object. The returned function will always use the + * passed in {@code obj} as {@code this}. + * + * Example: + * + * g = bind(f, obj, a, b) + * g(c, d) // will do f.call(obj, a, b, c, d) + * + * @param {Function} f The function to bind the object to + * @param {Object} obj The object that should act as this when the function + * is called + * @param {*} var_args Rest arguments that will be used as the initial + * arguments when the function is called + * @return {Function} A new function that has bound this + */ + function bind(f, obj, var_args) { + var a = slice.call(arguments, 2); + return function() { + return f.apply(obj, a.concat(slice.call(arguments))); + }; + } + + function encodeHtmlAttribute(s) { + return String(s).replace(/&/g, '&').replace(/"/g, '"'); + } + + function addNamespacesAndStylesheet(doc) { + // create xmlns + if (!doc.namespaces['g_vml_']) { + doc.namespaces.add('g_vml_', 'urn:schemas-microsoft-com:vml', + '#default#VML'); + + } + if (!doc.namespaces['g_o_']) { + doc.namespaces.add('g_o_', 'urn:schemas-microsoft-com:office:office', + '#default#VML'); + } + + // Setup default CSS. Only add one style sheet per document + if (!doc.styleSheets['ex_canvas_']) { + var ss = doc.createStyleSheet(); + ss.owningElement.id = 'ex_canvas_'; + ss.cssText = 'canvas{display:inline-block;overflow:hidden;' + + // default size is 300x150 in Gecko and Opera + 'text-align:left;width:300px;height:150px}'; + } + } + + // Add namespaces and stylesheet at startup. + addNamespacesAndStylesheet(document); + + var G_vmlCanvasManager_ = { + init: function(opt_doc) { + if (/MSIE/.test(navigator.userAgent) && !window.opera) { + var doc = opt_doc || document; + // Create a dummy element so that IE will allow canvas elements to be + // recognized. + doc.createElement('canvas'); + doc.attachEvent('onreadystatechange', bind(this.init_, this, doc)); + } + }, + + init_: function(doc) { + // find all canvas elements + var els = doc.getElementsByTagName('canvas'); + for (var i = 0; i < els.length; i++) { + this.initElement(els[i]); + } + }, + + /** + * Public initializes a canvas element so that it can be used as canvas + * element from now on. This is called automatically before the page is + * loaded but if you are creating elements using createElement you need to + * make sure this is called on the element. + * @param {HTMLElement} el The canvas element to initialize. + * @return {HTMLElement} the element that was created. + */ + initElement: function(el) { + if (!el.getContext) { + el.getContext = getContext; + + // Add namespaces and stylesheet to document of the element. + addNamespacesAndStylesheet(el.ownerDocument); + + // Remove fallback content. There is no way to hide text nodes so we + // just remove all childNodes. We could hide all elements and remove + // text nodes but who really cares about the fallback content. + el.innerHTML = ''; + + // do not use inline function because that will leak memory + el.attachEvent('onpropertychange', onPropertyChange); + el.attachEvent('onresize', onResize); + + var attrs = el.attributes; + if (attrs.width && attrs.width.specified) { + // TODO: use runtimeStyle and coordsize + // el.getContext().setWidth_(attrs.width.nodeValue); + el.style.width = attrs.width.nodeValue + 'px'; + } else { + el.width = el.clientWidth; + } + if (attrs.height && attrs.height.specified) { + // TODO: use runtimeStyle and coordsize + // el.getContext().setHeight_(attrs.height.nodeValue); + el.style.height = attrs.height.nodeValue + 'px'; + } else { + el.height = el.clientHeight; + } + //el.getContext().setCoordsize_() + } + return el; + } + }; + + function onPropertyChange(e) { + var el = e.srcElement; + + switch (e.propertyName) { + case 'width': + el.getContext().clearRect(); + el.style.width = el.attributes.width.nodeValue + 'px'; + // In IE8 this does not trigger onresize. + el.firstChild.style.width = el.clientWidth + 'px'; + break; + case 'height': + el.getContext().clearRect(); + el.style.height = el.attributes.height.nodeValue + 'px'; + el.firstChild.style.height = el.clientHeight + 'px'; + break; + } + } + + function onResize(e) { + var el = e.srcElement; + if (el.firstChild) { + el.firstChild.style.width = el.clientWidth + 'px'; + el.firstChild.style.height = el.clientHeight + 'px'; + } + } + + G_vmlCanvasManager_.init(); + + // precompute "00" to "FF" + var decToHex = []; + for (var i = 0; i < 16; i++) { + for (var j = 0; j < 16; j++) { + decToHex[i * 16 + j] = i.toString(16) + j.toString(16); + } + } + + function createMatrixIdentity() { + return [ + [1, 0, 0], + [0, 1, 0], + [0, 0, 1] + ]; + } + + function matrixMultiply(m1, m2) { + var result = createMatrixIdentity(); + + for (var x = 0; x < 3; x++) { + for (var y = 0; y < 3; y++) { + var sum = 0; + + for (var z = 0; z < 3; z++) { + sum += m1[x][z] * m2[z][y]; + } + + result[x][y] = sum; + } + } + return result; + } + + function copyState(o1, o2) { + o2.fillStyle = o1.fillStyle; + o2.lineCap = o1.lineCap; + o2.lineJoin = o1.lineJoin; + o2.lineWidth = o1.lineWidth; + o2.miterLimit = o1.miterLimit; + o2.shadowBlur = o1.shadowBlur; + o2.shadowColor = o1.shadowColor; + o2.shadowOffsetX = o1.shadowOffsetX; + o2.shadowOffsetY = o1.shadowOffsetY; + o2.strokeStyle = o1.strokeStyle; + o2.globalAlpha = o1.globalAlpha; + o2.font = o1.font; + o2.textAlign = o1.textAlign; + o2.textBaseline = o1.textBaseline; + o2.arcScaleX_ = o1.arcScaleX_; + o2.arcScaleY_ = o1.arcScaleY_; + o2.lineScale_ = o1.lineScale_; + } + + var colorData = { + aliceblue: '#F0F8FF', + antiquewhite: '#FAEBD7', + aquamarine: '#7FFFD4', + azure: '#F0FFFF', + beige: '#F5F5DC', + bisque: '#FFE4C4', + black: '#000000', + blanchedalmond: '#FFEBCD', + blueviolet: '#8A2BE2', + brown: '#A52A2A', + burlywood: '#DEB887', + cadetblue: '#5F9EA0', + chartreuse: '#7FFF00', + chocolate: '#D2691E', + coral: '#FF7F50', + cornflowerblue: '#6495ED', + cornsilk: '#FFF8DC', + crimson: '#DC143C', + cyan: '#00FFFF', + darkblue: '#00008B', + darkcyan: '#008B8B', + darkgoldenrod: '#B8860B', + darkgray: '#A9A9A9', + darkgreen: '#006400', + darkgrey: '#A9A9A9', + darkkhaki: '#BDB76B', + darkmagenta: '#8B008B', + darkolivegreen: '#556B2F', + darkorange: '#FF8C00', + darkorchid: '#9932CC', + darkred: '#8B0000', + darksalmon: '#E9967A', + darkseagreen: '#8FBC8F', + darkslateblue: '#483D8B', + darkslategray: '#2F4F4F', + darkslategrey: '#2F4F4F', + darkturquoise: '#00CED1', + darkviolet: '#9400D3', + deeppink: '#FF1493', + deepskyblue: '#00BFFF', + dimgray: '#696969', + dimgrey: '#696969', + dodgerblue: '#1E90FF', + firebrick: '#B22222', + floralwhite: '#FFFAF0', + forestgreen: '#228B22', + gainsboro: '#DCDCDC', + ghostwhite: '#F8F8FF', + gold: '#FFD700', + goldenrod: '#DAA520', + grey: '#808080', + greenyellow: '#ADFF2F', + honeydew: '#F0FFF0', + hotpink: '#FF69B4', + indianred: '#CD5C5C', + indigo: '#4B0082', + ivory: '#FFFFF0', + khaki: '#F0E68C', + lavender: '#E6E6FA', + lavenderblush: '#FFF0F5', + lawngreen: '#7CFC00', + lemonchiffon: '#FFFACD', + lightblue: '#ADD8E6', + lightcoral: '#F08080', + lightcyan: '#E0FFFF', + lightgoldenrodyellow: '#FAFAD2', + lightgreen: '#90EE90', + lightgrey: '#D3D3D3', + lightpink: '#FFB6C1', + lightsalmon: '#FFA07A', + lightseagreen: '#20B2AA', + lightskyblue: '#87CEFA', + lightslategray: '#778899', + lightslategrey: '#778899', + lightsteelblue: '#B0C4DE', + lightyellow: '#FFFFE0', + limegreen: '#32CD32', + linen: '#FAF0E6', + magenta: '#FF00FF', + mediumaquamarine: '#66CDAA', + mediumblue: '#0000CD', + mediumorchid: '#BA55D3', + mediumpurple: '#9370DB', + mediumseagreen: '#3CB371', + mediumslateblue: '#7B68EE', + mediumspringgreen: '#00FA9A', + mediumturquoise: '#48D1CC', + mediumvioletred: '#C71585', + midnightblue: '#191970', + mintcream: '#F5FFFA', + mistyrose: '#FFE4E1', + moccasin: '#FFE4B5', + navajowhite: '#FFDEAD', + oldlace: '#FDF5E6', + olivedrab: '#6B8E23', + orange: '#FFA500', + orangered: '#FF4500', + orchid: '#DA70D6', + palegoldenrod: '#EEE8AA', + palegreen: '#98FB98', + paleturquoise: '#AFEEEE', + palevioletred: '#DB7093', + papayawhip: '#FFEFD5', + peachpuff: '#FFDAB9', + peru: '#CD853F', + pink: '#FFC0CB', + plum: '#DDA0DD', + powderblue: '#B0E0E6', + rosybrown: '#BC8F8F', + royalblue: '#4169E1', + saddlebrown: '#8B4513', + salmon: '#FA8072', + sandybrown: '#F4A460', + seagreen: '#2E8B57', + seashell: '#FFF5EE', + sienna: '#A0522D', + skyblue: '#87CEEB', + slateblue: '#6A5ACD', + slategray: '#708090', + slategrey: '#708090', + snow: '#FFFAFA', + springgreen: '#00FF7F', + steelblue: '#4682B4', + tan: '#D2B48C', + thistle: '#D8BFD8', + tomato: '#FF6347', + turquoise: '#40E0D0', + violet: '#EE82EE', + wheat: '#F5DEB3', + whitesmoke: '#F5F5F5', + yellowgreen: '#9ACD32' + }; + + + function getRgbHslContent(styleString) { + var start = styleString.indexOf('(', 3); + var end = styleString.indexOf(')', start + 1); + var parts = styleString.substring(start + 1, end).split(','); + // add alpha if needed + if (parts.length == 4 && styleString.substr(3, 1) == 'a') { + alpha = Number(parts[3]); + } else { + parts[3] = 1; + } + return parts; + } + + function percent(s) { + return parseFloat(s) / 100; + } + + function clamp(v, min, max) { + return Math.min(max, Math.max(min, v)); + } + + function hslToRgb(parts){ + var r, g, b; + h = parseFloat(parts[0]) / 360 % 360; + if (h < 0) + h++; + s = clamp(percent(parts[1]), 0, 1); + l = clamp(percent(parts[2]), 0, 1); + if (s == 0) { + r = g = b = l; // achromatic + } else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hueToRgb(p, q, h + 1 / 3); + g = hueToRgb(p, q, h); + b = hueToRgb(p, q, h - 1 / 3); + } + + return '#' + decToHex[Math.floor(r * 255)] + + decToHex[Math.floor(g * 255)] + + decToHex[Math.floor(b * 255)]; + } + + function hueToRgb(m1, m2, h) { + if (h < 0) + h++; + if (h > 1) + h--; + + if (6 * h < 1) + return m1 + (m2 - m1) * 6 * h; + else if (2 * h < 1) + return m2; + else if (3 * h < 2) + return m1 + (m2 - m1) * (2 / 3 - h) * 6; + else + return m1; + } + + function processStyle(styleString) { + var str, alpha = 1; + + styleString = String(styleString); + if (styleString.charAt(0) == '#') { + str = styleString; + } else if (/^rgb/.test(styleString)) { + var parts = getRgbHslContent(styleString); + var str = '#', n; + for (var i = 0; i < 3; i++) { + if (parts[i].indexOf('%') != -1) { + n = Math.floor(percent(parts[i]) * 255); + } else { + n = Number(parts[i]); + } + str += decToHex[clamp(n, 0, 255)]; + } + alpha = parts[3]; + } else if (/^hsl/.test(styleString)) { + var parts = getRgbHslContent(styleString); + str = hslToRgb(parts); + alpha = parts[3]; + } else { + str = colorData[styleString] || styleString; + } + return {color: str, alpha: alpha}; + } + + var DEFAULT_STYLE = { + style: 'normal', + variant: 'normal', + weight: 'normal', + size: 10, + family: 'sans-serif' + }; + + // Internal text style cache + var fontStyleCache = {}; + + function processFontStyle(styleString) { + if (fontStyleCache[styleString]) { + return fontStyleCache[styleString]; + } + + var el = document.createElement('div'); + var style = el.style; + try { + style.font = styleString; + } catch (ex) { + // Ignore failures to set to invalid font. + } + + return fontStyleCache[styleString] = { + style: style.fontStyle || DEFAULT_STYLE.style, + variant: style.fontVariant || DEFAULT_STYLE.variant, + weight: style.fontWeight || DEFAULT_STYLE.weight, + size: style.fontSize || DEFAULT_STYLE.size, + family: style.fontFamily || DEFAULT_STYLE.family + }; + } + + function getComputedStyle(style, element) { + var computedStyle = {}; + + for (var p in style) { + computedStyle[p] = style[p]; + } + + // Compute the size + var canvasFontSize = parseFloat(element.currentStyle.fontSize), + fontSize = parseFloat(style.size); + + if (typeof style.size == 'number') { + computedStyle.size = style.size; + } else if (style.size.indexOf('px') != -1) { + computedStyle.size = fontSize; + } else if (style.size.indexOf('em') != -1) { + computedStyle.size = canvasFontSize * fontSize; + } else if(style.size.indexOf('%') != -1) { + computedStyle.size = (canvasFontSize / 100) * fontSize; + } else if (style.size.indexOf('pt') != -1) { + computedStyle.size = fontSize / .75; + } else { + computedStyle.size = canvasFontSize; + } + + // Different scaling between normal text and VML text. This was found using + // trial and error to get the same size as non VML text. + computedStyle.size *= 0.981; + + return computedStyle; + } + + function buildStyle(style) { + return style.style + ' ' + style.variant + ' ' + style.weight + ' ' + + style.size + 'px ' + style.family; + } + + function processLineCap(lineCap) { + switch (lineCap) { + case 'butt': + return 'flat'; + case 'round': + return 'round'; + case 'square': + default: + return 'square'; + } + } + + /** + * This class implements CanvasRenderingContext2D interface as described by + * the WHATWG. + * @param {HTMLElement} surfaceElement The element that the 2D context should + * be associated with + */ + function CanvasRenderingContext2D_(surfaceElement) { + this.m_ = createMatrixIdentity(); + + this.mStack_ = []; + this.aStack_ = []; + this.currentPath_ = []; + + // Canvas context properties + this.strokeStyle = '#000'; + this.fillStyle = '#000'; + + this.lineWidth = 1; + this.lineJoin = 'miter'; + this.lineCap = 'butt'; + this.miterLimit = Z * 1; + this.globalAlpha = 1; + this.font = '10px sans-serif'; + this.textAlign = 'left'; + this.textBaseline = 'alphabetic'; + this.canvas = surfaceElement; + + var el = surfaceElement.ownerDocument.createElement('div'); + el.style.width = surfaceElement.clientWidth + 'px'; + el.style.height = surfaceElement.clientHeight + 'px'; + el.style.overflow = 'hidden'; + el.style.position = 'absolute'; + surfaceElement.appendChild(el); + + this.element_ = el; + this.arcScaleX_ = 1; + this.arcScaleY_ = 1; + this.lineScale_ = 1; + } + + var contextPrototype = CanvasRenderingContext2D_.prototype; + contextPrototype.clearRect = function() { + if (this.textMeasureEl_) { + this.textMeasureEl_.removeNode(true); + this.textMeasureEl_ = null; + } + this.element_.innerHTML = ''; + }; + + contextPrototype.beginPath = function() { + // TODO: Branch current matrix so that save/restore has no effect + // as per safari docs. + this.currentPath_ = []; + }; + + contextPrototype.moveTo = function(aX, aY) { + var p = this.getCoords_(aX, aY); + this.currentPath_.push({type: 'moveTo', x: p.x, y: p.y}); + this.currentX_ = p.x; + this.currentY_ = p.y; + }; + + contextPrototype.lineTo = function(aX, aY) { + var p = this.getCoords_(aX, aY); + this.currentPath_.push({type: 'lineTo', x: p.x, y: p.y}); + + this.currentX_ = p.x; + this.currentY_ = p.y; + }; + + contextPrototype.bezierCurveTo = function(aCP1x, aCP1y, + aCP2x, aCP2y, + aX, aY) { + var p = this.getCoords_(aX, aY); + var cp1 = this.getCoords_(aCP1x, aCP1y); + var cp2 = this.getCoords_(aCP2x, aCP2y); + bezierCurveTo(this, cp1, cp2, p); + }; + + // Helper function that takes the already fixed cordinates. + function bezierCurveTo(self, cp1, cp2, p) { + self.currentPath_.push({ + type: 'bezierCurveTo', + cp1x: cp1.x, + cp1y: cp1.y, + cp2x: cp2.x, + cp2y: cp2.y, + x: p.x, + y: p.y + }); + self.currentX_ = p.x; + self.currentY_ = p.y; + } + + contextPrototype.quadraticCurveTo = function(aCPx, aCPy, aX, aY) { + // the following is lifted almost directly from + // http://developer.mozilla.org/en/docs/Canvas_tutorial:Drawing_shapes + + var cp = this.getCoords_(aCPx, aCPy); + var p = this.getCoords_(aX, aY); + + var cp1 = { + x: this.currentX_ + 2.0 / 3.0 * (cp.x - this.currentX_), + y: this.currentY_ + 2.0 / 3.0 * (cp.y - this.currentY_) + }; + var cp2 = { + x: cp1.x + (p.x - this.currentX_) / 3.0, + y: cp1.y + (p.y - this.currentY_) / 3.0 + }; + + bezierCurveTo(this, cp1, cp2, p); + }; + + contextPrototype.arc = function(aX, aY, aRadius, + aStartAngle, aEndAngle, aClockwise) { + aRadius *= Z; + var arcType = aClockwise ? 'at' : 'wa'; + + var xStart = aX + mc(aStartAngle) * aRadius - Z2; + var yStart = aY + ms(aStartAngle) * aRadius - Z2; + + var xEnd = aX + mc(aEndAngle) * aRadius - Z2; + var yEnd = aY + ms(aEndAngle) * aRadius - Z2; + + // IE won't render arches drawn counter clockwise if xStart == xEnd. + if (xStart == xEnd && !aClockwise) { + xStart += 0.125; // Offset xStart by 1/80 of a pixel. Use something + // that can be represented in binary + } + + var p = this.getCoords_(aX, aY); + var pStart = this.getCoords_(xStart, yStart); + var pEnd = this.getCoords_(xEnd, yEnd); + + this.currentPath_.push({type: arcType, + x: p.x, + y: p.y, + radius: aRadius, + xStart: pStart.x, + yStart: pStart.y, + xEnd: pEnd.x, + yEnd: pEnd.y}); + + }; + + contextPrototype.rect = function(aX, aY, aWidth, aHeight) { + this.moveTo(aX, aY); + this.lineTo(aX + aWidth, aY); + this.lineTo(aX + aWidth, aY + aHeight); + this.lineTo(aX, aY + aHeight); + this.closePath(); + }; + + contextPrototype.strokeRect = function(aX, aY, aWidth, aHeight) { + var oldPath = this.currentPath_; + this.beginPath(); + + this.moveTo(aX, aY); + this.lineTo(aX + aWidth, aY); + this.lineTo(aX + aWidth, aY + aHeight); + this.lineTo(aX, aY + aHeight); + this.closePath(); + this.stroke(); + + this.currentPath_ = oldPath; + }; + + contextPrototype.fillRect = function(aX, aY, aWidth, aHeight) { + var oldPath = this.currentPath_; + this.beginPath(); + + this.moveTo(aX, aY); + this.lineTo(aX + aWidth, aY); + this.lineTo(aX + aWidth, aY + aHeight); + this.lineTo(aX, aY + aHeight); + this.closePath(); + this.fill(); + + this.currentPath_ = oldPath; + }; + + contextPrototype.createLinearGradient = function(aX0, aY0, aX1, aY1) { + var gradient = new CanvasGradient_('gradient'); + gradient.x0_ = aX0; + gradient.y0_ = aY0; + gradient.x1_ = aX1; + gradient.y1_ = aY1; + return gradient; + }; + + contextPrototype.createRadialGradient = function(aX0, aY0, aR0, + aX1, aY1, aR1) { + var gradient = new CanvasGradient_('gradientradial'); + gradient.x0_ = aX0; + gradient.y0_ = aY0; + gradient.r0_ = aR0; + gradient.x1_ = aX1; + gradient.y1_ = aY1; + gradient.r1_ = aR1; + return gradient; + }; + + contextPrototype.drawImage = function(image, var_args) { + var dx, dy, dw, dh, sx, sy, sw, sh; + + // to find the original width we overide the width and height + var oldRuntimeWidth = image.runtimeStyle.width; + var oldRuntimeHeight = image.runtimeStyle.height; + image.runtimeStyle.width = 'auto'; + image.runtimeStyle.height = 'auto'; + + // get the original size + var w = image.width; + var h = image.height; + + // and remove overides + image.runtimeStyle.width = oldRuntimeWidth; + image.runtimeStyle.height = oldRuntimeHeight; + + if (arguments.length == 3) { + dx = arguments[1]; + dy = arguments[2]; + sx = sy = 0; + sw = dw = w; + sh = dh = h; + } else if (arguments.length == 5) { + dx = arguments[1]; + dy = arguments[2]; + dw = arguments[3]; + dh = arguments[4]; + sx = sy = 0; + sw = w; + sh = h; + } else if (arguments.length == 9) { + sx = arguments[1]; + sy = arguments[2]; + sw = arguments[3]; + sh = arguments[4]; + dx = arguments[5]; + dy = arguments[6]; + dw = arguments[7]; + dh = arguments[8]; + } else { + throw Error('Invalid number of arguments'); + } + + var d = this.getCoords_(dx, dy); + + var w2 = sw / 2; + var h2 = sh / 2; + + var vmlStr = []; + + var W = 10; + var H = 10; + + // For some reason that I've now forgotten, using divs didn't work + vmlStr.push(' ' , + '', + ''); + + this.element_.insertAdjacentHTML('BeforeEnd', vmlStr.join('')); + }; + + contextPrototype.stroke = function(aFill) { + var W = 10; + var H = 10; + // Divide the shape into chunks if it's too long because IE has a limit + // somewhere for how long a VML shape can be. This simple division does + // not work with fills, only strokes, unfortunately. + var chunkSize = 5000; + + var min = {x: null, y: null}; + var max = {x: null, y: null}; + + for (var j = 0; j < this.currentPath_.length; j += chunkSize) { + var lineStr = []; + var lineOpen = false; + + lineStr.push(''); + + if (!aFill) { + appendStroke(this, lineStr); + } else { + appendFill(this, lineStr, min, max); + } + + lineStr.push(''); + + this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); + } + }; + + function appendStroke(ctx, lineStr) { + var a = processStyle(ctx.strokeStyle); + var color = a.color; + var opacity = a.alpha * ctx.globalAlpha; + var lineWidth = ctx.lineScale_ * ctx.lineWidth; + + // VML cannot correctly render a line if the width is less than 1px. + // In that case, we dilute the color to make the line look thinner. + if (lineWidth < 1) { + opacity *= lineWidth; + } + + lineStr.push( + '' + ); + } + + function appendFill(ctx, lineStr, min, max) { + var fillStyle = ctx.fillStyle; + var arcScaleX = ctx.arcScaleX_; + var arcScaleY = ctx.arcScaleY_; + var width = max.x - min.x; + var height = max.y - min.y; + if (fillStyle instanceof CanvasGradient_) { + // TODO: Gradients transformed with the transformation matrix. + var angle = 0; + var focus = {x: 0, y: 0}; + + // additional offset + var shift = 0; + // scale factor for offset + var expansion = 1; + + if (fillStyle.type_ == 'gradient') { + var x0 = fillStyle.x0_ / arcScaleX; + var y0 = fillStyle.y0_ / arcScaleY; + var x1 = fillStyle.x1_ / arcScaleX; + var y1 = fillStyle.y1_ / arcScaleY; + var p0 = ctx.getCoords_(x0, y0); + var p1 = ctx.getCoords_(x1, y1); + var dx = p1.x - p0.x; + var dy = p1.y - p0.y; + angle = Math.atan2(dx, dy) * 180 / Math.PI; + + // The angle should be a non-negative number. + if (angle < 0) { + angle += 360; + } + + // Very small angles produce an unexpected result because they are + // converted to a scientific notation string. + if (angle < 1e-6) { + angle = 0; + } + } else { + var p0 = ctx.getCoords_(fillStyle.x0_, fillStyle.y0_); + focus = { + x: (p0.x - min.x) / width, + y: (p0.y - min.y) / height + }; + + width /= arcScaleX * Z; + height /= arcScaleY * Z; + var dimension = m.max(width, height); + shift = 2 * fillStyle.r0_ / dimension; + expansion = 2 * fillStyle.r1_ / dimension - shift; + } + + // We need to sort the color stops in ascending order by offset, + // otherwise IE won't interpret it correctly. + var stops = fillStyle.colors_; + stops.sort(function(cs1, cs2) { + return cs1.offset - cs2.offset; + }); + + var length = stops.length; + var color1 = stops[0].color; + var color2 = stops[length - 1].color; + var opacity1 = stops[0].alpha * ctx.globalAlpha; + var opacity2 = stops[length - 1].alpha * ctx.globalAlpha; + + var colors = []; + for (var i = 0; i < length; i++) { + var stop = stops[i]; + colors.push(stop.offset * expansion + shift + ' ' + stop.color); + } + + // When colors attribute is used, the meanings of opacity and o:opacity2 + // are reversed. + lineStr.push(''); + } else if (fillStyle instanceof CanvasPattern_) { + if (width && height) { + var deltaLeft = -min.x; + var deltaTop = -min.y; + lineStr.push(''); + } + } else { + var a = processStyle(ctx.fillStyle); + var color = a.color; + var opacity = a.alpha * ctx.globalAlpha; + lineStr.push(''); + } + } + + contextPrototype.fill = function() { + this.stroke(true); + }; + + contextPrototype.closePath = function() { + this.currentPath_.push({type: 'close'}); + }; + + /** + * @private + */ + contextPrototype.getCoords_ = function(aX, aY) { + var m = this.m_; + return { + x: Z * (aX * m[0][0] + aY * m[1][0] + m[2][0]) - Z2, + y: Z * (aX * m[0][1] + aY * m[1][1] + m[2][1]) - Z2 + }; + }; + + contextPrototype.save = function() { + var o = {}; + copyState(this, o); + this.aStack_.push(o); + this.mStack_.push(this.m_); + this.m_ = matrixMultiply(createMatrixIdentity(), this.m_); + }; + + contextPrototype.restore = function() { + if (this.aStack_.length) { + copyState(this.aStack_.pop(), this); + this.m_ = this.mStack_.pop(); + } + }; + + function matrixIsFinite(m) { + return isFinite(m[0][0]) && isFinite(m[0][1]) && + isFinite(m[1][0]) && isFinite(m[1][1]) && + isFinite(m[2][0]) && isFinite(m[2][1]); + } + + function setM(ctx, m, updateLineScale) { + if (!matrixIsFinite(m)) { + return; + } + ctx.m_ = m; + + if (updateLineScale) { + // Get the line scale. + // Determinant of this.m_ means how much the area is enlarged by the + // transformation. So its square root can be used as a scale factor + // for width. + var det = m[0][0] * m[1][1] - m[0][1] * m[1][0]; + ctx.lineScale_ = sqrt(abs(det)); + } + } + + contextPrototype.translate = function(aX, aY) { + var m1 = [ + [1, 0, 0], + [0, 1, 0], + [aX, aY, 1] + ]; + + setM(this, matrixMultiply(m1, this.m_), false); + }; + + contextPrototype.rotate = function(aRot) { + var c = mc(aRot); + var s = ms(aRot); + + var m1 = [ + [c, s, 0], + [-s, c, 0], + [0, 0, 1] + ]; + + setM(this, matrixMultiply(m1, this.m_), false); + }; + + contextPrototype.scale = function(aX, aY) { + this.arcScaleX_ *= aX; + this.arcScaleY_ *= aY; + var m1 = [ + [aX, 0, 0], + [0, aY, 0], + [0, 0, 1] + ]; + + setM(this, matrixMultiply(m1, this.m_), true); + }; + + contextPrototype.transform = function(m11, m12, m21, m22, dx, dy) { + var m1 = [ + [m11, m12, 0], + [m21, m22, 0], + [dx, dy, 1] + ]; + + setM(this, matrixMultiply(m1, this.m_), true); + }; + + contextPrototype.setTransform = function(m11, m12, m21, m22, dx, dy) { + var m = [ + [m11, m12, 0], + [m21, m22, 0], + [dx, dy, 1] + ]; + + setM(this, m, true); + }; + + /** + * The text drawing function. + * The maxWidth argument isn't taken in account, since no browser supports + * it yet. + */ + contextPrototype.drawText_ = function(text, x, y, maxWidth, stroke) { + var m = this.m_, + delta = 1000, + left = 0, + right = delta, + offset = {x: 0, y: 0}, + lineStr = []; + + var fontStyle = getComputedStyle(processFontStyle(this.font), + this.element_); + + var fontStyleString = buildStyle(fontStyle); + + var elementStyle = this.element_.currentStyle; + var textAlign = this.textAlign.toLowerCase(); + switch (textAlign) { + case 'left': + case 'center': + case 'right': + break; + case 'end': + textAlign = elementStyle.direction == 'ltr' ? 'right' : 'left'; + break; + case 'start': + textAlign = elementStyle.direction == 'rtl' ? 'right' : 'left'; + break; + default: + textAlign = 'left'; + } + + // 1.75 is an arbitrary number, as there is no info about the text baseline + switch (this.textBaseline) { + case 'hanging': + case 'top': + offset.y = fontStyle.size / 1.75; + break; + case 'middle': + break; + default: + case null: + case 'alphabetic': + case 'ideographic': + case 'bottom': + offset.y = -fontStyle.size / 2.25; + break; + } + + switch(textAlign) { + case 'right': + left = delta; + right = 0.05; + break; + case 'center': + left = right = delta / 2; + break; + } + + var d = this.getCoords_(x + offset.x, y + offset.y); + + lineStr.push(''); + + if (stroke) { + appendStroke(this, lineStr); + } else { + // TODO: Fix the min and max params. + appendFill(this, lineStr, {x: -left, y: 0}, + {x: right, y: fontStyle.size}); + } + + var skewM = m[0][0].toFixed(3) + ',' + m[1][0].toFixed(3) + ',' + + m[0][1].toFixed(3) + ',' + m[1][1].toFixed(3) + ',0,0'; + + var skewOffset = mr(d.x / Z) + ',' + mr(d.y / Z); + + lineStr.push('', + '', + ''); + + this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); + }; + + contextPrototype.fillText = function(text, x, y, maxWidth) { + this.drawText_(text, x, y, maxWidth, false); + }; + + contextPrototype.strokeText = function(text, x, y, maxWidth) { + this.drawText_(text, x, y, maxWidth, true); + }; + + contextPrototype.measureText = function(text) { + if (!this.textMeasureEl_) { + var s = ''; + this.element_.insertAdjacentHTML('beforeEnd', s); + this.textMeasureEl_ = this.element_.lastChild; + } + var doc = this.element_.ownerDocument; + this.textMeasureEl_.innerHTML = ''; + this.textMeasureEl_.style.font = this.font; + // Don't use innerHTML or innerText because they allow markup/whitespace. + this.textMeasureEl_.appendChild(doc.createTextNode(text)); + return {width: this.textMeasureEl_.offsetWidth}; + }; + + /******** STUBS ********/ + contextPrototype.clip = function() { + // TODO: Implement + }; + + contextPrototype.arcTo = function() { + // TODO: Implement + }; + + contextPrototype.createPattern = function(image, repetition) { + return new CanvasPattern_(image, repetition); + }; + + // Gradient / Pattern Stubs + function CanvasGradient_(aType) { + this.type_ = aType; + this.x0_ = 0; + this.y0_ = 0; + this.r0_ = 0; + this.x1_ = 0; + this.y1_ = 0; + this.r1_ = 0; + this.colors_ = []; + } + + CanvasGradient_.prototype.addColorStop = function(aOffset, aColor) { + aColor = processStyle(aColor); + this.colors_.push({offset: aOffset, + color: aColor.color, + alpha: aColor.alpha}); + }; + + function CanvasPattern_(image, repetition) { + assertImageIsValid(image); + switch (repetition) { + case 'repeat': + case null: + case '': + this.repetition_ = 'repeat'; + break + case 'repeat-x': + case 'repeat-y': + case 'no-repeat': + this.repetition_ = repetition; + break; + default: + throwException('SYNTAX_ERR'); + } + + this.src_ = image.src; + this.width_ = image.width; + this.height_ = image.height; + } + + function throwException(s) { + throw new DOMException_(s); + } + + function assertImageIsValid(img) { + if (!img || img.nodeType != 1 || img.tagName != 'IMG') { + throwException('TYPE_MISMATCH_ERR'); + } + if (img.readyState != 'complete') { + throwException('INVALID_STATE_ERR'); + } + } + + function DOMException_(s) { + this.code = this[s]; + this.message = s +': DOM Exception ' + this.code; + } + var p = DOMException_.prototype = new Error; + p.INDEX_SIZE_ERR = 1; + p.DOMSTRING_SIZE_ERR = 2; + p.HIERARCHY_REQUEST_ERR = 3; + p.WRONG_DOCUMENT_ERR = 4; + p.INVALID_CHARACTER_ERR = 5; + p.NO_DATA_ALLOWED_ERR = 6; + p.NO_MODIFICATION_ALLOWED_ERR = 7; + p.NOT_FOUND_ERR = 8; + p.NOT_SUPPORTED_ERR = 9; + p.INUSE_ATTRIBUTE_ERR = 10; + p.INVALID_STATE_ERR = 11; + p.SYNTAX_ERR = 12; + p.INVALID_MODIFICATION_ERR = 13; + p.NAMESPACE_ERR = 14; + p.INVALID_ACCESS_ERR = 15; + p.VALIDATION_ERR = 16; + p.TYPE_MISMATCH_ERR = 17; + + // set up externs + G_vmlCanvasManager = G_vmlCanvasManager_; + CanvasRenderingContext2D = CanvasRenderingContext2D_; + CanvasGradient = CanvasGradient_; + CanvasPattern = CanvasPattern_; + DOMException = DOMException_; +})(); + +} // if diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/excanvas.min.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/excanvas.min.js" new file mode 100644 index 0000000..12c74f7 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/excanvas.min.js" @@ -0,0 +1 @@ +if(!document.createElement("canvas").getContext){(function(){var z=Math;var K=z.round;var J=z.sin;var U=z.cos;var b=z.abs;var k=z.sqrt;var D=10;var F=D/2;function T(){return this.context_||(this.context_=new W(this))}var O=Array.prototype.slice;function G(i,j,m){var Z=O.call(arguments,2);return function(){return i.apply(j,Z.concat(O.call(arguments)))}}function AD(Z){return String(Z).replace(/&/g,"&").replace(/"/g,""")}function r(i){if(!i.namespaces.g_vml_){i.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml","#default#VML")}if(!i.namespaces.g_o_){i.namespaces.add("g_o_","urn:schemas-microsoft-com:office:office","#default#VML")}if(!i.styleSheets.ex_canvas_){var Z=i.createStyleSheet();Z.owningElement.id="ex_canvas_";Z.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"}}r(document);var E={init:function(Z){if(/MSIE/.test(navigator.userAgent)&&!window.opera){var i=Z||document;i.createElement("canvas");i.attachEvent("onreadystatechange",G(this.init_,this,i))}},init_:function(m){var j=m.getElementsByTagName("canvas");for(var Z=0;Z1){j--}if(6*j<1){return i+(Z-i)*6*j}else{if(2*j<1){return Z}else{if(3*j<2){return i+(Z-i)*(2/3-j)*6}else{return i}}}}function Y(Z){var AE,p=1;Z=String(Z);if(Z.charAt(0)=="#"){AE=Z}else{if(/^rgb/.test(Z)){var m=g(Z);var AE="#",AF;for(var j=0;j<3;j++){if(m[j].indexOf("%")!=-1){AF=Math.floor(C(m[j])*255)}else{AF=Number(m[j])}AE+=I[N(AF,0,255)]}p=m[3]}else{if(/^hsl/.test(Z)){var m=g(Z);AE=c(m);p=m[3]}else{AE=B[Z]||Z}}}return{color:AE,alpha:p}}var L={style:"normal",variant:"normal",weight:"normal",size:10,family:"sans-serif"};var f={};function X(Z){if(f[Z]){return f[Z]}var m=document.createElement("div");var j=m.style;try{j.font=Z}catch(i){}return f[Z]={style:j.fontStyle||L.style,variant:j.fontVariant||L.variant,weight:j.fontWeight||L.weight,size:j.fontSize||L.size,family:j.fontFamily||L.family}}function P(j,i){var Z={};for(var AF in j){Z[AF]=j[AF]}var AE=parseFloat(i.currentStyle.fontSize),m=parseFloat(j.size);if(typeof j.size=="number"){Z.size=j.size}else{if(j.size.indexOf("px")!=-1){Z.size=m}else{if(j.size.indexOf("em")!=-1){Z.size=AE*m}else{if(j.size.indexOf("%")!=-1){Z.size=(AE/100)*m}else{if(j.size.indexOf("pt")!=-1){Z.size=m/0.75}else{Z.size=AE}}}}}Z.size*=0.981;return Z}function AA(Z){return Z.style+" "+Z.variant+" "+Z.weight+" "+Z.size+"px "+Z.family}function t(Z){switch(Z){case"butt":return"flat";case"round":return"round";case"square":default:return"square"}}function W(i){this.m_=V();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.strokeStyle="#000";this.fillStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=D*1;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=i;var Z=i.ownerDocument.createElement("div");Z.style.width=i.clientWidth+"px";Z.style.height=i.clientHeight+"px";Z.style.overflow="hidden";Z.style.position="absolute";i.appendChild(Z);this.element_=Z;this.arcScaleX_=1;this.arcScaleY_=1;this.lineScale_=1}var M=W.prototype;M.clearRect=function(){if(this.textMeasureEl_){this.textMeasureEl_.removeNode(true);this.textMeasureEl_=null}this.element_.innerHTML=""};M.beginPath=function(){this.currentPath_=[]};M.moveTo=function(i,Z){var j=this.getCoords_(i,Z);this.currentPath_.push({type:"moveTo",x:j.x,y:j.y});this.currentX_=j.x;this.currentY_=j.y};M.lineTo=function(i,Z){var j=this.getCoords_(i,Z);this.currentPath_.push({type:"lineTo",x:j.x,y:j.y});this.currentX_=j.x;this.currentY_=j.y};M.bezierCurveTo=function(j,i,AI,AH,AG,AE){var Z=this.getCoords_(AG,AE);var AF=this.getCoords_(j,i);var m=this.getCoords_(AI,AH);e(this,AF,m,Z)};function e(Z,m,j,i){Z.currentPath_.push({type:"bezierCurveTo",cp1x:m.x,cp1y:m.y,cp2x:j.x,cp2y:j.y,x:i.x,y:i.y});Z.currentX_=i.x;Z.currentY_=i.y}M.quadraticCurveTo=function(AG,j,i,Z){var AF=this.getCoords_(AG,j);var AE=this.getCoords_(i,Z);var AH={x:this.currentX_+2/3*(AF.x-this.currentX_),y:this.currentY_+2/3*(AF.y-this.currentY_)};var m={x:AH.x+(AE.x-this.currentX_)/3,y:AH.y+(AE.y-this.currentY_)/3};e(this,AH,m,AE)};M.arc=function(AJ,AH,AI,AE,i,j){AI*=D;var AN=j?"at":"wa";var AK=AJ+U(AE)*AI-F;var AM=AH+J(AE)*AI-F;var Z=AJ+U(i)*AI-F;var AL=AH+J(i)*AI-F;if(AK==Z&&!j){AK+=0.125}var m=this.getCoords_(AJ,AH);var AG=this.getCoords_(AK,AM);var AF=this.getCoords_(Z,AL);this.currentPath_.push({type:AN,x:m.x,y:m.y,radius:AI,xStart:AG.x,yStart:AG.y,xEnd:AF.x,yEnd:AF.y})};M.rect=function(j,i,Z,m){this.moveTo(j,i);this.lineTo(j+Z,i);this.lineTo(j+Z,i+m);this.lineTo(j,i+m);this.closePath()};M.strokeRect=function(j,i,Z,m){var p=this.currentPath_;this.beginPath();this.moveTo(j,i);this.lineTo(j+Z,i);this.lineTo(j+Z,i+m);this.lineTo(j,i+m);this.closePath();this.stroke();this.currentPath_=p};M.fillRect=function(j,i,Z,m){var p=this.currentPath_;this.beginPath();this.moveTo(j,i);this.lineTo(j+Z,i);this.lineTo(j+Z,i+m);this.lineTo(j,i+m);this.closePath();this.fill();this.currentPath_=p};M.createLinearGradient=function(i,m,Z,j){var p=new v("gradient");p.x0_=i;p.y0_=m;p.x1_=Z;p.y1_=j;return p};M.createRadialGradient=function(m,AE,j,i,p,Z){var AF=new v("gradientradial");AF.x0_=m;AF.y0_=AE;AF.r0_=j;AF.x1_=i;AF.y1_=p;AF.r1_=Z;return AF};M.drawImage=function(AO,j){var AH,AF,AJ,AV,AM,AK,AQ,AX;var AI=AO.runtimeStyle.width;var AN=AO.runtimeStyle.height;AO.runtimeStyle.width="auto";AO.runtimeStyle.height="auto";var AG=AO.width;var AT=AO.height;AO.runtimeStyle.width=AI;AO.runtimeStyle.height=AN;if(arguments.length==3){AH=arguments[1];AF=arguments[2];AM=AK=0;AQ=AJ=AG;AX=AV=AT}else{if(arguments.length==5){AH=arguments[1];AF=arguments[2];AJ=arguments[3];AV=arguments[4];AM=AK=0;AQ=AG;AX=AT}else{if(arguments.length==9){AM=arguments[1];AK=arguments[2];AQ=arguments[3];AX=arguments[4];AH=arguments[5];AF=arguments[6];AJ=arguments[7];AV=arguments[8]}else{throw Error("Invalid number of arguments")}}}var AW=this.getCoords_(AH,AF);var m=AQ/2;var i=AX/2;var AU=[];var Z=10;var AE=10;AU.push(" ','","");this.element_.insertAdjacentHTML("BeforeEnd",AU.join(""))};M.stroke=function(AM){var m=10;var AN=10;var AE=5000;var AG={x:null,y:null};var AL={x:null,y:null};for(var AH=0;AHAL.x){AL.x=Z.x}if(AG.y==null||Z.yAL.y){AL.y=Z.y}}}AK.push(' ">');if(!AM){R(this,AK)}else{a(this,AK,AG,AL)}AK.push("");this.element_.insertAdjacentHTML("beforeEnd",AK.join(""))}};function R(j,AE){var i=Y(j.strokeStyle);var m=i.color;var p=i.alpha*j.globalAlpha;var Z=j.lineScale_*j.lineWidth;if(Z<1){p*=Z}AE.push("')}function a(AO,AG,Ah,AP){var AH=AO.fillStyle;var AY=AO.arcScaleX_;var AX=AO.arcScaleY_;var Z=AP.x-Ah.x;var m=AP.y-Ah.y;if(AH instanceof v){var AL=0;var Ac={x:0,y:0};var AU=0;var AK=1;if(AH.type_=="gradient"){var AJ=AH.x0_/AY;var j=AH.y0_/AX;var AI=AH.x1_/AY;var Aj=AH.y1_/AX;var Ag=AO.getCoords_(AJ,j);var Af=AO.getCoords_(AI,Aj);var AE=Af.x-Ag.x;var p=Af.y-Ag.y;AL=Math.atan2(AE,p)*180/Math.PI;if(AL<0){AL+=360}if(AL<0.000001){AL=0}}else{var Ag=AO.getCoords_(AH.x0_,AH.y0_);Ac={x:(Ag.x-Ah.x)/Z,y:(Ag.y-Ah.y)/m};Z/=AY*D;m/=AX*D;var Aa=z.max(Z,m);AU=2*AH.r0_/Aa;AK=2*AH.r1_/Aa-AU}var AS=AH.colors_;AS.sort(function(Ak,i){return Ak.offset-i.offset});var AN=AS.length;var AR=AS[0].color;var AQ=AS[AN-1].color;var AW=AS[0].alpha*AO.globalAlpha;var AV=AS[AN-1].alpha*AO.globalAlpha;var Ab=[];for(var Ae=0;Ae')}else{if(AH instanceof u){if(Z&&m){var AF=-Ah.x;var AZ=-Ah.y;AG.push("')}}else{var Ai=Y(AO.fillStyle);var AT=Ai.color;var Ad=Ai.alpha*AO.globalAlpha;AG.push('')}}}M.fill=function(){this.stroke(true)};M.closePath=function(){this.currentPath_.push({type:"close"})};M.getCoords_=function(j,i){var Z=this.m_;return{x:D*(j*Z[0][0]+i*Z[1][0]+Z[2][0])-F,y:D*(j*Z[0][1]+i*Z[1][1]+Z[2][1])-F}};M.save=function(){var Z={};Q(this,Z);this.aStack_.push(Z);this.mStack_.push(this.m_);this.m_=d(V(),this.m_)};M.restore=function(){if(this.aStack_.length){Q(this.aStack_.pop(),this);this.m_=this.mStack_.pop()}};function H(Z){return isFinite(Z[0][0])&&isFinite(Z[0][1])&&isFinite(Z[1][0])&&isFinite(Z[1][1])&&isFinite(Z[2][0])&&isFinite(Z[2][1])}function y(i,Z,j){if(!H(Z)){return }i.m_=Z;if(j){var p=Z[0][0]*Z[1][1]-Z[0][1]*Z[1][0];i.lineScale_=k(b(p))}}M.translate=function(j,i){var Z=[[1,0,0],[0,1,0],[j,i,1]];y(this,d(Z,this.m_),false)};M.rotate=function(i){var m=U(i);var j=J(i);var Z=[[m,j,0],[-j,m,0],[0,0,1]];y(this,d(Z,this.m_),false)};M.scale=function(j,i){this.arcScaleX_*=j;this.arcScaleY_*=i;var Z=[[j,0,0],[0,i,0],[0,0,1]];y(this,d(Z,this.m_),true)};M.transform=function(p,m,AF,AE,i,Z){var j=[[p,m,0],[AF,AE,0],[i,Z,1]];y(this,d(j,this.m_),true)};M.setTransform=function(AE,p,AG,AF,j,i){var Z=[[AE,p,0],[AG,AF,0],[j,i,1]];y(this,Z,true)};M.drawText_=function(AK,AI,AH,AN,AG){var AM=this.m_,AQ=1000,i=0,AP=AQ,AF={x:0,y:0},AE=[];var Z=P(X(this.font),this.element_);var j=AA(Z);var AR=this.element_.currentStyle;var p=this.textAlign.toLowerCase();switch(p){case"left":case"center":case"right":break;case"end":p=AR.direction=="ltr"?"right":"left";break;case"start":p=AR.direction=="rtl"?"right":"left";break;default:p="left"}switch(this.textBaseline){case"hanging":case"top":AF.y=Z.size/1.75;break;case"middle":break;default:case null:case"alphabetic":case"ideographic":case"bottom":AF.y=-Z.size/2.25;break}switch(p){case"right":i=AQ;AP=0.05;break;case"center":i=AP=AQ/2;break}var AO=this.getCoords_(AI+AF.x,AH+AF.y);AE.push('');if(AG){R(this,AE)}else{a(this,AE,{x:-i,y:0},{x:AP,y:Z.size})}var AL=AM[0][0].toFixed(3)+","+AM[1][0].toFixed(3)+","+AM[0][1].toFixed(3)+","+AM[1][1].toFixed(3)+",0,0";var AJ=K(AO.x/D)+","+K(AO.y/D);AE.push('','','');this.element_.insertAdjacentHTML("beforeEnd",AE.join(""))};M.fillText=function(j,Z,m,i){this.drawText_(j,Z,m,i,false)};M.strokeText=function(j,Z,m,i){this.drawText_(j,Z,m,i,true)};M.measureText=function(j){if(!this.textMeasureEl_){var Z='';this.element_.insertAdjacentHTML("beforeEnd",Z);this.textMeasureEl_=this.element_.lastChild}var i=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(i.createTextNode(j));return{width:this.textMeasureEl_.offsetWidth}};M.clip=function(){};M.arcTo=function(){};M.createPattern=function(i,Z){return new u(i,Z)};function v(Z){this.type_=Z;this.x0_=0;this.y0_=0;this.r0_=0;this.x1_=0;this.y1_=0;this.r1_=0;this.colors_=[]}v.prototype.addColorStop=function(i,Z){Z=Y(Z);this.colors_.push({offset:i,color:Z.color,alpha:Z.alpha})};function u(i,Z){q(i);switch(Z){case"repeat":case null:case"":this.repetition_="repeat";break;case"repeat-x":case"repeat-y":case"no-repeat":this.repetition_=Z;break;default:n("SYNTAX_ERR")}this.src_=i.src;this.width_=i.width;this.height_=i.height}function n(Z){throw new o(Z)}function q(Z){if(!Z||Z.nodeType!=1||Z.tagName!="IMG"){n("TYPE_MISMATCH_ERR")}if(Z.readyState!="complete"){n("INVALID_STATE_ERR")}}function o(Z){this.code=this[Z];this.message=Z+": DOM Exception "+this.code}var x=o.prototype=new Error;x.INDEX_SIZE_ERR=1;x.DOMSTRING_SIZE_ERR=2;x.HIERARCHY_REQUEST_ERR=3;x.WRONG_DOCUMENT_ERR=4;x.INVALID_CHARACTER_ERR=5;x.NO_DATA_ALLOWED_ERR=6;x.NO_MODIFICATION_ALLOWED_ERR=7;x.NOT_FOUND_ERR=8;x.NOT_SUPPORTED_ERR=9;x.INUSE_ATTRIBUTE_ERR=10;x.INVALID_STATE_ERR=11;x.SYNTAX_ERR=12;x.INVALID_MODIFICATION_ERR=13;x.NAMESPACE_ERR=14;x.INVALID_ACCESS_ERR=15;x.VALIDATION_ERR=16;x.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=E;CanvasRenderingContext2D=W;CanvasGradient=v;CanvasPattern=u;DOMException=o})()}; \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.colorhelpers.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.colorhelpers.js" new file mode 100644 index 0000000..d3524d7 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.colorhelpers.js" @@ -0,0 +1,179 @@ +/* Plugin for jQuery for working with colors. + * + * Version 1.1. + * + * Inspiration from jQuery color animation plugin by John Resig. + * + * Released under the MIT license by Ole Laursen, October 2009. + * + * Examples: + * + * $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString() + * var c = $.color.extract($("#mydiv"), 'background-color'); + * console.log(c.r, c.g, c.b, c.a); + * $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)" + * + * Note that .scale() and .add() return the same modified object + * instead of making a new one. + * + * V. 1.1: Fix error handling so e.g. parsing an empty string does + * produce a color rather than just crashing. + */ + +(function($) { + $.color = {}; + + // construct color object with some convenient chainable helpers + $.color.make = function (r, g, b, a) { + var o = {}; + o.r = r || 0; + o.g = g || 0; + o.b = b || 0; + o.a = a != null ? a : 1; + + o.add = function (c, d) { + for (var i = 0; i < c.length; ++i) + o[c.charAt(i)] += d; + return o.normalize(); + }; + + o.scale = function (c, f) { + for (var i = 0; i < c.length; ++i) + o[c.charAt(i)] *= f; + return o.normalize(); + }; + + o.toString = function () { + if (o.a >= 1.0) { + return "rgb("+[o.r, o.g, o.b].join(",")+")"; + } else { + return "rgba("+[o.r, o.g, o.b, o.a].join(",")+")"; + } + }; + + o.normalize = function () { + function clamp(min, value, max) { + return value < min ? min: (value > max ? max: value); + } + + o.r = clamp(0, parseInt(o.r), 255); + o.g = clamp(0, parseInt(o.g), 255); + o.b = clamp(0, parseInt(o.b), 255); + o.a = clamp(0, o.a, 1); + return o; + }; + + o.clone = function () { + return $.color.make(o.r, o.b, o.g, o.a); + }; + + return o.normalize(); + } + + // extract CSS color property from element, going up in the DOM + // if it's "transparent" + $.color.extract = function (elem, css) { + var c; + do { + c = elem.css(css).toLowerCase(); + // keep going until we find an element that has color, or + // we hit the body + if (c != '' && c != 'transparent') + break; + elem = elem.parent(); + } while (!$.nodeName(elem.get(0), "body")); + + // catch Safari's way of signalling transparent + if (c == "rgba(0, 0, 0, 0)") + c = "transparent"; + + return $.color.parse(c); + } + + // parse CSS color string (like "rgb(10, 32, 43)" or "#fff"), + // returns color object, if parsing failed, you get black (0, 0, + // 0) out + $.color.parse = function (str) { + var res, m = $.color.make; + + // Look for rgb(num,num,num) + if (res = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str)) + return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10)); + + // Look for rgba(num,num,num,num) + if (res = /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str)) + return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10), parseFloat(res[4])); + + // Look for rgb(num%,num%,num%) + if (res = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str)) + return m(parseFloat(res[1])*2.55, parseFloat(res[2])*2.55, parseFloat(res[3])*2.55); + + // Look for rgba(num%,num%,num%,num) + if (res = /rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str)) + return m(parseFloat(res[1])*2.55, parseFloat(res[2])*2.55, parseFloat(res[3])*2.55, parseFloat(res[4])); + + // Look for #a0b1c2 + if (res = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str)) + return m(parseInt(res[1], 16), parseInt(res[2], 16), parseInt(res[3], 16)); + + // Look for #fff + if (res = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str)) + return m(parseInt(res[1]+res[1], 16), parseInt(res[2]+res[2], 16), parseInt(res[3]+res[3], 16)); + + // Otherwise, we're most likely dealing with a named color + var name = $.trim(str).toLowerCase(); + if (name == "transparent") + return m(255, 255, 255, 0); + else { + // default to black + res = lookupColors[name] || [0, 0, 0]; + return m(res[0], res[1], res[2]); + } + } + + var lookupColors = { + aqua:[0,255,255], + azure:[240,255,255], + beige:[245,245,220], + black:[0,0,0], + blue:[0,0,255], + brown:[165,42,42], + cyan:[0,255,255], + darkblue:[0,0,139], + darkcyan:[0,139,139], + darkgrey:[169,169,169], + darkgreen:[0,100,0], + darkkhaki:[189,183,107], + darkmagenta:[139,0,139], + darkolivegreen:[85,107,47], + darkorange:[255,140,0], + darkorchid:[153,50,204], + darkred:[139,0,0], + darksalmon:[233,150,122], + darkviolet:[148,0,211], + fuchsia:[255,0,255], + gold:[255,215,0], + green:[0,128,0], + indigo:[75,0,130], + khaki:[240,230,140], + lightblue:[173,216,230], + lightcyan:[224,255,255], + lightgreen:[144,238,144], + lightgrey:[211,211,211], + lightpink:[255,182,193], + lightyellow:[255,255,224], + lime:[0,255,0], + magenta:[255,0,255], + maroon:[128,0,0], + navy:[0,0,128], + olive:[128,128,0], + orange:[255,165,0], + pink:[255,192,203], + purple:[128,0,128], + violet:[128,0,128], + red:[255,0,0], + silver:[192,192,192], + white:[255,255,255], + yellow:[255,255,0] + }; +})(jQuery); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.crosshair.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.crosshair.js" new file mode 100644 index 0000000..1d433f0 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.crosshair.js" @@ -0,0 +1,167 @@ +/* +Flot plugin for showing crosshairs, thin lines, when the mouse hovers +over the plot. + + crosshair: { + mode: null or "x" or "y" or "xy" + color: color + lineWidth: number + } + +Set the mode to one of "x", "y" or "xy". The "x" mode enables a +vertical crosshair that lets you trace the values on the x axis, "y" +enables a horizontal crosshair and "xy" enables them both. "color" is +the color of the crosshair (default is "rgba(170, 0, 0, 0.80)"), +"lineWidth" is the width of the drawn lines (default is 1). + +The plugin also adds four public methods: + + - setCrosshair(pos) + + Set the position of the crosshair. Note that this is cleared if + the user moves the mouse. "pos" is in coordinates of the plot and + should be on the form { x: xpos, y: ypos } (you can use x2/x3/... + if you're using multiple axes), which is coincidentally the same + format as what you get from a "plothover" event. If "pos" is null, + the crosshair is cleared. + + - clearCrosshair() + + Clear the crosshair. + + - lockCrosshair(pos) + + Cause the crosshair to lock to the current location, no longer + updating if the user moves the mouse. Optionally supply a position + (passed on to setCrosshair()) to move it to. + + Example usage: + var myFlot = $.plot( $("#graph"), ..., { crosshair: { mode: "x" } } }; + $("#graph").bind("plothover", function (evt, position, item) { + if (item) { + // Lock the crosshair to the data point being hovered + myFlot.lockCrosshair({ x: item.datapoint[0], y: item.datapoint[1] }); + } + else { + // Return normal crosshair operation + myFlot.unlockCrosshair(); + } + }); + + - unlockCrosshair() + + Free the crosshair to move again after locking it. +*/ + +(function ($) { + var options = { + crosshair: { + mode: null, // one of null, "x", "y" or "xy", + color: "rgba(170, 0, 0, 0.80)", + lineWidth: 1 + } + }; + + function init(plot) { + // position of crosshair in pixels + var crosshair = { x: -1, y: -1, locked: false }; + + plot.setCrosshair = function setCrosshair(pos) { + if (!pos) + crosshair.x = -1; + else { + var o = plot.p2c(pos); + crosshair.x = Math.max(0, Math.min(o.left, plot.width())); + crosshair.y = Math.max(0, Math.min(o.top, plot.height())); + } + + plot.triggerRedrawOverlay(); + }; + + plot.clearCrosshair = plot.setCrosshair; // passes null for pos + + plot.lockCrosshair = function lockCrosshair(pos) { + if (pos) + plot.setCrosshair(pos); + crosshair.locked = true; + } + + plot.unlockCrosshair = function unlockCrosshair() { + crosshair.locked = false; + } + + function onMouseOut(e) { + if (crosshair.locked) + return; + + if (crosshair.x != -1) { + crosshair.x = -1; + plot.triggerRedrawOverlay(); + } + } + + function onMouseMove(e) { + if (crosshair.locked) + return; + + if (plot.getSelection && plot.getSelection()) { + crosshair.x = -1; // hide the crosshair while selecting + return; + } + + var offset = plot.offset(); + crosshair.x = Math.max(0, Math.min(e.pageX - offset.left, plot.width())); + crosshair.y = Math.max(0, Math.min(e.pageY - offset.top, plot.height())); + plot.triggerRedrawOverlay(); + } + + plot.hooks.bindEvents.push(function (plot, eventHolder) { + if (!plot.getOptions().crosshair.mode) + return; + + eventHolder.mouseout(onMouseOut); + eventHolder.mousemove(onMouseMove); + }); + + plot.hooks.drawOverlay.push(function (plot, ctx) { + var c = plot.getOptions().crosshair; + if (!c.mode) + return; + + var plotOffset = plot.getPlotOffset(); + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + if (crosshair.x != -1) { + ctx.strokeStyle = c.color; + ctx.lineWidth = c.lineWidth; + ctx.lineJoin = "round"; + + ctx.beginPath(); + if (c.mode.indexOf("x") != -1) { + ctx.moveTo(crosshair.x, 0); + ctx.lineTo(crosshair.x, plot.height()); + } + if (c.mode.indexOf("y") != -1) { + ctx.moveTo(0, crosshair.y); + ctx.lineTo(plot.width(), crosshair.y); + } + ctx.stroke(); + } + ctx.restore(); + }); + + plot.hooks.shutdown.push(function (plot, eventHolder) { + eventHolder.unbind("mouseout", onMouseOut); + eventHolder.unbind("mousemove", onMouseMove); + }); + } + + $.plot.plugins.push({ + init: init, + options: options, + name: 'crosshair', + version: '1.0' + }); +})(jQuery); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.fillbetween.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.fillbetween.js" new file mode 100644 index 0000000..69700e7 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.fillbetween.js" @@ -0,0 +1,183 @@ +/* +Flot plugin for computing bottoms for filled line and bar charts. + +The case: you've got two series that you want to fill the area +between. In Flot terms, you need to use one as the fill bottom of the +other. You can specify the bottom of each data point as the third +coordinate manually, or you can use this plugin to compute it for you. + +In order to name the other series, you need to give it an id, like this + + var dataset = [ + { data: [ ... ], id: "foo" } , // use default bottom + { data: [ ... ], fillBetween: "foo" }, // use first dataset as bottom + ]; + + $.plot($("#placeholder"), dataset, { line: { show: true, fill: true }}); + +As a convenience, if the id given is a number that doesn't appear as +an id in the series, it is interpreted as the index in the array +instead (so fillBetween: 0 can also mean the first series). + +Internally, the plugin modifies the datapoints in each series. For +line series, extra data points might be inserted through +interpolation. Note that at points where the bottom line is not +defined (due to a null point or start/end of line), the current line +will show a gap too. The algorithm comes from the jquery.flot.stack.js +plugin, possibly some code could be shared. +*/ + +(function ($) { + var options = { + series: { fillBetween: null } // or number + }; + + function init(plot) { + function findBottomSeries(s, allseries) { + var i; + for (i = 0; i < allseries.length; ++i) { + if (allseries[i].id == s.fillBetween) + return allseries[i]; + } + + if (typeof s.fillBetween == "number") { + i = s.fillBetween; + + if (i < 0 || i >= allseries.length) + return null; + + return allseries[i]; + } + + return null; + } + + function computeFillBottoms(plot, s, datapoints) { + if (s.fillBetween == null) + return; + + var other = findBottomSeries(s, plot.getData()); + if (!other) + return; + + var ps = datapoints.pointsize, + points = datapoints.points, + otherps = other.datapoints.pointsize, + otherpoints = other.datapoints.points, + newpoints = [], + px, py, intery, qx, qy, bottom, + withlines = s.lines.show, + withbottom = ps > 2 && datapoints.format[2].y, + withsteps = withlines && s.lines.steps, + fromgap = true, + i = 0, j = 0, l; + + while (true) { + if (i >= points.length) + break; + + l = newpoints.length; + + if (points[i] == null) { + // copy gaps + for (m = 0; m < ps; ++m) + newpoints.push(points[i + m]); + i += ps; + } + else if (j >= otherpoints.length) { + // for lines, we can't use the rest of the points + if (!withlines) { + for (m = 0; m < ps; ++m) + newpoints.push(points[i + m]); + } + i += ps; + } + else if (otherpoints[j] == null) { + // oops, got a gap + for (m = 0; m < ps; ++m) + newpoints.push(null); + fromgap = true; + j += otherps; + } + else { + // cases where we actually got two points + px = points[i]; + py = points[i + 1]; + qx = otherpoints[j]; + qy = otherpoints[j + 1]; + bottom = 0; + + if (px == qx) { + for (m = 0; m < ps; ++m) + newpoints.push(points[i + m]); + + //newpoints[l + 1] += qy; + bottom = qy; + + i += ps; + j += otherps; + } + else if (px > qx) { + // we got past point below, might need to + // insert interpolated extra point + if (withlines && i > 0 && points[i - ps] != null) { + intery = py + (points[i - ps + 1] - py) * (qx - px) / (points[i - ps] - px); + newpoints.push(qx); + newpoints.push(intery) + for (m = 2; m < ps; ++m) + newpoints.push(points[i + m]); + bottom = qy; + } + + j += otherps; + } + else { // px < qx + if (fromgap && withlines) { + // if we come from a gap, we just skip this point + i += ps; + continue; + } + + for (m = 0; m < ps; ++m) + newpoints.push(points[i + m]); + + // we might be able to interpolate a point below, + // this can give us a better y + if (withlines && j > 0 && otherpoints[j - otherps] != null) + bottom = qy + (otherpoints[j - otherps + 1] - qy) * (px - qx) / (otherpoints[j - otherps] - qx); + + //newpoints[l + 1] += bottom; + + i += ps; + } + + fromgap = false; + + if (l != newpoints.length && withbottom) + newpoints[l + 2] = bottom; + } + + // maintain the line steps invariant + if (withsteps && l != newpoints.length && l > 0 + && newpoints[l] != null + && newpoints[l] != newpoints[l - ps] + && newpoints[l + 1] != newpoints[l - ps + 1]) { + for (m = 0; m < ps; ++m) + newpoints[l + ps + m] = newpoints[l + m]; + newpoints[l + 1] = newpoints[l - ps + 1]; + } + } + + datapoints.points = newpoints; + } + + plot.hooks.processDatapoints.push(computeFillBottoms); + } + + $.plot.plugins.push({ + init: init, + options: options, + name: 'fillbetween', + version: '1.0' + }); +})(jQuery); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.image.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.image.js" new file mode 100644 index 0000000..29ccb12 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.image.js" @@ -0,0 +1,238 @@ +/* +Flot plugin for plotting images, e.g. useful for putting ticks on a +prerendered complex visualization. + +The data syntax is [[image, x1, y1, x2, y2], ...] where (x1, y1) and +(x2, y2) are where you intend the two opposite corners of the image to +end up in the plot. Image must be a fully loaded Javascript image (you +can make one with new Image()). If the image is not complete, it's +skipped when plotting. + +There are two helpers included for retrieving images. The easiest work +the way that you put in URLs instead of images in the data (like +["myimage.png", 0, 0, 10, 10]), then call $.plot.image.loadData(data, +options, callback) where data and options are the same as you pass in +to $.plot. This loads the images, replaces the URLs in the data with +the corresponding images and calls "callback" when all images are +loaded (or failed loading). In the callback, you can then call $.plot +with the data set. See the included example. + +A more low-level helper, $.plot.image.load(urls, callback) is also +included. Given a list of URLs, it calls callback with an object +mapping from URL to Image object when all images are loaded or have +failed loading. + +Options for the plugin are + + series: { + images: { + show: boolean + anchor: "corner" or "center" + alpha: [0,1] + } + } + +which can be specified for a specific series + + $.plot($("#placeholder"), [{ data: [ ... ], images: { ... } ]) + +Note that because the data format is different from usual data points, +you can't use images with anything else in a specific data series. + +Setting "anchor" to "center" causes the pixels in the image to be +anchored at the corner pixel centers inside of at the pixel corners, +effectively letting half a pixel stick out to each side in the plot. + + +A possible future direction could be support for tiling for large +images (like Google Maps). + +*/ + +(function ($) { + var options = { + series: { + images: { + show: false, + alpha: 1, + anchor: "corner" // or "center" + } + } + }; + + $.plot.image = {}; + + $.plot.image.loadDataImages = function (series, options, callback) { + var urls = [], points = []; + + var defaultShow = options.series.images.show; + + $.each(series, function (i, s) { + if (!(defaultShow || s.images.show)) + return; + + if (s.data) + s = s.data; + + $.each(s, function (i, p) { + if (typeof p[0] == "string") { + urls.push(p[0]); + points.push(p); + } + }); + }); + + $.plot.image.load(urls, function (loadedImages) { + $.each(points, function (i, p) { + var url = p[0]; + if (loadedImages[url]) + p[0] = loadedImages[url]; + }); + + callback(); + }); + } + + $.plot.image.load = function (urls, callback) { + var missing = urls.length, loaded = {}; + if (missing == 0) + callback({}); + + $.each(urls, function (i, url) { + var handler = function () { + --missing; + + loaded[url] = this; + + if (missing == 0) + callback(loaded); + }; + + $('').load(handler).error(handler).attr('src', url); + }); + } + + function drawSeries(plot, ctx, series) { + var plotOffset = plot.getPlotOffset(); + + if (!series.images || !series.images.show) + return; + + var points = series.datapoints.points, + ps = series.datapoints.pointsize; + + for (var i = 0; i < points.length; i += ps) { + var img = points[i], + x1 = points[i + 1], y1 = points[i + 2], + x2 = points[i + 3], y2 = points[i + 4], + xaxis = series.xaxis, yaxis = series.yaxis, + tmp; + + // actually we should check img.complete, but it + // appears to be a somewhat unreliable indicator in + // IE6 (false even after load event) + if (!img || img.width <= 0 || img.height <= 0) + continue; + + if (x1 > x2) { + tmp = x2; + x2 = x1; + x1 = tmp; + } + if (y1 > y2) { + tmp = y2; + y2 = y1; + y1 = tmp; + } + + // if the anchor is at the center of the pixel, expand the + // image by 1/2 pixel in each direction + if (series.images.anchor == "center") { + tmp = 0.5 * (x2-x1) / (img.width - 1); + x1 -= tmp; + x2 += tmp; + tmp = 0.5 * (y2-y1) / (img.height - 1); + y1 -= tmp; + y2 += tmp; + } + + // clip + if (x1 == x2 || y1 == y2 || + x1 >= xaxis.max || x2 <= xaxis.min || + y1 >= yaxis.max || y2 <= yaxis.min) + continue; + + var sx1 = 0, sy1 = 0, sx2 = img.width, sy2 = img.height; + if (x1 < xaxis.min) { + sx1 += (sx2 - sx1) * (xaxis.min - x1) / (x2 - x1); + x1 = xaxis.min; + } + + if (x2 > xaxis.max) { + sx2 += (sx2 - sx1) * (xaxis.max - x2) / (x2 - x1); + x2 = xaxis.max; + } + + if (y1 < yaxis.min) { + sy2 += (sy1 - sy2) * (yaxis.min - y1) / (y2 - y1); + y1 = yaxis.min; + } + + if (y2 > yaxis.max) { + sy1 += (sy1 - sy2) * (yaxis.max - y2) / (y2 - y1); + y2 = yaxis.max; + } + + x1 = xaxis.p2c(x1); + x2 = xaxis.p2c(x2); + y1 = yaxis.p2c(y1); + y2 = yaxis.p2c(y2); + + // the transformation may have swapped us + if (x1 > x2) { + tmp = x2; + x2 = x1; + x1 = tmp; + } + if (y1 > y2) { + tmp = y2; + y2 = y1; + y1 = tmp; + } + + tmp = ctx.globalAlpha; + ctx.globalAlpha *= series.images.alpha; + ctx.drawImage(img, + sx1, sy1, sx2 - sx1, sy2 - sy1, + x1 + plotOffset.left, y1 + plotOffset.top, + x2 - x1, y2 - y1); + ctx.globalAlpha = tmp; + } + } + + function processRawData(plot, series, data, datapoints) { + if (!series.images.show) + return; + + // format is Image, x1, y1, x2, y2 (opposite corners) + datapoints.format = [ + { required: true }, + { x: true, number: true, required: true }, + { y: true, number: true, required: true }, + { x: true, number: true, required: true }, + { y: true, number: true, required: true } + ]; + } + + function init(plot) { + plot.hooks.processRawData.push(processRawData); + plot.hooks.drawSeries.push(drawSeries); + } + + $.plot.plugins.push({ + init: init, + options: options, + name: 'image', + version: '1.1' + }); +})(jQuery); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.js" new file mode 100644 index 0000000..aabc544 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.js" @@ -0,0 +1,2599 @@ +/*! Javascript plotting library for jQuery, v. 0.7. + * + * Released under the MIT license by IOLA, December 2007. + * + */ + +// first an inline dependency, jquery.colorhelpers.js, we inline it here +// for convenience + +/* Plugin for jQuery for working with colors. + * + * Version 1.1. + * + * Inspiration from jQuery color animation plugin by John Resig. + * + * Released under the MIT license by Ole Laursen, October 2009. + * + * Examples: + * + * $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString() + * var c = $.color.extract($("#mydiv"), 'background-color'); + * console.log(c.r, c.g, c.b, c.a); + * $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)" + * + * Note that .scale() and .add() return the same modified object + * instead of making a new one. + * + * V. 1.1: Fix error handling so e.g. parsing an empty string does + * produce a color rather than just crashing. + */ +(function(B){B.color={};B.color.make=function(F,E,C,D){var G={};G.r=F||0;G.g=E||0;G.b=C||0;G.a=D!=null?D:1;G.add=function(J,I){for(var H=0;H=1){return"rgb("+[G.r,G.g,G.b].join(",")+")"}else{return"rgba("+[G.r,G.g,G.b,G.a].join(",")+")"}};G.normalize=function(){function H(J,K,I){return KI?I:K)}G.r=H(0,parseInt(G.r),255);G.g=H(0,parseInt(G.g),255);G.b=H(0,parseInt(G.b),255);G.a=H(0,G.a,1);return G};G.clone=function(){return B.color.make(G.r,G.b,G.g,G.a)};return G.normalize()};B.color.extract=function(D,C){var E;do{E=D.css(C).toLowerCase();if(E!=""&&E!="transparent"){break}D=D.parent()}while(!B.nodeName(D.get(0),"body"));if(E=="rgba(0, 0, 0, 0)"){E="transparent"}return B.color.parse(E)};B.color.parse=function(F){var E,C=B.color.make;if(E=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10))}if(E=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10),parseFloat(E[4]))}if(E=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55)}if(E=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55,parseFloat(E[4]))}if(E=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(F)){return C(parseInt(E[1],16),parseInt(E[2],16),parseInt(E[3],16))}if(E=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(F)){return C(parseInt(E[1]+E[1],16),parseInt(E[2]+E[2],16),parseInt(E[3]+E[3],16))}var D=B.trim(F).toLowerCase();if(D=="transparent"){return C(255,255,255,0)}else{E=A[D]||[0,0,0];return C(E[0],E[1],E[2])}};var A={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery); + +// the actual Flot code +(function($) { + function Plot(placeholder, data_, options_, plugins) { + // data is on the form: + // [ series1, series2 ... ] + // where series is either just the data as [ [x1, y1], [x2, y2], ... ] + // or { data: [ [x1, y1], [x2, y2], ... ], label: "some label", ... } + + var series = [], + options = { + // the color theme used for graphs + colors: ["#edc240", "#afd8f8", "#cb4b4b", "#4da74d", "#9440ed"], + legend: { + show: true, + noColumns: 1, // number of colums in legend table + labelFormatter: null, // fn: string -> string + labelBoxBorderColor: "#ccc", // border color for the little label boxes + container: null, // container (as jQuery object) to put legend in, null means default on top of graph + position: "ne", // position of default legend container within plot + margin: 5, // distance from grid edge to default legend container within plot + backgroundColor: null, // null means auto-detect + backgroundOpacity: 0.85 // set to 0 to avoid background + }, + xaxis: { + show: null, // null = auto-detect, true = always, false = never + position: "bottom", // or "top" + mode: null, // null or "time" + color: null, // base color, labels, ticks + tickColor: null, // possibly different color of ticks, e.g. "rgba(0,0,0,0.15)" + transform: null, // null or f: number -> number to transform axis + inverseTransform: null, // if transform is set, this should be the inverse function + min: null, // min. value to show, null means set automatically + max: null, // max. value to show, null means set automatically + autoscaleMargin: null, // margin in % to add if auto-setting min/max + ticks: null, // either [1, 3] or [[1, "a"], 3] or (fn: axis info -> ticks) or app. number of ticks for auto-ticks + tickFormatter: null, // fn: number -> string + labelWidth: null, // size of tick labels in pixels + labelHeight: null, + reserveSpace: null, // whether to reserve space even if axis isn't shown + tickLength: null, // size in pixels of ticks, or "full" for whole line + alignTicksWithAxis: null, // axis number or null for no sync + + // mode specific options + tickDecimals: null, // no. of decimals, null means auto + tickSize: null, // number or [number, "unit"] + minTickSize: null, // number or [number, "unit"] + monthNames: null, // list of names of months + timeformat: null, // format string to use + twelveHourClock: false // 12 or 24 time in time mode + }, + yaxis: { + autoscaleMargin: 0.02, + position: "left" // or "right" + }, + xaxes: [], + yaxes: [], + series: { + points: { + show: false, + radius: 3, + lineWidth: 2, // in pixels + fill: true, + fillColor: "#ffffff", + symbol: "circle" // or callback + }, + lines: { + // we don't put in show: false so we can see + // whether lines were actively disabled + lineWidth: 2, // in pixels + fill: false, + fillColor: null, + steps: false + }, + bars: { + show: false, + lineWidth: 2, // in pixels + barWidth: 1, // in units of the x axis + fill: true, + fillColor: null, + align: "left", // or "center" + horizontal: false + }, + shadowSize: 3 + }, + grid: { + show: true, + aboveData: false, + color: "#545454", // primary color used for outline and labels + backgroundColor: null, // null for transparent, else color + borderColor: null, // set if different from the grid color + tickColor: null, // color for the ticks, e.g. "rgba(0,0,0,0.15)" + labelMargin: 5, // in pixels + axisMargin: 8, // in pixels + borderWidth: 2, // in pixels + minBorderMargin: null, // in pixels, null means taken from points radius + markings: null, // array of ranges or fn: axes -> array of ranges + markingsColor: "#f4f4f4", + markingsLineWidth: 2, + // interactive stuff + clickable: false, + hoverable: false, + autoHighlight: true, // highlight in case mouse is near + mouseActiveRadius: 10 // how far the mouse can be away to activate an item + }, + hooks: {} + }, + canvas = null, // the canvas for the plot itself + overlay = null, // canvas for interactive stuff on top of plot + eventHolder = null, // jQuery object that events should be bound to + ctx = null, octx = null, + xaxes = [], yaxes = [], + plotOffset = { left: 0, right: 0, top: 0, bottom: 0}, + canvasWidth = 0, canvasHeight = 0, + plotWidth = 0, plotHeight = 0, + hooks = { + processOptions: [], + processRawData: [], + processDatapoints: [], + drawSeries: [], + draw: [], + bindEvents: [], + drawOverlay: [], + shutdown: [] + }, + plot = this; + + // public functions + plot.setData = setData; + plot.setupGrid = setupGrid; + plot.draw = draw; + plot.getPlaceholder = function() { return placeholder; }; + plot.getCanvas = function() { return canvas; }; + plot.getPlotOffset = function() { return plotOffset; }; + plot.width = function () { return plotWidth; }; + plot.height = function () { return plotHeight; }; + plot.offset = function () { + var o = eventHolder.offset(); + o.left += plotOffset.left; + o.top += plotOffset.top; + return o; + }; + plot.getData = function () { return series; }; + plot.getAxes = function () { + var res = {}, i; + $.each(xaxes.concat(yaxes), function (_, axis) { + if (axis) + res[axis.direction + (axis.n != 1 ? axis.n : "") + "axis"] = axis; + }); + return res; + }; + plot.getXAxes = function () { return xaxes; }; + plot.getYAxes = function () { return yaxes; }; + plot.c2p = canvasToAxisCoords; + plot.p2c = axisToCanvasCoords; + plot.getOptions = function () { return options; }; + plot.highlight = highlight; + plot.unhighlight = unhighlight; + plot.triggerRedrawOverlay = triggerRedrawOverlay; + plot.pointOffset = function(point) { + return { + left: parseInt(xaxes[axisNumber(point, "x") - 1].p2c(+point.x) + plotOffset.left), + top: parseInt(yaxes[axisNumber(point, "y") - 1].p2c(+point.y) + plotOffset.top) + }; + }; + plot.shutdown = shutdown; + plot.resize = function () { + getCanvasDimensions(); + resizeCanvas(canvas); + resizeCanvas(overlay); + }; + + // public attributes + plot.hooks = hooks; + + // initialize + initPlugins(plot); + parseOptions(options_); + setupCanvases(); + setData(data_); + setupGrid(); + draw(); + bindEvents(); + + + function executeHooks(hook, args) { + args = [plot].concat(args); + for (var i = 0; i < hook.length; ++i) + hook[i].apply(this, args); + } + + function initPlugins() { + for (var i = 0; i < plugins.length; ++i) { + var p = plugins[i]; + p.init(plot); + if (p.options) + $.extend(true, options, p.options); + } + } + + function parseOptions(opts) { + var i; + + $.extend(true, options, opts); + + if (options.xaxis.color == null) + options.xaxis.color = options.grid.color; + if (options.yaxis.color == null) + options.yaxis.color = options.grid.color; + + if (options.xaxis.tickColor == null) // backwards-compatibility + options.xaxis.tickColor = options.grid.tickColor; + if (options.yaxis.tickColor == null) // backwards-compatibility + options.yaxis.tickColor = options.grid.tickColor; + + if (options.grid.borderColor == null) + options.grid.borderColor = options.grid.color; + if (options.grid.tickColor == null) + options.grid.tickColor = $.color.parse(options.grid.color).scale('a', 0.22).toString(); + + // fill in defaults in axes, copy at least always the + // first as the rest of the code assumes it'll be there + for (i = 0; i < Math.max(1, options.xaxes.length); ++i) + options.xaxes[i] = $.extend(true, {}, options.xaxis, options.xaxes[i]); + for (i = 0; i < Math.max(1, options.yaxes.length); ++i) + options.yaxes[i] = $.extend(true, {}, options.yaxis, options.yaxes[i]); + + // backwards compatibility, to be removed in future + if (options.xaxis.noTicks && options.xaxis.ticks == null) + options.xaxis.ticks = options.xaxis.noTicks; + if (options.yaxis.noTicks && options.yaxis.ticks == null) + options.yaxis.ticks = options.yaxis.noTicks; + if (options.x2axis) { + options.xaxes[1] = $.extend(true, {}, options.xaxis, options.x2axis); + options.xaxes[1].position = "top"; + } + if (options.y2axis) { + options.yaxes[1] = $.extend(true, {}, options.yaxis, options.y2axis); + options.yaxes[1].position = "right"; + } + if (options.grid.coloredAreas) + options.grid.markings = options.grid.coloredAreas; + if (options.grid.coloredAreasColor) + options.grid.markingsColor = options.grid.coloredAreasColor; + if (options.lines) + $.extend(true, options.series.lines, options.lines); + if (options.points) + $.extend(true, options.series.points, options.points); + if (options.bars) + $.extend(true, options.series.bars, options.bars); + if (options.shadowSize != null) + options.series.shadowSize = options.shadowSize; + + // save options on axes for future reference + for (i = 0; i < options.xaxes.length; ++i) + getOrCreateAxis(xaxes, i + 1).options = options.xaxes[i]; + for (i = 0; i < options.yaxes.length; ++i) + getOrCreateAxis(yaxes, i + 1).options = options.yaxes[i]; + + // add hooks from options + for (var n in hooks) + if (options.hooks[n] && options.hooks[n].length) + hooks[n] = hooks[n].concat(options.hooks[n]); + + executeHooks(hooks.processOptions, [options]); + } + + function setData(d) { + series = parseData(d); + fillInSeriesOptions(); + processData(); + } + + function parseData(d) { + var res = []; + for (var i = 0; i < d.length; ++i) { + var s = $.extend(true, {}, options.series); + + if (d[i].data != null) { + s.data = d[i].data; // move the data instead of deep-copy + delete d[i].data; + + $.extend(true, s, d[i]); + + d[i].data = s.data; + } + else + s.data = d[i]; + res.push(s); + } + + return res; + } + + function axisNumber(obj, coord) { + var a = obj[coord + "axis"]; + if (typeof a == "object") // if we got a real axis, extract number + a = a.n; + if (typeof a != "number") + a = 1; // default to first axis + return a; + } + + function allAxes() { + // return flat array without annoying null entries + return $.grep(xaxes.concat(yaxes), function (a) { return a; }); + } + + function canvasToAxisCoords(pos) { + // return an object with x/y corresponding to all used axes + var res = {}, i, axis; + for (i = 0; i < xaxes.length; ++i) { + axis = xaxes[i]; + if (axis && axis.used) + res["x" + axis.n] = axis.c2p(pos.left); + } + + for (i = 0; i < yaxes.length; ++i) { + axis = yaxes[i]; + if (axis && axis.used) + res["y" + axis.n] = axis.c2p(pos.top); + } + + if (res.x1 !== undefined) + res.x = res.x1; + if (res.y1 !== undefined) + res.y = res.y1; + + return res; + } + + function axisToCanvasCoords(pos) { + // get canvas coords from the first pair of x/y found in pos + var res = {}, i, axis, key; + + for (i = 0; i < xaxes.length; ++i) { + axis = xaxes[i]; + if (axis && axis.used) { + key = "x" + axis.n; + if (pos[key] == null && axis.n == 1) + key = "x"; + + if (pos[key] != null) { + res.left = axis.p2c(pos[key]); + break; + } + } + } + + for (i = 0; i < yaxes.length; ++i) { + axis = yaxes[i]; + if (axis && axis.used) { + key = "y" + axis.n; + if (pos[key] == null && axis.n == 1) + key = "y"; + + if (pos[key] != null) { + res.top = axis.p2c(pos[key]); + break; + } + } + } + + return res; + } + + function getOrCreateAxis(axes, number) { + if (!axes[number - 1]) + axes[number - 1] = { + n: number, // save the number for future reference + direction: axes == xaxes ? "x" : "y", + options: $.extend(true, {}, axes == xaxes ? options.xaxis : options.yaxis) + }; + + return axes[number - 1]; + } + + function fillInSeriesOptions() { + var i; + + // collect what we already got of colors + var neededColors = series.length, + usedColors = [], + assignedColors = []; + for (i = 0; i < series.length; ++i) { + var sc = series[i].color; + if (sc != null) { + --neededColors; + if (typeof sc == "number") + assignedColors.push(sc); + else + usedColors.push($.color.parse(series[i].color)); + } + } + + // we might need to generate more colors if higher indices + // are assigned + for (i = 0; i < assignedColors.length; ++i) { + neededColors = Math.max(neededColors, assignedColors[i] + 1); + } + + // produce colors as needed + var colors = [], variation = 0; + i = 0; + while (colors.length < neededColors) { + var c; + if (options.colors.length == i) // check degenerate case + c = $.color.make(100, 100, 100); + else + c = $.color.parse(options.colors[i]); + + // vary color if needed + var sign = variation % 2 == 1 ? -1 : 1; + c.scale('rgb', 1 + sign * Math.ceil(variation / 2) * 0.2) + + // FIXME: if we're getting to close to something else, + // we should probably skip this one + colors.push(c); + + ++i; + if (i >= options.colors.length) { + i = 0; + ++variation; + } + } + + // fill in the options + var colori = 0, s; + for (i = 0; i < series.length; ++i) { + s = series[i]; + + // assign colors + if (s.color == null) { + s.color = colors[colori].toString(); + ++colori; + } + else if (typeof s.color == "number") + s.color = colors[s.color].toString(); + + // turn on lines automatically in case nothing is set + if (s.lines.show == null) { + var v, show = true; + for (v in s) + if (s[v] && s[v].show) { + show = false; + break; + } + if (show) + s.lines.show = true; + } + + // setup axes + s.xaxis = getOrCreateAxis(xaxes, axisNumber(s, "x")); + s.yaxis = getOrCreateAxis(yaxes, axisNumber(s, "y")); + } + } + + function processData() { + var topSentry = Number.POSITIVE_INFINITY, + bottomSentry = Number.NEGATIVE_INFINITY, + fakeInfinity = Number.MAX_VALUE, + i, j, k, m, length, + s, points, ps, x, y, axis, val, f, p; + + function updateAxis(axis, min, max) { + if (min < axis.datamin && min != -fakeInfinity) + axis.datamin = min; + if (max > axis.datamax && max != fakeInfinity) + axis.datamax = max; + } + + $.each(allAxes(), function (_, axis) { + // init axis + axis.datamin = topSentry; + axis.datamax = bottomSentry; + axis.used = false; + }); + + for (i = 0; i < series.length; ++i) { + s = series[i]; + s.datapoints = { points: [] }; + + executeHooks(hooks.processRawData, [ s, s.data, s.datapoints ]); + } + + // first pass: clean and copy data + for (i = 0; i < series.length; ++i) { + s = series[i]; + + var data = s.data, format = s.datapoints.format; + + if (!format) { + format = []; + // find out how to copy + format.push({ x: true, number: true, required: true }); + format.push({ y: true, number: true, required: true }); + + if (s.bars.show || (s.lines.show && s.lines.fill)) { + format.push({ y: true, number: true, required: false, defaultValue: 0 }); + if (s.bars.horizontal) { + delete format[format.length - 1].y; + format[format.length - 1].x = true; + } + } + + s.datapoints.format = format; + } + + if (s.datapoints.pointsize != null) + continue; // already filled in + + s.datapoints.pointsize = format.length; + + ps = s.datapoints.pointsize; + points = s.datapoints.points; + + insertSteps = s.lines.show && s.lines.steps; + s.xaxis.used = s.yaxis.used = true; + + for (j = k = 0; j < data.length; ++j, k += ps) { + p = data[j]; + + var nullify = p == null; + if (!nullify) { + for (m = 0; m < ps; ++m) { + val = p[m]; + f = format[m]; + + if (f) { + if (f.number && val != null) { + val = +val; // convert to number + if (isNaN(val)) + val = null; + else if (val == Infinity) + val = fakeInfinity; + else if (val == -Infinity) + val = -fakeInfinity; + } + + if (val == null) { + if (f.required) + nullify = true; + + if (f.defaultValue != null) + val = f.defaultValue; + } + } + + points[k + m] = val; + } + } + + if (nullify) { + for (m = 0; m < ps; ++m) { + val = points[k + m]; + if (val != null) { + f = format[m]; + // extract min/max info + if (f.x) + updateAxis(s.xaxis, val, val); + if (f.y) + updateAxis(s.yaxis, val, val); + } + points[k + m] = null; + } + } + else { + // a little bit of line specific stuff that + // perhaps shouldn't be here, but lacking + // better means... + if (insertSteps && k > 0 + && points[k - ps] != null + && points[k - ps] != points[k] + && points[k - ps + 1] != points[k + 1]) { + // copy the point to make room for a middle point + for (m = 0; m < ps; ++m) + points[k + ps + m] = points[k + m]; + + // middle point has same y + points[k + 1] = points[k - ps + 1]; + + // we've added a point, better reflect that + k += ps; + } + } + } + } + + // give the hooks a chance to run + for (i = 0; i < series.length; ++i) { + s = series[i]; + + executeHooks(hooks.processDatapoints, [ s, s.datapoints]); + } + + // second pass: find datamax/datamin for auto-scaling + for (i = 0; i < series.length; ++i) { + s = series[i]; + points = s.datapoints.points, + ps = s.datapoints.pointsize; + + var xmin = topSentry, ymin = topSentry, + xmax = bottomSentry, ymax = bottomSentry; + + for (j = 0; j < points.length; j += ps) { + if (points[j] == null) + continue; + + for (m = 0; m < ps; ++m) { + val = points[j + m]; + f = format[m]; + if (!f || val == fakeInfinity || val == -fakeInfinity) + continue; + + if (f.x) { + if (val < xmin) + xmin = val; + if (val > xmax) + xmax = val; + } + if (f.y) { + if (val < ymin) + ymin = val; + if (val > ymax) + ymax = val; + } + } + } + + if (s.bars.show) { + // make sure we got room for the bar on the dancing floor + var delta = s.bars.align == "left" ? 0 : -s.bars.barWidth/2; + if (s.bars.horizontal) { + ymin += delta; + ymax += delta + s.bars.barWidth; + } + else { + xmin += delta; + xmax += delta + s.bars.barWidth; + } + } + + updateAxis(s.xaxis, xmin, xmax); + updateAxis(s.yaxis, ymin, ymax); + } + + $.each(allAxes(), function (_, axis) { + if (axis.datamin == topSentry) + axis.datamin = null; + if (axis.datamax == bottomSentry) + axis.datamax = null; + }); + } + + function makeCanvas(skipPositioning, cls) { + var c = document.createElement('canvas'); + c.className = cls; + c.width = canvasWidth; + c.height = canvasHeight; + + if (!skipPositioning) + $(c).css({ position: 'absolute', left: 0, top: 0 }); + + $(c).appendTo(placeholder); + + if (!c.getContext) // excanvas hack + c = window.G_vmlCanvasManager.initElement(c); + + // used for resetting in case we get replotted + c.getContext("2d").save(); + + return c; + } + + function getCanvasDimensions() { + canvasWidth = placeholder.width(); + canvasHeight = placeholder.height(); + + if (canvasWidth <= 0 || canvasHeight <= 0) + throw "Invalid dimensions for plot, width = " + canvasWidth + ", height = " + canvasHeight; + } + + function resizeCanvas(c) { + // resizing should reset the state (excanvas seems to be + // buggy though) + if (c.width != canvasWidth) + c.width = canvasWidth; + + if (c.height != canvasHeight) + c.height = canvasHeight; + + // so try to get back to the initial state (even if it's + // gone now, this should be safe according to the spec) + var cctx = c.getContext("2d"); + cctx.restore(); + + // and save again + cctx.save(); + } + + function setupCanvases() { + var reused, + existingCanvas = placeholder.children("canvas.base"), + existingOverlay = placeholder.children("canvas.overlay"); + + if (existingCanvas.length == 0 || existingOverlay == 0) { + // init everything + + placeholder.html(""); // make sure placeholder is clear + + placeholder.css({ padding: 0 }); // padding messes up the positioning + + if (placeholder.css("position") == 'static') + placeholder.css("position", "relative"); // for positioning labels and overlay + + getCanvasDimensions(); + + canvas = makeCanvas(true, "base"); + overlay = makeCanvas(false, "overlay"); // overlay canvas for interactive features + + reused = false; + } + else { + // reuse existing elements + + canvas = existingCanvas.get(0); + overlay = existingOverlay.get(0); + + reused = true; + } + + ctx = canvas.getContext("2d"); + octx = overlay.getContext("2d"); + + // we include the canvas in the event holder too, because IE 7 + // sometimes has trouble with the stacking order + eventHolder = $([overlay, canvas]); + + if (reused) { + // run shutdown in the old plot object + placeholder.data("plot").shutdown(); + + // reset reused canvases + plot.resize(); + + // make sure overlay pixels are cleared (canvas is cleared when we redraw) + octx.clearRect(0, 0, canvasWidth, canvasHeight); + + // then whack any remaining obvious garbage left + eventHolder.unbind(); + placeholder.children().not([canvas, overlay]).remove(); + } + + // save in case we get replotted + placeholder.data("plot", plot); + } + + function bindEvents() { + // bind events + if (options.grid.hoverable) { + eventHolder.mousemove(onMouseMove); + eventHolder.mouseleave(onMouseLeave); + } + + if (options.grid.clickable) + eventHolder.click(onClick); + + executeHooks(hooks.bindEvents, [eventHolder]); + } + + function shutdown() { + if (redrawTimeout) + clearTimeout(redrawTimeout); + + eventHolder.unbind("mousemove", onMouseMove); + eventHolder.unbind("mouseleave", onMouseLeave); + eventHolder.unbind("click", onClick); + + executeHooks(hooks.shutdown, [eventHolder]); + } + + function setTransformationHelpers(axis) { + // set helper functions on the axis, assumes plot area + // has been computed already + + function identity(x) { return x; } + + var s, m, t = axis.options.transform || identity, + it = axis.options.inverseTransform; + + // precompute how much the axis is scaling a point + // in canvas space + if (axis.direction == "x") { + s = axis.scale = plotWidth / Math.abs(t(axis.max) - t(axis.min)); + m = Math.min(t(axis.max), t(axis.min)); + } + else { + s = axis.scale = plotHeight / Math.abs(t(axis.max) - t(axis.min)); + s = -s; + m = Math.max(t(axis.max), t(axis.min)); + } + + // data point to canvas coordinate + if (t == identity) // slight optimization + axis.p2c = function (p) { return (p - m) * s; }; + else + axis.p2c = function (p) { return (t(p) - m) * s; }; + // canvas coordinate to data point + if (!it) + axis.c2p = function (c) { return m + c / s; }; + else + axis.c2p = function (c) { return it(m + c / s); }; + } + + function measureTickLabels(axis) { + var opts = axis.options, i, ticks = axis.ticks || [], labels = [], + l, w = opts.labelWidth, h = opts.labelHeight, dummyDiv; + + function makeDummyDiv(labels, width) { + return $('
    ' + + '
    ' + + labels.join("") + '
    ') + .appendTo(placeholder); + } + + if (axis.direction == "x") { + // to avoid measuring the widths of the labels (it's slow), we + // construct fixed-size boxes and put the labels inside + // them, we don't need the exact figures and the + // fixed-size box content is easy to center + if (w == null) + w = Math.floor(canvasWidth / (ticks.length > 0 ? ticks.length : 1)); + + // measure x label heights + if (h == null) { + labels = []; + for (i = 0; i < ticks.length; ++i) { + l = ticks[i].label; + if (l) + labels.push('
    ' + l + '
    '); + } + + if (labels.length > 0) { + // stick them all in the same div and measure + // collective height + labels.push('
    '); + dummyDiv = makeDummyDiv(labels, "width:10000px;"); + h = dummyDiv.height(); + dummyDiv.remove(); + } + } + } + else if (w == null || h == null) { + // calculate y label dimensions + for (i = 0; i < ticks.length; ++i) { + l = ticks[i].label; + if (l) + labels.push('
    ' + l + '
    '); + } + + if (labels.length > 0) { + dummyDiv = makeDummyDiv(labels, ""); + if (w == null) + w = dummyDiv.children().width(); + if (h == null) + h = dummyDiv.find("div.tickLabel").height(); + dummyDiv.remove(); + } + } + + if (w == null) + w = 0; + if (h == null) + h = 0; + + axis.labelWidth = w; + axis.labelHeight = h; + } + + function allocateAxisBoxFirstPhase(axis) { + // find the bounding box of the axis by looking at label + // widths/heights and ticks, make room by diminishing the + // plotOffset + + var lw = axis.labelWidth, + lh = axis.labelHeight, + pos = axis.options.position, + tickLength = axis.options.tickLength, + axismargin = options.grid.axisMargin, + padding = options.grid.labelMargin, + all = axis.direction == "x" ? xaxes : yaxes, + index; + + // determine axis margin + var samePosition = $.grep(all, function (a) { + return a && a.options.position == pos && a.reserveSpace; + }); + if ($.inArray(axis, samePosition) == samePosition.length - 1) + axismargin = 0; // outermost + + // determine tick length - if we're innermost, we can use "full" + if (tickLength == null) + tickLength = "full"; + + var sameDirection = $.grep(all, function (a) { + return a && a.reserveSpace; + }); + + var innermost = $.inArray(axis, sameDirection) == 0; + if (!innermost && tickLength == "full") + tickLength = 5; + + if (!isNaN(+tickLength)) + padding += +tickLength; + + // compute box + if (axis.direction == "x") { + lh += padding; + + if (pos == "bottom") { + plotOffset.bottom += lh + axismargin; + axis.box = { top: canvasHeight - plotOffset.bottom, height: lh }; + } + else { + axis.box = { top: plotOffset.top + axismargin, height: lh }; + plotOffset.top += lh + axismargin; + } + } + else { + lw += padding; + + if (pos == "left") { + axis.box = { left: plotOffset.left + axismargin, width: lw }; + plotOffset.left += lw + axismargin; + } + else { + plotOffset.right += lw + axismargin; + axis.box = { left: canvasWidth - plotOffset.right, width: lw }; + } + } + + // save for future reference + axis.position = pos; + axis.tickLength = tickLength; + axis.box.padding = padding; + axis.innermost = innermost; + } + + function allocateAxisBoxSecondPhase(axis) { + // set remaining bounding box coordinates + if (axis.direction == "x") { + axis.box.left = plotOffset.left; + axis.box.width = plotWidth; + } + else { + axis.box.top = plotOffset.top; + axis.box.height = plotHeight; + } + } + + function setupGrid() { + var i, axes = allAxes(); + + // first calculate the plot and axis box dimensions + + $.each(axes, function (_, axis) { + axis.show = axis.options.show; + if (axis.show == null) + axis.show = axis.used; // by default an axis is visible if it's got data + + axis.reserveSpace = axis.show || axis.options.reserveSpace; + + setRange(axis); + }); + + allocatedAxes = $.grep(axes, function (axis) { return axis.reserveSpace; }); + + plotOffset.left = plotOffset.right = plotOffset.top = plotOffset.bottom = 0; + if (options.grid.show) { + $.each(allocatedAxes, function (_, axis) { + // make the ticks + setupTickGeneration(axis); + setTicks(axis); + snapRangeToTicks(axis, axis.ticks); + + // find labelWidth/Height for axis + measureTickLabels(axis); + }); + + // with all dimensions in house, we can compute the + // axis boxes, start from the outside (reverse order) + for (i = allocatedAxes.length - 1; i >= 0; --i) + allocateAxisBoxFirstPhase(allocatedAxes[i]); + + // make sure we've got enough space for things that + // might stick out + var minMargin = options.grid.minBorderMargin; + if (minMargin == null) { + minMargin = 0; + for (i = 0; i < series.length; ++i) + minMargin = Math.max(minMargin, series[i].points.radius + series[i].points.lineWidth/2); + } + + for (var a in plotOffset) { + plotOffset[a] += options.grid.borderWidth; + plotOffset[a] = Math.max(minMargin, plotOffset[a]); + } + } + + plotWidth = canvasWidth - plotOffset.left - plotOffset.right; + plotHeight = canvasHeight - plotOffset.bottom - plotOffset.top; + + // now we got the proper plotWidth/Height, we can compute the scaling + $.each(axes, function (_, axis) { + setTransformationHelpers(axis); + }); + + if (options.grid.show) { + $.each(allocatedAxes, function (_, axis) { + allocateAxisBoxSecondPhase(axis); + }); + + insertAxisLabels(); + } + + insertLegend(); + } + + function setRange(axis) { + var opts = axis.options, + min = +(opts.min != null ? opts.min : axis.datamin), + max = +(opts.max != null ? opts.max : axis.datamax), + delta = max - min; + + if (delta == 0.0) { + // degenerate case + var widen = max == 0 ? 1 : 0.01; + + if (opts.min == null) + min -= widen; + // always widen max if we couldn't widen min to ensure we + // don't fall into min == max which doesn't work + if (opts.max == null || opts.min != null) + max += widen; + } + else { + // consider autoscaling + var margin = opts.autoscaleMargin; + if (margin != null) { + if (opts.min == null) { + min -= delta * margin; + // make sure we don't go below zero if all values + // are positive + if (min < 0 && axis.datamin != null && axis.datamin >= 0) + min = 0; + } + if (opts.max == null) { + max += delta * margin; + if (max > 0 && axis.datamax != null && axis.datamax <= 0) + max = 0; + } + } + } + axis.min = min; + axis.max = max; + } + + function setupTickGeneration(axis) { + var opts = axis.options; + + // estimate number of ticks + var noTicks; + if (typeof opts.ticks == "number" && opts.ticks > 0) + noTicks = opts.ticks; + else + // heuristic based on the model a*sqrt(x) fitted to + // some data points that seemed reasonable + noTicks = 0.3 * Math.sqrt(axis.direction == "x" ? canvasWidth : canvasHeight); + + var delta = (axis.max - axis.min) / noTicks, + size, generator, unit, formatter, i, magn, norm; + + if (opts.mode == "time") { + // pretty handling of time + + // map of app. size of time units in milliseconds + var timeUnitSize = { + "second": 1000, + "minute": 60 * 1000, + "hour": 60 * 60 * 1000, + "day": 24 * 60 * 60 * 1000, + "month": 30 * 24 * 60 * 60 * 1000, + "year": 365.2425 * 24 * 60 * 60 * 1000 + }; + + + // the allowed tick sizes, after 1 year we use + // an integer algorithm + var spec = [ + [1, "second"], [2, "second"], [5, "second"], [10, "second"], + [30, "second"], + [1, "minute"], [2, "minute"], [5, "minute"], [10, "minute"], + [30, "minute"], + [1, "hour"], [2, "hour"], [4, "hour"], + [8, "hour"], [12, "hour"], + [1, "day"], [2, "day"], [3, "day"], + [0.25, "month"], [0.5, "month"], [1, "month"], + [2, "month"], [3, "month"], [6, "month"], + [1, "year"] + ]; + + var minSize = 0; + if (opts.minTickSize != null) { + if (typeof opts.tickSize == "number") + minSize = opts.tickSize; + else + minSize = opts.minTickSize[0] * timeUnitSize[opts.minTickSize[1]]; + } + + for (var i = 0; i < spec.length - 1; ++i) + if (delta < (spec[i][0] * timeUnitSize[spec[i][1]] + + spec[i + 1][0] * timeUnitSize[spec[i + 1][1]]) / 2 + && spec[i][0] * timeUnitSize[spec[i][1]] >= minSize) + break; + size = spec[i][0]; + unit = spec[i][1]; + + // special-case the possibility of several years + if (unit == "year") { + magn = Math.pow(10, Math.floor(Math.log(delta / timeUnitSize.year) / Math.LN10)); + norm = (delta / timeUnitSize.year) / magn; + if (norm < 1.5) + size = 1; + else if (norm < 3) + size = 2; + else if (norm < 7.5) + size = 5; + else + size = 10; + + size *= magn; + } + + axis.tickSize = opts.tickSize || [size, unit]; + + generator = function(axis) { + var ticks = [], + tickSize = axis.tickSize[0], unit = axis.tickSize[1], + d = new Date(axis.min); + + var step = tickSize * timeUnitSize[unit]; + + if (unit == "second") + d.setUTCSeconds(floorInBase(d.getUTCSeconds(), tickSize)); + if (unit == "minute") + d.setUTCMinutes(floorInBase(d.getUTCMinutes(), tickSize)); + if (unit == "hour") + d.setUTCHours(floorInBase(d.getUTCHours(), tickSize)); + if (unit == "month") + d.setUTCMonth(floorInBase(d.getUTCMonth(), tickSize)); + if (unit == "year") + d.setUTCFullYear(floorInBase(d.getUTCFullYear(), tickSize)); + + // reset smaller components + d.setUTCMilliseconds(0); + if (step >= timeUnitSize.minute) + d.setUTCSeconds(0); + if (step >= timeUnitSize.hour) + d.setUTCMinutes(0); + if (step >= timeUnitSize.day) + d.setUTCHours(0); + if (step >= timeUnitSize.day * 4) + d.setUTCDate(1); + if (step >= timeUnitSize.year) + d.setUTCMonth(0); + + + var carry = 0, v = Number.NaN, prev; + do { + prev = v; + v = d.getTime(); + ticks.push(v); + if (unit == "month") { + if (tickSize < 1) { + // a bit complicated - we'll divide the month + // up but we need to take care of fractions + // so we don't end up in the middle of a day + d.setUTCDate(1); + var start = d.getTime(); + d.setUTCMonth(d.getUTCMonth() + 1); + var end = d.getTime(); + d.setTime(v + carry * timeUnitSize.hour + (end - start) * tickSize); + carry = d.getUTCHours(); + d.setUTCHours(0); + } + else + d.setUTCMonth(d.getUTCMonth() + tickSize); + } + else if (unit == "year") { + d.setUTCFullYear(d.getUTCFullYear() + tickSize); + } + else + d.setTime(v + step); + } while (v < axis.max && v != prev); + + return ticks; + }; + + formatter = function (v, axis) { + var d = new Date(v); + + // first check global format + if (opts.timeformat != null) + return $.plot.formatDate(d, opts.timeformat, opts.monthNames); + + var t = axis.tickSize[0] * timeUnitSize[axis.tickSize[1]]; + var span = axis.max - axis.min; + var suffix = (opts.twelveHourClock) ? " %p" : ""; + + if (t < timeUnitSize.minute) + fmt = "%h:%M:%S" + suffix; + else if (t < timeUnitSize.day) { + if (span < 2 * timeUnitSize.day) + fmt = "%h:%M" + suffix; + else + fmt = "%b %d %h:%M" + suffix; + } + else if (t < timeUnitSize.month) + fmt = "%b %d"; + else if (t < timeUnitSize.year) { + if (span < timeUnitSize.year) + fmt = "%b"; + else + fmt = "%b %y"; + } + else + fmt = "%y"; + + return $.plot.formatDate(d, fmt, opts.monthNames); + }; + } + else { + // pretty rounding of base-10 numbers + var maxDec = opts.tickDecimals; + var dec = -Math.floor(Math.log(delta) / Math.LN10); + if (maxDec != null && dec > maxDec) + dec = maxDec; + + magn = Math.pow(10, -dec); + norm = delta / magn; // norm is between 1.0 and 10.0 + + if (norm < 1.5) + size = 1; + else if (norm < 3) { + size = 2; + // special case for 2.5, requires an extra decimal + if (norm > 2.25 && (maxDec == null || dec + 1 <= maxDec)) { + size = 2.5; + ++dec; + } + } + else if (norm < 7.5) + size = 5; + else + size = 10; + + size *= magn; + + if (opts.minTickSize != null && size < opts.minTickSize) + size = opts.minTickSize; + + axis.tickDecimals = Math.max(0, maxDec != null ? maxDec : dec); + axis.tickSize = opts.tickSize || size; + + generator = function (axis) { + var ticks = []; + + // spew out all possible ticks + var start = floorInBase(axis.min, axis.tickSize), + i = 0, v = Number.NaN, prev; + do { + prev = v; + v = start + i * axis.tickSize; + ticks.push(v); + ++i; + } while (v < axis.max && v != prev); + return ticks; + }; + + formatter = function (v, axis) { + return v.toFixed(axis.tickDecimals); + }; + } + + if (opts.alignTicksWithAxis != null) { + var otherAxis = (axis.direction == "x" ? xaxes : yaxes)[opts.alignTicksWithAxis - 1]; + if (otherAxis && otherAxis.used && otherAxis != axis) { + // consider snapping min/max to outermost nice ticks + var niceTicks = generator(axis); + if (niceTicks.length > 0) { + if (opts.min == null) + axis.min = Math.min(axis.min, niceTicks[0]); + if (opts.max == null && niceTicks.length > 1) + axis.max = Math.max(axis.max, niceTicks[niceTicks.length - 1]); + } + + generator = function (axis) { + // copy ticks, scaled to this axis + var ticks = [], v, i; + for (i = 0; i < otherAxis.ticks.length; ++i) { + v = (otherAxis.ticks[i].v - otherAxis.min) / (otherAxis.max - otherAxis.min); + v = axis.min + v * (axis.max - axis.min); + ticks.push(v); + } + return ticks; + }; + + // we might need an extra decimal since forced + // ticks don't necessarily fit naturally + if (axis.mode != "time" && opts.tickDecimals == null) { + var extraDec = Math.max(0, -Math.floor(Math.log(delta) / Math.LN10) + 1), + ts = generator(axis); + + // only proceed if the tick interval rounded + // with an extra decimal doesn't give us a + // zero at end + if (!(ts.length > 1 && /\..*0$/.test((ts[1] - ts[0]).toFixed(extraDec)))) + axis.tickDecimals = extraDec; + } + } + } + + axis.tickGenerator = generator; + if ($.isFunction(opts.tickFormatter)) + axis.tickFormatter = function (v, axis) { return "" + opts.tickFormatter(v, axis); }; + else + axis.tickFormatter = formatter; + } + + function setTicks(axis) { + var oticks = axis.options.ticks, ticks = []; + if (oticks == null || (typeof oticks == "number" && oticks > 0)) + ticks = axis.tickGenerator(axis); + else if (oticks) { + if ($.isFunction(oticks)) + // generate the ticks + ticks = oticks({ min: axis.min, max: axis.max }); + else + ticks = oticks; + } + + // clean up/labelify the supplied ticks, copy them over + var i, v; + axis.ticks = []; + for (i = 0; i < ticks.length; ++i) { + var label = null; + var t = ticks[i]; + if (typeof t == "object") { + v = +t[0]; + if (t.length > 1) + label = t[1]; + } + else + v = +t; + if (label == null) + label = axis.tickFormatter(v, axis); + if (!isNaN(v)) + axis.ticks.push({ v: v, label: label }); + } + } + + function snapRangeToTicks(axis, ticks) { + if (axis.options.autoscaleMargin && ticks.length > 0) { + // snap to ticks + if (axis.options.min == null) + axis.min = Math.min(axis.min, ticks[0].v); + if (axis.options.max == null && ticks.length > 1) + axis.max = Math.max(axis.max, ticks[ticks.length - 1].v); + } + } + + function draw() { + ctx.clearRect(0, 0, canvasWidth, canvasHeight); + + var grid = options.grid; + + // draw background, if any + if (grid.show && grid.backgroundColor) + drawBackground(); + + if (grid.show && !grid.aboveData) + drawGrid(); + + for (var i = 0; i < series.length; ++i) { + executeHooks(hooks.drawSeries, [ctx, series[i]]); + drawSeries(series[i]); + } + + executeHooks(hooks.draw, [ctx]); + + if (grid.show && grid.aboveData) + drawGrid(); + } + + function extractRange(ranges, coord) { + var axis, from, to, key, axes = allAxes(); + + for (i = 0; i < axes.length; ++i) { + axis = axes[i]; + if (axis.direction == coord) { + key = coord + axis.n + "axis"; + if (!ranges[key] && axis.n == 1) + key = coord + "axis"; // support x1axis as xaxis + if (ranges[key]) { + from = ranges[key].from; + to = ranges[key].to; + break; + } + } + } + + // backwards-compat stuff - to be removed in future + if (!ranges[key]) { + axis = coord == "x" ? xaxes[0] : yaxes[0]; + from = ranges[coord + "1"]; + to = ranges[coord + "2"]; + } + + // auto-reverse as an added bonus + if (from != null && to != null && from > to) { + var tmp = from; + from = to; + to = tmp; + } + + return { from: from, to: to, axis: axis }; + } + + function drawBackground() { + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + ctx.fillStyle = getColorOrGradient(options.grid.backgroundColor, plotHeight, 0, "rgba(255, 255, 255, 0)"); + ctx.fillRect(0, 0, plotWidth, plotHeight); + ctx.restore(); + } + + function drawGrid() { + var i; + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + // draw markings + var markings = options.grid.markings; + if (markings) { + if ($.isFunction(markings)) { + var axes = plot.getAxes(); + // xmin etc. is backwards compatibility, to be + // removed in the future + axes.xmin = axes.xaxis.min; + axes.xmax = axes.xaxis.max; + axes.ymin = axes.yaxis.min; + axes.ymax = axes.yaxis.max; + + markings = markings(axes); + } + + for (i = 0; i < markings.length; ++i) { + var m = markings[i], + xrange = extractRange(m, "x"), + yrange = extractRange(m, "y"); + + // fill in missing + if (xrange.from == null) + xrange.from = xrange.axis.min; + if (xrange.to == null) + xrange.to = xrange.axis.max; + if (yrange.from == null) + yrange.from = yrange.axis.min; + if (yrange.to == null) + yrange.to = yrange.axis.max; + + // clip + if (xrange.to < xrange.axis.min || xrange.from > xrange.axis.max || + yrange.to < yrange.axis.min || yrange.from > yrange.axis.max) + continue; + + xrange.from = Math.max(xrange.from, xrange.axis.min); + xrange.to = Math.min(xrange.to, xrange.axis.max); + yrange.from = Math.max(yrange.from, yrange.axis.min); + yrange.to = Math.min(yrange.to, yrange.axis.max); + + if (xrange.from == xrange.to && yrange.from == yrange.to) + continue; + + // then draw + xrange.from = xrange.axis.p2c(xrange.from); + xrange.to = xrange.axis.p2c(xrange.to); + yrange.from = yrange.axis.p2c(yrange.from); + yrange.to = yrange.axis.p2c(yrange.to); + + if (xrange.from == xrange.to || yrange.from == yrange.to) { + // draw line + ctx.beginPath(); + ctx.strokeStyle = m.color || options.grid.markingsColor; + ctx.lineWidth = m.lineWidth || options.grid.markingsLineWidth; + ctx.moveTo(xrange.from, yrange.from); + ctx.lineTo(xrange.to, yrange.to); + ctx.stroke(); + } + else { + // fill area + ctx.fillStyle = m.color || options.grid.markingsColor; + ctx.fillRect(xrange.from, yrange.to, + xrange.to - xrange.from, + yrange.from - yrange.to); + } + } + } + + // draw the ticks + var axes = allAxes(), bw = options.grid.borderWidth; + + for (var j = 0; j < axes.length; ++j) { + var axis = axes[j], box = axis.box, + t = axis.tickLength, x, y, xoff, yoff; + if (!axis.show || axis.ticks.length == 0) + continue + + ctx.strokeStyle = axis.options.tickColor || $.color.parse(axis.options.color).scale('a', 0.22).toString(); + ctx.lineWidth = 1; + + // find the edges + if (axis.direction == "x") { + x = 0; + if (t == "full") + y = (axis.position == "top" ? 0 : plotHeight); + else + y = box.top - plotOffset.top + (axis.position == "top" ? box.height : 0); + } + else { + y = 0; + if (t == "full") + x = (axis.position == "left" ? 0 : plotWidth); + else + x = box.left - plotOffset.left + (axis.position == "left" ? box.width : 0); + } + + // draw tick bar + if (!axis.innermost) { + ctx.beginPath(); + xoff = yoff = 0; + if (axis.direction == "x") + xoff = plotWidth; + else + yoff = plotHeight; + + if (ctx.lineWidth == 1) { + x = Math.floor(x) + 0.5; + y = Math.floor(y) + 0.5; + } + + ctx.moveTo(x, y); + ctx.lineTo(x + xoff, y + yoff); + ctx.stroke(); + } + + // draw ticks + ctx.beginPath(); + for (i = 0; i < axis.ticks.length; ++i) { + var v = axis.ticks[i].v; + + xoff = yoff = 0; + + if (v < axis.min || v > axis.max + // skip those lying on the axes if we got a border + || (t == "full" && bw > 0 + && (v == axis.min || v == axis.max))) + continue; + + if (axis.direction == "x") { + x = axis.p2c(v); + yoff = t == "full" ? -plotHeight : t; + + if (axis.position == "top") + yoff = -yoff; + } + else { + y = axis.p2c(v); + xoff = t == "full" ? -plotWidth : t; + + if (axis.position == "left") + xoff = -xoff; + } + + if (ctx.lineWidth == 1) { + if (axis.direction == "x") + x = Math.floor(x) + 0.5; + else + y = Math.floor(y) + 0.5; + } + + ctx.moveTo(x, y); + ctx.lineTo(x + xoff, y + yoff); + } + + ctx.stroke(); + } + + + // draw border + if (bw) { + ctx.lineWidth = bw; + ctx.strokeStyle = options.grid.borderColor; + ctx.strokeRect(-bw/2, -bw/2, plotWidth + bw, plotHeight + bw); + } + + ctx.restore(); + } + + function insertAxisLabels() { + placeholder.find(".tickLabels").remove(); + + var html = ['
    ']; + + var axes = allAxes(); + for (var j = 0; j < axes.length; ++j) { + var axis = axes[j], box = axis.box; + if (!axis.show) + continue; + //debug: html.push('
    ') + html.push('
    '); + for (var i = 0; i < axis.ticks.length; ++i) { + var tick = axis.ticks[i]; + if (!tick.label || tick.v < axis.min || tick.v > axis.max) + continue; + + var pos = {}, align; + + if (axis.direction == "x") { + align = "center"; + pos.left = Math.round(plotOffset.left + axis.p2c(tick.v) - axis.labelWidth/2); + if (axis.position == "bottom") + pos.top = box.top + box.padding; + else + pos.bottom = canvasHeight - (box.top + box.height - box.padding); + } + else { + pos.top = Math.round(plotOffset.top + axis.p2c(tick.v) - axis.labelHeight/2); + if (axis.position == "left") { + pos.right = canvasWidth - (box.left + box.width - box.padding) + align = "right"; + } + else { + pos.left = box.left + box.padding; + align = "left"; + } + } + + pos.width = axis.labelWidth; + + var style = ["position:absolute", "text-align:" + align ]; + for (var a in pos) + style.push(a + ":" + pos[a] + "px") + + html.push('
    ' + tick.label + '
    '); + } + html.push('
    '); + } + + html.push('
    '); + + placeholder.append(html.join("")); + } + + function drawSeries(series) { + if (series.lines.show) + drawSeriesLines(series); + if (series.bars.show) + drawSeriesBars(series); + if (series.points.show) + drawSeriesPoints(series); + } + + function drawSeriesLines(series) { + function plotLine(datapoints, xoffset, yoffset, axisx, axisy) { + var points = datapoints.points, + ps = datapoints.pointsize, + prevx = null, prevy = null; + + ctx.beginPath(); + for (var i = ps; i < points.length; i += ps) { + var x1 = points[i - ps], y1 = points[i - ps + 1], + x2 = points[i], y2 = points[i + 1]; + + if (x1 == null || x2 == null) + continue; + + // clip with ymin + if (y1 <= y2 && y1 < axisy.min) { + if (y2 < axisy.min) + continue; // line segment is outside + // compute new intersection point + x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.min; + } + else if (y2 <= y1 && y2 < axisy.min) { + if (y1 < axisy.min) + continue; + x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.min; + } + + // clip with ymax + if (y1 >= y2 && y1 > axisy.max) { + if (y2 > axisy.max) + continue; + x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.max; + } + else if (y2 >= y1 && y2 > axisy.max) { + if (y1 > axisy.max) + continue; + x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.max; + } + + // clip with xmin + if (x1 <= x2 && x1 < axisx.min) { + if (x2 < axisx.min) + continue; + y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.min; + } + else if (x2 <= x1 && x2 < axisx.min) { + if (x1 < axisx.min) + continue; + y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.min; + } + + // clip with xmax + if (x1 >= x2 && x1 > axisx.max) { + if (x2 > axisx.max) + continue; + y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.max; + } + else if (x2 >= x1 && x2 > axisx.max) { + if (x1 > axisx.max) + continue; + y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.max; + } + + if (x1 != prevx || y1 != prevy) + ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset); + + prevx = x2; + prevy = y2; + ctx.lineTo(axisx.p2c(x2) + xoffset, axisy.p2c(y2) + yoffset); + } + ctx.stroke(); + } + + function plotLineArea(datapoints, axisx, axisy) { + var points = datapoints.points, + ps = datapoints.pointsize, + bottom = Math.min(Math.max(0, axisy.min), axisy.max), + i = 0, top, areaOpen = false, + ypos = 1, segmentStart = 0, segmentEnd = 0; + + // we process each segment in two turns, first forward + // direction to sketch out top, then once we hit the + // end we go backwards to sketch the bottom + while (true) { + if (ps > 0 && i > points.length + ps) + break; + + i += ps; // ps is negative if going backwards + + var x1 = points[i - ps], + y1 = points[i - ps + ypos], + x2 = points[i], y2 = points[i + ypos]; + + if (areaOpen) { + if (ps > 0 && x1 != null && x2 == null) { + // at turning point + segmentEnd = i; + ps = -ps; + ypos = 2; + continue; + } + + if (ps < 0 && i == segmentStart + ps) { + // done with the reverse sweep + ctx.fill(); + areaOpen = false; + ps = -ps; + ypos = 1; + i = segmentStart = segmentEnd + ps; + continue; + } + } + + if (x1 == null || x2 == null) + continue; + + // clip x values + + // clip with xmin + if (x1 <= x2 && x1 < axisx.min) { + if (x2 < axisx.min) + continue; + y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.min; + } + else if (x2 <= x1 && x2 < axisx.min) { + if (x1 < axisx.min) + continue; + y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.min; + } + + // clip with xmax + if (x1 >= x2 && x1 > axisx.max) { + if (x2 > axisx.max) + continue; + y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.max; + } + else if (x2 >= x1 && x2 > axisx.max) { + if (x1 > axisx.max) + continue; + y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.max; + } + + if (!areaOpen) { + // open area + ctx.beginPath(); + ctx.moveTo(axisx.p2c(x1), axisy.p2c(bottom)); + areaOpen = true; + } + + // now first check the case where both is outside + if (y1 >= axisy.max && y2 >= axisy.max) { + ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max)); + ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max)); + continue; + } + else if (y1 <= axisy.min && y2 <= axisy.min) { + ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min)); + ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min)); + continue; + } + + // else it's a bit more complicated, there might + // be a flat maxed out rectangle first, then a + // triangular cutout or reverse; to find these + // keep track of the current x values + var x1old = x1, x2old = x2; + + // clip the y values, without shortcutting, we + // go through all cases in turn + + // clip with ymin + if (y1 <= y2 && y1 < axisy.min && y2 >= axisy.min) { + x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.min; + } + else if (y2 <= y1 && y2 < axisy.min && y1 >= axisy.min) { + x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.min; + } + + // clip with ymax + if (y1 >= y2 && y1 > axisy.max && y2 <= axisy.max) { + x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.max; + } + else if (y2 >= y1 && y2 > axisy.max && y1 <= axisy.max) { + x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.max; + } + + // if the x value was changed we got a rectangle + // to fill + if (x1 != x1old) { + ctx.lineTo(axisx.p2c(x1old), axisy.p2c(y1)); + // it goes to (x1, y1), but we fill that below + } + + // fill triangular section, this sometimes result + // in redundant points if (x1, y1) hasn't changed + // from previous line to, but we just ignore that + ctx.lineTo(axisx.p2c(x1), axisy.p2c(y1)); + ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2)); + + // fill the other rectangle if it's there + if (x2 != x2old) { + ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2)); + ctx.lineTo(axisx.p2c(x2old), axisy.p2c(y2)); + } + } + } + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + ctx.lineJoin = "round"; + + var lw = series.lines.lineWidth, + sw = series.shadowSize; + // FIXME: consider another form of shadow when filling is turned on + if (lw > 0 && sw > 0) { + // draw shadow as a thick and thin line with transparency + ctx.lineWidth = sw; + ctx.strokeStyle = "rgba(0,0,0,0.1)"; + // position shadow at angle from the mid of line + var angle = Math.PI/18; + plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/2), Math.cos(angle) * (lw/2 + sw/2), series.xaxis, series.yaxis); + ctx.lineWidth = sw/2; + plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/4), Math.cos(angle) * (lw/2 + sw/4), series.xaxis, series.yaxis); + } + + ctx.lineWidth = lw; + ctx.strokeStyle = series.color; + var fillStyle = getFillStyle(series.lines, series.color, 0, plotHeight); + if (fillStyle) { + ctx.fillStyle = fillStyle; + plotLineArea(series.datapoints, series.xaxis, series.yaxis); + } + + if (lw > 0) + plotLine(series.datapoints, 0, 0, series.xaxis, series.yaxis); + ctx.restore(); + } + + function drawSeriesPoints(series) { + function plotPoints(datapoints, radius, fillStyle, offset, shadow, axisx, axisy, symbol) { + var points = datapoints.points, ps = datapoints.pointsize; + + for (var i = 0; i < points.length; i += ps) { + var x = points[i], y = points[i + 1]; + if (x == null || x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) + continue; + + ctx.beginPath(); + x = axisx.p2c(x); + y = axisy.p2c(y) + offset; + if (symbol == "circle") + ctx.arc(x, y, radius, 0, shadow ? Math.PI : Math.PI * 2, false); + else + symbol(ctx, x, y, radius, shadow); + ctx.closePath(); + + if (fillStyle) { + ctx.fillStyle = fillStyle; + ctx.fill(); + } + ctx.stroke(); + } + } + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + var lw = series.points.lineWidth, + sw = series.shadowSize, + radius = series.points.radius, + symbol = series.points.symbol; + if (lw > 0 && sw > 0) { + // draw shadow in two steps + var w = sw / 2; + ctx.lineWidth = w; + ctx.strokeStyle = "rgba(0,0,0,0.1)"; + plotPoints(series.datapoints, radius, null, w + w/2, true, + series.xaxis, series.yaxis, symbol); + + ctx.strokeStyle = "rgba(0,0,0,0.2)"; + plotPoints(series.datapoints, radius, null, w/2, true, + series.xaxis, series.yaxis, symbol); + } + + ctx.lineWidth = lw; + ctx.strokeStyle = series.color; + plotPoints(series.datapoints, radius, + getFillStyle(series.points, series.color), 0, false, + series.xaxis, series.yaxis, symbol); + ctx.restore(); + } + + function drawBar(x, y, b, barLeft, barRight, offset, fillStyleCallback, axisx, axisy, c, horizontal, lineWidth) { + var left, right, bottom, top, + drawLeft, drawRight, drawTop, drawBottom, + tmp; + + // in horizontal mode, we start the bar from the left + // instead of from the bottom so it appears to be + // horizontal rather than vertical + if (horizontal) { + drawBottom = drawRight = drawTop = true; + drawLeft = false; + left = b; + right = x; + top = y + barLeft; + bottom = y + barRight; + + // account for negative bars + if (right < left) { + tmp = right; + right = left; + left = tmp; + drawLeft = true; + drawRight = false; + } + } + else { + drawLeft = drawRight = drawTop = true; + drawBottom = false; + left = x + barLeft; + right = x + barRight; + bottom = b; + top = y; + + // account for negative bars + if (top < bottom) { + tmp = top; + top = bottom; + bottom = tmp; + drawBottom = true; + drawTop = false; + } + } + + // clip + if (right < axisx.min || left > axisx.max || + top < axisy.min || bottom > axisy.max) + return; + + if (left < axisx.min) { + left = axisx.min; + drawLeft = false; + } + + if (right > axisx.max) { + right = axisx.max; + drawRight = false; + } + + if (bottom < axisy.min) { + bottom = axisy.min; + drawBottom = false; + } + + if (top > axisy.max) { + top = axisy.max; + drawTop = false; + } + + left = axisx.p2c(left); + bottom = axisy.p2c(bottom); + right = axisx.p2c(right); + top = axisy.p2c(top); + + // fill the bar + if (fillStyleCallback) { + c.beginPath(); + c.moveTo(left, bottom); + c.lineTo(left, top); + c.lineTo(right, top); + c.lineTo(right, bottom); + c.fillStyle = fillStyleCallback(bottom, top); + c.fill(); + } + + // draw outline + if (lineWidth > 0 && (drawLeft || drawRight || drawTop || drawBottom)) { + c.beginPath(); + + // FIXME: inline moveTo is buggy with excanvas + c.moveTo(left, bottom + offset); + if (drawLeft) + c.lineTo(left, top + offset); + else + c.moveTo(left, top + offset); + if (drawTop) + c.lineTo(right, top + offset); + else + c.moveTo(right, top + offset); + if (drawRight) + c.lineTo(right, bottom + offset); + else + c.moveTo(right, bottom + offset); + if (drawBottom) + c.lineTo(left, bottom + offset); + else + c.moveTo(left, bottom + offset); + c.stroke(); + } + } + + function drawSeriesBars(series) { + function plotBars(datapoints, barLeft, barRight, offset, fillStyleCallback, axisx, axisy) { + var points = datapoints.points, ps = datapoints.pointsize; + + for (var i = 0; i < points.length; i += ps) { + if (points[i] == null) + continue; + drawBar(points[i], points[i + 1], points[i + 2], barLeft, barRight, offset, fillStyleCallback, axisx, axisy, ctx, series.bars.horizontal, series.bars.lineWidth); + } + } + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + // FIXME: figure out a way to add shadows (for instance along the right edge) + ctx.lineWidth = series.bars.lineWidth; + ctx.strokeStyle = series.color; + var barLeft = series.bars.align == "left" ? 0 : -series.bars.barWidth/2; + var fillStyleCallback = series.bars.fill ? function (bottom, top) { return getFillStyle(series.bars, series.color, bottom, top); } : null; + plotBars(series.datapoints, barLeft, barLeft + series.bars.barWidth, 0, fillStyleCallback, series.xaxis, series.yaxis); + ctx.restore(); + } + + function getFillStyle(filloptions, seriesColor, bottom, top) { + var fill = filloptions.fill; + if (!fill) + return null; + + if (filloptions.fillColor) + return getColorOrGradient(filloptions.fillColor, bottom, top, seriesColor); + + var c = $.color.parse(seriesColor); + c.a = typeof fill == "number" ? fill : 0.4; + c.normalize(); + return c.toString(); + } + + function insertLegend() { + placeholder.find(".legend").remove(); + + if (!options.legend.show) + return; + + var fragments = [], rowStarted = false, + lf = options.legend.labelFormatter, s, label; + for (var i = 0; i < series.length; ++i) { + s = series[i]; + label = s.label; + if (!label) + continue; + + if (i % options.legend.noColumns == 0) { + if (rowStarted) + fragments.push(''); + fragments.push('
    '); + rowStarted = true; + } + + if (lf) + label = lf(label, s); + + fragments.push( + '' + + ''); + } + if (rowStarted) + fragments.push(''); + + if (fragments.length == 0) + return; + + var table = '
    ' + label + '
    ' + fragments.join("") + '
    '; + if (options.legend.container != null) + $(options.legend.container).html(table); + else { + var pos = "", + p = options.legend.position, + m = options.legend.margin; + if (m[0] == null) + m = [m, m]; + if (p.charAt(0) == "n") + pos += 'top:' + (m[1] + plotOffset.top) + 'px;'; + else if (p.charAt(0) == "s") + pos += 'bottom:' + (m[1] + plotOffset.bottom) + 'px;'; + if (p.charAt(1) == "e") + pos += 'right:' + (m[0] + plotOffset.right) + 'px;'; + else if (p.charAt(1) == "w") + pos += 'left:' + (m[0] + plotOffset.left) + 'px;'; + var legend = $('
    ' + table.replace('style="', 'style="position:absolute;' + pos +';') + '
    ').appendTo(placeholder); + if (options.legend.backgroundOpacity != 0.0) { + // put in the transparent background + // separately to avoid blended labels and + // label boxes + var c = options.legend.backgroundColor; + if (c == null) { + c = options.grid.backgroundColor; + if (c && typeof c == "string") + c = $.color.parse(c); + else + c = $.color.extract(legend, 'background-color'); + c.a = 1; + c = c.toString(); + } + var div = legend.children(); + $('
    ').prependTo(legend).css('opacity', options.legend.backgroundOpacity); + } + } + } + + + // interactive features + + var highlights = [], + redrawTimeout = null; + + // returns the data item the mouse is over, or null if none is found + function findNearbyItem(mouseX, mouseY, seriesFilter) { + var maxDistance = options.grid.mouseActiveRadius, + smallestDistance = maxDistance * maxDistance + 1, + item = null, foundPoint = false, i, j; + + for (i = series.length - 1; i >= 0; --i) { + if (!seriesFilter(series[i])) + continue; + + var s = series[i], + axisx = s.xaxis, + axisy = s.yaxis, + points = s.datapoints.points, + ps = s.datapoints.pointsize, + mx = axisx.c2p(mouseX), // precompute some stuff to make the loop faster + my = axisy.c2p(mouseY), + maxx = maxDistance / axisx.scale, + maxy = maxDistance / axisy.scale; + + // with inverse transforms, we can't use the maxx/maxy + // optimization, sadly + if (axisx.options.inverseTransform) + maxx = Number.MAX_VALUE; + if (axisy.options.inverseTransform) + maxy = Number.MAX_VALUE; + + if (s.lines.show || s.points.show) { + for (j = 0; j < points.length; j += ps) { + var x = points[j], y = points[j + 1]; + if (x == null) + continue; + + // For points and lines, the cursor must be within a + // certain distance to the data point + if (x - mx > maxx || x - mx < -maxx || + y - my > maxy || y - my < -maxy) + continue; + + // We have to calculate distances in pixels, not in + // data units, because the scales of the axes may be different + var dx = Math.abs(axisx.p2c(x) - mouseX), + dy = Math.abs(axisy.p2c(y) - mouseY), + dist = dx * dx + dy * dy; // we save the sqrt + + // use <= to ensure last point takes precedence + // (last generally means on top of) + if (dist < smallestDistance) { + smallestDistance = dist; + item = [i, j / ps]; + } + } + } + + if (s.bars.show && !item) { // no other point can be nearby + var barLeft = s.bars.align == "left" ? 0 : -s.bars.barWidth/2, + barRight = barLeft + s.bars.barWidth; + + for (j = 0; j < points.length; j += ps) { + var x = points[j], y = points[j + 1], b = points[j + 2]; + if (x == null) + continue; + + // for a bar graph, the cursor must be inside the bar + if (series[i].bars.horizontal ? + (mx <= Math.max(b, x) && mx >= Math.min(b, x) && + my >= y + barLeft && my <= y + barRight) : + (mx >= x + barLeft && mx <= x + barRight && + my >= Math.min(b, y) && my <= Math.max(b, y))) + item = [i, j / ps]; + } + } + } + + if (item) { + i = item[0]; + j = item[1]; + ps = series[i].datapoints.pointsize; + + return { datapoint: series[i].datapoints.points.slice(j * ps, (j + 1) * ps), + dataIndex: j, + series: series[i], + seriesIndex: i }; + } + + return null; + } + + function onMouseMove(e) { + if (options.grid.hoverable) + triggerClickHoverEvent("plothover", e, + function (s) { return s["hoverable"] != false; }); + } + + function onMouseLeave(e) { + if (options.grid.hoverable) + triggerClickHoverEvent("plothover", e, + function (s) { return false; }); + } + + function onClick(e) { + triggerClickHoverEvent("plotclick", e, + function (s) { return s["clickable"] != false; }); + } + + // trigger click or hover event (they send the same parameters + // so we share their code) + function triggerClickHoverEvent(eventname, event, seriesFilter) { + var offset = eventHolder.offset(), + canvasX = event.pageX - offset.left - plotOffset.left, + canvasY = event.pageY - offset.top - plotOffset.top, + pos = canvasToAxisCoords({ left: canvasX, top: canvasY }); + + pos.pageX = event.pageX; + pos.pageY = event.pageY; + + var item = findNearbyItem(canvasX, canvasY, seriesFilter); + + if (item) { + // fill in mouse pos for any listeners out there + item.pageX = parseInt(item.series.xaxis.p2c(item.datapoint[0]) + offset.left + plotOffset.left); + item.pageY = parseInt(item.series.yaxis.p2c(item.datapoint[1]) + offset.top + plotOffset.top); + } + + if (options.grid.autoHighlight) { + // clear auto-highlights + for (var i = 0; i < highlights.length; ++i) { + var h = highlights[i]; + if (h.auto == eventname && + !(item && h.series == item.series && + h.point[0] == item.datapoint[0] && + h.point[1] == item.datapoint[1])) + unhighlight(h.series, h.point); + } + + if (item) + highlight(item.series, item.datapoint, eventname); + } + + placeholder.trigger(eventname, [ pos, item ]); + } + + function triggerRedrawOverlay() { + if (!redrawTimeout) + redrawTimeout = setTimeout(drawOverlay, 30); + } + + function drawOverlay() { + redrawTimeout = null; + + // draw highlights + octx.save(); + octx.clearRect(0, 0, canvasWidth, canvasHeight); + octx.translate(plotOffset.left, plotOffset.top); + + var i, hi; + for (i = 0; i < highlights.length; ++i) { + hi = highlights[i]; + + if (hi.series.bars.show) + drawBarHighlight(hi.series, hi.point); + else + drawPointHighlight(hi.series, hi.point); + } + octx.restore(); + + executeHooks(hooks.drawOverlay, [octx]); + } + + function highlight(s, point, auto) { + if (typeof s == "number") + s = series[s]; + + if (typeof point == "number") { + var ps = s.datapoints.pointsize; + point = s.datapoints.points.slice(ps * point, ps * (point + 1)); + } + + var i = indexOfHighlight(s, point); + if (i == -1) { + highlights.push({ series: s, point: point, auto: auto }); + + triggerRedrawOverlay(); + } + else if (!auto) + highlights[i].auto = false; + } + + function unhighlight(s, point) { + if (s == null && point == null) { + highlights = []; + triggerRedrawOverlay(); + } + + if (typeof s == "number") + s = series[s]; + + if (typeof point == "number") + point = s.data[point]; + + var i = indexOfHighlight(s, point); + if (i != -1) { + highlights.splice(i, 1); + + triggerRedrawOverlay(); + } + } + + function indexOfHighlight(s, p) { + for (var i = 0; i < highlights.length; ++i) { + var h = highlights[i]; + if (h.series == s && h.point[0] == p[0] + && h.point[1] == p[1]) + return i; + } + return -1; + } + + function drawPointHighlight(series, point) { + var x = point[0], y = point[1], + axisx = series.xaxis, axisy = series.yaxis; + + if (x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) + return; + + var pointRadius = series.points.radius + series.points.lineWidth / 2; + octx.lineWidth = pointRadius; + octx.strokeStyle = $.color.parse(series.color).scale('a', 0.5).toString(); + var radius = 1.5 * pointRadius, + x = axisx.p2c(x), + y = axisy.p2c(y); + + octx.beginPath(); + if (series.points.symbol == "circle") + octx.arc(x, y, radius, 0, 2 * Math.PI, false); + else + series.points.symbol(octx, x, y, radius, false); + octx.closePath(); + octx.stroke(); + } + + function drawBarHighlight(series, point) { + octx.lineWidth = series.bars.lineWidth; + octx.strokeStyle = $.color.parse(series.color).scale('a', 0.5).toString(); + var fillStyle = $.color.parse(series.color).scale('a', 0.5).toString(); + var barLeft = series.bars.align == "left" ? 0 : -series.bars.barWidth/2; + drawBar(point[0], point[1], point[2] || 0, barLeft, barLeft + series.bars.barWidth, + 0, function () { return fillStyle; }, series.xaxis, series.yaxis, octx, series.bars.horizontal, series.bars.lineWidth); + } + + function getColorOrGradient(spec, bottom, top, defaultColor) { + if (typeof spec == "string") + return spec; + else { + // assume this is a gradient spec; IE currently only + // supports a simple vertical gradient properly, so that's + // what we support too + var gradient = ctx.createLinearGradient(0, top, 0, bottom); + + for (var i = 0, l = spec.colors.length; i < l; ++i) { + var c = spec.colors[i]; + if (typeof c != "string") { + var co = $.color.parse(defaultColor); + if (c.brightness != null) + co = co.scale('rgb', c.brightness) + if (c.opacity != null) + co.a *= c.opacity; + c = co.toString(); + } + gradient.addColorStop(i / (l - 1), c); + } + + return gradient; + } + } + } + + $.plot = function(placeholder, data, options) { + //var t0 = new Date(); + var plot = new Plot($(placeholder), data, options, $.plot.plugins); + //(window.console ? console.log : alert)("time used (msecs): " + ((new Date()).getTime() - t0.getTime())); + return plot; + }; + + $.plot.version = "0.7"; + + $.plot.plugins = []; + + // returns a string with the date d formatted according to fmt + $.plot.formatDate = function(d, fmt, monthNames) { + var leftPad = function(n) { + n = "" + n; + return n.length == 1 ? "0" + n : n; + }; + + var r = []; + var escape = false, padNext = false; + var hours = d.getUTCHours(); + var isAM = hours < 12; + if (monthNames == null) + monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + + if (fmt.search(/%p|%P/) != -1) { + if (hours > 12) { + hours = hours - 12; + } else if (hours == 0) { + hours = 12; + } + } + for (var i = 0; i < fmt.length; ++i) { + var c = fmt.charAt(i); + + if (escape) { + switch (c) { + case 'h': c = "" + hours; break; + case 'H': c = leftPad(hours); break; + case 'M': c = leftPad(d.getUTCMinutes()); break; + case 'S': c = leftPad(d.getUTCSeconds()); break; + case 'd': c = "" + d.getUTCDate(); break; + case 'm': c = "" + (d.getUTCMonth() + 1); break; + case 'y': c = "" + d.getUTCFullYear(); break; + case 'b': c = "" + monthNames[d.getUTCMonth()]; break; + case 'p': c = (isAM) ? ("" + "am") : ("" + "pm"); break; + case 'P': c = (isAM) ? ("" + "AM") : ("" + "PM"); break; + case '0': c = ""; padNext = true; break; + } + if (c && padNext) { + c = leftPad(c); + padNext = false; + } + r.push(c); + if (!padNext) + escape = false; + } + else { + if (c == "%") + escape = true; + else + r.push(c); + } + } + return r.join(""); + }; + + // round to nearby lower multiple of base + function floorInBase(n, base) { + return base * Math.floor(n / base); + } + +})(jQuery); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.navigate.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.navigate.js" new file mode 100644 index 0000000..f2b9760 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.navigate.js" @@ -0,0 +1,336 @@ +/* +Flot plugin for adding panning and zooming capabilities to a plot. + +The default behaviour is double click and scrollwheel up/down to zoom +in, drag to pan. The plugin defines plot.zoom({ center }), +plot.zoomOut() and plot.pan(offset) so you easily can add custom +controls. It also fires a "plotpan" and "plotzoom" event when +something happens, useful for synchronizing plots. + +Options: + + zoom: { + interactive: false + trigger: "dblclick" // or "click" for single click + amount: 1.5 // 2 = 200% (zoom in), 0.5 = 50% (zoom out) + } + + pan: { + interactive: false + cursor: "move" // CSS mouse cursor value used when dragging, e.g. "pointer" + frameRate: 20 + } + + xaxis, yaxis, x2axis, y2axis: { + zoomRange: null // or [number, number] (min range, max range) or false + panRange: null // or [number, number] (min, max) or false + } + +"interactive" enables the built-in drag/click behaviour. If you enable +interactive for pan, then you'll have a basic plot that supports +moving around; the same for zoom. + +"amount" specifies the default amount to zoom in (so 1.5 = 150%) +relative to the current viewport. + +"cursor" is a standard CSS mouse cursor string used for visual +feedback to the user when dragging. + +"frameRate" specifies the maximum number of times per second the plot +will update itself while the user is panning around on it (set to null +to disable intermediate pans, the plot will then not update until the +mouse button is released). + +"zoomRange" is the interval in which zooming can happen, e.g. with +zoomRange: [1, 100] the zoom will never scale the axis so that the +difference between min and max is smaller than 1 or larger than 100. +You can set either end to null to ignore, e.g. [1, null]. If you set +zoomRange to false, zooming on that axis will be disabled. + +"panRange" confines the panning to stay within a range, e.g. with +panRange: [-10, 20] panning stops at -10 in one end and at 20 in the +other. Either can be null, e.g. [-10, null]. If you set +panRange to false, panning on that axis will be disabled. + +Example API usage: + + plot = $.plot(...); + + // zoom default amount in on the pixel (10, 20) + plot.zoom({ center: { left: 10, top: 20 } }); + + // zoom out again + plot.zoomOut({ center: { left: 10, top: 20 } }); + + // zoom 200% in on the pixel (10, 20) + plot.zoom({ amount: 2, center: { left: 10, top: 20 } }); + + // pan 100 pixels to the left and 20 down + plot.pan({ left: -100, top: 20 }) + +Here, "center" specifies where the center of the zooming should +happen. Note that this is defined in pixel space, not the space of the +data points (you can use the p2c helpers on the axes in Flot to help +you convert between these). + +"amount" is the amount to zoom the viewport relative to the current +range, so 1 is 100% (i.e. no change), 1.5 is 150% (zoom in), 0.7 is +70% (zoom out). You can set the default in the options. + +*/ + + +// First two dependencies, jquery.event.drag.js and +// jquery.mousewheel.js, we put them inline here to save people the +// effort of downloading them. + +/* +jquery.event.drag.js ~ v1.5 ~ Copyright (c) 2008, Three Dub Media (http://threedubmedia.com) +Licensed under the MIT License ~ http://threedubmedia.googlecode.com/files/MIT-LICENSE.txt +*/ +(function(E){E.fn.drag=function(L,K,J){if(K){this.bind("dragstart",L)}if(J){this.bind("dragend",J)}return !L?this.trigger("drag"):this.bind("drag",K?K:L)};var A=E.event,B=A.special,F=B.drag={not:":input",distance:0,which:1,dragging:false,setup:function(J){J=E.extend({distance:F.distance,which:F.which,not:F.not},J||{});J.distance=I(J.distance);A.add(this,"mousedown",H,J);if(this.attachEvent){this.attachEvent("ondragstart",D)}},teardown:function(){A.remove(this,"mousedown",H);if(this===F.dragging){F.dragging=F.proxy=false}G(this,true);if(this.detachEvent){this.detachEvent("ondragstart",D)}}};B.dragstart=B.dragend={setup:function(){},teardown:function(){}};function H(L){var K=this,J,M=L.data||{};if(M.elem){K=L.dragTarget=M.elem;L.dragProxy=F.proxy||K;L.cursorOffsetX=M.pageX-M.left;L.cursorOffsetY=M.pageY-M.top;L.offsetX=L.pageX-L.cursorOffsetX;L.offsetY=L.pageY-L.cursorOffsetY}else{if(F.dragging||(M.which>0&&L.which!=M.which)||E(L.target).is(M.not)){return }}switch(L.type){case"mousedown":E.extend(M,E(K).offset(),{elem:K,target:L.target,pageX:L.pageX,pageY:L.pageY});A.add(document,"mousemove mouseup",H,M);G(K,false);F.dragging=null;return false;case !F.dragging&&"mousemove":if(I(L.pageX-M.pageX)+I(L.pageY-M.pageY) max) { + // make sure min < max + var tmp = min; + min = max; + max = tmp; + } + + var range = max - min; + if (zr && + ((zr[0] != null && range < zr[0]) || + (zr[1] != null && range > zr[1]))) + return; + + opts.min = min; + opts.max = max; + }); + + plot.setupGrid(); + plot.draw(); + + if (!args.preventEvent) + plot.getPlaceholder().trigger("plotzoom", [ plot ]); + } + + plot.pan = function (args) { + var delta = { + x: +args.left, + y: +args.top + }; + + if (isNaN(delta.x)) + delta.x = 0; + if (isNaN(delta.y)) + delta.y = 0; + + $.each(plot.getAxes(), function (_, axis) { + var opts = axis.options, + min, max, d = delta[axis.direction]; + + min = axis.c2p(axis.p2c(axis.min) + d), + max = axis.c2p(axis.p2c(axis.max) + d); + + var pr = opts.panRange; + if (pr === false) // no panning on this axis + return; + + if (pr) { + // check whether we hit the wall + if (pr[0] != null && pr[0] > min) { + d = pr[0] - min; + min += d; + max += d; + } + + if (pr[1] != null && pr[1] < max) { + d = pr[1] - max; + min += d; + max += d; + } + } + + opts.min = min; + opts.max = max; + }); + + plot.setupGrid(); + plot.draw(); + + if (!args.preventEvent) + plot.getPlaceholder().trigger("plotpan", [ plot ]); + } + + function shutdown(plot, eventHolder) { + eventHolder.unbind(plot.getOptions().zoom.trigger, onZoomClick); + eventHolder.unbind("mousewheel", onMouseWheel); + eventHolder.unbind("dragstart", onDragStart); + eventHolder.unbind("drag", onDrag); + eventHolder.unbind("dragend", onDragEnd); + if (panTimeout) + clearTimeout(panTimeout); + } + + plot.hooks.bindEvents.push(bindEvents); + plot.hooks.shutdown.push(shutdown); + } + + $.plot.plugins.push({ + init: init, + options: options, + name: 'navigate', + version: '1.3' + }); +})(jQuery); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.pie.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.pie.js" new file mode 100644 index 0000000..b46c03c --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.pie.js" @@ -0,0 +1,750 @@ +/* +Flot plugin for rendering pie charts. The plugin assumes the data is +coming is as a single data value for each series, and each of those +values is a positive value or zero (negative numbers don't make +any sense and will cause strange effects). The data values do +NOT need to be passed in as percentage values because it +internally calculates the total and percentages. + +* Created by Brian Medendorp, June 2009 +* Updated November 2009 with contributions from: btburnett3, Anthony Aragues and Xavi Ivars + +* Changes: + 2009-10-22: lineJoin set to round + 2009-10-23: IE full circle fix, donut + 2009-11-11: Added basic hover from btburnett3 - does not work in IE, and center is off in Chrome and Opera + 2009-11-17: Added IE hover capability submitted by Anthony Aragues + 2009-11-18: Added bug fix submitted by Xavi Ivars (issues with arrays when other JS libraries are included as well) + + +Available options are: +series: { + pie: { + show: true/false + radius: 0-1 for percentage of fullsize, or a specified pixel length, or 'auto' + innerRadius: 0-1 for percentage of fullsize or a specified pixel length, for creating a donut effect + startAngle: 0-2 factor of PI used for starting angle (in radians) i.e 3/2 starts at the top, 0 and 2 have the same result + tilt: 0-1 for percentage to tilt the pie, where 1 is no tilt, and 0 is completely flat (nothing will show) + offset: { + top: integer value to move the pie up or down + left: integer value to move the pie left or right, or 'auto' + }, + stroke: { + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#FFF') + width: integer pixel width of the stroke + }, + label: { + show: true/false, or 'auto' + formatter: a user-defined function that modifies the text/style of the label text + radius: 0-1 for percentage of fullsize, or a specified pixel length + background: { + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#000') + opacity: 0-1 + }, + threshold: 0-1 for the percentage value at which to hide labels (if they're too small) + }, + combine: { + threshold: 0-1 for the percentage value at which to combine slices (if they're too small) + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#CCC'), if null, the plugin will automatically use the color of the first slice to be combined + label: any text value of what the combined slice should be labeled + } + highlight: { + opacity: 0-1 + } + } +} + +More detail and specific examples can be found in the included HTML file. + +*/ + +(function ($) +{ + function init(plot) // this is the "body" of the plugin + { + var canvas = null; + var target = null; + var maxRadius = null; + var centerLeft = null; + var centerTop = null; + var total = 0; + var redraw = true; + var redrawAttempts = 10; + var shrink = 0.95; + var legendWidth = 0; + var processed = false; + var raw = false; + + // interactive variables + var highlights = []; + + // add hook to determine if pie plugin in enabled, and then perform necessary operations + plot.hooks.processOptions.push(checkPieEnabled); + plot.hooks.bindEvents.push(bindEvents); + + // check to see if the pie plugin is enabled + function checkPieEnabled(plot, options) + { + if (options.series.pie.show) + { + //disable grid + options.grid.show = false; + + // set labels.show + if (options.series.pie.label.show=='auto') + if (options.legend.show) + options.series.pie.label.show = false; + else + options.series.pie.label.show = true; + + // set radius + if (options.series.pie.radius=='auto') + if (options.series.pie.label.show) + options.series.pie.radius = 3/4; + else + options.series.pie.radius = 1; + + // ensure sane tilt + if (options.series.pie.tilt>1) + options.series.pie.tilt=1; + if (options.series.pie.tilt<0) + options.series.pie.tilt=0; + + // add processData hook to do transformations on the data + plot.hooks.processDatapoints.push(processDatapoints); + plot.hooks.drawOverlay.push(drawOverlay); + + // add draw hook + plot.hooks.draw.push(draw); + } + } + + // bind hoverable events + function bindEvents(plot, eventHolder) + { + var options = plot.getOptions(); + + if (options.series.pie.show && options.grid.hoverable) + eventHolder.unbind('mousemove').mousemove(onMouseMove); + + if (options.series.pie.show && options.grid.clickable) + eventHolder.unbind('click').click(onClick); + } + + + // debugging function that prints out an object + function alertObject(obj) + { + var msg = ''; + function traverse(obj, depth) + { + if (!depth) + depth = 0; + for (var i = 0; i < obj.length; ++i) + { + for (var j=0; jcanvas.width-maxRadius) + centerLeft = canvas.width-maxRadius; + } + + function fixData(data) + { + for (var i = 0; i < data.length; ++i) + { + if (typeof(data[i].data)=='number') + data[i].data = [[1,data[i].data]]; + else if (typeof(data[i].data)=='undefined' || typeof(data[i].data[0])=='undefined') + { + if (typeof(data[i].data)!='undefined' && typeof(data[i].data.label)!='undefined') + data[i].label = data[i].data.label; // fix weirdness coming from flot + data[i].data = [[1,0]]; + + } + } + return data; + } + + function combine(data) + { + data = fixData(data); + calcTotal(data); + var combined = 0; + var numCombined = 0; + var color = options.series.pie.combine.color; + + var newdata = []; + for (var i = 0; i < data.length; ++i) + { + // make sure its a number + data[i].data[0][1] = parseFloat(data[i].data[0][1]); + if (!data[i].data[0][1]) + data[i].data[0][1] = 0; + + if (data[i].data[0][1]/total<=options.series.pie.combine.threshold) + { + combined += data[i].data[0][1]; + numCombined++; + if (!color) + color = data[i].color; + } + else + { + newdata.push({ + data: [[1,data[i].data[0][1]]], + color: data[i].color, + label: data[i].label, + angle: (data[i].data[0][1]*(Math.PI*2))/total, + percent: (data[i].data[0][1]/total*100) + }); + } + } + if (numCombined>0) + newdata.push({ + data: [[1,combined]], + color: color, + label: options.series.pie.combine.label, + angle: (combined*(Math.PI*2))/total, + percent: (combined/total*100) + }); + return newdata; + } + + function draw(plot, newCtx) + { + if (!target) return; // if no series were passed + ctx = newCtx; + + setupPie(); + var slices = plot.getData(); + + var attempts = 0; + while (redraw && attempts0) + maxRadius *= shrink; + attempts += 1; + clear(); + if (options.series.pie.tilt<=0.8) + drawShadow(); + drawPie(); + } + if (attempts >= redrawAttempts) { + clear(); + target.prepend('
    Could not draw pie with labels contained inside canvas
    '); + } + + if ( plot.setSeries && plot.insertLegend ) + { + plot.setSeries(slices); + plot.insertLegend(); + } + + // we're actually done at this point, just defining internal functions at this point + + function clear() + { + ctx.clearRect(0,0,canvas.width,canvas.height); + target.children().filter('.pieLabel, .pieLabelBackground').remove(); + } + + function drawShadow() + { + var shadowLeft = 5; + var shadowTop = 15; + var edge = 10; + var alpha = 0.02; + + // set radius + if (options.series.pie.radius>1) + var radius = options.series.pie.radius; + else + var radius = maxRadius * options.series.pie.radius; + + if (radius>=(canvas.width/2)-shadowLeft || radius*options.series.pie.tilt>=(canvas.height/2)-shadowTop || radius<=edge) + return; // shadow would be outside canvas, so don't draw it + + ctx.save(); + ctx.translate(shadowLeft,shadowTop); + ctx.globalAlpha = alpha; + ctx.fillStyle = '#000'; + + // center and rotate to starting position + ctx.translate(centerLeft,centerTop); + ctx.scale(1, options.series.pie.tilt); + + //radius -= edge; + for (var i=1; i<=edge; i++) + { + ctx.beginPath(); + ctx.arc(0,0,radius,0,Math.PI*2,false); + ctx.fill(); + radius -= i; + } + + ctx.restore(); + } + + function drawPie() + { + startAngle = Math.PI*options.series.pie.startAngle; + + // set radius + if (options.series.pie.radius>1) + var radius = options.series.pie.radius; + else + var radius = maxRadius * options.series.pie.radius; + + // center and rotate to starting position + ctx.save(); + ctx.translate(centerLeft,centerTop); + ctx.scale(1, options.series.pie.tilt); + //ctx.rotate(startAngle); // start at top; -- This doesn't work properly in Opera + + // draw slices + ctx.save(); + var currentAngle = startAngle; + for (var i = 0; i < slices.length; ++i) + { + slices[i].startAngle = currentAngle; + drawSlice(slices[i].angle, slices[i].color, true); + } + ctx.restore(); + + // draw slice outlines + ctx.save(); + ctx.lineWidth = options.series.pie.stroke.width; + currentAngle = startAngle; + for (var i = 0; i < slices.length; ++i) + drawSlice(slices[i].angle, options.series.pie.stroke.color, false); + ctx.restore(); + + // draw donut hole + drawDonutHole(ctx); + + // draw labels + if (options.series.pie.label.show) + drawLabels(); + + // restore to original state + ctx.restore(); + + function drawSlice(angle, color, fill) + { + if (angle<=0) + return; + + if (fill) + ctx.fillStyle = color; + else + { + ctx.strokeStyle = color; + ctx.lineJoin = 'round'; + } + + ctx.beginPath(); + if (Math.abs(angle - Math.PI*2) > 0.000000001) + ctx.moveTo(0,0); // Center of the pie + else if ($.browser.msie) + angle -= 0.0001; + //ctx.arc(0,0,radius,0,angle,false); // This doesn't work properly in Opera + ctx.arc(0,0,radius,currentAngle,currentAngle+angle,false); + ctx.closePath(); + //ctx.rotate(angle); // This doesn't work properly in Opera + currentAngle += angle; + + if (fill) + ctx.fill(); + else + ctx.stroke(); + } + + function drawLabels() + { + var currentAngle = startAngle; + + // set radius + if (options.series.pie.label.radius>1) + var radius = options.series.pie.label.radius; + else + var radius = maxRadius * options.series.pie.label.radius; + + for (var i = 0; i < slices.length; ++i) + { + if (slices[i].percent >= options.series.pie.label.threshold*100) + drawLabel(slices[i], currentAngle, i); + currentAngle += slices[i].angle; + } + + function drawLabel(slice, startAngle, index) + { + if (slice.data[0][1]==0) + return; + + // format label text + var lf = options.legend.labelFormatter, text, plf = options.series.pie.label.formatter; + if (lf) + text = lf(slice.label, slice); + else + text = slice.label; + if (plf) + text = plf(text, slice); + + var halfAngle = ((startAngle+slice.angle) + startAngle)/2; + var x = centerLeft + Math.round(Math.cos(halfAngle) * radius); + var y = centerTop + Math.round(Math.sin(halfAngle) * radius) * options.series.pie.tilt; + + var html = '' + text + ""; + target.append(html); + var label = target.children('#pieLabel'+index); + var labelTop = (y - label.height()/2); + var labelLeft = (x - label.width()/2); + label.css('top', labelTop); + label.css('left', labelLeft); + + // check to make sure that the label is not outside the canvas + if (0-labelTop>0 || 0-labelLeft>0 || canvas.height-(labelTop+label.height())<0 || canvas.width-(labelLeft+label.width())<0) + redraw = true; + + if (options.series.pie.label.background.opacity != 0) { + // put in the transparent background separately to avoid blended labels and label boxes + var c = options.series.pie.label.background.color; + if (c == null) { + c = slice.color; + } + var pos = 'top:'+labelTop+'px;left:'+labelLeft+'px;'; + $('
    ').insertBefore(label).css('opacity', options.series.pie.label.background.opacity); + } + } // end individual label function + } // end drawLabels function + } // end drawPie function + } // end draw function + + // Placed here because it needs to be accessed from multiple locations + function drawDonutHole(layer) + { + // draw donut hole + if(options.series.pie.innerRadius > 0) + { + // subtract the center + layer.save(); + innerRadius = options.series.pie.innerRadius > 1 ? options.series.pie.innerRadius : maxRadius * options.series.pie.innerRadius; + layer.globalCompositeOperation = 'destination-out'; // this does not work with excanvas, but it will fall back to using the stroke color + layer.beginPath(); + layer.fillStyle = options.series.pie.stroke.color; + layer.arc(0,0,innerRadius,0,Math.PI*2,false); + layer.fill(); + layer.closePath(); + layer.restore(); + + // add inner stroke + layer.save(); + layer.beginPath(); + layer.strokeStyle = options.series.pie.stroke.color; + layer.arc(0,0,innerRadius,0,Math.PI*2,false); + layer.stroke(); + layer.closePath(); + layer.restore(); + // TODO: add extra shadow inside hole (with a mask) if the pie is tilted. + } + } + + //-- Additional Interactive related functions -- + + function isPointInPoly(poly, pt) + { + for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i) + ((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || (poly[j][1] <= pt[1] && pt[1]< poly[i][1])) + && (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0]) + && (c = !c); + return c; + } + + function findNearbySlice(mouseX, mouseY) + { + var slices = plot.getData(), + options = plot.getOptions(), + radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + + for (var i = 0; i < slices.length; ++i) + { + var s = slices[i]; + + if(s.pie.show) + { + ctx.save(); + ctx.beginPath(); + ctx.moveTo(0,0); // Center of the pie + //ctx.scale(1, options.series.pie.tilt); // this actually seems to break everything when here. + ctx.arc(0,0,radius,s.startAngle,s.startAngle+s.angle,false); + ctx.closePath(); + x = mouseX-centerLeft; + y = mouseY-centerTop; + if(ctx.isPointInPath) + { + if (ctx.isPointInPath(mouseX-centerLeft, mouseY-centerTop)) + { + //alert('found slice!'); + ctx.restore(); + return {datapoint: [s.percent, s.data], dataIndex: 0, series: s, seriesIndex: i}; + } + } + else + { + // excanvas for IE doesn;t support isPointInPath, this is a workaround. + p1X = (radius * Math.cos(s.startAngle)); + p1Y = (radius * Math.sin(s.startAngle)); + p2X = (radius * Math.cos(s.startAngle+(s.angle/4))); + p2Y = (radius * Math.sin(s.startAngle+(s.angle/4))); + p3X = (radius * Math.cos(s.startAngle+(s.angle/2))); + p3Y = (radius * Math.sin(s.startAngle+(s.angle/2))); + p4X = (radius * Math.cos(s.startAngle+(s.angle/1.5))); + p4Y = (radius * Math.sin(s.startAngle+(s.angle/1.5))); + p5X = (radius * Math.cos(s.startAngle+s.angle)); + p5Y = (radius * Math.sin(s.startAngle+s.angle)); + arrPoly = [[0,0],[p1X,p1Y],[p2X,p2Y],[p3X,p3Y],[p4X,p4Y],[p5X,p5Y]]; + arrPoint = [x,y]; + // TODO: perhaps do some mathmatical trickery here with the Y-coordinate to compensate for pie tilt? + if(isPointInPoly(arrPoly, arrPoint)) + { + ctx.restore(); + return {datapoint: [s.percent, s.data], dataIndex: 0, series: s, seriesIndex: i}; + } + } + ctx.restore(); + } + } + + return null; + } + + function onMouseMove(e) + { + triggerClickHoverEvent('plothover', e); + } + + function onClick(e) + { + triggerClickHoverEvent('plotclick', e); + } + + // trigger click or hover event (they send the same parameters so we share their code) + function triggerClickHoverEvent(eventname, e) + { + var offset = plot.offset(), + canvasX = parseInt(e.pageX - offset.left), + canvasY = parseInt(e.pageY - offset.top), + item = findNearbySlice(canvasX, canvasY); + + if (options.grid.autoHighlight) + { + // clear auto-highlights + for (var i = 0; i < highlights.length; ++i) + { + var h = highlights[i]; + if (h.auto == eventname && !(item && h.series == item.series)) + unhighlight(h.series); + } + } + + // highlight the slice + if (item) + highlight(item.series, eventname); + + // trigger any hover bind events + var pos = { pageX: e.pageX, pageY: e.pageY }; + target.trigger(eventname, [ pos, item ]); + } + + function highlight(s, auto) + { + if (typeof s == "number") + s = series[s]; + + var i = indexOfHighlight(s); + if (i == -1) + { + highlights.push({ series: s, auto: auto }); + plot.triggerRedrawOverlay(); + } + else if (!auto) + highlights[i].auto = false; + } + + function unhighlight(s) + { + if (s == null) + { + highlights = []; + plot.triggerRedrawOverlay(); + } + + if (typeof s == "number") + s = series[s]; + + var i = indexOfHighlight(s); + if (i != -1) + { + highlights.splice(i, 1); + plot.triggerRedrawOverlay(); + } + } + + function indexOfHighlight(s) + { + for (var i = 0; i < highlights.length; ++i) + { + var h = highlights[i]; + if (h.series == s) + return i; + } + return -1; + } + + function drawOverlay(plot, octx) + { + //alert(options.series.pie.radius); + var options = plot.getOptions(); + //alert(options.series.pie.radius); + + var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + + octx.save(); + octx.translate(centerLeft, centerTop); + octx.scale(1, options.series.pie.tilt); + + for (i = 0; i < highlights.length; ++i) + drawHighlight(highlights[i].series); + + drawDonutHole(octx); + + octx.restore(); + + function drawHighlight(series) + { + if (series.angle < 0) return; + + //octx.fillStyle = parseColor(options.series.pie.highlight.color).scale(null, null, null, options.series.pie.highlight.opacity).toString(); + octx.fillStyle = "rgba(255, 255, 255, "+options.series.pie.highlight.opacity+")"; // this is temporary until we have access to parseColor + + octx.beginPath(); + if (Math.abs(series.angle - Math.PI*2) > 0.000000001) + octx.moveTo(0,0); // Center of the pie + octx.arc(0,0,radius,series.startAngle,series.startAngle+series.angle,false); + octx.closePath(); + octx.fill(); + } + + } + + } // end init (plugin body) + + // define pie specific options and their default values + var options = { + series: { + pie: { + show: false, + radius: 'auto', // actual radius of the visible pie (based on full calculated radius if <=1, or hard pixel value) + innerRadius:0, /* for donut */ + startAngle: 3/2, + tilt: 1, + offset: { + top: 0, + left: 'auto' + }, + stroke: { + color: '#FFF', + width: 1 + }, + label: { + show: 'auto', + formatter: function(label, slice){ + return '
    '+label+'
    '+Math.round(slice.percent)+'%
    '; + }, // formatter function + radius: 1, // radius at which to place the labels (based on full calculated radius if <=1, or hard pixel value) + background: { + color: null, + opacity: 0 + }, + threshold: 0 // percentage at which to hide the label (i.e. the slice is too narrow) + }, + combine: { + threshold: -1, // percentage at which to combine little slices into one larger slice + color: null, // color to give the new slice (auto-generated if null) + label: 'Other' // label to give the new slice + }, + highlight: { + //color: '#FFF', // will add this functionality once parseColor is available + opacity: 0.5 + } + } + } + }; + + $.plot.plugins.push({ + init: init, + options: options, + name: "pie", + version: "1.0" + }); +})(jQuery); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.resize.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.resize.js" new file mode 100644 index 0000000..69dfb24 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.resize.js" @@ -0,0 +1,60 @@ +/* +Flot plugin for automatically redrawing plots when the placeholder +size changes, e.g. on window resizes. + +It works by listening for changes on the placeholder div (through the +jQuery resize event plugin) - if the size changes, it will redraw the +plot. + +There are no options. If you need to disable the plugin for some +plots, you can just fix the size of their placeholders. +*/ + + +/* Inline dependency: + * jQuery resize event - v1.1 - 3/14/2010 + * http://benalman.com/projects/jquery-resize-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,h,c){var a=$([]),e=$.resize=$.extend($.resize,{}),i,k="setTimeout",j="resize",d=j+"-special-event",b="delay",f="throttleWindow";e[b]=250;e[f]=true;$.event.special[j]={setup:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.add(l);$.data(this,d,{w:l.width(),h:l.height()});if(a.length===1){g()}},teardown:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.not(l);l.removeData(d);if(!a.length){clearTimeout(i)}},add:function(l){if(!e[f]&&this[k]){return false}var n;function m(s,o,p){var q=$(this),r=$.data(this,d);r.w=o!==c?o:q.width();r.h=p!==c?p:q.height();n.apply(this,arguments)}if($.isFunction(l)){n=l;return m}else{n=l.handler;l.handler=m}}};function g(){i=h[k](function(){a.each(function(){var n=$(this),m=n.width(),l=n.height(),o=$.data(this,d);if(m!==o.w||l!==o.h){n.trigger(j,[o.w=m,o.h=l])}});g()},e[b])}})(jQuery,this); + + +(function ($) { + var options = { }; // no options + + function init(plot) { + function onResize() { + var placeholder = plot.getPlaceholder(); + + // somebody might have hidden us and we can't plot + // when we don't have the dimensions + if (placeholder.width() == 0 || placeholder.height() == 0) + return; + + plot.resize(); + plot.setupGrid(); + plot.draw(); + } + + function bindEvents(plot, eventHolder) { + plot.getPlaceholder().resize(onResize); + } + + function shutdown(plot, eventHolder) { + plot.getPlaceholder().unbind("resize", onResize); + } + + plot.hooks.bindEvents.push(bindEvents); + plot.hooks.shutdown.push(shutdown); + } + + $.plot.plugins.push({ + init: init, + options: options, + name: 'resize', + version: '1.0' + }); +})(jQuery); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.selection.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.selection.js" new file mode 100644 index 0000000..7f7b326 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.selection.js" @@ -0,0 +1,344 @@ +/* +Flot plugin for selecting regions. + +The plugin defines the following options: + + selection: { + mode: null or "x" or "y" or "xy", + color: color + } + +Selection support is enabled by setting the mode to one of "x", "y" or +"xy". In "x" mode, the user will only be able to specify the x range, +similarly for "y" mode. For "xy", the selection becomes a rectangle +where both ranges can be specified. "color" is color of the selection +(if you need to change the color later on, you can get to it with +plot.getOptions().selection.color). + +When selection support is enabled, a "plotselected" event will be +emitted on the DOM element you passed into the plot function. The +event handler gets a parameter with the ranges selected on the axes, +like this: + + placeholder.bind("plotselected", function(event, ranges) { + alert("You selected " + ranges.xaxis.from + " to " + ranges.xaxis.to) + // similar for yaxis - with multiple axes, the extra ones are in + // x2axis, x3axis, ... + }); + +The "plotselected" event is only fired when the user has finished +making the selection. A "plotselecting" event is fired during the +process with the same parameters as the "plotselected" event, in case +you want to know what's happening while it's happening, + +A "plotunselected" event with no arguments is emitted when the user +clicks the mouse to remove the selection. + +The plugin allso adds the following methods to the plot object: + +- setSelection(ranges, preventEvent) + + Set the selection rectangle. The passed in ranges is on the same + form as returned in the "plotselected" event. If the selection mode + is "x", you should put in either an xaxis range, if the mode is "y" + you need to put in an yaxis range and both xaxis and yaxis if the + selection mode is "xy", like this: + + setSelection({ xaxis: { from: 0, to: 10 }, yaxis: { from: 40, to: 60 } }); + + setSelection will trigger the "plotselected" event when called. If + you don't want that to happen, e.g. if you're inside a + "plotselected" handler, pass true as the second parameter. If you + are using multiple axes, you can specify the ranges on any of those, + e.g. as x2axis/x3axis/... instead of xaxis, the plugin picks the + first one it sees. + +- clearSelection(preventEvent) + + Clear the selection rectangle. Pass in true to avoid getting a + "plotunselected" event. + +- getSelection() + + Returns the current selection in the same format as the + "plotselected" event. If there's currently no selection, the + function returns null. + +*/ + +(function ($) { + function init(plot) { + var selection = { + first: { x: -1, y: -1}, second: { x: -1, y: -1}, + show: false, + active: false + }; + + // FIXME: The drag handling implemented here should be + // abstracted out, there's some similar code from a library in + // the navigation plugin, this should be massaged a bit to fit + // the Flot cases here better and reused. Doing this would + // make this plugin much slimmer. + var savedhandlers = {}; + + var mouseUpHandler = null; + + function onMouseMove(e) { + if (selection.active) { + updateSelection(e); + + plot.getPlaceholder().trigger("plotselecting", [ getSelection() ]); + } + } + + function onMouseDown(e) { + if (e.which != 1) // only accept left-click + return; + + // cancel out any text selections + document.body.focus(); + + // prevent text selection and drag in old-school browsers + if (document.onselectstart !== undefined && savedhandlers.onselectstart == null) { + savedhandlers.onselectstart = document.onselectstart; + document.onselectstart = function () { return false; }; + } + if (document.ondrag !== undefined && savedhandlers.ondrag == null) { + savedhandlers.ondrag = document.ondrag; + document.ondrag = function () { return false; }; + } + + setSelectionPos(selection.first, e); + + selection.active = true; + + // this is a bit silly, but we have to use a closure to be + // able to whack the same handler again + mouseUpHandler = function (e) { onMouseUp(e); }; + + $(document).one("mouseup", mouseUpHandler); + } + + function onMouseUp(e) { + mouseUpHandler = null; + + // revert drag stuff for old-school browsers + if (document.onselectstart !== undefined) + document.onselectstart = savedhandlers.onselectstart; + if (document.ondrag !== undefined) + document.ondrag = savedhandlers.ondrag; + + // no more dragging + selection.active = false; + updateSelection(e); + + if (selectionIsSane()) + triggerSelectedEvent(); + else { + // this counts as a clear + plot.getPlaceholder().trigger("plotunselected", [ ]); + plot.getPlaceholder().trigger("plotselecting", [ null ]); + } + + return false; + } + + function getSelection() { + if (!selectionIsSane()) + return null; + + var r = {}, c1 = selection.first, c2 = selection.second; + $.each(plot.getAxes(), function (name, axis) { + if (axis.used) { + var p1 = axis.c2p(c1[axis.direction]), p2 = axis.c2p(c2[axis.direction]); + r[name] = { from: Math.min(p1, p2), to: Math.max(p1, p2) }; + } + }); + return r; + } + + function triggerSelectedEvent() { + var r = getSelection(); + + plot.getPlaceholder().trigger("plotselected", [ r ]); + + // backwards-compat stuff, to be removed in future + if (r.xaxis && r.yaxis) + plot.getPlaceholder().trigger("selected", [ { x1: r.xaxis.from, y1: r.yaxis.from, x2: r.xaxis.to, y2: r.yaxis.to } ]); + } + + function clamp(min, value, max) { + return value < min ? min: (value > max ? max: value); + } + + function setSelectionPos(pos, e) { + var o = plot.getOptions(); + var offset = plot.getPlaceholder().offset(); + var plotOffset = plot.getPlotOffset(); + pos.x = clamp(0, e.pageX - offset.left - plotOffset.left, plot.width()); + pos.y = clamp(0, e.pageY - offset.top - plotOffset.top, plot.height()); + + if (o.selection.mode == "y") + pos.x = pos == selection.first ? 0 : plot.width(); + + if (o.selection.mode == "x") + pos.y = pos == selection.first ? 0 : plot.height(); + } + + function updateSelection(pos) { + if (pos.pageX == null) + return; + + setSelectionPos(selection.second, pos); + if (selectionIsSane()) { + selection.show = true; + plot.triggerRedrawOverlay(); + } + else + clearSelection(true); + } + + function clearSelection(preventEvent) { + if (selection.show) { + selection.show = false; + plot.triggerRedrawOverlay(); + if (!preventEvent) + plot.getPlaceholder().trigger("plotunselected", [ ]); + } + } + + // function taken from markings support in Flot + function extractRange(ranges, coord) { + var axis, from, to, key, axes = plot.getAxes(); + + for (var k in axes) { + axis = axes[k]; + if (axis.direction == coord) { + key = coord + axis.n + "axis"; + if (!ranges[key] && axis.n == 1) + key = coord + "axis"; // support x1axis as xaxis + if (ranges[key]) { + from = ranges[key].from; + to = ranges[key].to; + break; + } + } + } + + // backwards-compat stuff - to be removed in future + if (!ranges[key]) { + axis = coord == "x" ? plot.getXAxes()[0] : plot.getYAxes()[0]; + from = ranges[coord + "1"]; + to = ranges[coord + "2"]; + } + + // auto-reverse as an added bonus + if (from != null && to != null && from > to) { + var tmp = from; + from = to; + to = tmp; + } + + return { from: from, to: to, axis: axis }; + } + + function setSelection(ranges, preventEvent) { + var axis, range, o = plot.getOptions(); + + if (o.selection.mode == "y") { + selection.first.x = 0; + selection.second.x = plot.width(); + } + else { + range = extractRange(ranges, "x"); + + selection.first.x = range.axis.p2c(range.from); + selection.second.x = range.axis.p2c(range.to); + } + + if (o.selection.mode == "x") { + selection.first.y = 0; + selection.second.y = plot.height(); + } + else { + range = extractRange(ranges, "y"); + + selection.first.y = range.axis.p2c(range.from); + selection.second.y = range.axis.p2c(range.to); + } + + selection.show = true; + plot.triggerRedrawOverlay(); + if (!preventEvent && selectionIsSane()) + triggerSelectedEvent(); + } + + function selectionIsSane() { + var minSize = 5; + return Math.abs(selection.second.x - selection.first.x) >= minSize && + Math.abs(selection.second.y - selection.first.y) >= minSize; + } + + plot.clearSelection = clearSelection; + plot.setSelection = setSelection; + plot.getSelection = getSelection; + + plot.hooks.bindEvents.push(function(plot, eventHolder) { + var o = plot.getOptions(); + if (o.selection.mode != null) { + eventHolder.mousemove(onMouseMove); + eventHolder.mousedown(onMouseDown); + } + }); + + + plot.hooks.drawOverlay.push(function (plot, ctx) { + // draw selection + if (selection.show && selectionIsSane()) { + var plotOffset = plot.getPlotOffset(); + var o = plot.getOptions(); + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + var c = $.color.parse(o.selection.color); + + ctx.strokeStyle = c.scale('a', 0.8).toString(); + ctx.lineWidth = 1; + ctx.lineJoin = "round"; + ctx.fillStyle = c.scale('a', 0.4).toString(); + + var x = Math.min(selection.first.x, selection.second.x), + y = Math.min(selection.first.y, selection.second.y), + w = Math.abs(selection.second.x - selection.first.x), + h = Math.abs(selection.second.y - selection.first.y); + + ctx.fillRect(x, y, w, h); + ctx.strokeRect(x, y, w, h); + + ctx.restore(); + } + }); + + plot.hooks.shutdown.push(function (plot, eventHolder) { + eventHolder.unbind("mousemove", onMouseMove); + eventHolder.unbind("mousedown", onMouseDown); + + if (mouseUpHandler) + $(document).unbind("mouseup", mouseUpHandler); + }); + + } + + $.plot.plugins.push({ + init: init, + options: { + selection: { + mode: null, // one of null, "x", "y" or "xy" + color: "#e8cfac" + } + }, + name: 'selection', + version: '1.1' + }); +})(jQuery); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.stack.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.stack.js" new file mode 100644 index 0000000..a31d5dc --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.stack.js" @@ -0,0 +1,184 @@ +/* +Flot plugin for stacking data sets, i.e. putting them on top of each +other, for accumulative graphs. + +The plugin assumes the data is sorted on x (or y if stacking +horizontally). For line charts, it is assumed that if a line has an +undefined gap (from a null point), then the line above it should have +the same gap - insert zeros instead of "null" if you want another +behaviour. This also holds for the start and end of the chart. Note +that stacking a mix of positive and negative values in most instances +doesn't make sense (so it looks weird). + +Two or more series are stacked when their "stack" attribute is set to +the same key (which can be any number or string or just "true"). To +specify the default stack, you can set + + series: { + stack: null or true or key (number/string) + } + +or specify it for a specific series + + $.plot($("#placeholder"), [{ data: [ ... ], stack: true }]) + +The stacking order is determined by the order of the data series in +the array (later series end up on top of the previous). + +Internally, the plugin modifies the datapoints in each series, adding +an offset to the y value. For line series, extra data points are +inserted through interpolation. If there's a second y value, it's also +adjusted (e.g for bar charts or filled areas). +*/ + +(function ($) { + var options = { + series: { stack: null } // or number/string + }; + + function init(plot) { + function findMatchingSeries(s, allseries) { + var res = null + for (var i = 0; i < allseries.length; ++i) { + if (s == allseries[i]) + break; + + if (allseries[i].stack == s.stack) + res = allseries[i]; + } + + return res; + } + + function stackData(plot, s, datapoints) { + if (s.stack == null) + return; + + var other = findMatchingSeries(s, plot.getData()); + if (!other) + return; + + var ps = datapoints.pointsize, + points = datapoints.points, + otherps = other.datapoints.pointsize, + otherpoints = other.datapoints.points, + newpoints = [], + px, py, intery, qx, qy, bottom, + withlines = s.lines.show, + horizontal = s.bars.horizontal, + withbottom = ps > 2 && (horizontal ? datapoints.format[2].x : datapoints.format[2].y), + withsteps = withlines && s.lines.steps, + fromgap = true, + keyOffset = horizontal ? 1 : 0, + accumulateOffset = horizontal ? 0 : 1, + i = 0, j = 0, l; + + while (true) { + if (i >= points.length) + break; + + l = newpoints.length; + + if (points[i] == null) { + // copy gaps + for (m = 0; m < ps; ++m) + newpoints.push(points[i + m]); + i += ps; + } + else if (j >= otherpoints.length) { + // for lines, we can't use the rest of the points + if (!withlines) { + for (m = 0; m < ps; ++m) + newpoints.push(points[i + m]); + } + i += ps; + } + else if (otherpoints[j] == null) { + // oops, got a gap + for (m = 0; m < ps; ++m) + newpoints.push(null); + fromgap = true; + j += otherps; + } + else { + // cases where we actually got two points + px = points[i + keyOffset]; + py = points[i + accumulateOffset]; + qx = otherpoints[j + keyOffset]; + qy = otherpoints[j + accumulateOffset]; + bottom = 0; + + if (px == qx) { + for (m = 0; m < ps; ++m) + newpoints.push(points[i + m]); + + newpoints[l + accumulateOffset] += qy; + bottom = qy; + + i += ps; + j += otherps; + } + else if (px > qx) { + // we got past point below, might need to + // insert interpolated extra point + if (withlines && i > 0 && points[i - ps] != null) { + intery = py + (points[i - ps + accumulateOffset] - py) * (qx - px) / (points[i - ps + keyOffset] - px); + newpoints.push(qx); + newpoints.push(intery + qy); + for (m = 2; m < ps; ++m) + newpoints.push(points[i + m]); + bottom = qy; + } + + j += otherps; + } + else { // px < qx + if (fromgap && withlines) { + // if we come from a gap, we just skip this point + i += ps; + continue; + } + + for (m = 0; m < ps; ++m) + newpoints.push(points[i + m]); + + // we might be able to interpolate a point below, + // this can give us a better y + if (withlines && j > 0 && otherpoints[j - otherps] != null) + bottom = qy + (otherpoints[j - otherps + accumulateOffset] - qy) * (px - qx) / (otherpoints[j - otherps + keyOffset] - qx); + + newpoints[l + accumulateOffset] += bottom; + + i += ps; + } + + fromgap = false; + + if (l != newpoints.length && withbottom) + newpoints[l + 2] += bottom; + } + + // maintain the line steps invariant + if (withsteps && l != newpoints.length && l > 0 + && newpoints[l] != null + && newpoints[l] != newpoints[l - ps] + && newpoints[l + 1] != newpoints[l - ps + 1]) { + for (m = 0; m < ps; ++m) + newpoints[l + ps + m] = newpoints[l + m]; + newpoints[l + 1] = newpoints[l - ps + 1]; + } + } + + datapoints.points = newpoints; + } + + plot.hooks.processDatapoints.push(stackData); + } + + $.plot.plugins.push({ + init: init, + options: options, + name: 'stack', + version: '1.2' + }); +})(jQuery); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.symbol.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.symbol.js" new file mode 100644 index 0000000..a32fe31 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.symbol.js" @@ -0,0 +1,70 @@ +/* +Flot plugin that adds some extra symbols for plotting points. + +The symbols are accessed as strings through the standard symbol +choice: + + series: { + points: { + symbol: "square" // or "diamond", "triangle", "cross" + } + } + +*/ + +(function ($) { + function processRawData(plot, series, datapoints) { + // we normalize the area of each symbol so it is approximately the + // same as a circle of the given radius + + var handlers = { + square: function (ctx, x, y, radius, shadow) { + // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2 + var size = radius * Math.sqrt(Math.PI) / 2; + ctx.rect(x - size, y - size, size + size, size + size); + }, + diamond: function (ctx, x, y, radius, shadow) { + // pi * r^2 = 2s^2 => s = r * sqrt(pi/2) + var size = radius * Math.sqrt(Math.PI / 2); + ctx.moveTo(x - size, y); + ctx.lineTo(x, y - size); + ctx.lineTo(x + size, y); + ctx.lineTo(x, y + size); + ctx.lineTo(x - size, y); + }, + triangle: function (ctx, x, y, radius, shadow) { + // pi * r^2 = 1/2 * s^2 * sin (pi / 3) => s = r * sqrt(2 * pi / sin(pi / 3)) + var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3)); + var height = size * Math.sin(Math.PI / 3); + ctx.moveTo(x - size/2, y + height/2); + ctx.lineTo(x + size/2, y + height/2); + if (!shadow) { + ctx.lineTo(x, y - height/2); + ctx.lineTo(x - size/2, y + height/2); + } + }, + cross: function (ctx, x, y, radius, shadow) { + // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2 + var size = radius * Math.sqrt(Math.PI) / 2; + ctx.moveTo(x - size, y - size); + ctx.lineTo(x + size, y + size); + ctx.moveTo(x - size, y + size); + ctx.lineTo(x + size, y - size); + } + } + + var s = series.points.symbol; + if (handlers[s]) + series.points.symbol = handlers[s]; + } + + function init(plot) { + plot.hooks.processDatapoints.push(processRawData); + } + + $.plot.plugins.push({ + init: init, + name: 'symbols', + version: '1.0' + }); +})(jQuery); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.threshold.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.threshold.js" new file mode 100644 index 0000000..0b2e7ac --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.flot.threshold.js" @@ -0,0 +1,103 @@ +/* +Flot plugin for thresholding data. Controlled through the option +"threshold" in either the global series options + + series: { + threshold: { + below: number + color: colorspec + } + } + +or in a specific series + + $.plot($("#placeholder"), [{ data: [ ... ], threshold: { ... }}]) + +The data points below "below" are drawn with the specified color. This +makes it easy to mark points below 0, e.g. for budget data. + +Internally, the plugin works by splitting the data into two series, +above and below the threshold. The extra series below the threshold +will have its label cleared and the special "originSeries" attribute +set to the original series. You may need to check for this in hover +events. +*/ + +(function ($) { + var options = { + series: { threshold: null } // or { below: number, color: color spec} + }; + + function init(plot) { + function thresholdData(plot, s, datapoints) { + if (!s.threshold) + return; + + var ps = datapoints.pointsize, i, x, y, p, prevp, + thresholded = $.extend({}, s); // note: shallow copy + + thresholded.datapoints = { points: [], pointsize: ps }; + thresholded.label = null; + thresholded.color = s.threshold.color; + thresholded.threshold = null; + thresholded.originSeries = s; + thresholded.data = []; + + var below = s.threshold.below, + origpoints = datapoints.points, + addCrossingPoints = s.lines.show; + + threspoints = []; + newpoints = []; + + for (i = 0; i < origpoints.length; i += ps) { + x = origpoints[i] + y = origpoints[i + 1]; + + prevp = p; + if (y < below) + p = threspoints; + else + p = newpoints; + + if (addCrossingPoints && prevp != p && x != null + && i > 0 && origpoints[i - ps] != null) { + var interx = (x - origpoints[i - ps]) / (y - origpoints[i - ps + 1]) * (below - y) + x; + prevp.push(interx); + prevp.push(below); + for (m = 2; m < ps; ++m) + prevp.push(origpoints[i + m]); + + p.push(null); // start new segment + p.push(null); + for (m = 2; m < ps; ++m) + p.push(origpoints[i + m]); + p.push(interx); + p.push(below); + for (m = 2; m < ps; ++m) + p.push(origpoints[i + m]); + } + + p.push(x); + p.push(y); + } + + datapoints.points = newpoints; + thresholded.datapoints.points = threspoints; + + if (thresholded.datapoints.points.length > 0) + plot.getData().push(thresholded); + + // FIXME: there are probably some edge cases left in bars + } + + plot.hooks.processDatapoints.push(thresholdData); + } + + $.plot.plugins.push({ + init: init, + options: options, + name: 'threshold', + version: '1.0' + }); +})(jQuery); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.js" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.js" new file mode 100644 index 0000000..78fcfa4 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/flot/jquery.js" @@ -0,0 +1,8316 @@ +/*! + * jQuery JavaScript Library v1.5.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Wed Feb 23 13:55:29 2011 -0500 + */ +(function( window, undefined ) { + +// Use the correct document accordingly with window argument (sandbox) +var document = window.document; +var jQuery = (function() { + +// Define a local copy of jQuery +var jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // A central reference to the root jQuery(document) + rootjQuery, + + // A simple way to check for HTML strings or ID strings + // (both of which we optimize for) + quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/, + + // Check if a string has a non-whitespace character in it + rnotwhite = /\S/, + + // Used for trimming whitespace + trimLeft = /^\s+/, + trimRight = /\s+$/, + + // Check for digits + rdigit = /\d/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, + rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + + // Useragent RegExp + rwebkit = /(webkit)[ \/]([\w.]+)/, + ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, + rmsie = /(msie) ([\w.]+)/, + rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, + + // Keep a UserAgent string for use with jQuery.browser + userAgent = navigator.userAgent, + + // For matching the engine and version of the browser + browserMatch, + + // Has the ready events already been bound? + readyBound = false, + + // The deferred used on DOM ready + readyList, + + // Promise methods + promiseMethods = "then done fail isResolved isRejected promise".split( " " ), + + // The ready event handler + DOMContentLoaded, + + // Save a reference to some core methods + toString = Object.prototype.toString, + hasOwn = Object.prototype.hasOwnProperty, + push = Array.prototype.push, + slice = Array.prototype.slice, + trim = String.prototype.trim, + indexOf = Array.prototype.indexOf, + + // [[Class]] -> type pairs + class2type = {}; + +jQuery.fn = jQuery.prototype = { + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem, ret, doc; + + // Handle $(""), $(null), or $(undefined) + if ( !selector ) { + return this; + } + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + } + + // The body element only exists once, optimize finding it + if ( selector === "body" && !context && document.body ) { + this.context = document; + this[0] = document.body; + this.selector = "body"; + this.length = 1; + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + // Are we dealing with HTML string or an ID? + match = quickExpr.exec( selector ); + + // Verify a match, and that no context was specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + doc = (context ? context.ownerDocument || context : document); + + // If a single string is passed in and it's a single tag + // just do a createElement and skip the rest + ret = rsingleTag.exec( selector ); + + if ( ret ) { + if ( jQuery.isPlainObject( context ) ) { + selector = [ document.createElement( ret[1] ) ]; + jQuery.fn.attr.call( selector, context, true ); + + } else { + selector = [ doc.createElement( ret[1] ) ]; + } + + } else { + ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); + selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes; + } + + return jQuery.merge( this, selector ); + + // HANDLE: $("#id") + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return (context || rootjQuery).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if (selector.selector !== undefined) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The current version of jQuery being used + jquery: "1.5.1", + + // The default length of a jQuery object is 0 + length: 0, + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + toArray: function() { + return slice.call( this, 0 ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems, name, selector ) { + // Build a new jQuery matched element set + var ret = this.constructor(); + + if ( jQuery.isArray( elems ) ) { + push.apply( ret, elems ); + + } else { + jQuery.merge( ret, elems ); + } + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) { + ret.selector = this.selector + (this.selector ? " " : "") + selector; + } else if ( name ) { + ret.selector = this.selector + "." + name + "(" + selector + ")"; + } + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Attach the listeners + jQuery.bindReady(); + + // Add the callback + readyList.done( fn ); + + return this; + }, + + eq: function( i ) { + return i === -1 ? + this.slice( i ) : + this.slice( i, +i + 1 ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ), + "slice", slice.call(arguments).join(",") ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + noConflict: function( deep ) { + window.$ = _$; + + if ( deep ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + // A third-party is pushing the ready event forwards + if ( wait === true ) { + jQuery.readyWait--; + } + + // Make sure that the DOM is not already loaded + if ( !jQuery.readyWait || (wait !== true && !jQuery.isReady) ) { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready, 1 ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger( "ready" ).unbind( "ready" ); + } + } + }, + + bindReady: function() { + if ( readyBound ) { + return; + } + + readyBound = true; + + // Catch cases where $(document).ready() is called after the + // browser event has already occurred. + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + return setTimeout( jQuery.ready, 1 ); + } + + // Mozilla, Opera and webkit nightlies currently support this event + if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", jQuery.ready, false ); + + // If IE event model is used + } else if ( document.attachEvent ) { + // ensure firing before onload, + // maybe late but safe also for iframes + document.attachEvent("onreadystatechange", DOMContentLoaded); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", jQuery.ready ); + + // If IE and not a frame + // continually check to see if the document is ready + var toplevel = false; + + try { + toplevel = window.frameElement == null; + } catch(e) {} + + if ( document.documentElement.doScroll && toplevel ) { + doScrollCheck(); + } + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + // A crude way of determining if an object is a window + isWindow: function( obj ) { + return obj && typeof obj === "object" && "setInterval" in obj; + }, + + isNaN: function( obj ) { + return obj == null || !rdigit.test( obj ) || isNaN( obj ); + }, + + type: function( obj ) { + return obj == null ? + String( obj ) : + class2type[ toString.call(obj) ] || "object"; + }, + + isPlainObject: function( obj ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + // Not own constructor property must be Object + if ( obj.constructor && + !hasOwn.call(obj, "constructor") && + !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + for ( var name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw msg; + }, + + parseJSON: function( data ) { + if ( typeof data !== "string" || !data ) { + return null; + } + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test(data.replace(rvalidescape, "@") + .replace(rvalidtokens, "]") + .replace(rvalidbraces, "")) ) { + + // Try to use the native JSON parser first + return window.JSON && window.JSON.parse ? + window.JSON.parse( data ) : + (new Function("return " + data))(); + + } else { + jQuery.error( "Invalid JSON: " + data ); + } + }, + + // Cross-browser xml parsing + // (xml & tmp used internally) + parseXML: function( data , xml , tmp ) { + + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + + tmp = xml.documentElement; + + if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) { + jQuery.error( "Invalid XML: " + data ); + } + + return xml; + }, + + noop: function() {}, + + // Evalulates a script in a global context + globalEval: function( data ) { + if ( data && rnotwhite.test(data) ) { + // Inspired by code by Andrea Giammarchi + // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html + var head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement, + script = document.createElement( "script" ); + + if ( jQuery.support.scriptEval() ) { + script.appendChild( document.createTextNode( data ) ); + } else { + script.text = data; + } + + // Use insertBefore instead of appendChild to circumvent an IE6 bug. + // This arises when a base node is used (#2709). + head.insertBefore( script, head.firstChild ); + head.removeChild( script ); + } + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); + }, + + // args is for internal usage only + each: function( object, callback, args ) { + var name, i = 0, + length = object.length, + isObj = length === undefined || jQuery.isFunction(object); + + if ( args ) { + if ( isObj ) { + for ( name in object ) { + if ( callback.apply( object[ name ], args ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.apply( object[ i++ ], args ) === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isObj ) { + for ( name in object ) { + if ( callback.call( object[ name ], name, object[ name ] ) === false ) { + break; + } + } + } else { + for ( var value = object[0]; + i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {} + } + } + + return object; + }, + + // Use native String.trim function wherever possible + trim: trim ? + function( text ) { + return text == null ? + "" : + trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); + }, + + // results is for internal usage only + makeArray: function( array, results ) { + var ret = results || []; + + if ( array != null ) { + // The window, strings (and functions) also have 'length' + // The extra typeof function check is to prevent crashes + // in Safari 2 (See: #3039) + // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 + var type = jQuery.type(array); + + if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { + push.call( ret, array ); + } else { + jQuery.merge( ret, array ); + } + } + + return ret; + }, + + inArray: function( elem, array ) { + if ( array.indexOf ) { + return array.indexOf( elem ); + } + + for ( var i = 0, length = array.length; i < length; i++ ) { + if ( array[ i ] === elem ) { + return i; + } + } + + return -1; + }, + + merge: function( first, second ) { + var i = first.length, + j = 0; + + if ( typeof second.length === "number" ) { + for ( var l = second.length; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var ret = [], retVal; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( var i = 0, length = elems.length; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var ret = [], value; + + // Go through the array, translating each of the items to their + // new value (or values). + for ( var i = 0, length = elems.length; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Flatten any nested arrays + return ret.concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + proxy: function( fn, proxy, thisObject ) { + if ( arguments.length === 2 ) { + if ( typeof proxy === "string" ) { + thisObject = fn; + fn = thisObject[ proxy ]; + proxy = undefined; + + } else if ( proxy && !jQuery.isFunction( proxy ) ) { + thisObject = proxy; + proxy = undefined; + } + } + + if ( !proxy && fn ) { + proxy = function() { + return fn.apply( thisObject || this, arguments ); + }; + } + + // Set the guid of unique handler to the same of original handler, so it can be removed + if ( fn ) { + proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; + } + + // So proxy can be declared as an argument + return proxy; + }, + + // Mutifunctional method to get and set values to a collection + // The value/s can be optionally by executed if its a function + access: function( elems, key, value, exec, fn, pass ) { + var length = elems.length; + + // Setting many attributes + if ( typeof key === "object" ) { + for ( var k in key ) { + jQuery.access( elems, k, key[k], exec, fn, value ); + } + return elems; + } + + // Setting one attribute + if ( value !== undefined ) { + // Optionally, function values get executed if exec is true + exec = !pass && exec && jQuery.isFunction(value); + + for ( var i = 0; i < length; i++ ) { + fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); + } + + return elems; + } + + // Getting an attribute + return length ? fn( elems[0], key ) : undefined; + }, + + now: function() { + return (new Date()).getTime(); + }, + + // Create a simple deferred (one callbacks list) + _Deferred: function() { + var // callbacks list + callbacks = [], + // stored [ context , args ] + fired, + // to avoid firing when already doing so + firing, + // flag to know if the deferred has been cancelled + cancelled, + // the deferred itself + deferred = { + + // done( f1, f2, ...) + done: function() { + if ( !cancelled ) { + var args = arguments, + i, + length, + elem, + type, + _fired; + if ( fired ) { + _fired = fired; + fired = 0; + } + for ( i = 0, length = args.length; i < length; i++ ) { + elem = args[ i ]; + type = jQuery.type( elem ); + if ( type === "array" ) { + deferred.done.apply( deferred, elem ); + } else if ( type === "function" ) { + callbacks.push( elem ); + } + } + if ( _fired ) { + deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] ); + } + } + return this; + }, + + // resolve with given context and args + resolveWith: function( context, args ) { + if ( !cancelled && !fired && !firing ) { + firing = 1; + try { + while( callbacks[ 0 ] ) { + callbacks.shift().apply( context, args ); + } + } + // We have to add a catch block for + // IE prior to 8 or else the finally + // block will never get executed + catch (e) { + throw e; + } + finally { + fired = [ context, args ]; + firing = 0; + } + } + return this; + }, + + // resolve with this as context and given arguments + resolve: function() { + deferred.resolveWith( jQuery.isFunction( this.promise ) ? this.promise() : this, arguments ); + return this; + }, + + // Has this deferred been resolved? + isResolved: function() { + return !!( firing || fired ); + }, + + // Cancel + cancel: function() { + cancelled = 1; + callbacks = []; + return this; + } + }; + + return deferred; + }, + + // Full fledged deferred (two callbacks list) + Deferred: function( func ) { + var deferred = jQuery._Deferred(), + failDeferred = jQuery._Deferred(), + promise; + // Add errorDeferred methods, then and promise + jQuery.extend( deferred, { + then: function( doneCallbacks, failCallbacks ) { + deferred.done( doneCallbacks ).fail( failCallbacks ); + return this; + }, + fail: failDeferred.done, + rejectWith: failDeferred.resolveWith, + reject: failDeferred.resolve, + isRejected: failDeferred.isResolved, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + if ( obj == null ) { + if ( promise ) { + return promise; + } + promise = obj = {}; + } + var i = promiseMethods.length; + while( i-- ) { + obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ]; + } + return obj; + } + } ); + // Make sure only one callback list will be used + deferred.done( failDeferred.cancel ).fail( deferred.cancel ); + // Unexpose cancel + delete deferred.cancel; + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + return deferred; + }, + + // Deferred helper + when: function( object ) { + var lastIndex = arguments.length, + deferred = lastIndex <= 1 && object && jQuery.isFunction( object.promise ) ? + object : + jQuery.Deferred(), + promise = deferred.promise(); + + if ( lastIndex > 1 ) { + var array = slice.call( arguments, 0 ), + count = lastIndex, + iCallback = function( index ) { + return function( value ) { + array[ index ] = arguments.length > 1 ? slice.call( arguments, 0 ) : value; + if ( !( --count ) ) { + deferred.resolveWith( promise, array ); + } + }; + }; + while( ( lastIndex-- ) ) { + object = array[ lastIndex ]; + if ( object && jQuery.isFunction( object.promise ) ) { + object.promise().then( iCallback(lastIndex), deferred.reject ); + } else { + --count; + } + } + if ( !count ) { + deferred.resolveWith( promise, array ); + } + } else if ( deferred !== object ) { + deferred.resolve( object ); + } + return promise; + }, + + // Use of jQuery.browser is frowned upon. + // More details: http://docs.jquery.com/Utilities/jQuery.browser + uaMatch: function( ua ) { + ua = ua.toLowerCase(); + + var match = rwebkit.exec( ua ) || + ropera.exec( ua ) || + rmsie.exec( ua ) || + ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || + []; + + return { browser: match[1] || "", version: match[2] || "0" }; + }, + + sub: function() { + function jQuerySubclass( selector, context ) { + return new jQuerySubclass.fn.init( selector, context ); + } + jQuery.extend( true, jQuerySubclass, this ); + jQuerySubclass.superclass = this; + jQuerySubclass.fn = jQuerySubclass.prototype = this(); + jQuerySubclass.fn.constructor = jQuerySubclass; + jQuerySubclass.subclass = this.subclass; + jQuerySubclass.fn.init = function init( selector, context ) { + if ( context && context instanceof jQuery && !(context instanceof jQuerySubclass) ) { + context = jQuerySubclass(context); + } + + return jQuery.fn.init.call( this, selector, context, rootjQuerySubclass ); + }; + jQuerySubclass.fn.init.prototype = jQuerySubclass.fn; + var rootjQuerySubclass = jQuerySubclass(document); + return jQuerySubclass; + }, + + browser: {} +}); + +// Create readyList deferred +readyList = jQuery._Deferred(); + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +browserMatch = jQuery.uaMatch( userAgent ); +if ( browserMatch.browser ) { + jQuery.browser[ browserMatch.browser ] = true; + jQuery.browser.version = browserMatch.version; +} + +// Deprecated, use jQuery.browser.webkit instead +if ( jQuery.browser.webkit ) { + jQuery.browser.safari = true; +} + +if ( indexOf ) { + jQuery.inArray = function( elem, array ) { + return indexOf.call( array, elem ); + }; +} + +// IE doesn't match non-breaking spaces with \s +if ( rnotwhite.test( "\xA0" ) ) { + trimLeft = /^[\s\xA0]+/; + trimRight = /[\s\xA0]+$/; +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); + +// Cleanup functions for the document ready method +if ( document.addEventListener ) { + DOMContentLoaded = function() { + document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + jQuery.ready(); + }; + +} else if ( document.attachEvent ) { + DOMContentLoaded = function() { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( document.readyState === "complete" ) { + document.detachEvent( "onreadystatechange", DOMContentLoaded ); + jQuery.ready(); + } + }; +} + +// The DOM ready check for Internet Explorer +function doScrollCheck() { + if ( jQuery.isReady ) { + return; + } + + try { + // If IE is used, use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + document.documentElement.doScroll("left"); + } catch(e) { + setTimeout( doScrollCheck, 1 ); + return; + } + + // and execute any waiting functions + jQuery.ready(); +} + +// Expose jQuery to the global object +return jQuery; + +})(); + + +(function() { + + jQuery.support = {}; + + var div = document.createElement("div"); + + div.style.display = "none"; + div.innerHTML = "
    a"; + + var all = div.getElementsByTagName("*"), + a = div.getElementsByTagName("a")[0], + select = document.createElement("select"), + opt = select.appendChild( document.createElement("option") ), + input = div.getElementsByTagName("input")[0]; + + // Can't get basic test support + if ( !all || !all.length || !a ) { + return; + } + + jQuery.support = { + // IE strips leading whitespace when .innerHTML is used + leadingWhitespace: div.firstChild.nodeType === 3, + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + tbody: !div.getElementsByTagName("tbody").length, + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + htmlSerialize: !!div.getElementsByTagName("link").length, + + // Get the style information from getAttribute + // (IE uses .cssText insted) + style: /red/.test( a.getAttribute("style") ), + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + hrefNormalized: a.getAttribute("href") === "/a", + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.55$/.test( a.style.opacity ), + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + cssFloat: !!a.style.cssFloat, + + // Make sure that if no value is specified for a checkbox + // that it defaults to "on". + // (WebKit defaults to "" instead) + checkOn: input.value === "on", + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: opt.selected, + + // Will be defined later + deleteExpando: true, + optDisabled: false, + checkClone: false, + noCloneEvent: true, + noCloneChecked: true, + boxModel: null, + inlineBlockNeedsLayout: false, + shrinkWrapBlocks: false, + reliableHiddenOffsets: true + }; + + input.checked = true; + jQuery.support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as diabled) + select.disabled = true; + jQuery.support.optDisabled = !opt.disabled; + + var _scriptEval = null; + jQuery.support.scriptEval = function() { + if ( _scriptEval === null ) { + var root = document.documentElement, + script = document.createElement("script"), + id = "script" + jQuery.now(); + + try { + script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); + } catch(e) {} + + root.insertBefore( script, root.firstChild ); + + // Make sure that the execution of code works by injecting a script + // tag with appendChild/createTextNode + // (IE doesn't support this, fails, and uses .text instead) + if ( window[ id ] ) { + _scriptEval = true; + delete window[ id ]; + } else { + _scriptEval = false; + } + + root.removeChild( script ); + // release memory in IE + root = script = id = null; + } + + return _scriptEval; + }; + + // Test to see if it's possible to delete an expando from an element + // Fails in Internet Explorer + try { + delete div.test; + + } catch(e) { + jQuery.support.deleteExpando = false; + } + + if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { + div.attachEvent("onclick", function click() { + // Cloning a node shouldn't copy over any + // bound event handlers (IE does this) + jQuery.support.noCloneEvent = false; + div.detachEvent("onclick", click); + }); + div.cloneNode(true).fireEvent("onclick"); + } + + div = document.createElement("div"); + div.innerHTML = ""; + + var fragment = document.createDocumentFragment(); + fragment.appendChild( div.firstChild ); + + // WebKit doesn't clone checked state correctly in fragments + jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked; + + // Figure out if the W3C box model works as expected + // document.body must exist before we can do this + jQuery(function() { + var div = document.createElement("div"), + body = document.getElementsByTagName("body")[0]; + + // Frameset documents with no body should not run this code + if ( !body ) { + return; + } + + div.style.width = div.style.paddingLeft = "1px"; + body.appendChild( div ); + jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; + + if ( "zoom" in div.style ) { + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + // (IE < 8 does this) + div.style.display = "inline"; + div.style.zoom = 1; + jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2; + + // Check if elements with layout shrink-wrap their children + // (IE 6 does this) + div.style.display = ""; + div.innerHTML = "
    "; + jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2; + } + + div.innerHTML = "
    t
    "; + var tds = div.getElementsByTagName("td"); + + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + // (only IE 8 fails this test) + jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight === 0; + + tds[0].style.display = ""; + tds[1].style.display = "none"; + + // Check if empty table cells still have offsetWidth/Height + // (IE < 8 fail this test) + jQuery.support.reliableHiddenOffsets = jQuery.support.reliableHiddenOffsets && tds[0].offsetHeight === 0; + div.innerHTML = ""; + + body.removeChild( div ).style.display = "none"; + div = tds = null; + }); + + // Technique from Juriy Zaytsev + // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ + var eventSupported = function( eventName ) { + var el = document.createElement("div"); + eventName = "on" + eventName; + + // We only care about the case where non-standard event systems + // are used, namely in IE. Short-circuiting here helps us to + // avoid an eval call (in setAttribute) which can cause CSP + // to go haywire. See: https://developer.mozilla.org/en/Security/CSP + if ( !el.attachEvent ) { + return true; + } + + var isSupported = (eventName in el); + if ( !isSupported ) { + el.setAttribute(eventName, "return;"); + isSupported = typeof el[eventName] === "function"; + } + el = null; + + return isSupported; + }; + + jQuery.support.submitBubbles = eventSupported("submit"); + jQuery.support.changeBubbles = eventSupported("change"); + + // release memory in IE + div = all = a = null; +})(); + + + +var rbrace = /^(?:\{.*\}|\[.*\])$/; + +jQuery.extend({ + cache: {}, + + // Please use with caution + uuid: 0, + + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", + "applet": true + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache, + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ jQuery.expando ] = id = ++jQuery.uuid; + } else { + id = jQuery.expando; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name); + } else { + cache[ id ] = jQuery.extend(cache[ id ], name); + } + } + + thisCache = cache[ id ]; + + // Internal jQuery data is stored in a separate object inside the object's data + // cache in order to avoid key collisions between internal data and user-defined + // data + if ( pvt ) { + if ( !thisCache[ internalKey ] ) { + thisCache[ internalKey ] = {}; + } + + thisCache = thisCache[ internalKey ]; + } + + if ( data !== undefined ) { + thisCache[ name ] = data; + } + + // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should + // not attempt to inspect the internal events object using jQuery.data, as this + // internal data object is undocumented and subject to change. + if ( name === "events" && !thisCache[name] ) { + return thisCache[ internalKey ] && thisCache[ internalKey ].events; + } + + return getByName ? thisCache[ name ] : thisCache; + }, + + removeData: function( elem, name, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var internalKey = jQuery.expando, isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + + // See jQuery.data for more information + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ]; + + if ( thisCache ) { + delete thisCache[ name ]; + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !isEmptyDataObject(thisCache) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( pvt ) { + delete cache[ id ][ internalKey ]; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject(cache[ id ]) ) { + return; + } + } + + var internalCache = cache[ id ][ internalKey ]; + + // Browsers that fail expando deletion also refuse to delete expandos on + // the window, but it will allow it on all other JS objects; other browsers + // don't care + if ( jQuery.support.deleteExpando || cache != window ) { + delete cache[ id ]; + } else { + cache[ id ] = null; + } + + // We destroyed the entire user cache at once because it's faster than + // iterating through each key, but we need to continue to persist internal + // data if it existed + if ( internalCache ) { + cache[ id ] = {}; + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + + cache[ id ][ internalKey ] = internalCache; + + // Otherwise, we need to eliminate the expando on the node to avoid + // false lookups in the cache for entries that no longer exist + } else if ( isNode ) { + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( jQuery.support.deleteExpando ) { + delete elem[ jQuery.expando ]; + } else if ( elem.removeAttribute ) { + elem.removeAttribute( jQuery.expando ); + } else { + elem[ jQuery.expando ] = null; + } + } + }, + + // For internal use only. + _data: function( elem, name, data ) { + return jQuery.data( elem, name, data, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + if ( elem.nodeName ) { + var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; + + if ( match ) { + return !(match === true || elem.getAttribute("classid") !== match); + } + } + + return true; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var data = null; + + if ( typeof key === "undefined" ) { + if ( this.length ) { + data = jQuery.data( this[0] ); + + if ( this[0].nodeType === 1 ) { + var attr = this[0].attributes, name; + for ( var i = 0, l = attr.length; i < l; i++ ) { + name = attr[i].name; + + if ( name.indexOf( "data-" ) === 0 ) { + name = name.substr( 5 ); + dataAttr( this[0], name, data[ name ] ); + } + } + } + } + + return data; + + } else if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + var parts = key.split("."); + parts[1] = parts[1] ? "." + parts[1] : ""; + + if ( value === undefined ) { + data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); + + // Try to fetch any internally stored data first + if ( data === undefined && this.length ) { + data = jQuery.data( this[0], key ); + data = dataAttr( this[0], key, data ); + } + + return data === undefined && parts[1] ? + this.data( parts[0] ) : + data; + + } else { + return this.each(function() { + var $this = jQuery( this ), + args = [ parts[0], value ]; + + $this.triggerHandler( "setData" + parts[1] + "!", args ); + jQuery.data( this, key, value ); + $this.triggerHandler( "changeData" + parts[1] + "!", args ); + }); + } + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + data = elem.getAttribute( "data-" + key ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + !jQuery.isNaN( data ) ? parseFloat( data ) : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON +// property to be considered empty objects; this property always exists in +// order to make sure JSON.stringify does not expose internal metadata +function isEmptyDataObject( obj ) { + for ( var name in obj ) { + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} + + + + +jQuery.extend({ + queue: function( elem, type, data ) { + if ( !elem ) { + return; + } + + type = (type || "fx") + "queue"; + var q = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( !data ) { + return q || []; + } + + if ( !q || jQuery.isArray(data) ) { + q = jQuery._data( elem, type, jQuery.makeArray(data) ); + + } else { + q.push( data ); + } + + return q; + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + fn = queue.shift(); + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + } + + if ( fn ) { + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift("inprogress"); + } + + fn.call(elem, function() { + jQuery.dequeue(elem, type); + }); + } + + if ( !queue.length ) { + jQuery.removeData( elem, type + "queue", true ); + } + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + } + + if ( data === undefined ) { + return jQuery.queue( this[0], type ); + } + return this.each(function( i ) { + var queue = jQuery.queue( this, type, data ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; + type = type || "fx"; + + return this.queue( type, function() { + var elem = this; + setTimeout(function() { + jQuery.dequeue( elem, type ); + }, time ); + }); + }, + + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + } +}); + + + + +var rclass = /[\n\t\r]/g, + rspaces = /\s+/, + rreturn = /\r/g, + rspecialurl = /^(?:href|src|style)$/, + rtype = /^(?:button|input)$/i, + rfocusable = /^(?:button|input|object|select|textarea)$/i, + rclickable = /^a(?:rea)?$/i, + rradiocheck = /^(?:radio|checkbox)$/i; + +jQuery.props = { + "for": "htmlFor", + "class": "className", + readonly: "readOnly", + maxlength: "maxLength", + cellspacing: "cellSpacing", + rowspan: "rowSpan", + colspan: "colSpan", + tabindex: "tabIndex", + usemap: "useMap", + frameborder: "frameBorder" +}; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, name, value, true, jQuery.attr ); + }, + + removeAttr: function( name, fn ) { + return this.each(function(){ + jQuery.attr( this, name, "" ); + if ( this.nodeType === 1 ) { + this.removeAttribute( name ); + } + }); + }, + + addClass: function( value ) { + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + self.addClass( value.call(this, i, self.attr("class")) ); + }); + } + + if ( value && typeof value === "string" ) { + var classNames = (value || "").split( rspaces ); + + for ( var i = 0, l = this.length; i < l; i++ ) { + var elem = this[i]; + + if ( elem.nodeType === 1 ) { + if ( !elem.className ) { + elem.className = value; + + } else { + var className = " " + elem.className + " ", + setClass = elem.className; + + for ( var c = 0, cl = classNames.length; c < cl; c++ ) { + if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) { + setClass += " " + classNames[c]; + } + } + elem.className = jQuery.trim( setClass ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + self.removeClass( value.call(this, i, self.attr("class")) ); + }); + } + + if ( (value && typeof value === "string") || value === undefined ) { + var classNames = (value || "").split( rspaces ); + + for ( var i = 0, l = this.length; i < l; i++ ) { + var elem = this[i]; + + if ( elem.nodeType === 1 && elem.className ) { + if ( value ) { + var className = (" " + elem.className + " ").replace(rclass, " "); + for ( var c = 0, cl = classNames.length; c < cl; c++ ) { + className = className.replace(" " + classNames[c] + " ", " "); + } + elem.className = jQuery.trim( className ); + + } else { + elem.className = ""; + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function(i) { + var self = jQuery(this); + self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.split( rspaces ); + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space seperated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + } else if ( type === "undefined" || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // toggle whole className + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " "; + for ( var i = 0, l = this.length; i < l; i++ ) { + if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + if ( !arguments.length ) { + var elem = this[0]; + + if ( elem ) { + if ( jQuery.nodeName( elem, "option" ) ) { + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; + } + + // We need to handle select boxes special + if ( jQuery.nodeName( elem, "select" ) ) { + var index = elem.selectedIndex, + values = [], + options = elem.options, + one = elem.type === "select-one"; + + // Nothing was selected + if ( index < 0 ) { + return null; + } + + // Loop through all the selected options + for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { + var option = options[ i ]; + + // Don't return options that are disabled or in a disabled optgroup + if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && + (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { + + // Get the specific value for the option + value = jQuery(option).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + // Fixes Bug #2551 -- select.val() broken in IE after form.reset() + if ( one && !values.length && options.length ) { + return jQuery( options[ index ] ).val(); + } + + return values; + } + + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) { + return elem.getAttribute("value") === null ? "on" : elem.value; + } + + // Everything else, we just grab the value + return (elem.value || "").replace(rreturn, ""); + + } + + return undefined; + } + + var isFunction = jQuery.isFunction(value); + + return this.each(function(i) { + var self = jQuery(this), val = value; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call(this, i, self.val()); + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray(val) ) { + val = jQuery.map(val, function (value) { + return value == null ? "" : value + ""; + }); + } + + if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) { + this.checked = jQuery.inArray( self.val(), val ) >= 0; + + } else if ( jQuery.nodeName( this, "select" ) ) { + var values = jQuery.makeArray(val); + + jQuery( "option", this ).each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + this.selectedIndex = -1; + } + + } else { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + attrFn: { + val: true, + css: true, + html: true, + text: true, + data: true, + width: true, + height: true, + offset: true + }, + + attr: function( elem, name, value, pass ) { + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || elem.nodeType === 2 ) { + return undefined; + } + + if ( pass && name in jQuery.attrFn ) { + return jQuery(elem)[name](value); + } + + var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ), + // Whether we are setting (or getting) + set = value !== undefined; + + // Try to normalize/fix the name + name = notxml && jQuery.props[ name ] || name; + + // Only do all the following if this is a node (faster for style) + if ( elem.nodeType === 1 ) { + // These attributes require special treatment + var special = rspecialurl.test( name ); + + // Safari mis-reports the default selected property of an option + // Accessing the parent's selectedIndex property fixes it + if ( name === "selected" && !jQuery.support.optSelected ) { + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + + // If applicable, access the attribute via the DOM 0 way + // 'in' checks fail in Blackberry 4.7 #6931 + if ( (name in elem || elem[ name ] !== undefined) && notxml && !special ) { + if ( set ) { + // We can't allow the type property to be changed (since it causes problems in IE) + if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) { + jQuery.error( "type property can't be changed" ); + } + + if ( value === null ) { + if ( elem.nodeType === 1 ) { + elem.removeAttribute( name ); + } + + } else { + elem[ name ] = value; + } + } + + // browsers index elements by id/name on forms, give priority to attributes. + if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) { + return elem.getAttributeNode( name ).nodeValue; + } + + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + if ( name === "tabIndex" ) { + var attributeNode = elem.getAttributeNode( "tabIndex" ); + + return attributeNode && attributeNode.specified ? + attributeNode.value : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + + return elem[ name ]; + } + + if ( !jQuery.support.style && notxml && name === "style" ) { + if ( set ) { + elem.style.cssText = "" + value; + } + + return elem.style.cssText; + } + + if ( set ) { + // convert the value to a string (all browsers do this but IE) see #1070 + elem.setAttribute( name, "" + value ); + } + + // Ensure that missing attributes return undefined + // Blackberry 4.7 returns "" from getAttribute #6938 + if ( !elem.attributes[ name ] && (elem.hasAttribute && !elem.hasAttribute( name )) ) { + return undefined; + } + + var attr = !jQuery.support.hrefNormalized && notxml && special ? + // Some attributes require a special call on IE + elem.getAttribute( name, 2 ) : + elem.getAttribute( name ); + + // Non-existent attributes return null, we normalize to undefined + return attr === null ? undefined : attr; + } + // Handle everything which isn't a DOM element node + if ( set ) { + elem[ name ] = value; + } + return elem[ name ]; + } +}); + + + + +var rnamespaces = /\.(.*)$/, + rformElems = /^(?:textarea|input|select)$/i, + rperiod = /\./g, + rspace = / /g, + rescape = /[^\w\s.|`]/g, + fcleanup = function( nm ) { + return nm.replace(rescape, "\\$&"); + }; + +/* + * A number of helper functions used for managing events. + * Many of the ideas behind this code originated from + * Dean Edwards' addEvent library. + */ +jQuery.event = { + + // Bind an event to an element + // Original by Dean Edwards + add: function( elem, types, handler, data ) { + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // TODO :: Use a try/catch until it's safe to pull this out (likely 1.6) + // Minor release fix for bug #8018 + try { + // For whatever reason, IE has trouble passing the window object + // around, causing it to be cloned in the process + if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) { + elem = window; + } + } + catch ( e ) {} + + if ( handler === false ) { + handler = returnFalse; + } else if ( !handler ) { + // Fixes bug #7229. Fix recommended by jdalton + return; + } + + var handleObjIn, handleObj; + + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + } + + // Make sure that the function being executed has a unique ID + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure + var elemData = jQuery._data( elem ); + + // If no elemData is found then we must be trying to bind to one of the + // banned noData elements + if ( !elemData ) { + return; + } + + var events = elemData.events, + eventHandle = elemData.handle; + + if ( !events ) { + elemData.events = events = {}; + } + + if ( !eventHandle ) { + elemData.handle = eventHandle = function() { + // Handle the second event of a trigger and when + // an event is called after a page has unloaded + return typeof jQuery !== "undefined" && !jQuery.event.triggered ? + jQuery.event.handle.apply( eventHandle.elem, arguments ) : + undefined; + }; + } + + // Add elem as a property of the handle function + // This is to prevent a memory leak with non-native events in IE. + eventHandle.elem = elem; + + // Handle multiple events separated by a space + // jQuery(...).bind("mouseover mouseout", fn); + types = types.split(" "); + + var type, i = 0, namespaces; + + while ( (type = types[ i++ ]) ) { + handleObj = handleObjIn ? + jQuery.extend({}, handleObjIn) : + { handler: handler, data: data }; + + // Namespaced event handlers + if ( type.indexOf(".") > -1 ) { + namespaces = type.split("."); + type = namespaces.shift(); + handleObj.namespace = namespaces.slice(0).sort().join("."); + + } else { + namespaces = []; + handleObj.namespace = ""; + } + + handleObj.type = type; + if ( !handleObj.guid ) { + handleObj.guid = handler.guid; + } + + // Get the current list of functions bound to this event + var handlers = events[ type ], + special = jQuery.event.special[ type ] || {}; + + // Init the event handler queue + if ( !handlers ) { + handlers = events[ type ] = []; + + // Check for a special event handler + // Only use addEventListener/attachEvent if the special + // events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add the function to the element's handler list + handlers.push( handleObj ); + + // Keep track of which events have been used, for global triggering + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + global: {}, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, pos ) { + // don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + if ( handler === false ) { + handler = returnFalse; + } + + var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ), + events = elemData && elemData.events; + + if ( !elemData || !events ) { + return; + } + + // types is actually an event object here + if ( types && types.type ) { + handler = types.handler; + types = types.type; + } + + // Unbind all events for the element + if ( !types || typeof types === "string" && types.charAt(0) === "." ) { + types = types || ""; + + for ( type in events ) { + jQuery.event.remove( elem, type + types ); + } + + return; + } + + // Handle multiple events separated by a space + // jQuery(...).unbind("mouseover mouseout", fn); + types = types.split(" "); + + while ( (type = types[ i++ ]) ) { + origType = type; + handleObj = null; + all = type.indexOf(".") < 0; + namespaces = []; + + if ( !all ) { + // Namespaced event handlers + namespaces = type.split("."); + type = namespaces.shift(); + + namespace = new RegExp("(^|\\.)" + + jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)"); + } + + eventType = events[ type ]; + + if ( !eventType ) { + continue; + } + + if ( !handler ) { + for ( j = 0; j < eventType.length; j++ ) { + handleObj = eventType[ j ]; + + if ( all || namespace.test( handleObj.namespace ) ) { + jQuery.event.remove( elem, origType, handleObj.handler, j ); + eventType.splice( j--, 1 ); + } + } + + continue; + } + + special = jQuery.event.special[ type ] || {}; + + for ( j = pos || 0; j < eventType.length; j++ ) { + handleObj = eventType[ j ]; + + if ( handler.guid === handleObj.guid ) { + // remove the given handler for the given type + if ( all || namespace.test( handleObj.namespace ) ) { + if ( pos == null ) { + eventType.splice( j--, 1 ); + } + + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + + if ( pos != null ) { + break; + } + } + } + + // remove generic event handler if no more handlers exist + if ( eventType.length === 0 || pos != null && eventType.length === 1 ) { + if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + ret = null; + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + var handle = elemData.handle; + if ( handle ) { + handle.elem = null; + } + + delete elemData.events; + delete elemData.handle; + + if ( jQuery.isEmptyObject( elemData ) ) { + jQuery.removeData( elem, undefined, true ); + } + } + }, + + // bubbling is internal + trigger: function( event, data, elem /*, bubbling */ ) { + // Event object or event type + var type = event.type || event, + bubbling = arguments[3]; + + if ( !bubbling ) { + event = typeof event === "object" ? + // jQuery.Event object + event[ jQuery.expando ] ? event : + // Object literal + jQuery.extend( jQuery.Event(type), event ) : + // Just the event type (string) + jQuery.Event(type); + + if ( type.indexOf("!") >= 0 ) { + event.type = type = type.slice(0, -1); + event.exclusive = true; + } + + // Handle a global trigger + if ( !elem ) { + // Don't bubble custom events when global (to avoid too much overhead) + event.stopPropagation(); + + // Only trigger if we've ever bound an event for it + if ( jQuery.event.global[ type ] ) { + // XXX This code smells terrible. event.js should not be directly + // inspecting the data cache + jQuery.each( jQuery.cache, function() { + // internalKey variable is just used to make it easier to find + // and potentially change this stuff later; currently it just + // points to jQuery.expando + var internalKey = jQuery.expando, + internalCache = this[ internalKey ]; + if ( internalCache && internalCache.events && internalCache.events[ type ] ) { + jQuery.event.trigger( event, data, internalCache.handle.elem ); + } + }); + } + } + + // Handle triggering a single element + + // don't do events on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { + return undefined; + } + + // Clean up in case it is reused + event.result = undefined; + event.target = elem; + + // Clone the incoming data, if any + data = jQuery.makeArray( data ); + data.unshift( event ); + } + + event.currentTarget = elem; + + // Trigger the event, it is assumed that "handle" is a function + var handle = jQuery._data( elem, "handle" ); + + if ( handle ) { + handle.apply( elem, data ); + } + + var parent = elem.parentNode || elem.ownerDocument; + + // Trigger an inline bound script + try { + if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) { + if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem, data ) === false ) { + event.result = false; + event.preventDefault(); + } + } + + // prevent IE from throwing an error for some elements with some event types, see #3533 + } catch (inlineError) {} + + if ( !event.isPropagationStopped() && parent ) { + jQuery.event.trigger( event, data, parent, true ); + + } else if ( !event.isDefaultPrevented() ) { + var old, + target = event.target, + targetType = type.replace( rnamespaces, "" ), + isClick = jQuery.nodeName( target, "a" ) && targetType === "click", + special = jQuery.event.special[ targetType ] || {}; + + if ( (!special._default || special._default.call( elem, event ) === false) && + !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) { + + try { + if ( target[ targetType ] ) { + // Make sure that we don't accidentally re-trigger the onFOO events + old = target[ "on" + targetType ]; + + if ( old ) { + target[ "on" + targetType ] = null; + } + + jQuery.event.triggered = true; + target[ targetType ](); + } + + // prevent IE from throwing an error for some elements with some event types, see #3533 + } catch (triggerError) {} + + if ( old ) { + target[ "on" + targetType ] = old; + } + + jQuery.event.triggered = false; + } + } + }, + + handle: function( event ) { + var all, handlers, namespaces, namespace_re, events, + namespace_sort = [], + args = jQuery.makeArray( arguments ); + + event = args[0] = jQuery.event.fix( event || window.event ); + event.currentTarget = this; + + // Namespaced event handlers + all = event.type.indexOf(".") < 0 && !event.exclusive; + + if ( !all ) { + namespaces = event.type.split("."); + event.type = namespaces.shift(); + namespace_sort = namespaces.slice(0).sort(); + namespace_re = new RegExp("(^|\\.)" + namespace_sort.join("\\.(?:.*\\.)?") + "(\\.|$)"); + } + + event.namespace = event.namespace || namespace_sort.join("."); + + events = jQuery._data(this, "events"); + + handlers = (events || {})[ event.type ]; + + if ( events && handlers ) { + // Clone the handlers to prevent manipulation + handlers = handlers.slice(0); + + for ( var j = 0, l = handlers.length; j < l; j++ ) { + var handleObj = handlers[ j ]; + + // Filter the functions by class + if ( all || namespace_re.test( handleObj.namespace ) ) { + // Pass in a reference to the handler function itself + // So that we can later remove it + event.handler = handleObj.handler; + event.data = handleObj.data; + event.handleObj = handleObj; + + var ret = handleObj.handler.apply( this, args ); + + if ( ret !== undefined ) { + event.result = ret; + if ( ret === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + + if ( event.isImmediatePropagationStopped() ) { + break; + } + } + } + } + + return event.result; + }, + + props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // store a copy of the original event object + // and "clone" to set read-only properties + var originalEvent = event; + event = jQuery.Event( originalEvent ); + + for ( var i = this.props.length, prop; i; ) { + prop = this.props[ --i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Fix target property, if necessary + if ( !event.target ) { + // Fixes #1925 where srcElement might not be defined either + event.target = event.srcElement || document; + } + + // check if target is a textnode (safari) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && event.fromElement ) { + event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement; + } + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && event.clientX != null ) { + var doc = document.documentElement, + body = document.body; + + event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); + event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); + } + + // Add which for key events + if ( event.which == null && (event.charCode != null || event.keyCode != null) ) { + event.which = event.charCode != null ? event.charCode : event.keyCode; + } + + // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) + if ( !event.metaKey && event.ctrlKey ) { + event.metaKey = event.ctrlKey; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && event.button !== undefined ) { + event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); + } + + return event; + }, + + // Deprecated, use jQuery.guid instead + guid: 1E8, + + // Deprecated, use jQuery.proxy instead + proxy: jQuery.proxy, + + special: { + ready: { + // Make sure the ready event is setup + setup: jQuery.bindReady, + teardown: jQuery.noop + }, + + live: { + add: function( handleObj ) { + jQuery.event.add( this, + liveConvert( handleObj.origType, handleObj.selector ), + jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) ); + }, + + remove: function( handleObj ) { + jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj ); + } + }, + + beforeunload: { + setup: function( data, namespaces, eventHandle ) { + // We only want to do this special case on windows + if ( jQuery.isWindow( this ) ) { + this.onbeforeunload = eventHandle; + } + }, + + teardown: function( namespaces, eventHandle ) { + if ( this.onbeforeunload === eventHandle ) { + this.onbeforeunload = null; + } + } + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + if ( elem.detachEvent ) { + elem.detachEvent( "on" + type, handle ); + } + }; + +jQuery.Event = function( src ) { + // Allow instantiation without the 'new' keyword + if ( !this.preventDefault ) { + return new jQuery.Event( src ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // timeStamp is buggy for some events on Firefox(#3843) + // So we won't rely on the native value + this.timeStamp = jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +function returnFalse() { + return false; +} +function returnTrue() { + return true; +} + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + preventDefault: function() { + this.isDefaultPrevented = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + + // if preventDefault exists run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // otherwise set the returnValue property of the original event to false (IE) + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + this.isPropagationStopped = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + // if stopPropagation exists run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + // otherwise set the cancelBubble property of the original event to true (IE) + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse +}; + +// Checks if an event happened on an element within another element +// Used in jQuery.event.special.mouseenter and mouseleave handlers +var withinElement = function( event ) { + // Check if mouse(over|out) are still within the same parent element + var parent = event.relatedTarget; + + // Firefox sometimes assigns relatedTarget a XUL element + // which we cannot access the parentNode property of + try { + + // Chrome does something similar, the parentNode property + // can be accessed but is null. + if ( parent !== document && !parent.parentNode ) { + return; + } + // Traverse up the tree + while ( parent && parent !== this ) { + parent = parent.parentNode; + } + + if ( parent !== this ) { + // set the correct event type + event.type = event.data; + + // handle event if we actually just moused on to a non sub-element + jQuery.event.handle.apply( this, arguments ); + } + + // assuming we've left the element since we most likely mousedover a xul element + } catch(e) { } +}, + +// In case of event delegation, we only need to rename the event.type, +// liveHandler will take care of the rest. +delegate = function( event ) { + event.type = event.data; + jQuery.event.handle.apply( this, arguments ); +}; + +// Create mouseenter and mouseleave events +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + setup: function( data ) { + jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig ); + }, + teardown: function( data ) { + jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement ); + } + }; +}); + +// submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function( data, namespaces ) { + if ( this.nodeName && this.nodeName.toLowerCase() !== "form" ) { + jQuery.event.add(this, "click.specialSubmit", function( e ) { + var elem = e.target, + type = elem.type; + + if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { + trigger( "submit", this, arguments ); + } + }); + + jQuery.event.add(this, "keypress.specialSubmit", function( e ) { + var elem = e.target, + type = elem.type; + + if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { + trigger( "submit", this, arguments ); + } + }); + + } else { + return false; + } + }, + + teardown: function( namespaces ) { + jQuery.event.remove( this, ".specialSubmit" ); + } + }; + +} + +// change delegation, happens here so we have bind. +if ( !jQuery.support.changeBubbles ) { + + var changeFilters, + + getVal = function( elem ) { + var type = elem.type, val = elem.value; + + if ( type === "radio" || type === "checkbox" ) { + val = elem.checked; + + } else if ( type === "select-multiple" ) { + val = elem.selectedIndex > -1 ? + jQuery.map( elem.options, function( elem ) { + return elem.selected; + }).join("-") : + ""; + + } else if ( elem.nodeName.toLowerCase() === "select" ) { + val = elem.selectedIndex; + } + + return val; + }, + + testChange = function testChange( e ) { + var elem = e.target, data, val; + + if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) { + return; + } + + data = jQuery._data( elem, "_change_data" ); + val = getVal(elem); + + // the current data will be also retrieved by beforeactivate + if ( e.type !== "focusout" || elem.type !== "radio" ) { + jQuery._data( elem, "_change_data", val ); + } + + if ( data === undefined || val === data ) { + return; + } + + if ( data != null || val ) { + e.type = "change"; + e.liveFired = undefined; + jQuery.event.trigger( e, arguments[1], elem ); + } + }; + + jQuery.event.special.change = { + filters: { + focusout: testChange, + + beforedeactivate: testChange, + + click: function( e ) { + var elem = e.target, type = elem.type; + + if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) { + testChange.call( this, e ); + } + }, + + // Change has to be called before submit + // Keydown will be called before keypress, which is used in submit-event delegation + keydown: function( e ) { + var elem = e.target, type = elem.type; + + if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") || + (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || + type === "select-multiple" ) { + testChange.call( this, e ); + } + }, + + // Beforeactivate happens also before the previous element is blurred + // with this event you can't trigger a change event, but you can store + // information + beforeactivate: function( e ) { + var elem = e.target; + jQuery._data( elem, "_change_data", getVal(elem) ); + } + }, + + setup: function( data, namespaces ) { + if ( this.type === "file" ) { + return false; + } + + for ( var type in changeFilters ) { + jQuery.event.add( this, type + ".specialChange", changeFilters[type] ); + } + + return rformElems.test( this.nodeName ); + }, + + teardown: function( namespaces ) { + jQuery.event.remove( this, ".specialChange" ); + + return rformElems.test( this.nodeName ); + } + }; + + changeFilters = jQuery.event.special.change.filters; + + // Handle when the input is .focus()'d + changeFilters.focus = changeFilters.beforeactivate; +} + +function trigger( type, elem, args ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + // Don't pass args or remember liveFired; they apply to the donor event. + var event = jQuery.extend( {}, args[ 0 ] ); + event.type = type; + event.originalEvent = {}; + event.liveFired = undefined; + jQuery.event.handle.call( elem, event ); + if ( event.isDefaultPrevented() ) { + args[ 0 ].preventDefault(); + } +} + +// Create "bubbling" focus and blur events +if ( document.addEventListener ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + jQuery.event.special[ fix ] = { + setup: function() { + this.addEventListener( orig, handler, true ); + }, + teardown: function() { + this.removeEventListener( orig, handler, true ); + } + }; + + function handler( e ) { + e = jQuery.event.fix( e ); + e.type = fix; + return jQuery.event.handle.call( this, e ); + } + }); +} + +jQuery.each(["bind", "one"], function( i, name ) { + jQuery.fn[ name ] = function( type, data, fn ) { + // Handle object literals + if ( typeof type === "object" ) { + for ( var key in type ) { + this[ name ](key, data, type[key], fn); + } + return this; + } + + if ( jQuery.isFunction( data ) || data === false ) { + fn = data; + data = undefined; + } + + var handler = name === "one" ? jQuery.proxy( fn, function( event ) { + jQuery( this ).unbind( event, handler ); + return fn.apply( this, arguments ); + }) : fn; + + if ( type === "unload" && name !== "one" ) { + this.one( type, data, fn ); + + } else { + for ( var i = 0, l = this.length; i < l; i++ ) { + jQuery.event.add( this[i], type, handler, data ); + } + } + + return this; + }; +}); + +jQuery.fn.extend({ + unbind: function( type, fn ) { + // Handle object literals + if ( typeof type === "object" && !type.preventDefault ) { + for ( var key in type ) { + this.unbind(key, type[key]); + } + + } else { + for ( var i = 0, l = this.length; i < l; i++ ) { + jQuery.event.remove( this[i], type, fn ); + } + } + + return this; + }, + + delegate: function( selector, types, data, fn ) { + return this.live( types, data, fn, selector ); + }, + + undelegate: function( selector, types, fn ) { + if ( arguments.length === 0 ) { + return this.unbind( "live" ); + + } else { + return this.die( types, null, fn, selector ); + } + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + + triggerHandler: function( type, data ) { + if ( this[0] ) { + var event = jQuery.Event( type ); + event.preventDefault(); + event.stopPropagation(); + jQuery.event.trigger( event, data, this[0] ); + return event.result; + } + }, + + toggle: function( fn ) { + // Save reference to arguments for access in closure + var args = arguments, + i = 1; + + // link all the functions, so any of them can unbind this click handler + while ( i < args.length ) { + jQuery.proxy( fn, args[ i++ ] ); + } + + return this.click( jQuery.proxy( fn, function( event ) { + // Figure out which function to execute + var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; + jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); + + // Make sure that clicks stop + event.preventDefault(); + + // and execute the function + return args[ lastToggle ].apply( this, arguments ) || false; + })); + }, + + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +}); + +var liveMap = { + focus: "focusin", + blur: "focusout", + mouseenter: "mouseover", + mouseleave: "mouseout" +}; + +jQuery.each(["live", "die"], function( i, name ) { + jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) { + var type, i = 0, match, namespaces, preType, + selector = origSelector || this.selector, + context = origSelector ? this : jQuery( this.context ); + + if ( typeof types === "object" && !types.preventDefault ) { + for ( var key in types ) { + context[ name ]( key, data, types[key], selector ); + } + + return this; + } + + if ( jQuery.isFunction( data ) ) { + fn = data; + data = undefined; + } + + types = (types || "").split(" "); + + while ( (type = types[ i++ ]) != null ) { + match = rnamespaces.exec( type ); + namespaces = ""; + + if ( match ) { + namespaces = match[0]; + type = type.replace( rnamespaces, "" ); + } + + if ( type === "hover" ) { + types.push( "mouseenter" + namespaces, "mouseleave" + namespaces ); + continue; + } + + preType = type; + + if ( type === "focus" || type === "blur" ) { + types.push( liveMap[ type ] + namespaces ); + type = type + namespaces; + + } else { + type = (liveMap[ type ] || type) + namespaces; + } + + if ( name === "live" ) { + // bind live handler + for ( var j = 0, l = context.length; j < l; j++ ) { + jQuery.event.add( context[j], "live." + liveConvert( type, selector ), + { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); + } + + } else { + // unbind live handler + context.unbind( "live." + liveConvert( type, selector ), fn ); + } + } + + return this; + }; +}); + +function liveHandler( event ) { + var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret, + elems = [], + selectors = [], + events = jQuery._data( this, "events" ); + + // Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911) + if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) { + return; + } + + if ( event.namespace ) { + namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)"); + } + + event.liveFired = this; + + var live = events.live.slice(0); + + for ( j = 0; j < live.length; j++ ) { + handleObj = live[j]; + + if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) { + selectors.push( handleObj.selector ); + + } else { + live.splice( j--, 1 ); + } + } + + match = jQuery( event.target ).closest( selectors, event.currentTarget ); + + for ( i = 0, l = match.length; i < l; i++ ) { + close = match[i]; + + for ( j = 0; j < live.length; j++ ) { + handleObj = live[j]; + + if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) { + elem = close.elem; + related = null; + + // Those two events require additional checking + if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) { + event.type = handleObj.preType; + related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; + } + + if ( !related || related !== elem ) { + elems.push({ elem: elem, handleObj: handleObj, level: close.level }); + } + } + } + } + + for ( i = 0, l = elems.length; i < l; i++ ) { + match = elems[i]; + + if ( maxLevel && match.level > maxLevel ) { + break; + } + + event.currentTarget = match.elem; + event.data = match.handleObj.data; + event.handleObj = match.handleObj; + + ret = match.handleObj.origHandler.apply( match.elem, arguments ); + + if ( ret === false || event.isPropagationStopped() ) { + maxLevel = match.level; + + if ( ret === false ) { + stop = false; + } + if ( event.isImmediatePropagationStopped() ) { + break; + } + } + } + + return stop; +} + +function liveConvert( type, selector ) { + return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspace, "&"); +} + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup error").split(" "), function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; + + if ( jQuery.attrFn ) { + jQuery.attrFn[ name ] = true; + } +}); + + +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){ + +var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, + done = 0, + toString = Object.prototype.toString, + hasDuplicate = false, + baseHasDuplicate = true, + rBackslash = /\\/g, + rNonWord = /\W/; + +// Here we check if the JavaScript engine is using some sort of +// optimization where it does not always call our comparision +// function. If that is the case, discard the hasDuplicate value. +// Thus far that includes Google Chrome. +[0, 0].sort(function() { + baseHasDuplicate = false; + return 0; +}); + +var Sizzle = function( selector, context, results, seed ) { + results = results || []; + context = context || document; + + var origContext = context; + + if ( context.nodeType !== 1 && context.nodeType !== 9 ) { + return []; + } + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + var m, set, checkSet, extra, ret, cur, pop, i, + prune = true, + contextXML = Sizzle.isXML( context ), + parts = [], + soFar = selector; + + // Reset the position of the chunker regexp (start from head) + do { + chunker.exec( "" ); + m = chunker.exec( soFar ); + + if ( m ) { + soFar = m[3]; + + parts.push( m[1] ); + + if ( m[2] ) { + extra = m[3]; + break; + } + } + } while ( m ); + + if ( parts.length > 1 && origPOS.exec( selector ) ) { + + if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { + set = posProcess( parts[0] + parts[1], context ); + + } else { + set = Expr.relative[ parts[0] ] ? + [ context ] : + Sizzle( parts.shift(), context ); + + while ( parts.length ) { + selector = parts.shift(); + + if ( Expr.relative[ selector ] ) { + selector += parts.shift(); + } + + set = posProcess( selector, set ); + } + } + + } else { + // Take a shortcut and set the context if the root selector is an ID + // (but not if it'll be faster if the inner selector is an ID) + if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && + Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { + + ret = Sizzle.find( parts.shift(), context, contextXML ); + context = ret.expr ? + Sizzle.filter( ret.expr, ret.set )[0] : + ret.set[0]; + } + + if ( context ) { + ret = seed ? + { expr: parts.pop(), set: makeArray(seed) } : + Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); + + set = ret.expr ? + Sizzle.filter( ret.expr, ret.set ) : + ret.set; + + if ( parts.length > 0 ) { + checkSet = makeArray( set ); + + } else { + prune = false; + } + + while ( parts.length ) { + cur = parts.pop(); + pop = cur; + + if ( !Expr.relative[ cur ] ) { + cur = ""; + } else { + pop = parts.pop(); + } + + if ( pop == null ) { + pop = context; + } + + Expr.relative[ cur ]( checkSet, pop, contextXML ); + } + + } else { + checkSet = parts = []; + } + } + + if ( !checkSet ) { + checkSet = set; + } + + if ( !checkSet ) { + Sizzle.error( cur || selector ); + } + + if ( toString.call(checkSet) === "[object Array]" ) { + if ( !prune ) { + results.push.apply( results, checkSet ); + + } else if ( context && context.nodeType === 1 ) { + for ( i = 0; checkSet[i] != null; i++ ) { + if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { + results.push( set[i] ); + } + } + + } else { + for ( i = 0; checkSet[i] != null; i++ ) { + if ( checkSet[i] && checkSet[i].nodeType === 1 ) { + results.push( set[i] ); + } + } + } + + } else { + makeArray( checkSet, results ); + } + + if ( extra ) { + Sizzle( extra, origContext, results, seed ); + Sizzle.uniqueSort( results ); + } + + return results; +}; + +Sizzle.uniqueSort = function( results ) { + if ( sortOrder ) { + hasDuplicate = baseHasDuplicate; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( var i = 1; i < results.length; i++ ) { + if ( results[i] === results[ i - 1 ] ) { + results.splice( i--, 1 ); + } + } + } + } + + return results; +}; + +Sizzle.matches = function( expr, set ) { + return Sizzle( expr, null, null, set ); +}; + +Sizzle.matchesSelector = function( node, expr ) { + return Sizzle( expr, null, null, [node] ).length > 0; +}; + +Sizzle.find = function( expr, context, isXML ) { + var set; + + if ( !expr ) { + return []; + } + + for ( var i = 0, l = Expr.order.length; i < l; i++ ) { + var match, + type = Expr.order[i]; + + if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { + var left = match[1]; + match.splice( 1, 1 ); + + if ( left.substr( left.length - 1 ) !== "\\" ) { + match[1] = (match[1] || "").replace( rBackslash, "" ); + set = Expr.find[ type ]( match, context, isXML ); + + if ( set != null ) { + expr = expr.replace( Expr.match[ type ], "" ); + break; + } + } + } + } + + if ( !set ) { + set = typeof context.getElementsByTagName !== "undefined" ? + context.getElementsByTagName( "*" ) : + []; + } + + return { set: set, expr: expr }; +}; + +Sizzle.filter = function( expr, set, inplace, not ) { + var match, anyFound, + old = expr, + result = [], + curLoop = set, + isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); + + while ( expr && set.length ) { + for ( var type in Expr.filter ) { + if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { + var found, item, + filter = Expr.filter[ type ], + left = match[1]; + + anyFound = false; + + match.splice(1,1); + + if ( left.substr( left.length - 1 ) === "\\" ) { + continue; + } + + if ( curLoop === result ) { + result = []; + } + + if ( Expr.preFilter[ type ] ) { + match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); + + if ( !match ) { + anyFound = found = true; + + } else if ( match === true ) { + continue; + } + } + + if ( match ) { + for ( var i = 0; (item = curLoop[i]) != null; i++ ) { + if ( item ) { + found = filter( item, match, i, curLoop ); + var pass = not ^ !!found; + + if ( inplace && found != null ) { + if ( pass ) { + anyFound = true; + + } else { + curLoop[i] = false; + } + + } else if ( pass ) { + result.push( item ); + anyFound = true; + } + } + } + } + + if ( found !== undefined ) { + if ( !inplace ) { + curLoop = result; + } + + expr = expr.replace( Expr.match[ type ], "" ); + + if ( !anyFound ) { + return []; + } + + break; + } + } + } + + // Improper expression + if ( expr === old ) { + if ( anyFound == null ) { + Sizzle.error( expr ); + + } else { + break; + } + } + + old = expr; + } + + return curLoop; +}; + +Sizzle.error = function( msg ) { + throw "Syntax error, unrecognized expression: " + msg; +}; + +var Expr = Sizzle.selectors = { + order: [ "ID", "NAME", "TAG" ], + + match: { + ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, + CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, + NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, + ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, + TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, + CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, + POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, + PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ + }, + + leftMatch: {}, + + attrMap: { + "class": "className", + "for": "htmlFor" + }, + + attrHandle: { + href: function( elem ) { + return elem.getAttribute( "href" ); + }, + type: function( elem ) { + return elem.getAttribute( "type" ); + } + }, + + relative: { + "+": function(checkSet, part){ + var isPartStr = typeof part === "string", + isTag = isPartStr && !rNonWord.test( part ), + isPartStrNotTag = isPartStr && !isTag; + + if ( isTag ) { + part = part.toLowerCase(); + } + + for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { + if ( (elem = checkSet[i]) ) { + while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} + + checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? + elem || false : + elem === part; + } + } + + if ( isPartStrNotTag ) { + Sizzle.filter( part, checkSet, true ); + } + }, + + ">": function( checkSet, part ) { + var elem, + isPartStr = typeof part === "string", + i = 0, + l = checkSet.length; + + if ( isPartStr && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + + for ( ; i < l; i++ ) { + elem = checkSet[i]; + + if ( elem ) { + var parent = elem.parentNode; + checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; + } + } + + } else { + for ( ; i < l; i++ ) { + elem = checkSet[i]; + + if ( elem ) { + checkSet[i] = isPartStr ? + elem.parentNode : + elem.parentNode === part; + } + } + + if ( isPartStr ) { + Sizzle.filter( part, checkSet, true ); + } + } + }, + + "": function(checkSet, part, isXML){ + var nodeCheck, + doneName = done++, + checkFn = dirCheck; + + if ( typeof part === "string" && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + nodeCheck = part; + checkFn = dirNodeCheck; + } + + checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); + }, + + "~": function( checkSet, part, isXML ) { + var nodeCheck, + doneName = done++, + checkFn = dirCheck; + + if ( typeof part === "string" && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + nodeCheck = part; + checkFn = dirNodeCheck; + } + + checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); + } + }, + + find: { + ID: function( match, context, isXML ) { + if ( typeof context.getElementById !== "undefined" && !isXML ) { + var m = context.getElementById(match[1]); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }, + + NAME: function( match, context ) { + if ( typeof context.getElementsByName !== "undefined" ) { + var ret = [], + results = context.getElementsByName( match[1] ); + + for ( var i = 0, l = results.length; i < l; i++ ) { + if ( results[i].getAttribute("name") === match[1] ) { + ret.push( results[i] ); + } + } + + return ret.length === 0 ? null : ret; + } + }, + + TAG: function( match, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( match[1] ); + } + } + }, + preFilter: { + CLASS: function( match, curLoop, inplace, result, not, isXML ) { + match = " " + match[1].replace( rBackslash, "" ) + " "; + + if ( isXML ) { + return match; + } + + for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { + if ( elem ) { + if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { + if ( !inplace ) { + result.push( elem ); + } + + } else if ( inplace ) { + curLoop[i] = false; + } + } + } + + return false; + }, + + ID: function( match ) { + return match[1].replace( rBackslash, "" ); + }, + + TAG: function( match, curLoop ) { + return match[1].replace( rBackslash, "" ).toLowerCase(); + }, + + CHILD: function( match ) { + if ( match[1] === "nth" ) { + if ( !match[2] ) { + Sizzle.error( match[0] ); + } + + match[2] = match[2].replace(/^\+|\s*/g, ''); + + // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' + var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( + match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || + !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); + + // calculate the numbers (first)n+(last) including if they are negative + match[2] = (test[1] + (test[2] || 1)) - 0; + match[3] = test[3] - 0; + } + else if ( match[2] ) { + Sizzle.error( match[0] ); + } + + // TODO: Move to normal caching system + match[0] = done++; + + return match; + }, + + ATTR: function( match, curLoop, inplace, result, not, isXML ) { + var name = match[1] = match[1].replace( rBackslash, "" ); + + if ( !isXML && Expr.attrMap[name] ) { + match[1] = Expr.attrMap[name]; + } + + // Handle if an un-quoted value was used + match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); + + if ( match[2] === "~=" ) { + match[4] = " " + match[4] + " "; + } + + return match; + }, + + PSEUDO: function( match, curLoop, inplace, result, not ) { + if ( match[1] === "not" ) { + // If we're dealing with a complex expression, or a simple one + if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { + match[3] = Sizzle(match[3], null, null, curLoop); + + } else { + var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); + + if ( !inplace ) { + result.push.apply( result, ret ); + } + + return false; + } + + } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { + return true; + } + + return match; + }, + + POS: function( match ) { + match.unshift( true ); + + return match; + } + }, + + filters: { + enabled: function( elem ) { + return elem.disabled === false && elem.type !== "hidden"; + }, + + disabled: function( elem ) { + return elem.disabled === true; + }, + + checked: function( elem ) { + return elem.checked === true; + }, + + selected: function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + parent: function( elem ) { + return !!elem.firstChild; + }, + + empty: function( elem ) { + return !elem.firstChild; + }, + + has: function( elem, i, match ) { + return !!Sizzle( match[3], elem ).length; + }, + + header: function( elem ) { + return (/h\d/i).test( elem.nodeName ); + }, + + text: function( elem ) { + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return "text" === elem.getAttribute( 'type' ); + }, + radio: function( elem ) { + return "radio" === elem.type; + }, + + checkbox: function( elem ) { + return "checkbox" === elem.type; + }, + + file: function( elem ) { + return "file" === elem.type; + }, + password: function( elem ) { + return "password" === elem.type; + }, + + submit: function( elem ) { + return "submit" === elem.type; + }, + + image: function( elem ) { + return "image" === elem.type; + }, + + reset: function( elem ) { + return "reset" === elem.type; + }, + + button: function( elem ) { + return "button" === elem.type || elem.nodeName.toLowerCase() === "button"; + }, + + input: function( elem ) { + return (/input|select|textarea|button/i).test( elem.nodeName ); + } + }, + setFilters: { + first: function( elem, i ) { + return i === 0; + }, + + last: function( elem, i, match, array ) { + return i === array.length - 1; + }, + + even: function( elem, i ) { + return i % 2 === 0; + }, + + odd: function( elem, i ) { + return i % 2 === 1; + }, + + lt: function( elem, i, match ) { + return i < match[3] - 0; + }, + + gt: function( elem, i, match ) { + return i > match[3] - 0; + }, + + nth: function( elem, i, match ) { + return match[3] - 0 === i; + }, + + eq: function( elem, i, match ) { + return match[3] - 0 === i; + } + }, + filter: { + PSEUDO: function( elem, match, i, array ) { + var name = match[1], + filter = Expr.filters[ name ]; + + if ( filter ) { + return filter( elem, i, match, array ); + + } else if ( name === "contains" ) { + return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0; + + } else if ( name === "not" ) { + var not = match[3]; + + for ( var j = 0, l = not.length; j < l; j++ ) { + if ( not[j] === elem ) { + return false; + } + } + + return true; + + } else { + Sizzle.error( name ); + } + }, + + CHILD: function( elem, match ) { + var type = match[1], + node = elem; + + switch ( type ) { + case "only": + case "first": + while ( (node = node.previousSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + if ( type === "first" ) { + return true; + } + + node = elem; + + case "last": + while ( (node = node.nextSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + return true; + + case "nth": + var first = match[2], + last = match[3]; + + if ( first === 1 && last === 0 ) { + return true; + } + + var doneName = match[0], + parent = elem.parentNode; + + if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { + var count = 0; + + for ( node = parent.firstChild; node; node = node.nextSibling ) { + if ( node.nodeType === 1 ) { + node.nodeIndex = ++count; + } + } + + parent.sizcache = doneName; + } + + var diff = elem.nodeIndex - last; + + if ( first === 0 ) { + return diff === 0; + + } else { + return ( diff % first === 0 && diff / first >= 0 ); + } + } + }, + + ID: function( elem, match ) { + return elem.nodeType === 1 && elem.getAttribute("id") === match; + }, + + TAG: function( elem, match ) { + return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match; + }, + + CLASS: function( elem, match ) { + return (" " + (elem.className || elem.getAttribute("class")) + " ") + .indexOf( match ) > -1; + }, + + ATTR: function( elem, match ) { + var name = match[1], + result = Expr.attrHandle[ name ] ? + Expr.attrHandle[ name ]( elem ) : + elem[ name ] != null ? + elem[ name ] : + elem.getAttribute( name ), + value = result + "", + type = match[2], + check = match[4]; + + return result == null ? + type === "!=" : + type === "=" ? + value === check : + type === "*=" ? + value.indexOf(check) >= 0 : + type === "~=" ? + (" " + value + " ").indexOf(check) >= 0 : + !check ? + value && result !== false : + type === "!=" ? + value !== check : + type === "^=" ? + value.indexOf(check) === 0 : + type === "$=" ? + value.substr(value.length - check.length) === check : + type === "|=" ? + value === check || value.substr(0, check.length + 1) === check + "-" : + false; + }, + + POS: function( elem, match, i, array ) { + var name = match[2], + filter = Expr.setFilters[ name ]; + + if ( filter ) { + return filter( elem, i, match, array ); + } + } + } +}; + +var origPOS = Expr.match.POS, + fescape = function(all, num){ + return "\\" + (num - 0 + 1); + }; + +for ( var type in Expr.match ) { + Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); + Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); +} + +var makeArray = function( array, results ) { + array = Array.prototype.slice.call( array, 0 ); + + if ( results ) { + results.push.apply( results, array ); + return results; + } + + return array; +}; + +// Perform a simple check to determine if the browser is capable of +// converting a NodeList to an array using builtin methods. +// Also verifies that the returned array holds DOM nodes +// (which is not the case in the Blackberry browser) +try { + Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; + +// Provide a fallback method if it does not work +} catch( e ) { + makeArray = function( array, results ) { + var i = 0, + ret = results || []; + + if ( toString.call(array) === "[object Array]" ) { + Array.prototype.push.apply( ret, array ); + + } else { + if ( typeof array.length === "number" ) { + for ( var l = array.length; i < l; i++ ) { + ret.push( array[i] ); + } + + } else { + for ( ; array[i]; i++ ) { + ret.push( array[i] ); + } + } + } + + return ret; + }; +} + +var sortOrder, siblingCheck; + +if ( document.documentElement.compareDocumentPosition ) { + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { + return a.compareDocumentPosition ? -1 : 1; + } + + return a.compareDocumentPosition(b) & 4 ? -1 : 1; + }; + +} else { + sortOrder = function( a, b ) { + var al, bl, + ap = [], + bp = [], + aup = a.parentNode, + bup = b.parentNode, + cur = aup; + + // The nodes are identical, we can exit early + if ( a === b ) { + hasDuplicate = true; + return 0; + + // If the nodes are siblings (or identical) we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + + // If no parents were found then the nodes are disconnected + } else if ( !aup ) { + return -1; + + } else if ( !bup ) { + return 1; + } + + // Otherwise they're somewhere else in the tree so we need + // to build up a full list of the parentNodes for comparison + while ( cur ) { + ap.unshift( cur ); + cur = cur.parentNode; + } + + cur = bup; + + while ( cur ) { + bp.unshift( cur ); + cur = cur.parentNode; + } + + al = ap.length; + bl = bp.length; + + // Start walking down the tree looking for a discrepancy + for ( var i = 0; i < al && i < bl; i++ ) { + if ( ap[i] !== bp[i] ) { + return siblingCheck( ap[i], bp[i] ); + } + } + + // We ended someplace up the tree so do a sibling check + return i === al ? + siblingCheck( a, bp[i], -1 ) : + siblingCheck( ap[i], b, 1 ); + }; + + siblingCheck = function( a, b, ret ) { + if ( a === b ) { + return ret; + } + + var cur = a.nextSibling; + + while ( cur ) { + if ( cur === b ) { + return -1; + } + + cur = cur.nextSibling; + } + + return 1; + }; +} + +// Utility function for retreiving the text value of an array of DOM nodes +Sizzle.getText = function( elems ) { + var ret = "", elem; + + for ( var i = 0; elems[i]; i++ ) { + elem = elems[i]; + + // Get the text from text nodes and CDATA nodes + if ( elem.nodeType === 3 || elem.nodeType === 4 ) { + ret += elem.nodeValue; + + // Traverse everything else, except comment nodes + } else if ( elem.nodeType !== 8 ) { + ret += Sizzle.getText( elem.childNodes ); + } + } + + return ret; +}; + +// Check to see if the browser returns elements by name when +// querying by getElementById (and provide a workaround) +(function(){ + // We're going to inject a fake input element with a specified name + var form = document.createElement("div"), + id = "script" + (new Date()).getTime(), + root = document.documentElement; + + form.innerHTML = ""; + + // Inject it into the root element, check its status, and remove it quickly + root.insertBefore( form, root.firstChild ); + + // The workaround has to do additional checks after a getElementById + // Which slows things down for other browsers (hence the branching) + if ( document.getElementById( id ) ) { + Expr.find.ID = function( match, context, isXML ) { + if ( typeof context.getElementById !== "undefined" && !isXML ) { + var m = context.getElementById(match[1]); + + return m ? + m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? + [m] : + undefined : + []; + } + }; + + Expr.filter.ID = function( elem, match ) { + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + + return elem.nodeType === 1 && node && node.nodeValue === match; + }; + } + + root.removeChild( form ); + + // release memory in IE + root = form = null; +})(); + +(function(){ + // Check to see if the browser returns only elements + // when doing getElementsByTagName("*") + + // Create a fake element + var div = document.createElement("div"); + div.appendChild( document.createComment("") ); + + // Make sure no comments are found + if ( div.getElementsByTagName("*").length > 0 ) { + Expr.find.TAG = function( match, context ) { + var results = context.getElementsByTagName( match[1] ); + + // Filter out possible comments + if ( match[1] === "*" ) { + var tmp = []; + + for ( var i = 0; results[i]; i++ ) { + if ( results[i].nodeType === 1 ) { + tmp.push( results[i] ); + } + } + + results = tmp; + } + + return results; + }; + } + + // Check to see if an attribute returns normalized href attributes + div.innerHTML = ""; + + if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && + div.firstChild.getAttribute("href") !== "#" ) { + + Expr.attrHandle.href = function( elem ) { + return elem.getAttribute( "href", 2 ); + }; + } + + // release memory in IE + div = null; +})(); + +if ( document.querySelectorAll ) { + (function(){ + var oldSizzle = Sizzle, + div = document.createElement("div"), + id = "__sizzle__"; + + div.innerHTML = "

    "; + + // Safari can't handle uppercase or unicode characters when + // in quirks mode. + if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { + return; + } + + Sizzle = function( query, context, extra, seed ) { + context = context || document; + + // Only use querySelectorAll on non-XML documents + // (ID selectors don't work in non-HTML documents) + if ( !seed && !Sizzle.isXML(context) ) { + // See if we find a selector to speed up + var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); + + if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { + // Speed-up: Sizzle("TAG") + if ( match[1] ) { + return makeArray( context.getElementsByTagName( query ), extra ); + + // Speed-up: Sizzle(".CLASS") + } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { + return makeArray( context.getElementsByClassName( match[2] ), extra ); + } + } + + if ( context.nodeType === 9 ) { + // Speed-up: Sizzle("body") + // The body element only exists once, optimize finding it + if ( query === "body" && context.body ) { + return makeArray( [ context.body ], extra ); + + // Speed-up: Sizzle("#ID") + } else if ( match && match[3] ) { + var elem = context.getElementById( match[3] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id === match[3] ) { + return makeArray( [ elem ], extra ); + } + + } else { + return makeArray( [], extra ); + } + } + + try { + return makeArray( context.querySelectorAll(query), extra ); + } catch(qsaError) {} + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + var oldContext = context, + old = context.getAttribute( "id" ), + nid = old || id, + hasParent = context.parentNode, + relativeHierarchySelector = /^\s*[+~]/.test( query ); + + if ( !old ) { + context.setAttribute( "id", nid ); + } else { + nid = nid.replace( /'/g, "\\$&" ); + } + if ( relativeHierarchySelector && hasParent ) { + context = context.parentNode; + } + + try { + if ( !relativeHierarchySelector || hasParent ) { + return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); + } + + } catch(pseudoError) { + } finally { + if ( !old ) { + oldContext.removeAttribute( "id" ); + } + } + } + } + + return oldSizzle(query, context, extra, seed); + }; + + for ( var prop in oldSizzle ) { + Sizzle[ prop ] = oldSizzle[ prop ]; + } + + // release memory in IE + div = null; + })(); +} + +(function(){ + var html = document.documentElement, + matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector, + pseudoWorks = false; + + try { + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( document.documentElement, "[test!='']:sizzle" ); + + } catch( pseudoError ) { + pseudoWorks = true; + } + + if ( matches ) { + Sizzle.matchesSelector = function( node, expr ) { + // Make sure that attribute selectors are quoted + expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); + + if ( !Sizzle.isXML( node ) ) { + try { + if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { + return matches.call( node, expr ); + } + } catch(e) {} + } + + return Sizzle(expr, null, null, [node]).length > 0; + }; + } +})(); + +(function(){ + var div = document.createElement("div"); + + div.innerHTML = "
    "; + + // Opera can't find a second classname (in 9.6) + // Also, make sure that getElementsByClassName actually exists + if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { + return; + } + + // Safari caches class attributes, doesn't catch changes (in 3.2) + div.lastChild.className = "e"; + + if ( div.getElementsByClassName("e").length === 1 ) { + return; + } + + Expr.order.splice(1, 0, "CLASS"); + Expr.find.CLASS = function( match, context, isXML ) { + if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { + return context.getElementsByClassName(match[1]); + } + }; + + // release memory in IE + div = null; +})(); + +function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { + for ( var i = 0, l = checkSet.length; i < l; i++ ) { + var elem = checkSet[i]; + + if ( elem ) { + var match = false; + + elem = elem[dir]; + + while ( elem ) { + if ( elem.sizcache === doneName ) { + match = checkSet[elem.sizset]; + break; + } + + if ( elem.nodeType === 1 && !isXML ){ + elem.sizcache = doneName; + elem.sizset = i; + } + + if ( elem.nodeName.toLowerCase() === cur ) { + match = elem; + break; + } + + elem = elem[dir]; + } + + checkSet[i] = match; + } + } +} + +function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { + for ( var i = 0, l = checkSet.length; i < l; i++ ) { + var elem = checkSet[i]; + + if ( elem ) { + var match = false; + + elem = elem[dir]; + + while ( elem ) { + if ( elem.sizcache === doneName ) { + match = checkSet[elem.sizset]; + break; + } + + if ( elem.nodeType === 1 ) { + if ( !isXML ) { + elem.sizcache = doneName; + elem.sizset = i; + } + + if ( typeof cur !== "string" ) { + if ( elem === cur ) { + match = true; + break; + } + + } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { + match = elem; + break; + } + } + + elem = elem[dir]; + } + + checkSet[i] = match; + } + } +} + +if ( document.documentElement.contains ) { + Sizzle.contains = function( a, b ) { + return a !== b && (a.contains ? a.contains(b) : true); + }; + +} else if ( document.documentElement.compareDocumentPosition ) { + Sizzle.contains = function( a, b ) { + return !!(a.compareDocumentPosition(b) & 16); + }; + +} else { + Sizzle.contains = function() { + return false; + }; +} + +Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; + + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +var posProcess = function( selector, context ) { + var match, + tmpSet = [], + later = "", + root = context.nodeType ? [context] : context; + + // Position selectors must be done after the filter + // And so must :not(positional) so we move all PSEUDOs to the end + while ( (match = Expr.match.PSEUDO.exec( selector )) ) { + later += match[0]; + selector = selector.replace( Expr.match.PSEUDO, "" ); + } + + selector = Expr.relative[selector] ? selector + "*" : selector; + + for ( var i = 0, l = root.length; i < l; i++ ) { + Sizzle( selector, root[i], tmpSet ); + } + + return Sizzle.filter( later, tmpSet ); +}; + +// EXPOSE +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.filters; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})(); + + +var runtil = /Until$/, + rparentsprev = /^(?:parents|prevUntil|prevAll)/, + // Note: This RegExp should be improved, or likely pulled from Sizzle + rmultiselector = /,/, + isSimple = /^.[^:#\[\.,]*$/, + slice = Array.prototype.slice, + POS = jQuery.expr.match.POS, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var ret = this.pushStack( "", "find", selector ), + length = 0; + + for ( var i = 0, l = this.length; i < l; i++ ) { + length = ret.length; + jQuery.find( selector, this[i], ret ); + + if ( i > 0 ) { + // Make sure that the results are unique + for ( var n = length; n < ret.length; n++ ) { + for ( var r = 0; r < length; r++ ) { + if ( ret[r] === ret[n] ) { + ret.splice(n--, 1); + break; + } + } + } + } + } + + return ret; + }, + + has: function( target ) { + var targets = jQuery( target ); + return this.filter(function() { + for ( var i = 0, l = targets.length; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector, false), "not", selector); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector, true), "filter", selector ); + }, + + is: function( selector ) { + return !!selector && jQuery.filter( selector, this ).length > 0; + }, + + closest: function( selectors, context ) { + var ret = [], i, l, cur = this[0]; + + if ( jQuery.isArray( selectors ) ) { + var match, selector, + matches = {}, + level = 1; + + if ( cur && selectors.length ) { + for ( i = 0, l = selectors.length; i < l; i++ ) { + selector = selectors[i]; + + if ( !matches[selector] ) { + matches[selector] = jQuery.expr.match.POS.test( selector ) ? + jQuery( selector, context || this.context ) : + selector; + } + } + + while ( cur && cur.ownerDocument && cur !== context ) { + for ( selector in matches ) { + match = matches[selector]; + + if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match) ) { + ret.push({ selector: selector, elem: cur, level: level }); + } + } + + cur = cur.parentNode; + level++; + } + } + + return ret; + } + + var pos = POS.test( selectors ) ? + jQuery( selectors, context || this.context ) : null; + + for ( i = 0, l = this.length; i < l; i++ ) { + cur = this[i]; + + while ( cur ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + + } else { + cur = cur.parentNode; + if ( !cur || !cur.ownerDocument || cur === context ) { + break; + } + } + } + } + + ret = ret.length > 1 ? jQuery.unique(ret) : ret; + + return this.pushStack( ret, "closest", selectors ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + if ( !elem || typeof elem === "string" ) { + return jQuery.inArray( this[0], + // If it receives a string, the selector is used + // If it receives nothing, the siblings are used + elem ? jQuery( elem ) : this.parent().children() ); + } + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? + all : + jQuery.unique( all ) ); + }, + + andSelf: function() { + return this.add( this.prevObject ); + } +}); + +// A painfully simple check to see if an element is disconnected +// from a document (should be improved, where feasible). +function isDisconnected( node ) { + return !node || !node.parentNode || node.parentNode.nodeType === 11; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return jQuery.nth( elem, 2, "nextSibling" ); + }, + prev: function( elem ) { + return jQuery.nth( elem, 2, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( elem.parentNode.firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.makeArray( elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + nth: function( cur, result, dir, elem ) { + result = result || 1; + var num = 0; + + for ( ; cur; cur = cur[dir] ) { + if ( cur.nodeType === 1 && ++num === result ) { + break; + } + } + + return cur; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, keep ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + var retVal = !!qualifier.call( elem, i, elem ); + return retVal === keep; + }); + + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem, i ) { + return (elem === qualifier) === keep; + }); + + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); + + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } + } + + return jQuery.grep(elements, function( elem, i ) { + return (jQuery.inArray( elem, qualifier ) >= 0) === keep; + }); +} + + + + +var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, + rtagName = /<([\w:]+)/, + rtbody = /", "" ], + legend: [ 1, "
    ", "
    " ], + thead: [ 1, "", "
    " ], + tr: [ 2, "", "
    " ], + td: [ 3, "", "
    " ], + col: [ 2, "", "
    " ], + area: [ 1, "", "" ], + _default: [ 0, "", "" ] + }; + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// IE can't serialize and + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/css-tests.css" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/css-tests.css" new file mode 100644 index 0000000..9edaf69 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/css-tests.css" @@ -0,0 +1,139 @@ +/*! + * Bootstrap CSS Tests + */ + + +/* Remove background image */ +body { + background-image: none; +} + +/* Space out subhead */ +.subhead { + margin-bottom: 36px; +} +/*h4 { + margin-bottom: 5px; +} +*/ + +.type-test { + margin-bottom: 20px; + padding: 0 20px 20px; + background: url(../../docs/assets/img/grid-baseline-20px.png); +} +.type-test h1, +.type-test h2, +.type-test h3, +.type-test h4, +.type-test h5, +.type-test h6 { + background-color: rgba(255,0,0,.2); +} + + +/* colgroup tests */ +.col1 { + background-color: rgba(255,0,0,.1); +} +.col2 { + background-color: rgba(0,255,0,.1); +} +.col3 { + background-color: rgba(0,0,255,.1); +} + + +/* Fluid row inputs */ +#rowInputs .row > [class*=span], +#fluidRowInputs .row-fluid > [class*=span] { + background-color: rgba(255,0,0,.1); +} + + +/* Fluid grid */ +.fluid-grid { + margin-bottom: 45px; +} +.fluid-grid .row { + height: 40px; + padding-top: 10px; + margin-top: 10px; + color: #ddd; + text-align: center; +} +.fluid-grid .span1 { + background-color: #999; +} + + +/* Gradients */ + +[class^="gradient-"] { + width: 100%; + height: 400px; + margin: 20px 0; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.gradient-horizontal { + background-color: #333333; + background-image: -moz-linear-gradient(left, #555555, #333333); + background-image: -webkit-gradient(linear, 0 0, 100% 0, from(#555555), to(#333333)); + background-image: -webkit-linear-gradient(left, #555555, #333333); + background-image: -o-linear-gradient(left, #555555, #333333); + background-image: linear-gradient(to right, #555555, #333333); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff555555', endColorstr='#ff333333', GradientType=1); +} + +.gradient-vertical { + background-color: #474747; + background-image: -moz-linear-gradient(top, #555555, #333333); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#333333)); + background-image: -webkit-linear-gradient(top, #555555, #333333); + background-image: -o-linear-gradient(top, #555555, #333333); + background-image: linear-gradient(to bottom, #555555, #333333); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff555555', endColorstr='#ff333333', GradientType=0); +} + +.gradient-directional { + background-color: #333333; + background-image: -moz-linear-gradient(45deg, #555555, #333333); + background-image: -webkit-linear-gradient(45deg, #555555, #333333); + background-image: -o-linear-gradient(45deg, #555555, #333333); + background-image: linear-gradient(45deg, #555555, #333333); + background-repeat: repeat-x; +} + +.gradient-vertical-three { + background-color: #8940a5; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#00b3ee), color-stop(50%, #7a43b6), to(#c3325f)); + background-image: -webkit-linear-gradient(#00b3ee, #7a43b6 50%, #c3325f); + background-image: -moz-linear-gradient(top, #00b3ee, #7a43b6 50%, #c3325f); + background-image: -o-linear-gradient(#00b3ee, #7a43b6 50%, #c3325f); + background-image: linear-gradient(#00b3ee, #7a43b6 50%, #c3325f); + background-repeat: no-repeat; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff00b3ee', endColorstr='#ffc3325f', GradientType=0); +} + +.gradient-radial { + background-color: #333333; + background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(#555555), to(#333333)); + background-image: -webkit-radial-gradient(circle, #555555, #333333); + background-image: -moz-radial-gradient(circle, #555555, #333333); + background-image: -o-radial-gradient(circle, #555555, #333333); + background-repeat: no-repeat; +} + +.gradient-striped { + background-color: #555555; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/css-tests.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/css-tests.html" new file mode 100644 index 0000000..035ba8b --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/css-tests.html" @@ -0,0 +1,1345 @@ + + + + + CSS Tests · Twitter Bootstrap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +

    CSS Tests

    +

    One stop shop for quick debugging and edge-case tests of CSS.

    +
    +
    + + +
    + +
    + + + + + + + +
    +
    +
    +

    h1. Heading 1

    +

    h2. Heading 2

    +

    h3. Heading 3

    +

    h4. Heading 4

    +
    h5. Heading 5
    +
    h6. Heading 6
    +

    Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    +
    +
    +
    +
    +

    h1. Heading 1

    +

    Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    +

    h2. Heading 2

    +

    Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    +

    h3. Heading 3

    +

    Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    +

    h4. Heading 4

    +

    Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    +
    h5. Heading 5
    +

    Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    +
    h6. Heading 6
    +

    Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    +
    +
    +
    + + + + + + + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +

    + + + + + + + + +
    +
    +
    12 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    +
    +
    11 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    1 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    +
    +
    10 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    2 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    +
    +
    9 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    3 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    +
    +
    8 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    4 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    +
    +
    7 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    5 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    +
    +
    6 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    6 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    +
    + + + + + + + +
    +
    +

    Bordered without thead

    + + + + + + + + + + + + + + + + + + +
    123
    123
    123
    +

    Bordered without thead, with caption

    + + + + + + + + + + + + + + + + + + + +
    Table caption
    123
    123
    123
    +

    Bordered without thead, with colgroup

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    123
    123
    123
    369
    +

    Bordered with thead, with colgroup

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ABC
    123
    123
    123
    369
    +
    +
    +

    Bordered with thead and caption

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table caption
    123
    123
    123
    123
    369
    +

    Bordered with rowspan and colspan

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    123
    1 and 23
    123
    13
    2 and 3
    +
    +
    + + +

    Grid sizing

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    123
    1 and 23
    123
    13
    2 and 3
    +
    +
    + +

    Nesting and striping

    + + + + + + + + + + + +
    Test
    + + + + + + + + + + + + + + + + + + + + + +
    TestTest
    + test + + test +
    + test + + test +
    + test + + test +
    +
    + +

    Fluid grid sizing

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    123
    1 and 23
    123
    13
    2 and 3
    +
    +
    + + + + + + + +

    Buttons and button groups

    +
    + + + +
    + +

    Horizontal form errors

    +
    +
    + +
    + + Please correct the error +
    +
    +
    + +
    +
    +

    Prepend and append on inputs

    +
    +
    +
    + @ + +
    +
    +
    +
    + + @ +
    +
    +
    +
    + $ + + .00 +
    +
    +
    +
    +
    +

    Prepend and append with uneditable

    +
    +
    + $ + Some value here +
    +
    + Some value here + .00 +
    +
    + $ + Some value here + .00 +
    +
    +
    +
    +

    Prepend with type="submit"

    + +
    + + +
    +
    + + + +
    +
    +
    + +

    Fluid prepended and appended inputs

    +
    +
    +
    +
    +
    + @ +
    +
    +
    +
    + @ +
    +
    +
    +
    + $.00 +
    +
    +
    +
    +
    + +

    Fixed row with inputs

    +

    Inputs should not extend past the light red background, set on their parent, a .span* column.

    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +

    Fluid row with inputs

    +

    Inputs should not extend past the light red background, set on their parent, a .span* column.

    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    + +
    + +

    Inline form in fluid row

    + +
    +
    +
    + + + + +
    +
    +
    + + +
    + + +

    Fluid textarea at .span12

    +
    +
    + +
    +
    + + +
    + + +

    Selects

    +
    + +
    + + +
    + + + + + + + + +

    Dropdown link with hash URL

    + + +

    Dropdown link with custom URL and data-target

    + + +

    Dropdown on a button

    + + +
    + + + + + + +

    Default thumbnails (no grid sizing)

    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    + + + +

    Standard grid sizing

    + + +

    Fluid thumbnails

    +
    +
    + +
    +
    + + + + + + + +
    + +
    +
    +

    I'm in Section 1.

    + +
    + +
    +
    +

    I'm in Section 1.1.

    +
    +
    +

    I'm in Section 1.2.

    +
    +
    +

    I'm in Section 1.3.

    +
    +
    +
    +
    +
    +

    Howdy, I'm in Section 2.

    +
    +
    +

    What up girl, this is Section 3.

    +
    +
    +
    + +
    + + + + + + +
    +
    +

    Inline label

    +

    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Maecenas sed diam Label name eget risus varius blandit sit amet non magna. Fusce .class-name dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.

    +
    +
    +
    + + Hey! Read this. +
    +
    +
    + + +
    +
    + +
    + + + + + + + + + + + + + +
    + Maecenas faucibus mollis interdum. Nulla vitae elit libero, a pharetra augue. Donec ullamcorper nulla non metus auctor fringilla. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. + +
    + + + + +
    +
    + +

    Mini buttons: text and icon

    +
    + + +
    + +
    + + + + + + + +

    Visible on...

    +
      +
    • Phone✔ Phone
    • +
    • Tablet✔ Tablet
    • +
    • Desktop✔ Desktop
    • +
    +
      +
    • Phone + Tablet✔ Phone + Tablet
    • +
    • Tablet + Desktop✔ Tablet + Desktop
    • +
    • All✔ All
    • +
    + +

    Hidden on...

    +
      +
    • Phone✔ Phone
    • +
    • Tablet✔ Tablet
    • +
    • Desktop✔ Desktop
    • +
    +
      +
    • Phone + Tablet✔ Phone + Tablet
    • +
    • Tablet + Desktop✔ Tablet + Desktop
    • +
    • All✔ All
    • +
    + + + + + + + +

    Horizontal

    +
    + +

    Vertical

    +
    + +

    Directional

    +
    + +

    Three colors

    +
    + +

    Radial

    +
    + +

    Striped

    +
    + + + + + + + +
    + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/forms-responsive.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/forms-responsive.html" new file mode 100644 index 0000000..c3e208d --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/forms-responsive.html" @@ -0,0 +1,71 @@ + + + + + Bootstrap, from Twitter + + + + + + + + + + + + + + + + + + + + + + +
    + + + +

    Vertical alignment

    + + + span1 + +

    Width across elements

    +
    + +
    +
    + +
    +
    + span2 +
    + + + + +
    + + + span1 +
    + +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/forms.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/forms.html" new file mode 100644 index 0000000..a63d728 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/forms.html" @@ -0,0 +1,179 @@ + + + + + Bootstrap, from Twitter + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    +
    + +
    + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/navbar-fixed-top.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/navbar-fixed-top.html" new file mode 100644 index 0000000..220d639 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/navbar-fixed-top.html" @@ -0,0 +1,104 @@ + + + + + Bootstrap, from Twitter + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +

    Navbar example

    +

    This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.

    +

    + View navbar docs » +

    +
    + +
    + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/navbar-static-top.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/navbar-static-top.html" new file mode 100644 index 0000000..072e704 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/navbar-static-top.html" @@ -0,0 +1,107 @@ + + + + + Bootstrap, from Twitter + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +

    Navbar example

    +

    This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.

    +

    + View navbar docs » +

    +
    + +
    + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/navbar.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/navbar.html" new file mode 100644 index 0000000..004c59c --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tests/navbar.html" @@ -0,0 +1,107 @@ + + + + + Bootstrap, from Twitter + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + +
    +

    Navbar example

    +

    This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.

    +

    + View navbar docs » +

    +
    + +
    + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/thumbnails.less" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/thumbnails.less" new file mode 100644 index 0000000..a84a7d3 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/thumbnails.less" @@ -0,0 +1,52 @@ +// +// Thumbnails +// -------------------------------------------------- + + +// Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files + +// Make wrapper ul behave like the grid +.thumbnails { + margin-left: -@gridGutterWidth; + list-style: none; + .clearfix(); +} +// Fluid rows have no left margin +.row-fluid .thumbnails { + margin-left: 0; +} + +// Float li to make thumbnails appear in a row +.thumbnails > li { + float: left; // Explicity set the float since we don't require .span* classes + margin-bottom: @baseLineHeight; + margin-left: @gridGutterWidth; +} + +// The actual thumbnail (can be `a` or `div`) +.thumbnail { + display: block; + padding: 4px; + line-height: @baseLineHeight; + border: 1px solid #ddd; + .border-radius(@baseBorderRadius); + .box-shadow(0 1px 3px rgba(0,0,0,.055)); + .transition(all .2s ease-in-out); +} +// Add a hover state for linked versions only +a.thumbnail:hover { + border-color: @linkColor; + .box-shadow(0 1px 4px rgba(0,105,214,.25)); +} + +// Images and captions +.thumbnail > img { + display: block; + max-width: 100%; + margin-left: auto; + margin-right: auto; +} +.thumbnail .caption { + padding: 9px; + color: @gray; +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tooltip.less" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tooltip.less" new file mode 100644 index 0000000..93fac8d --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/tooltip.less" @@ -0,0 +1,70 @@ +// +// Tooltips +// -------------------------------------------------- + + +// Base class +.tooltip { + position: absolute; + z-index: @zindexTooltip; + display: block; + visibility: visible; + padding: 5px; + font-size: 11px; + .opacity(0); + &.in { .opacity(80); } + &.top { margin-top: -3px; } + &.right { margin-left: 3px; } + &.bottom { margin-top: 3px; } + &.left { margin-left: -3px; } +} + +// Wrapper for the tooltip content +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: @tooltipColor; + text-align: center; + text-decoration: none; + background-color: @tooltipBackground; + .border-radius(@baseBorderRadius); +} + +// Arrows +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip { + &.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -@tooltipArrowWidth; + border-width: @tooltipArrowWidth @tooltipArrowWidth 0; + border-top-color: @tooltipArrowColor; + } + &.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -@tooltipArrowWidth; + border-width: @tooltipArrowWidth @tooltipArrowWidth @tooltipArrowWidth 0; + border-right-color: @tooltipArrowColor; + } + &.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -@tooltipArrowWidth; + border-width: @tooltipArrowWidth 0 @tooltipArrowWidth @tooltipArrowWidth; + border-left-color: @tooltipArrowColor; + } + &.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -@tooltipArrowWidth; + border-width: 0 @tooltipArrowWidth @tooltipArrowWidth; + border-bottom-color: @tooltipArrowColor; + } +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/type.less" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/type.less" new file mode 100644 index 0000000..683a307 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/type.less" @@ -0,0 +1,235 @@ +// +// Typography +// -------------------------------------------------- + + +// Body text +// ------------------------- + +p { + margin: 0 0 @baseLineHeight / 2; +} +.lead { + margin-bottom: @baseLineHeight; + font-size: @baseFontSize * 1.5; + font-weight: 200; + line-height: @baseLineHeight * 1.5; +} + + +// Emphasis & misc +// ------------------------- + +// Ex: 14px base font * 85% = about 12px +small { font-size: 85%; } + +strong { font-weight: bold; } +em { font-style: italic; } +cite { font-style: normal; } + +// Utility classes +.muted { color: @grayLight; } +a.muted:hover { color: darken(@grayLight, 10%); } + +.text-warning { color: @warningText; } +a.text-warning:hover { color: darken(@warningText, 10%); } + +.text-error { color: @errorText; } +a.text-error:hover { color: darken(@errorText, 10%); } + +.text-info { color: @infoText; } +a.text-info:hover { color: darken(@infoText, 10%); } + +.text-success { color: @successText; } +a.text-success:hover { color: darken(@successText, 10%); } + + +// Headings +// ------------------------- + +h1, h2, h3, h4, h5, h6 { + margin: (@baseLineHeight / 2) 0; + font-family: @headingsFontFamily; + font-weight: @headingsFontWeight; + line-height: @baseLineHeight; + color: @headingsColor; + text-rendering: optimizelegibility; // Fix the character spacing for headings + small { + font-weight: normal; + line-height: 1; + color: @grayLight; + } +} + +h1, +h2, +h3 { line-height: @baseLineHeight * 2; } + +h1 { font-size: @baseFontSize * 2.75; } // ~38px +h2 { font-size: @baseFontSize * 2.25; } // ~32px +h3 { font-size: @baseFontSize * 1.75; } // ~24px +h4 { font-size: @baseFontSize * 1.25; } // ~18px +h5 { font-size: @baseFontSize; } +h6 { font-size: @baseFontSize * 0.85; } // ~12px + +h1 small { font-size: @baseFontSize * 1.75; } // ~24px +h2 small { font-size: @baseFontSize * 1.25; } // ~18px +h3 small { font-size: @baseFontSize; } +h4 small { font-size: @baseFontSize; } + + +// Page header +// ------------------------- + +.page-header { + padding-bottom: (@baseLineHeight / 2) - 1; + margin: @baseLineHeight 0 (@baseLineHeight * 1.5); + border-bottom: 1px solid @grayLighter; +} + + + +// Lists +// -------------------------------------------------- + +// Unordered and Ordered lists +ul, ol { + padding: 0; + margin: 0 0 @baseLineHeight / 2 25px; +} +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} +li { + line-height: @baseLineHeight; +} + +// Remove default list styles +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +// Single-line list items +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; + & > li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; + } +} + +// Description Lists +dl { + margin-bottom: @baseLineHeight; +} +dt, +dd { + line-height: @baseLineHeight; +} +dt { + font-weight: bold; +} +dd { + margin-left: @baseLineHeight / 2; +} +// Horizontal layout (like forms) +.dl-horizontal { + .clearfix(); // Ensure dl clears floats if empty dd elements present + dt { + float: left; + width: @horizontalComponentOffset - 20; + clear: left; + text-align: right; + .text-overflow(); + } + dd { + margin-left: @horizontalComponentOffset; + } +} + +// MISC +// ---- + +// Horizontal rules +hr { + margin: @baseLineHeight 0; + border: 0; + border-top: 1px solid @hrBorder; + border-bottom: 1px solid @white; +} + +// Abbreviations and acronyms +abbr[title], +// Added data-* attribute to help out our tooltip plugin, per https://github.com/twitter/bootstrap/issues/5257 +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted @grayLight; +} +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +// Blockquotes +blockquote { + padding: 0 0 0 15px; + margin: 0 0 @baseLineHeight; + border-left: 5px solid @grayLighter; + p { + margin-bottom: 0; + #font > .shorthand(16px,300,@baseLineHeight * 1.25); + } + small { + display: block; + line-height: @baseLineHeight; + color: @grayLight; + &:before { + content: '\2014 \00A0'; + } + } + + // Float right with text-align: right + &.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid @grayLighter; + border-left: 0; + p, + small { + text-align: right; + } + small { + &:before { + content: ''; + } + &:after { + content: '\00A0 \2014'; + } + } + } +} + +// Quotes +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +// Addresses +address { + display: block; + margin-bottom: @baseLineHeight; + font-style: normal; + line-height: @baseLineHeight; +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/utilities.less" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/utilities.less" new file mode 100644 index 0000000..314b4ff --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/utilities.less" @@ -0,0 +1,30 @@ +// +// Utility classes +// -------------------------------------------------- + + +// Quick floats +.pull-right { + float: right; +} +.pull-left { + float: left; +} + +// Toggling content +.hide { + display: none; +} +.show { + display: block; +} + +// Visibility +.invisible { + visibility: hidden; +} + +// For Affix plugin +.affix { + position: fixed; +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/variables.less" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/variables.less" new file mode 100644 index 0000000..de36074 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/variables.less" @@ -0,0 +1,301 @@ +// +// Variables +// -------------------------------------------------- + + +// Global values +// -------------------------------------------------- + + +// Grays +// ------------------------- +@black: #000; +@grayDarker: #222; +@grayDark: #333; +@gray: #555; +@grayLight: #999; +@grayLighter: #eee; +@white: #fff; + + +// Accent colors +// ------------------------- +@blue: #049cdb; +@blueDark: #0064cd; +@green: #46a546; +@red: #9d261d; +@yellow: #ffc40d; +@orange: #f89406; +@pink: #c3325f; +@purple: #7a43b6; + + +// Scaffolding +// ------------------------- +@bodyBackground: @white; +@textColor: @grayDark; + + +// Links +// ------------------------- +@linkColor: #08c; +@linkColorHover: darken(@linkColor, 15%); + + +// Typography +// ------------------------- +@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif; +@serifFontFamily: Georgia, "Times New Roman", Times, serif; +@monoFontFamily: Monaco, Menlo, Consolas, "Courier New", monospace; + +@baseFontSize: 14px; +@baseFontFamily: @sansFontFamily; +@baseLineHeight: 20px; +@altFontFamily: @serifFontFamily; + +@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily +@headingsFontWeight: bold; // instead of browser default, bold +@headingsColor: inherit; // empty to use BS default, @textColor + + +// Component sizing +// ------------------------- +// Based on 14px font-size and 20px line-height + +@fontSizeLarge: @baseFontSize * 1.25; // ~18px +@fontSizeSmall: @baseFontSize * 0.85; // ~12px +@fontSizeMini: @baseFontSize * 0.75; // ~11px + +@paddingLarge: 11px 19px; // 44px +@paddingSmall: 2px 10px; // 26px +@paddingMini: 0 6px; // 22px + +@baseBorderRadius: 4px; +@borderRadiusLarge: 6px; +@borderRadiusSmall: 3px; + + +// Tables +// ------------------------- +@tableBackground: transparent; // overall background-color +@tableBackgroundAccent: #f9f9f9; // for striping +@tableBackgroundHover: #f5f5f5; // for hover +@tableBorder: #ddd; // table and cell border + +// Buttons +// ------------------------- +@btnBackground: @white; +@btnBackgroundHighlight: darken(@white, 10%); +@btnBorder: #bbb; + +@btnPrimaryBackground: @linkColor; +@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 20%); + +@btnInfoBackground: #5bc0de; +@btnInfoBackgroundHighlight: #2f96b4; + +@btnSuccessBackground: #62c462; +@btnSuccessBackgroundHighlight: #51a351; + +@btnWarningBackground: lighten(@orange, 15%); +@btnWarningBackgroundHighlight: @orange; + +@btnDangerBackground: #ee5f5b; +@btnDangerBackgroundHighlight: #bd362f; + +@btnInverseBackground: #444; +@btnInverseBackgroundHighlight: @grayDarker; + + +// Forms +// ------------------------- +@inputBackground: @white; +@inputBorder: #ccc; +@inputBorderRadius: @baseBorderRadius; +@inputDisabledBackground: @grayLighter; +@formActionsBackground: #f5f5f5; +@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border + + +// Dropdowns +// ------------------------- +@dropdownBackground: @white; +@dropdownBorder: rgba(0,0,0,.2); +@dropdownDividerTop: #e5e5e5; +@dropdownDividerBottom: @white; + +@dropdownLinkColor: @grayDark; +@dropdownLinkColorHover: @white; +@dropdownLinkColorActive: @white; + +@dropdownLinkBackgroundActive: @linkColor; +@dropdownLinkBackgroundHover: @dropdownLinkBackgroundActive; + + + +// COMPONENT VARIABLES +// -------------------------------------------------- + + +// Z-index master list +// ------------------------- +// Used for a bird's eye view of components dependent on the z-axis +// Try to avoid customizing these :) +@zindexDropdown: 1000; +@zindexPopover: 1010; +@zindexTooltip: 1030; +@zindexFixedNavbar: 1030; +@zindexModalBackdrop: 1040; +@zindexModal: 1050; + + +// Sprite icons path +// ------------------------- +@iconSpritePath: "../img/glyphicons-halflings.png"; +@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png"; + + +// Input placeholder text color +// ------------------------- +@placeholderText: @grayLight; + + +// Hr border color +// ------------------------- +@hrBorder: @grayLighter; + + +// Horizontal forms & lists +// ------------------------- +@horizontalComponentOffset: 180px; + + +// Wells +// ------------------------- +@wellBackground: #f5f5f5; + + +// Navbar +// ------------------------- +@navbarCollapseWidth: 979px; +@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1; + +@navbarHeight: 40px; +@navbarBackgroundHighlight: #ffffff; +@navbarBackground: darken(@navbarBackgroundHighlight, 5%); +@navbarBorder: darken(@navbarBackground, 12%); + +@navbarText: #777; +@navbarLinkColor: #777; +@navbarLinkColorHover: @grayDark; +@navbarLinkColorActive: @gray; +@navbarLinkBackgroundHover: transparent; +@navbarLinkBackgroundActive: darken(@navbarBackground, 5%); + +@navbarBrandColor: @navbarLinkColor; + +// Inverted navbar +@navbarInverseBackground: #111111; +@navbarInverseBackgroundHighlight: #222222; +@navbarInverseBorder: #252525; + +@navbarInverseText: @grayLight; +@navbarInverseLinkColor: @grayLight; +@navbarInverseLinkColorHover: @white; +@navbarInverseLinkColorActive: @navbarInverseLinkColorHover; +@navbarInverseLinkBackgroundHover: transparent; +@navbarInverseLinkBackgroundActive: @navbarInverseBackground; + +@navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%); +@navbarInverseSearchBackgroundFocus: @white; +@navbarInverseSearchBorder: @navbarInverseBackground; +@navbarInverseSearchPlaceholderColor: #ccc; + +@navbarInverseBrandColor: @navbarInverseLinkColor; + + +// Pagination +// ------------------------- +@paginationBackground: #fff; +@paginationBorder: #ddd; +@paginationActiveBackground: #f5f5f5; + + +// Hero unit +// ------------------------- +@heroUnitBackground: @grayLighter; +@heroUnitHeadingColor: inherit; +@heroUnitLeadColor: inherit; + + +// Form states and alerts +// ------------------------- +@warningText: #c09853; +@warningBackground: #fcf8e3; +@warningBorder: darken(spin(@warningBackground, -10), 3%); + +@errorText: #b94a48; +@errorBackground: #f2dede; +@errorBorder: darken(spin(@errorBackground, -10), 3%); + +@successText: #468847; +@successBackground: #dff0d8; +@successBorder: darken(spin(@successBackground, -10), 5%); + +@infoText: #3a87ad; +@infoBackground: #d9edf7; +@infoBorder: darken(spin(@infoBackground, -10), 7%); + + +// Tooltips and popovers +// ------------------------- +@tooltipColor: #fff; +@tooltipBackground: #000; +@tooltipArrowWidth: 5px; +@tooltipArrowColor: @tooltipBackground; + +@popoverBackground: #fff; +@popoverArrowWidth: 10px; +@popoverArrowColor: #fff; +@popoverTitleBackground: darken(@popoverBackground, 3%); + +// Special enhancement for popovers +@popoverArrowOuterWidth: @popoverArrowWidth + 1; +@popoverArrowOuterColor: rgba(0,0,0,.25); + + + +// GRID +// -------------------------------------------------- + + +// Default 940px grid +// ------------------------- +@gridColumns: 12; +@gridColumnWidth: 60px; +@gridGutterWidth: 20px; +@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1)); + +// 1200px min +@gridColumnWidth1200: 70px; +@gridGutterWidth1200: 30px; +@gridRowWidth1200: (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1)); + +// 768px-979px +@gridColumnWidth768: 42px; +@gridGutterWidth768: 20px; +@gridRowWidth768: (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1)); + + +// Fluid grid +// ------------------------- +@fluidGridColumnWidth: percentage(@gridColumnWidth/@gridRowWidth); +@fluidGridGutterWidth: percentage(@gridGutterWidth/@gridRowWidth); + +// 1200px min +@fluidGridColumnWidth1200: percentage(@gridColumnWidth1200/@gridRowWidth1200); +@fluidGridGutterWidth1200: percentage(@gridGutterWidth1200/@gridRowWidth1200); + +// 768px-979px +@fluidGridColumnWidth768: percentage(@gridColumnWidth768/@gridRowWidth768); +@fluidGridGutterWidth768: percentage(@gridGutterWidth768/@gridRowWidth768); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/wells.less" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/wells.less" new file mode 100644 index 0000000..84a744b --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/twbs-222/wells.less" @@ -0,0 +1,29 @@ +// +// Wells +// -------------------------------------------------- + + +// Base class +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: @wellBackground; + border: 1px solid darken(@wellBackground, 7%); + .border-radius(@baseBorderRadius); + .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); + blockquote { + border-color: #ddd; + border-color: rgba(0,0,0,.15); + } +} + +// Sizes +.well-large { + padding: 24px; + .border-radius(@borderRadiusLarge); +} +.well-small { + padding: 9px; + .border-radius(@borderRadiusSmall); +} diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/variables.less" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/variables.less" new file mode 100644 index 0000000..1140cf1 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/assets/less/variables.less" @@ -0,0 +1,303 @@ +// +// Variables +// -------------------------------------------------- + + +// Global values +// -------------------------------------------------- + + +// Grays +// ------------------------- +@black: #000; +@grayDarker: #222; +@grayDark: #333; +@gray: #555; +@grayLight: #999; +@grayLighter: #eee; +@white: #fff; + + +// Accent colors +// ------------------------- +@blue: #009add; // Kyruus Light Blue +@blueDark: #005f9b; // Kyruus Blue +@green: #46a546; +@red: #9d261d; +@yellow: #ffc40d; +@orange: #f89406; +@pink: #c3325f; +@purple: #7a43b6; + +@redDark: darken(@red, 10%); + + +// Scaffolding +// ------------------------- +@bodyBackground: @white; +@textColor: @grayDark; + + +// Links +// ------------------------- +@linkColor: lighten(@red, 10%); +@linkColorHover: @red; + + +// Typography +// ------------------------- +@sansFontFamily: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif; +@serifFontFamily: museo-slab, "Helvetica Neue", Helvetica, Arial, sans-serif; +@monoFontFamily: Menlo, Monaco, Consolas, "Courier New", monospace; + +@baseFontSize: 14px; +@baseFontFamily: @sansFontFamily; +@baseLineHeight: 20px; +@altFontFamily: @serifFontFamily; + +@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily +@headingsFontWeight: bold; // instead of browser default, bold +@headingsColor: inherit; // empty to use BS default, @textColor + + +// Component sizing +// ------------------------- +// Based on 14px font-size and 20px line-height + +@fontSizeLarge: @baseFontSize * 1.25; // ~18px +@fontSizeSmall: @baseFontSize * 0.85; // ~12px +@fontSizeMini: @baseFontSize * 0.75; // ~11px + +@paddingLarge: 11px 19px; // 44px +@paddingSmall: 2px 10px; // 26px +@paddingMini: 0 6px; // 22px + +@baseBorderRadius: 4px; +@borderRadiusLarge: 6px; +@borderRadiusSmall: 3px; + + +// Tables +// ------------------------- +@tableBackground: transparent; // overall background-color +@tableBackgroundAccent: #f9f9f9; // for striping +@tableBackgroundHover: #f5f5f5; // for hover +@tableBorder: #ddd; // table and cell border + +// Buttons +// ------------------------- +@btnBackground: @white; +@btnBackgroundHighlight: darken(@white, 10%); +@btnBorder: #bbb; + +@btnPrimaryBackground: #fffeb8; +@btnPrimaryBackgroundHighlight: #c49c38; + +@btnInfoBackground: #5bc0de; +@btnInfoBackgroundHighlight: #2f96b4; + +@btnSuccessBackground: #62c462; +@btnSuccessBackgroundHighlight: #51a351; + +@btnWarningBackground: lighten(@orange, 15%); +@btnWarningBackgroundHighlight: @orange; + +@btnDangerBackground: lighten(@red, 20%); +@btnDangerBackgroundHighlight: lighten(@red, 5%); + +@btnInverseBackground: #444; +@btnInverseBackgroundHighlight: @grayDarker; + + +// Forms +// ------------------------- +@inputBackground: @white; +@inputBorder: #ccc; +@inputBorderRadius: @baseBorderRadius; +@inputDisabledBackground: @grayLighter; +@formActionsBackground: #f5f5f5; +@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border + + +// Dropdowns +// ------------------------- +@dropdownBackground: @white; +@dropdownBorder: rgba(0,0,0,.2); +@dropdownDividerTop: #e5e5e5; +@dropdownDividerBottom: @white; + +@dropdownLinkColor: @grayDark; +@dropdownLinkColorHover: @white; +@dropdownLinkColorActive: @white; + +@dropdownLinkBackgroundActive: @linkColor; +@dropdownLinkBackgroundHover: @dropdownLinkBackgroundActive; + + + +// COMPONENT VARIABLES +// -------------------------------------------------- + + +// Z-index master list +// ------------------------- +// Used for a bird's eye view of components dependent on the z-axis +// Try to avoid customizing these :) +@zindexDropdown: 1000; +@zindexPopover: 1010; +@zindexTooltip: 1030; +@zindexFixedNavbar: 1030; +@zindexModalBackdrop: 1040; +@zindexModal: 1050; + + +// Sprite icons path +// ------------------------- +@iconSpritePath: "../img/glyphicons-halflings.png"; +@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png"; + + +// Input placeholder text color +// ------------------------- +@placeholderText: @grayLight; + + +// Hr border color +// ------------------------- +@hrBorder: @grayLighter; + + +// Horizontal forms & lists +// ------------------------- +@horizontalComponentOffset: 180px; + + +// Wells +// ------------------------- +@wellBackground: #f5f5f5; + + +// Navbar +// ------------------------- +@navbarCollapseWidth: 979px; +@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1; + +@navbarHeight: 40px; +@navbarBackgroundHighlight: #ffffff; +@navbarBackground: darken(@navbarBackgroundHighlight, 5%); +@navbarBorder: darken(@navbarBackground, 12%); + +@navbarText: #777; +@navbarLinkColor: #777; +@navbarLinkColorHover: @grayDark; +@navbarLinkColorActive: @gray; +@navbarLinkBackgroundHover: transparent; +@navbarLinkBackgroundActive: darken(@navbarBackground, 5%); + +@navbarBrandColor: @navbarLinkColor; + +// Inverted navbar +@navbarInverseBackground: #111111; +@navbarInverseBackgroundHighlight: #222222; +@navbarInverseBorder: #252525; + +@navbarInverseText: @grayLight; +@navbarInverseLinkColor: @grayLight; +@navbarInverseLinkColorHover: @white; +@navbarInverseLinkColorActive: @navbarInverseLinkColorHover; +@navbarInverseLinkBackgroundHover: transparent; +@navbarInverseLinkBackgroundActive: @navbarInverseBackground; + +@navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%); +@navbarInverseSearchBackgroundFocus: @white; +@navbarInverseSearchBorder: @navbarInverseBackground; +@navbarInverseSearchPlaceholderColor: #ccc; + +@navbarInverseBrandColor: @navbarInverseLinkColor; + + +// Pagination +// ------------------------- +@paginationBackground: #fff; +@paginationBorder: #ddd; +@paginationActiveBackground: #f5f5f5; + + +// Hero unit +// ------------------------- +@heroUnitBackground: @grayLighter; +@heroUnitHeadingColor: inherit; +@heroUnitLeadColor: inherit; + + +// Form states and alerts +// ------------------------- +@warningText: #c09853; +@warningBackground: #fcf8e3; +@warningBorder: darken(spin(@warningBackground, -10), 3%); + +@errorText: #b94a48; +@errorBackground: #f2dede; +@errorBorder: darken(spin(@errorBackground, -10), 3%); + +@successText: #468847; +@successBackground: #dff0d8; +@successBorder: darken(spin(@successBackground, -10), 5%); + +@infoText: #3a87ad; +@infoBackground: #d9edf7; +@infoBorder: darken(spin(@infoBackground, -10), 7%); + + +// Tooltips and popovers +// ------------------------- +@tooltipColor: #fff; +@tooltipBackground: #000; +@tooltipArrowWidth: 5px; +@tooltipArrowColor: @tooltipBackground; + +@popoverBackground: #fff; +@popoverArrowWidth: 10px; +@popoverArrowColor: #fff; +@popoverTitleBackground: darken(@popoverBackground, 3%); + +// Special enhancement for popovers +@popoverArrowOuterWidth: @popoverArrowWidth + 1; +@popoverArrowOuterColor: rgba(0,0,0,.25); + + + +// GRID +// -------------------------------------------------- + + +// Default 940px grid +// ------------------------- +@gridColumns: 12; +@gridColumnWidth: 60px; +@gridGutterWidth: 20px; +@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1)); + +// 1200px min +@gridColumnWidth1200: 70px; +@gridGutterWidth1200: 30px; +@gridRowWidth1200: (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1)); + +// 768px-979px +@gridColumnWidth768: 42px; +@gridGutterWidth768: 20px; +@gridRowWidth768: (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1)); + + +// Fluid grid +// ------------------------- +@fluidGridColumnWidth: percentage(@gridColumnWidth/@gridRowWidth); +@fluidGridGutterWidth: percentage(@gridGutterWidth/@gridRowWidth); + +// 1200px min +@fluidGridColumnWidth1200: percentage(@gridColumnWidth1200/@gridRowWidth1200); +@fluidGridGutterWidth1200: percentage(@gridGutterWidth1200/@gridRowWidth1200); + +// 768px-979px +@fluidGridColumnWidth768: percentage(@gridColumnWidth768/@gridRowWidth768); +@fluidGridGutterWidth768: percentage(@gridGutterWidth768/@gridRowWidth768); diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/design.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/design.html" new file mode 100644 index 0000000..2af2905 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/design.html" @@ -0,0 +1,333 @@ + + + + + + + + + Font Awesome Copy & Paste + + + + + + + + + + + + + + + + + + + +
    +
    + +

    Copy & Paste

    +

    + Install FontAwesome.otf on your system. + Then, copy and paste any of these icons to use them in your mockups & designs. +

    + +
    +
    + + +
    +
    +
    +
    +
      +
    • icon-glass (&#xf000;)
    • +
    • icon-music (&#xf001;)
    • +
    • icon-search (&#xf002;)
    • +
    • icon-envelope (&#xf003;)
    • +
    • icon-heart (&#xf004;)
    • +
    • icon-star (&#xf005;)
    • +
    • icon-star-empty (&#xf006;)
    • +
    • icon-user (&#xf007;)
    • +
    • icon-film (&#xf008;)
    • +
    • icon-th-large (&#xf009;)
    • +
    • icon-th (&#xf00a;)
    • +
    • icon-th-list (&#xf00b;)
    • +
    • icon-ok (&#xf00c;)
    • +
    • icon-remove (&#xf00d;)
    • +
    • icon-zoom-in (&#xf00e;)
    • +
    • icon-zoom-out (&#xf010;)
    • +
    • icon-off (&#xf011;)
    • +
    • icon-signal (&#xf012;)
    • +
    • icon-cog (&#xf013;)
    • +
    • icon-trash (&#xf014;)
    • +
    • icon-home (&#xf015;)
    • +
    • icon-file (&#xf016;)
    • +
    • icon-time (&#xf017;)
    • +
    • icon-road (&#xf018;)
    • +
    • icon-download-alt (&#xf019;)
    • +
    • icon-download (&#xf01a;)
    • +
    • icon-upload (&#xf01b;)
    • +
    • icon-inbox (&#xf01c;)
    • +
    • icon-play-circle (&#xf01d;)
    • +
    • icon-repeat (&#xf01e;)
    • +
    • icon-refresh (&#xf021;)
    • +
    • icon-list-alt (&#xf022;)
    • +
    • icon-lock (&#xf023;)
    • +
    • icon-flag (&#xf024;)
    • +
    • icon-headphones (&#xf025;)
    • +
    • icon-volume-off (&#xf026;)
    • +
    • icon-volume-down (&#xf027;)
    • +
    • icon-volume-up (&#xf028;)
    • +
    • icon-qrcode (&#xf029;)
    • +
    • icon-barcode (&#xf02a;)
    • +
    • icon-tag (&#xf02b;)
    • +
    • icon-tags (&#xf02c;)
    • +
    • icon-book (&#xf02d;)
    • +
    • icon-bookmark (&#xf02e;)
    • +
    • icon-print (&#xf02f;)
    • +
    • icon-camera (&#xf030;)
    • +
    • icon-font (&#xf031;)
    • +
    • icon-bold (&#xf032;)
    • +
    • icon-italic (&#xf033;)
    • +
    • icon-text-height (&#xf034;)
    • +
    • icon-text-width (&#xf035;)
    • +
    • icon-align-left (&#xf036;)
    • +
    • icon-align-center (&#xf037;)
    • +
    • icon-align-right (&#xf038;)
    • +
    • icon-align-justify (&#xf039;)
    • +
    • icon-list (&#xf03a;)
    • +
    • icon-indent-left (&#xf03b;)
    • +
    • icon-indent-right (&#xf03c;)
    • +
    • icon-facetime-video (&#xf03d;)
    • +
    • icon-picture (&#xf03e;)
    • +
    • icon-pencil (&#xf040;)
    • +
    • icon-map-marker (&#xf041;)
    • +
    • icon-adjust (&#xf042;)
    • +
    • icon-tint (&#xf043;)
    • +
    • icon-edit (&#xf044;)
    • +
    • icon-share (&#xf045;)
    • +
    • icon-check (&#xf046;)
    • +
    • icon-move (&#xf047;)
    • +
    • icon-step-backward (&#xf048;)
    • +
    • icon-fast-backward (&#xf049;)
    • +
    • icon-backward (&#xf04a;)
    • +
    • icon-play (&#xf04b;)
    • +
    • icon-pause (&#xf04c;)
    • +
    • icon-stop (&#xf04d;)
    • +
    • icon-forward (&#xf04e;)
    • +
    • icon-fast-forward (&#xf050;)
    • +
    • icon-step-forward (&#xf051;)
    • +
    • icon-eject (&#xf052;)
    • +
    • icon-chevron-left (&#xf053;)
    • +
    • icon-chevron-right (&#xf054;)
    • +
    • icon-plus-sign (&#xf055;)
    • +
    • icon-minus-sign (&#xf056;)
    • +
    +
    +
    +
      +
    • icon-remove-sign (&#xf057;)
    • +
    • icon-ok-sign (&#xf058;)
    • +
    • icon-question-sign (&#xf059;)
    • +
    • icon-info-sign (&#xf05a;)
    • +
    • icon-screenshot (&#xf05b;)
    • +
    • icon-remove-circle (&#xf05c;)
    • +
    • icon-ok-circle (&#xf05d;)
    • +
    • icon-ban-circle (&#xf05e;)
    • +
    • icon-arrow-left (&#xf060;)
    • +
    • icon-arrow-right (&#xf061;)
    • +
    • icon-arrow-up (&#xf062;)
    • +
    • icon-arrow-down (&#xf063;)
    • +
    • icon-share-alt (&#xf064;)
    • +
    • icon-resize-full (&#xf065;)
    • +
    • icon-resize-small (&#xf066;)
    • +
    • icon-plus (&#xf067;)
    • +
    • icon-minus (&#xf068;)
    • +
    • icon-asterisk (&#xf069;)
    • +
    • icon-exclamation-sign (&#xf06a;)
    • +
    • icon-gift (&#xf06b;)
    • +
    • icon-leaf (&#xf06c;)
    • +
    • icon-fire (&#xf06d;)
    • +
    • icon-eye-open (&#xf06e;)
    • +
    • icon-eye-close (&#xf070;)
    • +
    • icon-warning-sign (&#xf071;)
    • +
    • icon-plane (&#xf072;)
    • +
    • icon-calendar (&#xf073;)
    • +
    • icon-random (&#xf074;)
    • +
    • icon-comment (&#xf075;)
    • +
    • icon-magnet (&#xf076;)
    • +
    • icon-chevron-up (&#xf077;)
    • +
    • icon-chevron-down (&#xf078;)
    • +
    • icon-retweet (&#xf079;)
    • +
    • icon-shopping-cart (&#xf07a;)
    • +
    • icon-folder-close (&#xf07b;)
    • +
    • icon-folder-open (&#xf07c;)
    • +
    • icon-resize-vertical (&#xf07d;)
    • +
    • icon-resize-horizontal (&#xf07e;)
    • +
    • icon-bar-chart (&#xf080;)
    • +
    • icon-twitter-sign (&#xf081;)
    • +
    • icon-facebook-sign (&#xf082;)
    • +
    • icon-camera-retro (&#xf083;)
    • +
    • icon-key (&#xf084;)
    • +
    • icon-cogs (&#xf085;)
    • +
    • icon-comments (&#xf086;)
    • +
    • icon-thumbs-up (&#xf087;)
    • +
    • icon-thumbs-down (&#xf088;)
    • +
    • icon-star-half (&#xf089;)
    • +
    • icon-heart-empty (&#xf08a;)
    • +
    • icon-signout (&#xf08b;)
    • +
    • icon-linkedin-sign (&#xf08c;)
    • +
    • icon-pushpin (&#xf08d;)
    • +
    • icon-external-link (&#xf08e;)
    • +
    • icon-signin (&#xf090;)
    • +
    • icon-trophy (&#xf091;)
    • +
    • icon-github-sign (&#xf092;)
    • +
    • icon-upload-alt (&#xf093;)
    • +
    • icon-lemon (&#xf094;)
    • +
    • icon-phone (&#xf095;)
    • +
    • icon-check-empty (&#xf096;)
    • +
    • icon-bookmark-empty (&#xf097;)
    • +
    • icon-phone-sign (&#xf098;)
    • +
    • icon-twitter (&#xf099;)
    • +
    • icon-facebook (&#xf09a;)
    • +
    • icon-github (&#xf09b;)
    • +
    • icon-unlock (&#xf09c;)
    • +
    • icon-credit-card (&#xf09d;)
    • +
    • icon-rss (&#xf09e;)
    • +
    • icon-hdd (&#xf0a0;)
    • +
    • icon-bullhorn (&#xf0a1;)
    • +
    • icon-bell (&#xf0a2;)
    • +
    • icon-certificate (&#xf0a3;)
    • +
    • icon-hand-right (&#xf0a4;)
    • +
    • icon-hand-left (&#xf0a5;)
    • +
    • icon-hand-up (&#xf0a6;)
    • +
    • icon-hand-down (&#xf0a7;)
    • +
    • icon-circle-arrow-left (&#xf0a8;)
    • +
    • icon-circle-arrow-right (&#xf0a9;)
    • +
    • icon-circle-arrow-up (&#xf0aa;)
    • +
    • icon-circle-arrow-down (&#xf0ab;)
    • +
    • icon-globe (&#xf0ac;)
    • +
    • icon-wrench (&#xf0ad;)
    • +
    +
    +
    +
      +
    • icon-tasks (&#xf0ae;)
    • +
    • icon-filter (&#xf0b0;)
    • +
    • icon-briefcase (&#xf0b1;)
    • +
    • icon-fullscreen (&#xf0b2;)
    • +
    • icon-group (&#xf0c0;)
    • +
    • icon-link (&#xf0c1;)
    • +
    • icon-cloud (&#xf0c2;)
    • +
    • icon-beaker (&#xf0c3;)
    • +
    • icon-cut (&#xf0c4;)
    • +
    • icon-copy (&#xf0c5;)
    • +
    • icon-paper-clip (&#xf0c6;)
    • +
    • icon-save (&#xf0c7;)
    • +
    • icon-sign-blank (&#xf0c8;)
    • +
    • icon-reorder (&#xf0c9;)
    • +
    • icon-list-ul (&#xf0ca;)
    • +
    • icon-list-ol (&#xf0cb;)
    • +
    • icon-strikethrough (&#xf0cc;)
    • +
    • icon-underline (&#xf0cd;)
    • +
    • icon-table (&#xf0ce;)
    • +
    • icon-magic (&#xf0d0;)
    • +
    • icon-truck (&#xf0d1;)
    • +
    • icon-pinterest (&#xf0d2;)
    • +
    • icon-pinterest-sign (&#xf0d3;)
    • +
    • icon-google-plus-sign (&#xf0d4;)
    • +
    • icon-google-plus (&#xf0d5;)
    • +
    • icon-money (&#xf0d6;)
    • +
    • icon-caret-down (&#xf0d7;)
    • +
    • icon-caret-up (&#xf0d8;)
    • +
    • icon-caret-left (&#xf0d9;)
    • +
    • icon-caret-right (&#xf0da;)
    • +
    • icon-columns (&#xf0db;)
    • +
    • icon-sort (&#xf0dc;)
    • +
    • icon-sort-down (&#xf0dd;)
    • +
    • icon-sort-up (&#xf0de;)
    • +
    • icon-envelope-alt (&#xf0e0;)
    • +
    • icon-linkedin (&#xf0e1;)
    • +
    • icon-undo (&#xf0e2;)
    • +
    • icon-legal (&#xf0e3;)
    • +
    • icon-dashboard (&#xf0e4;)
    • +
    • icon-comment-alt (&#xf0e5;)
    • +
    • icon-comments-alt (&#xf0e6;)
    • +
    • icon-bolt (&#xf0e7;)
    • +
    • icon-sitemap (&#xf0e8;)
    • +
    • icon-umbrella (&#xf0e9;)
    • +
    • icon-paste (&#xf0ea;)
    • +
    • icon-lightbulb (&#xf0eb;)
    • +
    • icon-exchange (&#xf0ec;)
    • +
    • icon-cloud-download (&#xf0ed;)
    • +
    • icon-cloud-upload (&#xf0ee;)
    • +
    • icon-user-md (&#xf0f0;)
    • +
    • icon-stethoscope (&#xf0f1;)
    • +
    • icon-suitcase (&#xf0f2;)
    • +
    • icon-bell-alt (&#xf0f3;)
    • +
    • icon-coffee (&#xf0f4;)
    • +
    • icon-food (&#xf0f5;)
    • +
    • icon-file-alt (&#xf0f6;)
    • +
    • icon-building (&#xf0f7;)
    • +
    • icon-hospital (&#xf0f8;)
    • +
    • icon-ambulance (&#xf0f9;)
    • +
    • icon-medkit (&#xf0fa;)
    • +
    • icon-fighter-jet (&#xf0fb;)
    • +
    • icon-beer (&#xf0fc;)
    • +
    • icon-h-sign (&#xf0fd;)
    • +
    • icon-plus-sign-alt (&#xf0fe;)
    • +
    • icon-double-angle-left (&#xf100;)
    • +
    • icon-double-angle-right (&#xf101;)
    • +
    • icon-double-angle-up (&#xf102;)
    • +
    • icon-double-angle-down (&#xf103;)
    • +
    • icon-angle-left (&#xf104;)
    • +
    • icon-angle-right (&#xf105;)
    • +
    • icon-angle-up (&#xf106;)
    • +
    • icon-angle-down (&#xf107;)
    • +
    • icon-desktop (&#xf108;)
    • +
    • icon-laptop (&#xf109;)
    • +
    • icon-tablet (&#xf10a;)
    • +
    • icon-mobile-phone (&#xf10b;)
    • +
    • icon-circle-blank (&#xf10c;)
    • +
    • icon-quote-left (&#xf10d;)
    • +
    • icon-quote-right (&#xf10e;)
    • +
    • icon-spinner (&#xf110;)
    • +
    • icon-circle (&#xf111;)
    • +
    • icon-reply (&#xf112;)
    • +
    +
    +
    +
    + + + + + + +
    + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/index.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/index.html" new file mode 100644 index 0000000..804b5f4 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/index.html" @@ -0,0 +1,1462 @@ + + + + + + + + + + Font Awesome, the iconic font designed for use with Twitter Bootstrap + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +

    Font Awesome

    +

    The iconic font designed for
    use with Twitter Bootstrap

    + +
    + Version 3.0.0 • Created & Maintained by Dave Gandy +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + + Watch + 9000+ + + + Fork + 800+ + + +
    +
    + +
    +
    +
    +
    +

    One font, 249 icons

    + In a single collection, Font Awesome is a pictographic language of web-related actions. +
    +
    +

    CSS control

    + Easily style icon color, size, shadow, and anything that's possible with CSS. +
    +
    +

    Infinite scalability

    + Scalable vector graphics means every icon looks awesome at any size. +
    +
    +
    +
    +

    Free, as in Beer

    + Font Awesome is completely free for commercial use. Check out the license. +
    +
    +

    IE7 Support

    + Font Awesome supports IE7. If you need it, you have my condolences. +
    +
    +

    Perfect on Retina Displays

    + Font Awesome icons are vectors, which mean they're gorgeous on high-resolution displays. +
    +
    +
    +
    +

    Made for Twitter Bootstrap

    + Designed from scratch to be fully compatible with Twitter Bootstrap 2.2.2. +
    +
    +

    Designer Friendly

    + Install FontAwesome.otf and visit the copy & paste page. Happy designing. +
    +
    +

    Screen reader compatible

    + Font Awesome won't trip up screen readers, unlike other icon fonts. +
    +
    +
    + +
    + +
    +
    +

    Pixel Perfection at 14px

    + Every single icon re-created from the ground up to be optimized for Bootstrap's default 14px. +
    +
    +

    Font Sub-setting

    + Thanks to @grantgordon and @johnsmclay, you can sub-set to get just the icons you need. +
    +
    +

    Better License

    + SIL open font license, MIT license for code. No more attribution required, but much appreciated. +
    +
    +
    +
    +

    40 New Icons in 3.0

    + Requested by the active community on the Font Awesome GitHub project. +
    +
    +

    New Styles

    + New styles for animated spinning icons, icons with 2x-4x size multipliers, icon borders, & more. +
    +
    +

    21% Smaller Payload

    + 3.0 is smaller, even with 16% more icons. Crazy small if you sub-set just the icons you need. +
    +
    +
    + +
    +
    + +

    + You asked, Font Awesome delivers with 40 shiny new icons in version 3.0. New icons can be requested on the + Font Awesome GitHub project. Or even + better, you can contribute your own icons. +

    +
    + +
    +
      +
    • icon-cloud-download
    • +
    • icon-cloud-upload
    • +
    • icon-lightbulb
    • +
    • icon-exchange
    • +
    • icon-bell-alt
    • +
    • icon-file-alt
    • +
    • icon-beer
    • +
    • icon-coffee
    • +
    • icon-food
    • +
    • icon-fighter-jet
    • +
    +
    +
    +
      +
    • icon-user-md
    • +
    • icon-stethoscope
    • +
    • icon-suitcase
    • +
    • icon-building
    • +
    • icon-hospital
    • +
    • icon-ambulance
    • +
    • icon-medkit
    • +
    • icon-h-sign
    • +
    • icon-plus-sign-alt
    • +
    • icon-spinner
    • +
    +
    +
    +
      +
    • icon-angle-left
    • +
    • icon-angle-right
    • +
    • icon-angle-up
    • +
    • icon-angle-down
    • +
    • icon-double-angle-left
    • +
    • icon-double-angle-right
    • +
    • icon-double-angle-up
    • +
    • icon-double-angle-down
    • +
    • icon-circle-blank
    • +
    • icon-circle
    • +
    +
    +
    +
      +
    • icon-desktop
    • +
    • icon-laptop
    • +
    • icon-tablet
    • +
    • icon-mobile-phone
    • +
    • icon-quote-left
    • +
    • icon-quote-right
    • +
    • icon-reply
    • +
    • icon-github-alt
    • +
    • icon-folder-close-alt
    • +
    • icon-folder-open-alt
    • +
    +
    +
    + +
    +
    + +
    + +
    +
      +
    • icon-adjust
    • +
    • icon-asterisk
    • +
    • icon-ban-circle
    • +
    • icon-bar-chart
    • +
    • icon-barcode
    • +
    • icon-beaker
    • +
    • icon-beer
    • +
    • icon-bell
    • +
    • icon-bell-alt
    • +
    • icon-bolt
    • +
    • icon-book
    • +
    • icon-bookmark
    • +
    • icon-bookmark-empty
    • +
    • icon-briefcase
    • +
    • icon-bullhorn
    • +
    • icon-calendar
    • +
    • icon-camera
    • +
    • icon-camera-retro
    • +
    • icon-certificate
    • +
    • icon-check
    • +
    • icon-check-empty
    • +
    • icon-circle
    • +
    • icon-circle-blank
    • +
    • icon-cloud
    • +
    • icon-cloud-download
    • +
    • icon-cloud-upload
    • +
    • icon-coffee
    • +
    • icon-cog
    • +
    • icon-cogs
    • +
    • icon-comment
    • +
    • icon-comment-alt
    • +
    • icon-comments
    • +
    • icon-comments-alt
    • +
    • icon-credit-card
    • +
    • icon-dashboard
    • +
    • icon-desktop
    • +
    • icon-download
    • +
    • icon-download-alt
    • +
    +
    +
    +
      +
    • icon-edit
    • +
    • icon-envelope
    • +
    • icon-envelope-alt
    • +
    • icon-exchange
    • +
    • icon-exclamation-sign
    • +
    • icon-external-link
    • +
    • icon-eye-close
    • +
    • icon-eye-open
    • +
    • icon-facetime-video
    • +
    • icon-fighter-jet
    • +
    • icon-film
    • +
    • icon-filter
    • +
    • icon-fire
    • +
    • icon-flag
    • +
    • icon-folder-close
    • +
    • icon-folder-open
    • +
    • icon-folder-close-alt
    • +
    • icon-folder-open-alt
    • +
    • icon-food
    • +
    • icon-gift
    • +
    • icon-glass
    • +
    • icon-globe
    • +
    • icon-group
    • +
    • icon-hdd
    • +
    • icon-headphones
    • +
    • icon-heart
    • +
    • icon-heart-empty
    • +
    • icon-home
    • +
    • icon-inbox
    • +
    • icon-info-sign
    • +
    • icon-key
    • +
    • icon-leaf
    • +
    • icon-laptop
    • +
    • icon-legal
    • +
    • icon-lemon
    • +
    • icon-lightbulb
    • +
    • icon-lock
    • +
    • icon-unlock
    • +
    +
    +
    +
      +
    • icon-magic
    • +
    • icon-magnet
    • +
    • icon-map-marker
    • +
    • icon-minus
    • +
    • icon-minus-sign
    • +
    • icon-mobile-phone
    • +
    • icon-money
    • +
    • icon-move
    • +
    • icon-music
    • +
    • icon-off
    • +
    • icon-ok
    • +
    • icon-ok-circle
    • +
    • icon-ok-sign
    • +
    • icon-pencil
    • +
    • icon-picture
    • +
    • icon-plane
    • +
    • icon-plus
    • +
    • icon-plus-sign
    • +
    • icon-print
    • +
    • icon-pushpin
    • +
    • icon-qrcode
    • +
    • icon-question-sign
    • +
    • icon-quote-left
    • +
    • icon-quote-right
    • +
    • icon-random
    • +
    • icon-refresh
    • +
    • icon-remove
    • +
    • icon-remove-circle
    • +
    • icon-remove-sign
    • +
    • icon-reorder
    • +
    • icon-reply
    • +
    • icon-resize-horizontal
    • +
    • icon-resize-vertical
    • +
    • icon-retweet
    • +
    • icon-road
    • +
    • icon-rss
    • +
    • icon-screenshot
    • +
    • icon-search
    • +
    +
    +
    +
      +
    • icon-share
    • +
    • icon-share-alt
    • +
    • icon-shopping-cart
    • +
    • icon-signal
    • +
    • icon-signin
    • +
    • icon-signout
    • +
    • icon-sitemap
    • +
    • icon-sort
    • +
    • icon-sort-down
    • +
    • icon-sort-up
    • +
    • icon-spinner
    • +
    • icon-star
    • +
    • icon-star-empty
    • +
    • icon-star-half
    • +
    • icon-tablet
    • +
    • icon-tag
    • +
    • icon-tags
    • +
    • icon-tasks
    • +
    • icon-thumbs-down
    • +
    • icon-thumbs-up
    • +
    • icon-time
    • +
    • icon-tint
    • +
    • icon-trash
    • +
    • icon-trophy
    • +
    • icon-truck
    • +
    • icon-umbrella
    • +
    • icon-upload
    • +
    • icon-upload-alt
    • +
    • icon-user
    • +
    • icon-user-md
    • +
    • icon-volume-off
    • +
    • icon-volume-down
    • +
    • icon-volume-up
    • +
    • icon-warning-sign
    • +
    • icon-wrench
    • +
    • icon-zoom-in
    • +
    • icon-zoom-out
    • +
    +
    +
    + +
    +
    + +
    +
    +
      +
    • icon-file
    • +
    • icon-file-alt
    • +
    • icon-cut
    • +
    • icon-copy
    • +
    • icon-paste
    • +
    • icon-save
    • +
    • icon-undo
    • +
    • icon-repeat
    • +
    +
    +
    +
      +
    • icon-text-height
    • +
    • icon-text-width
    • +
    • icon-align-left
    • +
    • icon-align-center
    • +
    • icon-align-right
    • +
    • icon-align-justify
    • +
    • icon-indent-left
    • +
    • icon-indent-right
    • +
    +
    +
    +
      +
    • icon-font
    • +
    • icon-bold
    • +
    • icon-italic
    • +
    • icon-strikethrough
    • +
    • icon-underline
    • +
    • icon-link
    • +
    • icon-paper-clip
    • +
    • icon-columns
    • +
    +
    +
    +
      +
    • icon-table
    • +
    • icon-th-large
    • +
    • icon-th
    • +
    • icon-th-list
    • +
    • icon-list
    • +
    • icon-list-ol
    • +
    • icon-list-ul
    • +
    • icon-list-alt
    • +
    +
    +
    + +
    +
    + +
    +
    +
      +
    • icon-angle-left
    • +
    • icon-angle-right
    • +
    • icon-angle-up
    • +
    • icon-angle-down
    • +
    • icon-arrow-down
    • +
    • icon-arrow-left
    • +
    • icon-arrow-right
    • +
    • icon-arrow-up
    • +
    +
    +
    +
      +
    • icon-caret-down
    • +
    • icon-caret-left
    • +
    • icon-caret-right
    • +
    • icon-caret-up
    • +
    • icon-chevron-down
    • +
    • icon-chevron-left
    • +
    • icon-chevron-right
    • +
    • icon-chevron-up
    • +
    +
    +
    +
      +
    • icon-circle-arrow-down
    • +
    • icon-circle-arrow-left
    • +
    • icon-circle-arrow-right
    • +
    • icon-circle-arrow-up
    • +
    • icon-double-angle-left
    • +
    • icon-double-angle-right
    • +
    • icon-double-angle-up
    • +
    • icon-double-angle-down
    • +
    +
    +
    +
      +
    • icon-hand-down
    • +
    • icon-hand-left
    • +
    • icon-hand-right
    • +
    • icon-hand-up
    • +
    • icon-circle
    • +
    • icon-circle-blank
    • +
    +
    +
    + +
    +
    + +
    +
    +
      +
    • icon-play-circle
    • +
    • icon-play
    • +
    • icon-pause
    • +
    • icon-stop
    • +
    +
    +
    +
      +
    • icon-step-backward
    • +
    • icon-fast-backward
    • +
    • icon-backward
    • +
    • icon-forward
    • +
    +
    +
    +
      +
    • icon-fast-forward
    • +
    • icon-step-forward
    • +
    • icon-eject
    • +
    +
    +
    +
      +
    • icon-fullscreen
    • +
    • icon-resize-full
    • +
    • icon-resize-small
    • +
    +
    +
    + +
    +
    + +
    +
    +
      +
    • icon-phone
    • +
    • icon-phone-sign
    • +
    • icon-facebook
    • +
    • icon-facebook-sign
    • +
    +
    +
    +
      +
    • icon-twitter
    • +
    • icon-twitter-sign
    • +
    • icon-github
    • +
    • icon-github-alt
    • +
    +
    +
    +
      +
    • icon-github-sign
    • +
    • icon-linkedin
    • +
    • icon-linkedin-sign
    • +
    • icon-pinterest
    • +
    +
    +
    +
      +
    • icon-pinterest-sign
    • +
    • icon-google-plus
    • +
    • icon-google-plus-sign
    • +
    • icon-sign-blank
    • +
    +
    +
    + +
    +
    + +
    +
    +
      +
    • icon-ambulance
    • +
    • icon-beaker
    • +
    +
    +
    +
      +
    • icon-h-sign
    • +
    • icon-hospital
    • +
    +
    +
    +
      +
    • icon-medkit
    • +
    • icon-plus-sign-alt
    • +
    +
    +
    +
      +
    • icon-stethoscope
    • +
    • icon-user-md
    • +
    +
    +
    + +
    + +

    It's easy to integrate Font Awesome into Twitter Bootstrap, or even use it on its own.

    +
    +
    +

    Easy Bootstrap + Font Awesome Integration

    +
    +
    +

    Use this method to integrate Font Awesome with the default Bootstrap CSS.

    +
    +
    +
      +
    1. Copy the Font Awesome font directory into your project.
    2. +
    3. Copy font-awesome.min.css into your project.
    4. +
    5. + Open your project's font-awesome.min.css and edit the font paths to ensure they point to the right place. +

      The font path is relative from your CSS directory.

      +
    6. +
    7. + In the <head> of your html, reference the location to your font-awesome.min.css. +
      +<link rel="stylesheet" href="../css/bootstrap.min.css">
      +<link rel="stylesheet" href="../css/font-awesome.min.css">
      +
      +
    8. +
    9. Check out the examples to start using Font Awesome!
    10. +
    +
    +
    +
    +
    +

    Custom Bootstrap + Font Awesome Integration using LESS

    +
    +
    +

    Use this method to integrate Font Awesome with Twitter Bootstrap using LESS.

    +
    +
    +
      +
    1. Copy the Font Awesome font directory into your project.
    2. +
    3. Copy font-awesome.less into your bootstrap/less directory.
    4. +
    5. Open bootstrap.less and replace @import "sprites.less"; with @import "font-awesome.less";
    6. +
    7. + Open your project's font-awesome.less and edit the @FontAwesomePath variable to point to your font directory. +
      +@FontAwesomePath:   "../font";
      +
      +

      The font path is relative from your compiled CSS directory.

      +
    8. +
    9. Re-compile your LESS if using a static compiler. Otherwise, you should be good to go.
    10. +
    11. Check out the examples to start using Font Awesome!
    12. +
    +
    +
    +
    +
    +

    Custom Bootstrap + Font Awesome Integration using SASS or SCSS

    +

    I have never used either, so let me know if the included SCSS or SASS files have issues.

    +
    +
    +
    +
    +

    Not using Bootstrap?

    +
    +
    +

    Font Awesome works just as well without Twitter Bootstrap.

    +
    +
    +
      +
    1. Copy the Font Awesome font directory into your project.
    2. +
    3. Copy font-awesome.less or font-awesome.min.css into your project.
    4. +
    5. Open your project's font-awesome.less or font-awesome.min.css and edit the font location to point it to your font directory (see above examples).
    6. +
    7. Check out the examples to start using Font Awesome!
    8. +
    +
    +
    +
    +
    +

    Need IE7 Support?

    +
    +
    +

    Font Awesome supports IE7. If you need it, you have my condolences.

    +
    +
    +
      +
    1. Get Font Awesome working properly in a modern browser.
    2. +
    3. Copy font-awesome-ie7.min.css into your project.
    4. +
    5. + In the <head> of your html, reference the location to your font-awesome-ie7.min.css. +
      +<link rel="stylesheet" href="../css/bootstrap.min.css">
      +<link rel="stylesheet" href="../css/font-awesome.min.css">
      +<!--[if IE 7]>
      +<link rel="stylesheet" href="assets/css/font-awesome-ie7.min.css">
      +<![endif]-->
      +
      +
    6. +
    7. Go complain to whoever decided your project needs IE7 support.
    8. +
    +
    +
    +
    + +
    + +

    Many examples re-used from the Twitter Bootstrap documentation.

    +
    +
    +
    +

    Use Font Awesome icons in:

    +
      +
    • Bulleted lists (like this one)
    • +
    • Buttons
    • +
    • Button groups
    • +
    • Navigation
    • +
    • Prepended form inputs
    • +
    • And many more with Custom CSS
    • +
    +
    +
    + +
    +
    +
    + + + + +
    + +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + +
    +
    +
    + + +
    +
    + + Use a few of the new styles together, and you've got easy pull quotes or a great introductory article image. + Or spinning icons for loading and refreshing content. Or fun big icons in multi-line buttons. Lots of new possibilities. +
    +
    +
    + Spinner icon when loading content... +
    +
    + +
    + + +
    +
    +

    Inline Icons

    +
    +
    +

    Place Font Awesome icons just about anywhere with the <i> tag.

    +
    +
    +
    +
    + icon-camera-retro +
    +
    +
    +<i class="icon-camera-retro"></i> icon-camera-retro
    +
    +
    Icon classes are echoed via CSS :before.
    +
    +
    +
    +
    +

    Larger Icons

    +
    +
    +

    + To increase the size of icons relative to its container, use icon-large, icon-2x, + icon-3x, or icon-4x. +

    +
    +
    +

    + Increase the icon size by using the icon-large (33% increase), icon-2x, + icon-3x, or icon-4x classes. +

    +
    +
    +

    icon-camera-retro

    +

    icon-camera-retro

    +

    icon-camera-retro

    +

    icon-camera-retro

    +
    +
    +
    +<p><i class="icon-camera-retro icon-large"></i> icon-camera-retro</p>
    +<p><i class="icon-camera-retro icon-2x"></i> icon-camera-retro</p>
    +<p><i class="icon-camera-retro icon-3x"></i> icon-camera-retro</p>
    +<p><i class="icon-camera-retro icon-4x"></i> icon-camera-retro</p>
    +
    +
    + If your icons are getting chopped off on top and bottom, make sure you have + sufficient line-height. +
    +
    +
    +
    +
    +

    Animated Spinner

    +
    +
    +

    + Use the icon-spin class to get any icon to rotate. Works best with icon-spinner and + icon-refresh. +

    +
    +
    +
    + Spinner icon when loading content... +
    +
    +<i class="icon-spinner icon-spin"></i> Spinner icon when loading content...
    +
    +

    + CSS3 animations aren't supported in IE7 - IE9. +

    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +

    Bordered & Pulled Icons

    +
    +
    +

    + Use icon-border and pull-right or pull-left for easy pull quotes or + article graphics. +

    +
    +
    +
    + + Use a few of the new styles together, and you've got easy pull quotes or a great introductory article image. + Or spinning icons for loading and refreshing content. Or fun big icons in multi-line buttons. You can combine all + of them in any combination to get lots of new possibilities. +
    +
    +<i class="icon-quote-left icon-4x pull-left icon-muted"></i>
    +Use a few of the new styles together ... lots of new possibilities.
    +
    +
    + + Use a few of the new styles together, and you've got easy pull quotes or a great introductory article image. + Or spinning icons for loading and refreshing content. Or fun big icons in multi-line buttons. You can combine all + of them in any combination to get lots of new possibilities. +
    +
    +<i class="icon-flag icon-4x pull-left icon-border"></i>
    +Use a few of the new styles together ... lots of new possibilities.
    +
    +
    +
    +
    +
    +

    Buttons

    +
    + +
    +

    + Font Awesome icons work great in buttons. You can even combine them with larger icon styles, + pull-right and pull-left, and icon-spin. +

    +
    +<a class="btn" href="#">
    +  <i class="icon-repeat"></i> Reload</a>
    +<a class="btn btn-success" href="#">
    +  <i class="icon-shopping-cart icon-large"></i> Checkout</a>
    +<a class="btn btn-large btn-primary" href="#">
    +  <i class="icon-comment"></i> Comment</a>
    +<a class="btn btn-small btn-info" href="#">
    +  <i class="icon-info-sign"></i> Info</a>
    +<a class="btn btn-danger" href="#">
    +  <i class="icon-trash icon-large"></i> Delete</a>
    +<a class="btn btn-small" href="#">
    +  <i class="icon-cog"></i> Settings</a>
    +<a class="btn btn-large btn-danger" href="#">
    +  <i class="icon-flag icon-2x pull-left"></i>Font Awesome<br>Version 3.0</a>
    +<a class="btn btn-primary" href="#">
    +  <i class="icon-refresh icon-spin"></i> Synchronizing Content...</a>
    +
    +
    +
    +
    +
    +

    Button groups

    +
    +
    +

    +

    + + + + +
    +

    +
    +
    +
    +<div class="btn-group">
    +  <a class="btn" href="#"><i class="icon-align-left"></i></a>
    +  <a class="btn" href="#"><i class="icon-align-center"></i></a>
    +  <a class="btn" href="#"><i class="icon-align-right"></i></a>
    +  <a class="btn" href="#"><i class="icon-align-justify"></i></a>
    +</div>
    +
    +
    +
    +
    +
    +

    Button dropdowns

    +
    +
    +

    +

    +
    +

    +
    +
    +<div class="btn-group open">
    +    <a class="btn btn-primary" href="#"><i class="icon-user"></i> User</a>
    +    <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="icon-caret-down"></span></a>
    +    <ul class="dropdown-menu">
    +        <li><a href="#"><i class="icon-pencil"></i> Edit</a></li>
    +        <li><a href="#"><i class="icon-trash"></i> Delete</a></li>
    +        <li><a href="#"><i class="icon-ban-circle"></i> Ban</a></li>
    +        <li class="divider"></li>
    +        <li><a href="#"><i class="i"></i> Make admin</a></li>
    +    </ul>
    +</div>
    +
    +
    Don't forget to add the appropriate JavaScript to enable button dropdowns.
    +
    +
    +
    +
    +

    Lists

    +
    +
    +

    +

      +
    • Lists
    • +
    • Buttons
    • +
    • Button groups
    • +
    • Navigation
    • +
    • Prepended form inputs
    • +
    +

    +
    +
    +

    Easily replace individual bullets.

    +
    +<ul class="icons">
    +  <li><i class="icon-ok"></i> Lists</li>
    +  <li><i class="icon-ok"></i> Buttons</li>
    +  <li><i class="icon-ok"></i> Button groups</li>
    +  <li><i class="icon-ok"></i> Navigation</li>
    +  <li><i class="icon-ok"></i> Prepended form inputs</li>
    +</ul>
    +
    +
    +
    +
    +
    +

    Navigation

    +
    + +
    +

    Use Font Awesome icons in navigation to provide helpful visual cues.

    +
    +<ul class="nav nav-list">
    +  <li class="active"><a href="#"><i class="icon-home"></i> Home</a></li>
    +  <li><a href="#"><i class="icon-book"></i> Library</a></li>
    +  <li><a href="#"><i class="icon-pencil"></i> Applications</a></li>
    +  <li><a href="#"><i class="icon-cogs"></i> Settings</a></li>
    +</ul>
    +
    +
    +
    +
    +
    +

    Prepended form inputs

    +
    +
    +

    +

    +
    + + +
    +
    + + +
    +
    +

    +
    +
    +
    +<form>
    +  <div class="input-prepend">
    +    <span class="add-on"><i class="icon-envelope"></i></span>
    +    <input class="span2" type="text" placeholder="Email address">
    +  </div>
    +  <div class="input-prepend">
    +    <span class="add-on"><i class="icon-key"></i></span>
    +    <input class="span2" type="password" placeholder="Password">
    +  </div>
    +</form>
    +
    +
    +
    +
    +
    +

    Custom CSS

    +
    +
    +

    Anything you can do with CSS font styles, you can do with Font Awesome.

    +
    +
    +

    Star Ratings (inspired by CSS Tricks)

    +
    + + + +
    +
    +
    +
    + +
    + +
    +
    + +
    +
    +

    + Want to help make Font Awesome even more awesome? Contribute back to the Font Awesome community by designing + new pictograms for the set. +

    +

    + If selected, you'll retain the CC-BY license to your pictogram and get attribution + right here on the Font Awesome site. +

    +

    How to Submit New Icons

    +
      +
    1. Download the icon-flag.pdf template.
    2. +
    3. + Open the PDF in Adobe Illustrator. You'll notice the file has dimensions of 60x56. This is exactly 4x the + max icon size of 15 wide by 14 tall. The template is an example of the flag icon to use as a guide. +
    4. +
    5. + Design your icon. In order to make it into the set, your icon must look pixel perfect. The easiest way to do + this is to make sure your line widths in the template are some multiple of 4px. Diagonals are rough, too. + Don't split pixels right down the middle, as they blur more when rendering. Zoom out to 25% to get a good idea + of how it will render in the font. +
    6. +
    7. + Submit your icon. Drop me an email at dave@davegandy.com. Make sure to + use the subject [Font Awesome] [Icon Contribution] icon-name and attach your PDF file. If your + icon makes it into Font Awesome (I'm keeping a very tight reign on quality), I'll ask what contact info you'd + like to use for attribution. +
    8. +
    +
    +
    + +
    + +
    + +

    Here's the plan for future updates.

    +
      +
    • Easier sub-setting with icon packs.
    • +
    • More icons. Have any requests? Open an issue in the Font Awesome GitHub project.
    • +
    • Tricks and tips for super-awesome creative CSS methods, like the star example above.
    • +
    +
    + +
    + + +

    +

    +
    + +
    + +
    +
    +

    + I'm the lead product designer at Kyruus. I wake up every single day excited about my job. + Why? Kyruus is going to change healthcare. No exaggeration. +

    + +

    + Kyruus is a well-funded, big data healthcare startup in Boston. We believe that the right data at the right time + can help doctors make better decisions. We believe data can save lives. +

    + + What I love about Kyruus: +
      +
    • Product design. From the top of the organization, Kyruus is committed to product design done right. It's awesome.
    • +
    • Purpose. Every day, I get to help make the world a better place – a little at a time.
    • +
    • People. I work with some of the best people I've ever met. More than just smart people. Good people.
    • +
    + +

    + Kyruus needs good people. Designers, app developers, big data masters, & interns that get real responsibility. Come work with me. +

    + + Interested? Email me. +
    + +
    +
    + +
    + +
    +
    +

    + + Hopefully you think Font Awesome is awesome. I've put hundreds of hours into the project to give back to the + open source community. If you'd like, here are some ways you can tell me thanks for all my hard work. +

    +
    +
    +
    +
    +

    Contribute Icons

    +

    + Contribute icons to make Font Awesome even awesome-er. +

    +
    +
    +

    Help me buy an iMac

    +

    + Contribute to a shiny + new iMac for me to keep making great icons. +

    +
    +
    +

    My Amazon Wish List

    +

    + Or pick something straight + from my wish list. Gift cards are great. +

    +
    +
    +
    + +
    + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/test.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/test.html" new file mode 100644 index 0000000..c7b2133 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/docs/test.html" @@ -0,0 +1,391 @@ + + + + + + + + + Font Awesome Tests + + + + + + + + + + + + + + + + + + + +
    +

    Visual tests

    + +

    Icons Icons should not be clipped

    +
    +
    +
    + Building +
    +
    +
    +
    + Building Large +
    +
    +
    + Building +
    +
    + Building Large +
    +
    +
    +
    +
    + Building +
    +
    +
    +
    + Building Large +
    +
    +
    + Building Large +
    +
    + + +

    Links with Icons icon should activate link

    + + + +

    Navbar should stay same height

    + + + +

    Plain buttons next to icon buttons should be same height

    +

    Buttons

    +
    +
    +
    +
    + + + +
    +
    + + + +
    +
    + + + +
    +
    + + + +
    +
    +
    +
    +
    +
    + + + +
    +
    + + + +
    +
    + + + +
    +
    + + + +
    +
    +
    +
    + +

    Anchors

    +
    +
    +
    +
    + Button + Button + +
    +
    + Button + Button + +
    +
    + Button + Button + +
    +
    + Button + Button + +
    +
    +
    +
    +
    +
    + Button + Button + +
    +
    + Button + Button + +
    +
    + Button + Button + +
    +
    + Button + Button + +
    +
    +
    +
    + + +

    Buttons with pulled 2x, 3x, 4x should be same height, have correct line height

    + + +

    Nav pills & nav tabs should be same height

    + + + +

    2x, 3x, 4x icons in text should have margins next to and below text

    +
    +
    +

    + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam et lectus id nisl hendrerit varius. Aliquam erat volutpat. Suspendisse potenti. Aliquam erat volutpat. Aliquam ut dolor lectus. +

    +
    +
    +

    + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam et lectus id nisl hendrerit varius. Aliquam erat volutpat. Suspendisse potenti. Aliquam erat volutpat. Aliquam ut dolor lectus. +

    +
    +
    +
    +
    + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam et lectus id nisl hendrerit varius. Aliquam erat volutpat. Suspendisse potenti. Aliquam erat volutpat. Aliquam ut dolor lectus. +
    +
    + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam et lectus id nisl hendrerit varius. Aliquam erat volutpat. Suspendisse potenti. Aliquam erat volutpat. Aliquam ut dolor lectus. +
    +
    + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam et lectus id nisl hendrerit varius. Aliquam erat volutpat. Suspendisse potenti. Aliquam erat volutpat. Aliquam ut dolor lectus. +
    +
    + +

    Bullets should wrap appropriately, have proper spacing

    +
    +
    +
      +
    • Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    • +
    • Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam et lectus id nisl hendrerit varius. Aliquam erat volutpat. Suspendisse potenti. Aliquam erat volutpat. Aliquam ut dolor lectus.
    • +
    • Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    • +
    +
    +
    +
      +
    • Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    • +
    • Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam et lectus id nisl hendrerit varius. Aliquam erat volutpat. Suspendisse potenti. Aliquam erat volutpat. Aliquam ut dolor lectus.
    • +
    • Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    • +
    +
    +
    + +

    Spinning icons icons should be aligned well and on center, buttons should be same height, won't work in ie7

    +
    + Loading... + + + Loading... + +
    +
    + Loading... + + + Loading... + +
    +
    + Loading... + + + Loading... + +
    +

    icon-large

    +
    + Loading... + + + Loading... + +
    +
    + Loading... + + + Loading... + +
    +
    + Loading... + + + Loading... + +
    + +
    + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/font/FontAwesome.otf" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/font/FontAwesome.otf" new file mode 100644 index 0000000000000000000000000000000000000000..64049bf2e79940063b59be135872baadc37df6f6 GIT binary patch literal 48748 zcmce;33yXQ_b{F`x%Z|wP?jdxCcXETMG)DgpaLoih+1|cyR@ZE7uqIilI~6SeP7bO zh1wQcwz3MyqA2i!Rz^7PaG@6lh3l}MC+63OvZtJlwZsM=tYN+j@4A_)$S4KeL{ z+R`JD$onJ`55Gu#NZ9Q^4iv+?7WmGOgo2SdOb(>sy<}2ktTk!YGm6(F61pGSjED_M zGD&4?;FZJyU)m57tDme~I|ASbOC+*5lhIq$ zMuY#HnX_jT=nt)l(T7;{&^TOg_O}}St&w{Fzxuc6L#?EGxDj5$n{WW_Z#9R6>0?98 z(f%P;t2t^%yjaCxv_^&MEzrB!>Oa)|(vSqb|MCz+Sh8e^#3(UIk|kzIlq5nDDY3$m zJ|vkfnIoACsV602@P3Cx59#$#%L4E9l2~~9OP-Y&B%$!u4DHEpi1;o{GE;091Iy=s z4^+~^3~ep&HA@oUm(+Y3S{k6;lafU7oe^N`CF|fDA&CbFAyD^e$!f_eiB7TtYCR=c z0686$Et6~l`d$rnb&?HG-wcqWL}>mn_L(q)+0dhVCJ#Z)7^o8>_U;}>xY))Y`Zhv6 zE6kkC@qfYw8F47o7=|7$&i1c1Bv0l*N(dIhpnj}4@@Oa{SRv(6fW>%74MQk5H8^#68;a>)RId;}0Dm-xW%K1q+{gybLNCrscc1owOO^Zk$a zuj=34AKo9;Z|G0&FYn*g-_w7r|DFEN`+x1f{hQZs>N|wN`b)b1)>6_xx_^BC;{G-L z!Tk~aJNr%jnf;ahZT(03FZ93L|7CywZ<60e155r&BDu5W&YC-mKmYdgn$OpaR*q&z zD@HS;>Cu!#GTLLbbhKpDol&<(4UYPK)NiBuN8KFt>!@GEm74#*MTP(W_KgJiI|~%x zDe;hHN=(uVa6V*85~xhVssH=;p7Iw6u|VCs^+=k0#X3Xjdtf9(xnZ~tX-nRbC#etR z8knA#XEG%ZiS>r^Vn6q!NjrI_*nTmoM+jODPm&%Up9o(pyK_f`3u%CRw~k!$SO52n z@$OvimJPRq`lJnkd$%pTBYleFfpYSMe2O?9l6L3szNbCz+>vKW=D|1qzs~9ZkY79m zXCA^~0 zhV$?w_2lrp`ySF_`=RI1x&na>!GvO4&>|tDqFdz@|!X1*n3v;;se|=_3)TGYv zy#MQ%VQ!-de0YWr!-KkVvF{;RL*=9H_T{dxh5X`s>kZ?HtULL7WJ(spm%tYD!{r1H z73!WJq#q#p;jawplC%g5p2IXm#yE_JyK}j>4C<0{@g4Ll!h<}(xjROHH3PmQ<(ZO| z zZ}V7*6W~gSL^np_E8!&*B-7zQ4v;L8JPt?qa>+_Kwzo-w;9!e{!!izz#$<_2QY5L8 z)PtnmB{>AV`kdr~37nfq&KDikq&s!9%DW3^O)!{ z+v8D>B_69hp7+?{5$zH0k?m39QR}hWW535Sk8>WEJ>K>B%;RT|evexo4w*#eDO1Zd zvI(*WWV2-RWKYNfW$R=?vS?X?EKgP^+bugFJ1x5;yCUnAy)XMr_PwlMhUFgeQSx!} ziSnuPS@H$)rSfOxtK^&I5%M^Bk~~vRUiu@hOpEY^(eK33Z&Lko2YG62o*u?qzqINl}6=LWmE-KMeU-xsDso|>Lm3l^)~e{ z>Ido<3Q>1xPg+H5X@P!#o<%RDm(a`U74-9TFdaji=tMe$&ZW!gI=YiSLZ6~vr{AQn z(;w5H(cjQN)3@kBM#gwCV;LXDkD0+d!K`9}m?*}|q%rwS8B@bFGJBY#%vt6i%-hWS z%*V{Xnco#s#fXTQ5Q`-?-VzmR(TA8rBlU&^eT>nh2erv;wOB*U7EMH$40G2Utn54S``7(!w~jS(Q}S|TGs zjs^gFYgDY>YzzqtGbS2h;29JWV;xS%n@CBNVTUov6cdsh6dGj?jnSL+CVhw%L~9Vu zBT1K}NsKWxIy@#Mf~b6^NTWe-NifF5$LfQixGAeiWmt>hzipiP0(FDnXVxe zP#t0lA|nI1VFVC>09_@@YKaUn>tU@zqY2tUn=u9L2nmf&3^9j=hX8VhGs91UNmB@{ zAFP!LG?2R$hteX1p|pM{Xet0Z!EAI-Z#XRu))W(O2_mZ+8)XWe7Kl2}`J1uQymCjj)bn*h5PTZQN_TBLt8ru6BsoY)o{cR!q6kDJJ7h?w4d? zMJy0P0HTOW(FcXc$HWXJEwLdnG5Vy?n2^|zyCaE+3b%re79Ji214#xl0VI=WXpGUK z2b3713=!f;0bK@tXh@9S5C*-0(q)VdHO9um;>CtU81#3s6K@*E4H=GEZ%x$eVQq{i z6M+;88z>xTNN;xcFq9^}4vjKFZw5^-WO&e#MsrjO5MD?O&}dL7tg+Ra7zHF}7Dq+s zgpjJ3ag%8f^l3Im>yu%JS%!vau|~$n?yv;Kn}!l1s>mh=k_{KPwR=00RfJs{6J>}7 znsP6eDc%wZg9m!on_=U^?lwe|dO&w(qbV{uA_{=+5J%wNsNz0^~2EDZG_Pn5u*>fyGQTI!wLbF0N1bviTDvyFl+HiFz8OXF+;eh!D0dP1Nn*# z#6&!huKRQlmwkwEV35WbeMCr17_j&qMp(TeN+gwriISv&p;|3bV0sBL0fm}jQA13? zt@OY$BY|hd$LxR|3riTG7cnRHOAZ5f&P{LR3<`=3gI3l^BapmFZ;6kB!CUl%NZdV! zhwJs>Mq?N`YQ%oyqkxkeBA|hZF!YdE=qtn!s*lx&MMqh~N%sJCr{20luQx}Es0^PS zt`9TD1J;9JK=4a&^tS>LRevjqH~lS3@cdU>cS>yJP68(r0h4NBdP_8LX21vhife6+ zHSQq8cW)~er5A;P>22B5OxvodCQqXO3NWkCcR_pl+7y+@3cN{9qV zjL{aK{7Nov)V652+#+@QjA3q~`O>$ZC2FP!XAhYe09+6&^UYC9%b$HD3nD6m| z$BQ0a9tUKMYz)X=+huxLvdkviBikoCCc7xRF8fIKrR)dUP5C_eq{q_Z=n3>xdL})Wewv_%dbI)%*fA(~;3U(yx&1%?*?1SuFb^-eYyOdqQu46Z{TiFmcoHer4^i+;ij#b{L^ixhzKBRnDxk$NK`J8f{ z@&#qEQm>3s8W7C|KFszmVwH2)mpR_+aTfQ*vsibORZiuwYBHys$vW*W-E_`j$GVv; zviGWo+R(~(Ijnn_RWj3AiQO@D~oS753R&FY*RJWuxrSO3? zc_9QcDNSiDd@tS7)YKwiJL;RsDib+ZxGQ`=>)^=8#Zh@x_JSI%y(W)4fBqR(N$M(x z3Ty0noRZmaGWY_oe1zqdtJxlpMd9-`KL+>5?al4Z-&fFF)YMSXswiVCcBR*6HiVrDIu`Z0LWyBsm{|q1 zq@Dx4p{MaEGz&jv! z85x30=h8(1n(W))XD$Z1!E=>VMtyT`i&n`bH`-cx4j1>#itNqO4({_ zG;_9OL8(sTTqhhSqBwlQrDJBXgvJ~?e1eW;9ZNtW2^E2-NWHN8jqSh8IKZf>lh{U9Kb3c1f&rT z1X+h2sg%sz_m_OlE2;YW>gE=W@^SXIj&Q&qIAt!|txUGrl9lLXyc{jTui_>65zIff zi2q~}egyG&i5AM1L+Q&n7n$%2HMxRQ?)sHrJ+E1-q`!Xu{jUXOO+gW>e4YiyNM&T? zrlx3={#dnwm6j-(!s>#mysE)1&MiLX&cy6Ujnc~A?hE07uZgS5E0G2eru3sSm1;c) zm;_w@${~0#HV*0PIUZS&l~#VkCfk%xbGQ5M=LY(o=3q7%sZ}Z3l+-*R4JB=4m45O} zWh8J}NBC^u&|D^`q_=WPl!AHy5m~TXbDJ~jd8HlJK<2cYIQ7fi99B?11_uHh2B-(6 zC^rFym8cR|u3&K`s#F3`1AY$d9(Z#_Rh6K`DyUFWT&(m?KRom81D875lm&Tt!sg8n zvP$V`=&9nOghX)N$o9#&=4c9F6K(CJ!)f5tz%7P%H7csdr%1(=?2$Rkw= zf%Fas53)9?d4!g#>VcMEpEOt9;PNuaswKB}W_4;iJ8N581ts$s>|EG3)g@KM)xtbS zA-aS9q#7C;T3R(;3^~Af)Q1>0a5krmi;s_si+^zsT8KFKEZp;Ad>pS_!K$&!Z$Q$< zDviJgkV>X(ZYK2MlsSH;>~>^AFQ8nFavNT_Wc7-rX~`*Rm1YI3Td@Y#&^>4vyON3A zo!!|9n@7$j00Lx629L*+FoT!EXHq8cdCU|i6;k@(k}cZD@R;(l9Dx9Uw$M70OX1*1 zXlBuPD6E0yQ2WsyQYHN$>Qn5=bt#I>>Y6+*_A)teV4+d{{b-b+gwy%~E>byQH*&B@fG+XSKgcSJi%W{N%5JuV zSJrT)z*d(mfdiiBjSq$$N?|L>zPptN8!;+MlT;-GA3zE z@tA?Jao#r7uj&uS)!w)2zQp?)?z?o~hdwf&0G~*oSA12z<-Q;I{-(*$F85RUUFQ~X zYdAefW3O>va){^o+59p-m%k#66P63%{xbiq{%?#|j=wfx+Jx{4yC!-}G)#PZl6;b3 zl5JAmq(ARJF*$7VKc>V#P&U

    d^-+(?(Bwcv``WwKADc0C#_}15X55&`&&;0n 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 SZK2F^Vgf(_000000002urxv~d literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/font/fontawesome-webfont.ttf" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/font/fontawesome-webfont.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..88ef262202b14b3aa64669e54c5fe034ea0a5cb6 GIT binary patch literal 60296 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 JP~$cE002r8#jOAU literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/less/font-awesome-ie7.less" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/less/font-awesome-ie7.less" new file mode 100644 index 0000000..2fb977a --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/less/font-awesome-ie7.less" @@ -0,0 +1,330 @@ +/* Font Awesome 3.0 + the iconic font designed for use with Twitter Bootstrap + ------------------------------------------------------- + The full suite of pictographic icons, examples, and documentation + can be found at: http://fortawesome.github.com/Font-Awesome/ + + License + ------------------------------------------------------- + • The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL + • Font Awesome CSS, LESS, and SASS files are licensed under the MIT License - + http://opensource.org/licenses/mit-license.html + • The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/ + • Attribution is no longer required in Font Awesome 3.0, but much appreciated: + "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome" + + Contact + ------------------------------------------------------- + Email: dave@davegandy.com + Twitter: http://twitter.com/fortaweso_me + Work: Lead Product Designer @ http://kyruus.com + + */ + +[class^="icon-"], +[class*=" icon-"] { + padding-right:.3em; +} + +.icon-large { + font-size: 4/3em; + margin-top: -4px; + padding-top: 3px; + margin-bottom: -4px; + padding-bottom: 3px; + vertical-align: -20%; +} + +.btn, .nav { + [class^="icon-"], + [class*=" icon-"] { + vertical-align: inherit; + margin-top: -4px; + padding-top: 3px; + margin-bottom: -4px; + padding-bottom: 3px; + line-height: .9em; + } +} + +a [class^="icon-"], +a [class*=" icon-"] { + cursor: pointer; +} + +ul.icons { + text-indent: -1.5em; + margin-left: 3em; +} + + +.ie7icon(@inner) { + *zoom: ~"expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '@{inner}')"; +} + +.icon-glass { .ie7icon(''); } +.icon-music { .ie7icon(''); } +.icon-search { .ie7icon(''); } +.icon-envelope { .ie7icon(''); } +.icon-heart { .ie7icon(''); } +.icon-star { .ie7icon(''); } +.icon-star-empty { .ie7icon(''); } +.icon-user { .ie7icon(''); } +.icon-film { .ie7icon(''); } +.icon-th-large { .ie7icon(''); } +.icon-th { .ie7icon(''); } +.icon-th-list { .ie7icon(''); } +.icon-ok { .ie7icon(''); } +.icon-remove { .ie7icon(''); } +.icon-zoom-in { .ie7icon(''); } + +.icon-zoom-out { .ie7icon(''); } +.icon-off { .ie7icon(''); } +.icon-signal { .ie7icon(''); } +.icon-cog { .ie7icon(''); } +.icon-trash { .ie7icon(''); } +.icon-home { .ie7icon(''); } +.icon-file { .ie7icon(''); } +.icon-time { .ie7icon(''); } +.icon-road { .ie7icon(''); } +.icon-download-alt { .ie7icon(''); } +.icon-download { .ie7icon(''); } +.icon-upload { .ie7icon(''); } +.icon-inbox { .ie7icon(''); } +.icon-play-circle { .ie7icon(''); } +.icon-repeat { .ie7icon(''); } + +.icon-refresh { .ie7icon(''); } +.icon-list-alt { .ie7icon(''); } +.icon-lock { .ie7icon(''); } +.icon-flag { .ie7icon(''); } +.icon-headphones { .ie7icon(''); } +.icon-volume-off { .ie7icon(''); } +.icon-volume-down { .ie7icon(''); } +.icon-volume-up { .ie7icon(''); } +.icon-qrcode { .ie7icon(''); } +.icon-barcode { .ie7icon(''); } +.icon-tag { .ie7icon(''); } +.icon-tags { .ie7icon(''); } +.icon-book { .ie7icon(''); } +.icon-bookmark { .ie7icon(''); } +.icon-print { .ie7icon(''); } + +.icon-camera { .ie7icon(''); } +.icon-font { .ie7icon(''); } +.icon-bold { .ie7icon(''); } +.icon-italic { .ie7icon(''); } +.icon-text-height { .ie7icon(''); } +.icon-text-width { .ie7icon(''); } +.icon-align-left { .ie7icon(''); } +.icon-align-center { .ie7icon(''); } +.icon-align-right { .ie7icon(''); } +.icon-align-justify { .ie7icon(''); } +.icon-list { .ie7icon(''); } +.icon-indent-left { .ie7icon(''); } +.icon-indent-right { .ie7icon(''); } +.icon-facetime-video { .ie7icon(''); } +.icon-picture { .ie7icon(''); } + +.icon-pencil { .ie7icon(''); } +.icon-map-marker { .ie7icon(''); } +.icon-adjust { .ie7icon(''); } +.icon-tint { .ie7icon(''); } +.icon-edit { .ie7icon(''); } +.icon-share { .ie7icon(''); } +.icon-check { .ie7icon(''); } +.icon-move { .ie7icon(''); } +.icon-step-backward { .ie7icon(''); } +.icon-fast-backward { .ie7icon(''); } +.icon-backward { .ie7icon(''); } +.icon-play { .ie7icon(''); } +.icon-pause { .ie7icon(''); } +.icon-stop { .ie7icon(''); } +.icon-forward { .ie7icon(''); } + +.icon-fast-forward { .ie7icon(''); } +.icon-step-forward { .ie7icon(''); } +.icon-eject { .ie7icon(''); } +.icon-chevron-left { .ie7icon(''); } +.icon-chevron-right { .ie7icon(''); } +.icon-plus-sign { .ie7icon(''); } +.icon-minus-sign { .ie7icon(''); } +.icon-remove-sign { .ie7icon(''); } +.icon-ok-sign { .ie7icon(''); } +.icon-question-sign { .ie7icon(''); } +.icon-info-sign { .ie7icon(''); } +.icon-screenshot { .ie7icon(''); } +.icon-remove-circle { .ie7icon(''); } +.icon-ok-circle { .ie7icon(''); } +.icon-ban-circle { .ie7icon(''); } + +.icon-arrow-left { .ie7icon(''); } +.icon-arrow-right { .ie7icon(''); } +.icon-arrow-up { .ie7icon(''); } +.icon-arrow-down { .ie7icon(''); } +.icon-share-alt { .ie7icon(''); } +.icon-resize-full { .ie7icon(''); } +.icon-resize-small { .ie7icon(''); } +.icon-plus { .ie7icon(''); } +.icon-minus { .ie7icon(''); } +.icon-asterisk { .ie7icon(''); } +.icon-exclamation-sign { .ie7icon(''); } +.icon-gift { .ie7icon(''); } +.icon-leaf { .ie7icon(''); } +.icon-fire { .ie7icon(''); } +.icon-eye-open { .ie7icon(''); } + +.icon-eye-close { .ie7icon(''); } +.icon-warning-sign { .ie7icon(''); } +.icon-plane { .ie7icon(''); } +.icon-calendar { .ie7icon(''); } +.icon-random { .ie7icon(''); } +.icon-comment { .ie7icon(''); } +.icon-magnet { .ie7icon(''); } +.icon-chevron-up { .ie7icon(''); } +.icon-chevron-down { .ie7icon(''); } +.icon-retweet { .ie7icon(''); } +.icon-shopping-cart { .ie7icon(''); } +.icon-folder-close { .ie7icon(''); } +.icon-folder-open { .ie7icon(''); } +.icon-resize-vertical { .ie7icon(''); } +.icon-resize-horizontal { .ie7icon(''); } + +.icon-bar-chart { .ie7icon(''); } +.icon-twitter-sign { .ie7icon(''); } +.icon-facebook-sign { .ie7icon(''); } +.icon-camera-retro { .ie7icon(''); } +.icon-key { .ie7icon(''); } +.icon-cogs { .ie7icon(''); } +.icon-comments { .ie7icon(''); } +.icon-thumbs-up { .ie7icon(''); } +.icon-thumbs-down { .ie7icon(''); } +.icon-star-half { .ie7icon(''); } +.icon-heart-empty { .ie7icon(''); } +.icon-signout { .ie7icon(''); } +.icon-linkedin-sign { .ie7icon(''); } +.icon-pushpin { .ie7icon(''); } +.icon-external-link { .ie7icon(''); } + +.icon-signin { .ie7icon(''); } +.icon-trophy { .ie7icon(''); } +.icon-github-sign { .ie7icon(''); } +.icon-upload-alt { .ie7icon(''); } +.icon-lemon { .ie7icon(''); } +.icon-phone { .ie7icon(''); } +.icon-check-empty { .ie7icon(''); } +.icon-bookmark-empty { .ie7icon(''); } +.icon-phone-sign { .ie7icon(''); } +.icon-twitter { .ie7icon(''); } +.icon-facebook { .ie7icon(''); } +.icon-github { .ie7icon(''); } +.icon-unlock { .ie7icon(''); } +.icon-credit-card { .ie7icon(''); } +.icon-rss { .ie7icon(''); } + +.icon-hdd { .ie7icon(''); } +.icon-bullhorn { .ie7icon(''); } +.icon-bell { .ie7icon(''); } +.icon-certificate { .ie7icon(''); } +.icon-hand-right { .ie7icon(''); } +.icon-hand-left { .ie7icon(''); } +.icon-hand-up { .ie7icon(''); } +.icon-hand-down { .ie7icon(''); } +.icon-circle-arrow-left { .ie7icon(''); } +.icon-circle-arrow-right { .ie7icon(''); } +.icon-circle-arrow-up { .ie7icon(''); } +.icon-circle-arrow-down { .ie7icon(''); } +.icon-globe { .ie7icon(''); } +.icon-wrench { .ie7icon(''); } +.icon-tasks { .ie7icon(''); } + +.icon-filter { .ie7icon(''); } +.icon-briefcase { .ie7icon(''); } +.icon-fullscreen { .ie7icon(''); } + +.icon-group { .ie7icon(''); } +.icon-link { .ie7icon(''); } +.icon-cloud { .ie7icon(''); } +.icon-beaker { .ie7icon(''); } +.icon-cut { .ie7icon(''); } +.icon-copy { .ie7icon(''); } +.icon-paper-clip { .ie7icon(''); } +.icon-save { .ie7icon(''); } +.icon-sign-blank { .ie7icon(''); } +.icon-reorder { .ie7icon(''); } +.icon-list-ul { .ie7icon(''); } +.icon-list-ol { .ie7icon(''); } +.icon-strikethrough { .ie7icon(''); } +.icon-underline { .ie7icon(''); } +.icon-table { .ie7icon(''); } + +.icon-magic { .ie7icon(''); } +.icon-truck { .ie7icon(''); } +.icon-pinterest { .ie7icon(''); } +.icon-pinterest-sign { .ie7icon(''); } +.icon-google-plus-sign { .ie7icon(''); } +.icon-google-plus { .ie7icon(''); } +.icon-money { .ie7icon(''); } +.icon-caret-down { .ie7icon(''); } +.icon-caret-up { .ie7icon(''); } +.icon-caret-left { .ie7icon(''); } +.icon-caret-right { .ie7icon(''); } +.icon-columns { .ie7icon(''); } +.icon-sort { .ie7icon(''); } +.icon-sort-down { .ie7icon(''); } +.icon-sort-up { .ie7icon(''); } + +.icon-envelope-alt { .ie7icon(''); } +.icon-linkedin { .ie7icon(''); } +.icon-undo { .ie7icon(''); } +.icon-legal { .ie7icon(''); } +.icon-dashboard { .ie7icon(''); } +.icon-comment-alt { .ie7icon(''); } +.icon-comments-alt { .ie7icon(''); } +.icon-bolt { .ie7icon(''); } +.icon-sitemap { .ie7icon(''); } +.icon-umbrella { .ie7icon(''); } +.icon-paste { .ie7icon(''); } +.icon-lightbulb { .ie7icon(''); } +.icon-exchange { .ie7icon(''); } +.icon-cloud-download { .ie7icon(''); } +.icon-cloud-upload { .ie7icon(''); } + +.icon-user-md { .ie7icon(''); } +.icon-stethoscope { .ie7icon(''); } +.icon-suitcase { .ie7icon(''); } +.icon-bell-alt { .ie7icon(''); } +.icon-coffee { .ie7icon(''); } +.icon-food { .ie7icon(''); } +.icon-file-alt { .ie7icon(''); } +.icon-building { .ie7icon(''); } +.icon-hospital { .ie7icon(''); } +.icon-ambulance { .ie7icon(''); } +.icon-medkit { .ie7icon(''); } +.icon-fighter-jet { .ie7icon(''); } +.icon-beer { .ie7icon(''); } +.icon-h-sign { .ie7icon(''); } +.icon-plus-sign-alt { .ie7icon(''); } + +.icon-double-angle-left { .ie7icon(''); } +.icon-double-angle-right { .ie7icon(''); } +.icon-double-angle-up { .ie7icon(''); } +.icon-double-angle-down { .ie7icon(''); } +.icon-angle-left { .ie7icon(''); } +.icon-angle-right { .ie7icon(''); } +.icon-angle-up { .ie7icon(''); } +.icon-angle-down { .ie7icon(''); } +.icon-desktop { .ie7icon(''); } +.icon-laptop { .ie7icon(''); } +.icon-tablet { .ie7icon(''); } +.icon-mobile-phone { .ie7icon(''); } +.icon-circle-blank { .ie7icon(''); } +.icon-quote-left { .ie7icon(''); } +.icon-quote-right { .ie7icon(''); } + +.icon-spinner { .ie7icon(''); } +.icon-circle { .ie7icon(''); } +.icon-reply { .ie7icon(''); } +.icon-github-alt { .ie7icon(''); } +.icon-folder-close-alt { .ie7icon(''); } +.icon-folder-open-alt { .ie7icon(''); } diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/less/font-awesome.less" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/less/font-awesome.less" new file mode 100644 index 0000000..fddf0d5 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/less/font-awesome.less" @@ -0,0 +1,498 @@ +/* Font Awesome 3.0 + the iconic font designed for use with Twitter Bootstrap + ------------------------------------------------------- + The full suite of pictographic icons, examples, and documentation + can be found at: http://fortawesome.github.com/Font-Awesome/ + + License + ------------------------------------------------------- + • The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL + • Font Awesome CSS, LESS, and SASS files are licensed under the MIT License - + http://opensource.org/licenses/mit-license.html + • The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/ + • Attribution is no longer required in Font Awesome 3.0, but much appreciated: + "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome" + + Contact + ------------------------------------------------------- + Email: dave@davegandy.com + Twitter: http://twitter.com/fortaweso_me + Work: Lead Product Designer @ http://kyruus.com + + */ + +@FontAwesomePath: "../font"; +@borderColor: #eee; +@iconMuted: #eee; +.border-radius(@radius) { -webkit-border-radius: @radius; -moz-border-radius: @radius; border-radius: @radius; } + +@font-face { + font-family: 'FontAwesome'; + src: url('@{FontAwesomePath}/fontawesome-webfont.eot'); + src: url('@{FontAwesomePath}/fontawesome-webfont.eot?#iefix') format('embedded-opentype'), + url('@{FontAwesomePath}/fontawesome-webfont.woff') format('woff'), + url('@{FontAwesomePath}/fontawesome-webfont.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +/* Font Awesome styles + ------------------------------------------------------- */ +/* includes sprites.less reset */ +[class^="icon-"], +[class*=" icon-"] { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + text-decoration: inherit; + display: inline; + width: auto; + height: auto; + line-height: normal; + vertical-align: baseline; + background-image: none !important; + background-position: 0% 0%; + background-repeat: repeat; +} + +[class^="icon-"]:before, +[class*=" icon-"]:before { + text-decoration: inherit; + display: inline-block; + speak: none; +} + +/* makes sure icons active on rollover in links */ +a { + [class^="icon-"], + [class*=" icon-"] { + display: inline-block; + } +} + +/* makes the font 33% larger relative to the icon container */ +.icon-large:before { + vertical-align: -10%; + font-size: 4/3em; +} + +.btn, .nav { + [class^="icon-"], + [class*=" icon-"] { + display: inline; + /* keeps button heights with and without icons the same */ + line-height: .6em; + &.icon-spin { + display: inline-block; + } + } +} + +li { + [class^="icon-"], + [class*=" icon-"] { + display: inline-block; + width: 1.25em; + text-align: center; + &.icon-large { + /* increased font size for icon-large */ + width: 1.25*1.25em; + } + } +} + +ul.icons { + list-style-type: none; + text-indent: -.75em; + + li { + [class^="icon-"], + [class*=" icon-"] { + width: .75em; + } + } +} + +.icon-muted { + color: @iconMuted; +} + +// Icon Borders +// ------------------------- + +.icon-border { + border: solid 1px @borderColor; + padding: .2em .25em .15em; + .border-radius(3px); +} + +// Icon Sizes +// ------------------------- + +.icon-2x { + font-size: 2em; + &.icon-border { + border-width: 2px; + .border-radius(4px); + } +} +.icon-3x { + font-size: 3em; + &.icon-border { + border-width: 3px; + .border-radius(5px); + } +} +.icon-4x { + font-size: 4em; + &.icon-border { + border-width: 4px; + .border-radius(6px); + } +} + +// Floats +// ------------------------- + +// Quick floats +.pull-right { float: right; } +.pull-left { float: left; } + +[class^="icon-"], +[class*=" icon-"] { + &.pull-left { + margin-right: .35em; + } + &.pull-right { + margin-left: .35em; + } +} + +.btn { + [class^="icon-"], + [class*=" icon-"] { + &.pull-left, &.pull-right { + &.icon-2x { margin-top: .35em; } + } + &.icon-spin.icon-large { height: .75em; } + } +} + +.btn.btn-small { + [class^="icon-"], + [class*=" icon-"] { + &.pull-left, &.pull-right { + &.icon-2x { margin-top: .45em; } + } + } +} + +.btn.btn-large { + [class^="icon-"], + [class*=" icon-"] { + &.pull-left, &.pull-right { + &.icon-2x { margin-top: .2em; } + } + } +} + + +.icon-spin { + display: inline-block; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + -webkit-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} + +@-moz-keyframes spin { + 0% { -moz-transform: rotate(0deg); } + 100% { -moz-transform: rotate(359deg); } +} +@-webkit-keyframes spin { + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(359deg); } +} +@-o-keyframes spin { + 0% { -o-transform: rotate(0deg); } + 100% { -o-transform: rotate(359deg); } +} +@-ms-keyframes spin { + 0% { -ms-transform: rotate(0deg); } + 100% { -ms-transform: rotate(359deg); } +} +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(359deg); } +} + + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.icon-glass:before { content: "\f000"; } +.icon-music:before { content: "\f001"; } +.icon-search:before { content: "\f002"; } +.icon-envelope:before { content: "\f003"; } +.icon-heart:before { content: "\f004"; } +.icon-star:before { content: "\f005"; } +.icon-star-empty:before { content: "\f006"; } +.icon-user:before { content: "\f007"; } +.icon-film:before { content: "\f008"; } +.icon-th-large:before { content: "\f009"; } +.icon-th:before { content: "\f00a"; } +.icon-th-list:before { content: "\f00b"; } +.icon-ok:before { content: "\f00c"; } +.icon-remove:before { content: "\f00d"; } +.icon-zoom-in:before { content: "\f00e"; } + +.icon-zoom-out:before { content: "\f010"; } +.icon-off:before { content: "\f011"; } +.icon-signal:before { content: "\f012"; } +.icon-cog:before { content: "\f013"; } +.icon-trash:before { content: "\f014"; } +.icon-home:before { content: "\f015"; } +.icon-file:before { content: "\f016"; } +.icon-time:before { content: "\f017"; } +.icon-road:before { content: "\f018"; } +.icon-download-alt:before { content: "\f019"; } +.icon-download:before { content: "\f01a"; } +.icon-upload:before { content: "\f01b"; } +.icon-inbox:before { content: "\f01c"; } +.icon-play-circle:before { content: "\f01d"; } +.icon-repeat:before { content: "\f01e"; } + +/* \f020 doesn't work in Safari. all shifted one down */ +.icon-refresh:before { content: "\f021"; } +.icon-list-alt:before { content: "\f022"; } +.icon-lock:before { content: "\f023"; } +.icon-flag:before { content: "\f024"; } +.icon-headphones:before { content: "\f025"; } +.icon-volume-off:before { content: "\f026"; } +.icon-volume-down:before { content: "\f027"; } +.icon-volume-up:before { content: "\f028"; } +.icon-qrcode:before { content: "\f029"; } +.icon-barcode:before { content: "\f02a"; } +.icon-tag:before { content: "\f02b"; } +.icon-tags:before { content: "\f02c"; } +.icon-book:before { content: "\f02d"; } +.icon-bookmark:before { content: "\f02e"; } +.icon-print:before { content: "\f02f"; } + +.icon-camera:before { content: "\f030"; } +.icon-font:before { content: "\f031"; } +.icon-bold:before { content: "\f032"; } +.icon-italic:before { content: "\f033"; } +.icon-text-height:before { content: "\f034"; } +.icon-text-width:before { content: "\f035"; } +.icon-align-left:before { content: "\f036"; } +.icon-align-center:before { content: "\f037"; } +.icon-align-right:before { content: "\f038"; } +.icon-align-justify:before { content: "\f039"; } +.icon-list:before { content: "\f03a"; } +.icon-indent-left:before { content: "\f03b"; } +.icon-indent-right:before { content: "\f03c"; } +.icon-facetime-video:before { content: "\f03d"; } +.icon-picture:before { content: "\f03e"; } + +.icon-pencil:before { content: "\f040"; } +.icon-map-marker:before { content: "\f041"; } +.icon-adjust:before { content: "\f042"; } +.icon-tint:before { content: "\f043"; } +.icon-edit:before { content: "\f044"; } +.icon-share:before { content: "\f045"; } +.icon-check:before { content: "\f046"; } +.icon-move:before { content: "\f047"; } +.icon-step-backward:before { content: "\f048"; } +.icon-fast-backward:before { content: "\f049"; } +.icon-backward:before { content: "\f04a"; } +.icon-play:before { content: "\f04b"; } +.icon-pause:before { content: "\f04c"; } +.icon-stop:before { content: "\f04d"; } +.icon-forward:before { content: "\f04e"; } + +.icon-fast-forward:before { content: "\f050"; } +.icon-step-forward:before { content: "\f051"; } +.icon-eject:before { content: "\f052"; } +.icon-chevron-left:before { content: "\f053"; } +.icon-chevron-right:before { content: "\f054"; } +.icon-plus-sign:before { content: "\f055"; } +.icon-minus-sign:before { content: "\f056"; } +.icon-remove-sign:before { content: "\f057"; } +.icon-ok-sign:before { content: "\f058"; } +.icon-question-sign:before { content: "\f059"; } +.icon-info-sign:before { content: "\f05a"; } +.icon-screenshot:before { content: "\f05b"; } +.icon-remove-circle:before { content: "\f05c"; } +.icon-ok-circle:before { content: "\f05d"; } +.icon-ban-circle:before { content: "\f05e"; } + +.icon-arrow-left:before { content: "\f060"; } +.icon-arrow-right:before { content: "\f061"; } +.icon-arrow-up:before { content: "\f062"; } +.icon-arrow-down:before { content: "\f063"; } +.icon-share-alt:before { content: "\f064"; } +.icon-resize-full:before { content: "\f065"; } +.icon-resize-small:before { content: "\f066"; } +.icon-plus:before { content: "\f067"; } +.icon-minus:before { content: "\f068"; } +.icon-asterisk:before { content: "\f069"; } +.icon-exclamation-sign:before { content: "\f06a"; } +.icon-gift:before { content: "\f06b"; } +.icon-leaf:before { content: "\f06c"; } +.icon-fire:before { content: "\f06d"; } +.icon-eye-open:before { content: "\f06e"; } + +.icon-eye-close:before { content: "\f070"; } +.icon-warning-sign:before { content: "\f071"; } +.icon-plane:before { content: "\f072"; } +.icon-calendar:before { content: "\f073"; } +.icon-random:before { content: "\f074"; } +.icon-comment:before { content: "\f075"; } +.icon-magnet:before { content: "\f076"; } +.icon-chevron-up:before { content: "\f077"; } +.icon-chevron-down:before { content: "\f078"; } +.icon-retweet:before { content: "\f079"; } +.icon-shopping-cart:before { content: "\f07a"; } +.icon-folder-close:before { content: "\f07b"; } +.icon-folder-open:before { content: "\f07c"; } +.icon-resize-vertical:before { content: "\f07d"; } +.icon-resize-horizontal:before { content: "\f07e"; } + +.icon-bar-chart:before { content: "\f080"; } +.icon-twitter-sign:before { content: "\f081"; } +.icon-facebook-sign:before { content: "\f082"; } +.icon-camera-retro:before { content: "\f083"; } +.icon-key:before { content: "\f084"; } +.icon-cogs:before { content: "\f085"; } +.icon-comments:before { content: "\f086"; } +.icon-thumbs-up:before { content: "\f087"; } +.icon-thumbs-down:before { content: "\f088"; } +.icon-star-half:before { content: "\f089"; } +.icon-heart-empty:before { content: "\f08a"; } +.icon-signout:before { content: "\f08b"; } +.icon-linkedin-sign:before { content: "\f08c"; } +.icon-pushpin:before { content: "\f08d"; } +.icon-external-link:before { content: "\f08e"; } + +.icon-signin:before { content: "\f090"; } +.icon-trophy:before { content: "\f091"; } +.icon-github-sign:before { content: "\f092"; } +.icon-upload-alt:before { content: "\f093"; } +.icon-lemon:before { content: "\f094"; } +.icon-phone:before { content: "\f095"; } +.icon-check-empty:before { content: "\f096"; } +.icon-bookmark-empty:before { content: "\f097"; } +.icon-phone-sign:before { content: "\f098"; } +.icon-twitter:before { content: "\f099"; } +.icon-facebook:before { content: "\f09a"; } +.icon-github:before { content: "\f09b"; } +.icon-unlock:before { content: "\f09c"; } +.icon-credit-card:before { content: "\f09d"; } +.icon-rss:before { content: "\f09e"; } + +.icon-hdd:before { content: "\f0a0"; } +.icon-bullhorn:before { content: "\f0a1"; } +.icon-bell:before { content: "\f0a2"; } +.icon-certificate:before { content: "\f0a3"; } +.icon-hand-right:before { content: "\f0a4"; } +.icon-hand-left:before { content: "\f0a5"; } +.icon-hand-up:before { content: "\f0a6"; } +.icon-hand-down:before { content: "\f0a7"; } +.icon-circle-arrow-left:before { content: "\f0a8"; } +.icon-circle-arrow-right:before { content: "\f0a9"; } +.icon-circle-arrow-up:before { content: "\f0aa"; } +.icon-circle-arrow-down:before { content: "\f0ab"; } +.icon-globe:before { content: "\f0ac"; } +.icon-wrench:before { content: "\f0ad"; } +.icon-tasks:before { content: "\f0ae"; } + +.icon-filter:before { content: "\f0b0"; } +.icon-briefcase:before { content: "\f0b1"; } +.icon-fullscreen:before { content: "\f0b2"; } + +.icon-group:before { content: "\f0c0"; } +.icon-link:before { content: "\f0c1"; } +.icon-cloud:before { content: "\f0c2"; } +.icon-beaker:before { content: "\f0c3"; } +.icon-cut:before { content: "\f0c4"; } +.icon-copy:before { content: "\f0c5"; } +.icon-paper-clip:before { content: "\f0c6"; } +.icon-save:before { content: "\f0c7"; } +.icon-sign-blank:before { content: "\f0c8"; } +.icon-reorder:before { content: "\f0c9"; } +.icon-list-ul:before { content: "\f0ca"; } +.icon-list-ol:before { content: "\f0cb"; } +.icon-strikethrough:before { content: "\f0cc"; } +.icon-underline:before { content: "\f0cd"; } +.icon-table:before { content: "\f0ce"; } + +.icon-magic:before { content: "\f0d0"; } +.icon-truck:before { content: "\f0d1"; } +.icon-pinterest:before { content: "\f0d2"; } +.icon-pinterest-sign:before { content: "\f0d3"; } +.icon-google-plus-sign:before { content: "\f0d4"; } +.icon-google-plus:before { content: "\f0d5"; } +.icon-money:before { content: "\f0d6"; } +.icon-caret-down:before { content: "\f0d7"; } +.icon-caret-up:before { content: "\f0d8"; } +.icon-caret-left:before { content: "\f0d9"; } +.icon-caret-right:before { content: "\f0da"; } +.icon-columns:before { content: "\f0db"; } +.icon-sort:before { content: "\f0dc"; } +.icon-sort-down:before { content: "\f0dd"; } +.icon-sort-up:before { content: "\f0de"; } + +.icon-envelope-alt:before { content: "\f0e0"; } +.icon-linkedin:before { content: "\f0e1"; } +.icon-undo:before { content: "\f0e2"; } +.icon-legal:before { content: "\f0e3"; } +.icon-dashboard:before { content: "\f0e4"; } +.icon-comment-alt:before { content: "\f0e5"; } +.icon-comments-alt:before { content: "\f0e6"; } +.icon-bolt:before { content: "\f0e7"; } +.icon-sitemap:before { content: "\f0e8"; } +.icon-umbrella:before { content: "\f0e9"; } +.icon-paste:before { content: "\f0ea"; } +.icon-lightbulb:before { content: "\f0eb"; } +.icon-exchange:before { content: "\f0ec"; } +.icon-cloud-download:before { content: "\f0ed"; } +.icon-cloud-upload:before { content: "\f0ee"; } + +.icon-user-md:before { content: "\f0f0"; } +.icon-stethoscope:before { content: "\f0f1"; } +.icon-suitcase:before { content: "\f0f2"; } +.icon-bell-alt:before { content: "\f0f3"; } +.icon-coffee:before { content: "\f0f4"; } +.icon-food:before { content: "\f0f5"; } +.icon-file-alt:before { content: "\f0f6"; } +.icon-building:before { content: "\f0f7"; } +.icon-hospital:before { content: "\f0f8"; } +.icon-ambulance:before { content: "\f0f9"; } +.icon-medkit:before { content: "\f0fa"; } +.icon-fighter-jet:before { content: "\f0fb"; } +.icon-beer:before { content: "\f0fc"; } +.icon-h-sign:before { content: "\f0fd"; } +.icon-plus-sign-alt:before { content: "\f0fe"; } + +.icon-double-angle-left:before { content: "\f100"; } +.icon-double-angle-right:before { content: "\f101"; } +.icon-double-angle-up:before { content: "\f102"; } +.icon-double-angle-down:before { content: "\f103"; } +.icon-angle-left:before { content: "\f104"; } +.icon-angle-right:before { content: "\f105"; } +.icon-angle-up:before { content: "\f106"; } +.icon-angle-down:before { content: "\f107"; } +.icon-desktop:before { content: "\f108"; } +.icon-laptop:before { content: "\f109"; } +.icon-tablet:before { content: "\f10a"; } +.icon-mobile-phone:before { content: "\f10b"; } +.icon-circle-blank:before { content: "\f10c"; } +.icon-quote-left:before { content: "\f10d"; } +.icon-quote-right:before { content: "\f10e"; } + +.icon-spinner:before { content: "\f110"; } +.icon-circle:before { content: "\f111"; } +.icon-reply:before { content: "\f112"; } +.icon-github-alt:before { content: "\f113"; } +.icon-folder-close-alt:before { content: "\f114"; } +.icon-folder-open-alt:before { content: "\f115"; } diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/sass/font-awesome.sass" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/sass/font-awesome.sass" new file mode 100644 index 0000000..8d54b90 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/sass/font-awesome.sass" @@ -0,0 +1,707 @@ +/* Font Awesome 3.0 + * the iconic font designed for use with Twitter Bootstrap + * ------------------------------------------------------- + * The full suite of pictographic icons, examples, and documentation + * can be found at: http://fortawesome.github.com/Font-Awesome/ + * + * License + * ------------------------------------------------------- + * • The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL + * • Font Awesome CSS, LESS, and SASS files are licensed under the MIT License - + * http://opensource.org/licenses/mit-license.html + * • The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/ + * • Attribution is no longer required in Font Awesome 3.0, but much appreciated: + * "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome" + * + * Contact + * ------------------------------------------------------- + * Email: dave@davegandy.com + * Twitter: http://twitter.com/fortaweso_me + * Work: Lead Product Designer @ http://kyruus.com + +$fontAwesomePath: "../font" !default +$borderColor: #eee +$iconMuted: #eee +@mixin border-radius($radius) + -webkit-border-radius: $radius + -moz-border-radius: $radius + border-radius: $radius + + +@font-face + font-family: 'FontAwesome' + src: url('#{$fontAwesomePath}/fontawesome-webfont.eot') + src: url('#{$fontAwesomePath}/fontawesome-webfont.eot?#iefix') format("embedded-opentype"), url('#{$fontAwesomePath}/fontawesome-webfont.woff') format("woff"), url('#{$fontAwesomePath}/fontawesome-webfont.ttf') format("truetype") + font-weight: normal + font-style: normal + + +/* Font Awesome styles + * ------------------------------------------------------- +/* includes sprites.less reset + +[class^="icon-"], [class*=" icon-"] + font-family: FontAwesome + font-weight: normal + font-style: normal + text-decoration: inherit + display: inline + width: auto + height: auto + line-height: normal + vertical-align: baseline + background-image: none !important + background-position: 0% 0% + background-repeat: repeat + +[class^="icon-"]:before, [class*=" icon-"]:before + text-decoration: inherit + display: inline-block + speak: none + +/* makes sure icons active on rollover in links + +a + [class^="icon-"], [class*=" icon-"] + display: inline-block + +/* makes the font 33% larger relative to the icon container + +.icon-large:before + vertical-align: -10% + font-size: 1.3333333333333333em + +.btn, .nav + [class^="icon-"], [class*=" icon-"] + display: inline + /* keeps button heights with and without icons the same */ + line-height: .6em + &.icon-spin + display: inline-block + +li + [class^="icon-"], [class*=" icon-"] + display: inline-block + width: 1.25em + text-align: center + &.icon-large + /* increased font size for icon-large */ + width: 1.25*1.25em + +ul.icons + list-style-type: none + text-indent: -.75em + + li + [class^="icon-"], [class*=" icon-"] + width: .75em + +.icon-muted + color: $iconMuted + +// Icon Borders +// ------------------------- + +.icon-border + border: solid 1px $borderColor + padding: .2em .25em .15em + @include border-radius(3px) + +// Icon Sizes +// ------------------------- + +.icon-2x + font-size: 2em + &.icon-border + border-width: 2px + @include border-radius(4px) + +.icon-3x + font-size: 3em + &.icon-border + border-width: 3px + @include border-radius(5px) + +.icon-4x + font-size: 4em + &.icon-border + border-width: 4px + @include border-radius(6px) + +// Floats +// ------------------------- + +// Quick floats +.pull-right + float: right + +.pull-left + float: left + +[class^="icon-"], [class*=" icon-"] + &.pull-left + margin-right: .35em + &.pull-right + margin-left: .35em + +.btn + [class^="icon-"], [class*=" icon-"] + &.pull-left, &.pull-right + &.icon-2x + margin-top: .35em + &.icon-spin.icon-large + height: .75em + +.btn.btn-small + [class^="icon-"], [class*=" icon-"] + &.pull-left, &.pull-right + &.icon-2x + margin-top: .45em + +.btn.btn-large + [class^="icon-"], [class*=" icon-"] + &.pull-left, &.pull-right + &.icon-2x + margin-top: .2em + + +.icon-spin + display: inline-block + -moz-animation: spin 2s infinite linear + -o-animation: spin 2s infinite linear + -webkit-animation: spin 2s infinite linear + animation: spin 2s infinite linear + +@-moz-keyframes spin + 0% + -moz-transform: rotate(0deg) + 100% + -moz-transform: rotate(359deg) + +@-webkit-keyframes spin + 0% + -webkit-transform: rotate(0deg) + 100% + -webkit-transform: rotate(359deg) + +@-o-keyframes spin + 0% + -o-transform: rotate(0deg) + 100% + -o-transform: rotate(359deg) + +@-ms-keyframes spin + 0% + -ms-transform: rotate(0deg) + 100% + -ms-transform: rotate(359deg) + +@keyframes spin + 0% + transform: rotate(0deg) + 100% + transform: rotate(359deg) + + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + * readers do not read off random characters that represent icons + +.icon-glass:before + content: "\f000" +.icon-music:before + content: "\f001" +.icon-search:before + content: "\f002" +.icon-envelope:before + content: "\f003" +.icon-heart:before + content: "\f004" +.icon-star:before + content: "\f005" +.icon-star-empty:before + content: "\f006" +.icon-user:before + content: "\f007" +.icon-film:before + content: "\f008" +.icon-th-large:before + content: "\f009" +.icon-th:before + content: "\f00a" +.icon-th-list:before + content: "\f00b" +.icon-ok:before + content: "\f00c" +.icon-remove:before + content: "\f00d" +.icon-zoom-in:before + content: "\f00e" +.icon-zoom-out:before + content: "\f010" +.icon-off:before + content: "\f011" +.icon-signal:before + content: "\f012" +.icon-cog:before + content: "\f013" +.icon-trash:before + content: "\f014" +.icon-home:before + content: "\f015" +.icon-file:before + content: "\f016" +.icon-time:before + content: "\f017" +.icon-road:before + content: "\f018" +.icon-download-alt:before + content: "\f019" +.icon-download:before + content: "\f01a" +.icon-upload:before + content: "\f01b" +.icon-inbox:before + content: "\f01c" +.icon-play-circle:before + content: "\f01d" +.icon-repeat:before + content: "\f01e" +/* \f020 doesn't work in Safari. all shifted one down +.icon-refresh:before + content: "\f021" +.icon-list-alt:before + content: "\f022" +.icon-lock:before + content: "\f023" +.icon-flag:before + content: "\f024" +.icon-headphones:before + content: "\f025" +.icon-volume-off:before + content: "\f026" +.icon-volume-down:before + content: "\f027" +.icon-volume-up:before + content: "\f028" +.icon-qrcode:before + content: "\f029" +.icon-barcode:before + content: "\f02a" +.icon-tag:before + content: "\f02b" +.icon-tags:before + content: "\f02c" +.icon-book:before + content: "\f02d" +.icon-bookmark:before + content: "\f02e" +.icon-print:before + content: "\f02f" +.icon-camera:before + content: "\f030" +.icon-font:before + content: "\f031" +.icon-bold:before + content: "\f032" +.icon-italic:before + content: "\f033" +.icon-text-height:before + content: "\f034" +.icon-text-width:before + content: "\f035" +.icon-align-left:before + content: "\f036" +.icon-align-center:before + content: "\f037" +.icon-align-right:before + content: "\f038" +.icon-align-justify:before + content: "\f039" +.icon-list:before + content: "\f03a" +.icon-indent-left:before + content: "\f03b" +.icon-indent-right:before + content: "\f03c" +.icon-facetime-video:before + content: "\f03d" +.icon-picture:before + content: "\f03e" +.icon-pencil:before + content: "\f040" +.icon-map-marker:before + content: "\f041" +.icon-adjust:before + content: "\f042" +.icon-tint:before + content: "\f043" +.icon-edit:before + content: "\f044" +.icon-share:before + content: "\f045" +.icon-check:before + content: "\f046" +.icon-move:before + content: "\f047" +.icon-step-backward:before + content: "\f048" +.icon-fast-backward:before + content: "\f049" +.icon-backward:before + content: "\f04a" +.icon-play:before + content: "\f04b" +.icon-pause:before + content: "\f04c" +.icon-stop:before + content: "\f04d" +.icon-forward:before + content: "\f04e" +.icon-fast-forward:before + content: "\f050" +.icon-step-forward:before + content: "\f051" +.icon-eject:before + content: "\f052" +.icon-chevron-left:before + content: "\f053" +.icon-chevron-right:before + content: "\f054" +.icon-plus-sign:before + content: "\f055" +.icon-minus-sign:before + content: "\f056" +.icon-remove-sign:before + content: "\f057" +.icon-ok-sign:before + content: "\f058" +.icon-question-sign:before + content: "\f059" +.icon-info-sign:before + content: "\f05a" +.icon-screenshot:before + content: "\f05b" +.icon-remove-circle:before + content: "\f05c" +.icon-ok-circle:before + content: "\f05d" +.icon-ban-circle:before + content: "\f05e" +.icon-arrow-left:before + content: "\f060" +.icon-arrow-right:before + content: "\f061" +.icon-arrow-up:before + content: "\f062" +.icon-arrow-down:before + content: "\f063" +.icon-share-alt:before + content: "\f064" +.icon-resize-full:before + content: "\f065" +.icon-resize-small:before + content: "\f066" +.icon-plus:before + content: "\f067" +.icon-minus:before + content: "\f068" +.icon-asterisk:before + content: "\f069" +.icon-exclamation-sign:before + content: "\f06a" +.icon-gift:before + content: "\f06b" +.icon-leaf:before + content: "\f06c" +.icon-fire:before + content: "\f06d" +.icon-eye-open:before + content: "\f06e" +.icon-eye-close:before + content: "\f070" +.icon-warning-sign:before + content: "\f071" +.icon-plane:before + content: "\f072" +.icon-calendar:before + content: "\f073" +.icon-random:before + content: "\f074" +.icon-comment:before + content: "\f075" +.icon-magnet:before + content: "\f076" +.icon-chevron-up:before + content: "\f077" +.icon-chevron-down:before + content: "\f078" +.icon-retweet:before + content: "\f079" +.icon-shopping-cart:before + content: "\f07a" +.icon-folder-close:before + content: "\f07b" +.icon-folder-open:before + content: "\f07c" +.icon-resize-vertical:before + content: "\f07d" +.icon-resize-horizontal:before + content: "\f07e" +.icon-bar-chart:before + content: "\f080" +.icon-twitter-sign:before + content: "\f081" +.icon-facebook-sign:before + content: "\f082" +.icon-camera-retro:before + content: "\f083" +.icon-key:before + content: "\f084" +.icon-cogs:before + content: "\f085" +.icon-comments:before + content: "\f086" +.icon-thumbs-up:before + content: "\f087" +.icon-thumbs-down:before + content: "\f088" +.icon-star-half:before + content: "\f089" +.icon-heart-empty:before + content: "\f08a" +.icon-signout:before + content: "\f08b" +.icon-linkedin-sign:before + content: "\f08c" +.icon-pushpin:before + content: "\f08d" +.icon-external-link:before + content: "\f08e" +.icon-signin:before + content: "\f090" +.icon-trophy:before + content: "\f091" +.icon-github-sign:before + content: "\f092" +.icon-upload-alt:before + content: "\f093" +.icon-lemon:before + content: "\f094" +.icon-phone:before + content: "\f095" +.icon-check-empty:before + content: "\f096" +.icon-bookmark-empty:before + content: "\f097" +.icon-phone-sign:before + content: "\f098" +.icon-twitter:before + content: "\f099" +.icon-facebook:before + content: "\f09a" +.icon-github:before + content: "\f09b" +.icon-unlock:before + content: "\f09c" +.icon-credit-card:before + content: "\f09d" +.icon-rss:before + content: "\f09e" +.icon-hdd:before + content: "\f0a0" +.icon-bullhorn:before + content: "\f0a1" +.icon-bell:before + content: "\f0a2" +.icon-certificate:before + content: "\f0a3" +.icon-hand-right:before + content: "\f0a4" +.icon-hand-left:before + content: "\f0a5" +.icon-hand-up:before + content: "\f0a6" +.icon-hand-down:before + content: "\f0a7" +.icon-circle-arrow-left:before + content: "\f0a8" +.icon-circle-arrow-right:before + content: "\f0a9" +.icon-circle-arrow-up:before + content: "\f0aa" +.icon-circle-arrow-down:before + content: "\f0ab" +.icon-globe:before + content: "\f0ac" +.icon-wrench:before + content: "\f0ad" +.icon-tasks:before + content: "\f0ae" +.icon-filter:before + content: "\f0b0" +.icon-briefcase:before + content: "\f0b1" +.icon-fullscreen:before + content: "\f0b2" +.icon-group:before + content: "\f0c0" +.icon-link:before + content: "\f0c1" +.icon-cloud:before + content: "\f0c2" +.icon-beaker:before + content: "\f0c3" +.icon-cut:before + content: "\f0c4" +.icon-copy:before + content: "\f0c5" +.icon-paper-clip:before + content: "\f0c6" +.icon-save:before + content: "\f0c7" +.icon-sign-blank:before + content: "\f0c8" +.icon-reorder:before + content: "\f0c9" +.icon-list-ul:before + content: "\f0ca" +.icon-list-ol:before + content: "\f0cb" +.icon-strikethrough:before + content: "\f0cc" +.icon-underline:before + content: "\f0cd" +.icon-table:before + content: "\f0ce" +.icon-magic:before + content: "\f0d0" +.icon-truck:before + content: "\f0d1" +.icon-pinterest:before + content: "\f0d2" +.icon-pinterest-sign:before + content: "\f0d3" +.icon-google-plus-sign:before + content: "\f0d4" +.icon-google-plus:before + content: "\f0d5" +.icon-money:before + content: "\f0d6" +.icon-caret-down:before + content: "\f0d7" +.icon-caret-up:before + content: "\f0d8" +.icon-caret-left:before + content: "\f0d9" +.icon-caret-right:before + content: "\f0da" +.icon-columns:before + content: "\f0db" +.icon-sort:before + content: "\f0dc" +.icon-sort-down:before + content: "\f0dd" +.icon-sort-up:before + content: "\f0de" +.icon-envelope-alt:before + content: "\f0e0" +.icon-linkedin:before + content: "\f0e1" +.icon-undo:before + content: "\f0e2" +.icon-legal:before + content: "\f0e3" +.icon-dashboard:before + content: "\f0e4" +.icon-comment-alt:before + content: "\f0e5" +.icon-comments-alt:before + content: "\f0e6" +.icon-bolt:before + content: "\f0e7" +.icon-sitemap:before + content: "\f0e8" +.icon-umbrella:before + content: "\f0e9" +.icon-paste:before + content: "\f0ea" +.icon-lightbulb:before + content: "\f0eb" +.icon-exchange:before + content: "\f0ec" +.icon-cloud-download:before + content: "\f0ed" +.icon-cloud-upload:before + content: "\f0ee" +.icon-user-md:before + content: "\f0f0" +.icon-stethoscope:before + content: "\f0f1" +.icon-suitcase:before + content: "\f0f2" +.icon-bell-alt:before + content: "\f0f3" +.icon-coffee:before + content: "\f0f4" +.icon-food:before + content: "\f0f5" +.icon-file-alt:before + content: "\f0f6" +.icon-building:before + content: "\f0f7" +.icon-hospital:before + content: "\f0f8" +.icon-ambulance:before + content: "\f0f9" +.icon-medkit:before + content: "\f0fa" +.icon-fighter-jet:before + content: "\f0fb" +.icon-beer:before + content: "\f0fc" +.icon-h-sign:before + content: "\f0fd" +.icon-plus-sign-alt:before + content: "\f0fe" +.icon-double-angle-left:before + content: "\f100" +.icon-double-angle-right:before + content: "\f101" +.icon-double-angle-up:before + content: "\f102" +.icon-double-angle-down:before + content: "\f103" +.icon-angle-left:before + content: "\f104" +.icon-angle-right:before + content: "\f105" +.icon-angle-up:before + content: "\f106" +.icon-angle-down:before + content: "\f107" +.icon-desktop:before + content: "\f108" +.icon-laptop:before + content: "\f109" +.icon-tablet:before + content: "\f10a" +.icon-mobile-phone:before + content: "\f10b" +.icon-circle-blank:before + content: "\f10c" +.icon-quote-left:before + content: "\f10d" +.icon-quote-right:before + content: "\f10e" +.icon-spinner:before + content: "\f110" +.icon-circle:before + content: "\f111" +.icon-reply:before + content: "\f112" +.icon-github-alt:before + content: "\f113" +.icon-folder-close-alt:before + content: "\f114" +.icon-folder-open-alt:before + content: "\f115" diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/sass/font-awesome.scss" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/sass/font-awesome.scss" new file mode 100644 index 0000000..6f34969 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/font-awesome/sass/font-awesome.scss" @@ -0,0 +1,499 @@ +/* Font Awesome 3.0 + the iconic font designed for use with Twitter Bootstrap + ------------------------------------------------------- + The full suite of pictographic icons, examples, and documentation + can be found at: http://fortawesome.github.com/Font-Awesome/ + + License + ------------------------------------------------------- + • The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL + • Font Awesome CSS, LESS, and SASS files are licensed under the MIT License - + http://opensource.org/licenses/mit-license.html + • The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/ + • Attribution is no longer required in Font Awesome 3.0, but much appreciated: + "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome" + + Contact + ------------------------------------------------------- + Email: dave@davegandy.com + Twitter: http://twitter.com/fortaweso_me + Work: Lead Product Designer @ http://kyruus.com + + */ + +$fontAwesomePath: "../font" !default; +$borderColor: #eee; +$iconMuted: #eee; +@mixin border-radius($radius) { -webkit-border-radius: $radius; -moz-border-radius: $radius; border-radius: $radius; } + + +@font-face { + font-family: 'FontAwesome'; + src: url('#{$fontAwesomePath}/fontawesome-webfont.eot'); + src: url('#{$fontAwesomePath}/fontawesome-webfont.eot?#iefix') format("embedded-opentype"), + url('#{$fontAwesomePath}/fontawesome-webfont.woff') format("woff"), + url('#{$fontAwesomePath}/fontawesome-webfont.ttf') format("truetype"); + font-weight: normal; + font-style: normal; +} + +/* Font Awesome styles + ------------------------------------------------------- */ +/* includes sprites.less reset */ +[class^="icon-"], +[class*=" icon-"] { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + text-decoration: inherit; + display: inline; + width: auto; + height: auto; + line-height: normal; + vertical-align: baseline; + background-image: none !important; + background-position: 0% 0%; + background-repeat: repeat; +} + +[class^="icon-"]:before, +[class*=" icon-"]:before { + text-decoration: inherit; + display: inline-block; + speak: none; +} + +/* makes sure icons active on rollover in links */ +a { + [class^="icon-"], + [class*=" icon-"] { + display: inline-block; + } +} + +/* makes the font 33% larger relative to the icon container */ +.icon-large:before { + vertical-align: -10%; + font-size: 1.3333333333333333em; +} + +.btn, .nav { + [class^="icon-"], + [class*=" icon-"] { + display: inline; + /* keeps button heights with and without icons the same */ + line-height: .6em; + &.icon-spin { + display: inline-block; + } + } +} + +li { + [class^="icon-"], + [class*=" icon-"] { + display: inline-block; + width: 1.25em; + text-align: center; + &.icon-large { + /* increased font size for icon-large */ + width: 1.25*1.25em; + } + } +} + +ul.icons { + list-style-type: none; + text-indent: -.75em; + + li { + [class^="icon-"], + [class*=" icon-"] { + width: .75em; + } + } +} + +.icon-muted { + color: $iconMuted; +} + +// Icon Borders +// ------------------------- + +.icon-border { + border: solid 1px $borderColor; + padding: .2em .25em .15em; + @include border-radius(3px); +} + +// Icon Sizes +// ------------------------- + +.icon-2x { + font-size: 2em; + &.icon-border { + border-width: 2px; + @include border-radius(4px); + } +} +.icon-3x { + font-size: 3em; + &.icon-border { + border-width: 3px; + @include border-radius(5px); + } +} +.icon-4x { + font-size: 4em; + &.icon-border { + border-width: 4px; + @include border-radius(6px); + } +} + +// Floats +// ------------------------- + +// Quick floats +.pull-right { float: right; } +.pull-left { float: left; } + +[class^="icon-"], +[class*=" icon-"] { + &.pull-left { + margin-right: .35em; + } + &.pull-right { + margin-left: .35em; + } +} + +.btn { + [class^="icon-"], + [class*=" icon-"] { + &.pull-left, &.pull-right { + &.icon-2x { margin-top: .35em; } + } + &.icon-spin.icon-large { height: .75em; } + } +} + +.btn.btn-small { + [class^="icon-"], + [class*=" icon-"] { + &.pull-left, &.pull-right { + &.icon-2x { margin-top: .45em; } + } + } +} + +.btn.btn-large { + [class^="icon-"], + [class*=" icon-"] { + &.pull-left, &.pull-right { + &.icon-2x { margin-top: .2em; } + } + } +} + + +.icon-spin { + display: inline-block; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + -webkit-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} + +@-moz-keyframes spin { + 0% { -moz-transform: rotate(0deg); } + 100% { -moz-transform: rotate(359deg); } +} +@-webkit-keyframes spin { + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(359deg); } +} +@-o-keyframes spin { + 0% { -o-transform: rotate(0deg); } + 100% { -o-transform: rotate(359deg); } +} +@-ms-keyframes spin { + 0% { -ms-transform: rotate(0deg); } + 100% { -ms-transform: rotate(359deg); } +} +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(359deg); } +} + + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.icon-glass:before { content: "\f000"; } +.icon-music:before { content: "\f001"; } +.icon-search:before { content: "\f002"; } +.icon-envelope:before { content: "\f003"; } +.icon-heart:before { content: "\f004"; } +.icon-star:before { content: "\f005"; } +.icon-star-empty:before { content: "\f006"; } +.icon-user:before { content: "\f007"; } +.icon-film:before { content: "\f008"; } +.icon-th-large:before { content: "\f009"; } +.icon-th:before { content: "\f00a"; } +.icon-th-list:before { content: "\f00b"; } +.icon-ok:before { content: "\f00c"; } +.icon-remove:before { content: "\f00d"; } +.icon-zoom-in:before { content: "\f00e"; } + +.icon-zoom-out:before { content: "\f010"; } +.icon-off:before { content: "\f011"; } +.icon-signal:before { content: "\f012"; } +.icon-cog:before { content: "\f013"; } +.icon-trash:before { content: "\f014"; } +.icon-home:before { content: "\f015"; } +.icon-file:before { content: "\f016"; } +.icon-time:before { content: "\f017"; } +.icon-road:before { content: "\f018"; } +.icon-download-alt:before { content: "\f019"; } +.icon-download:before { content: "\f01a"; } +.icon-upload:before { content: "\f01b"; } +.icon-inbox:before { content: "\f01c"; } +.icon-play-circle:before { content: "\f01d"; } +.icon-repeat:before { content: "\f01e"; } + +/* \f020 doesn't work in Safari. all shifted one down */ +.icon-refresh:before { content: "\f021"; } +.icon-list-alt:before { content: "\f022"; } +.icon-lock:before { content: "\f023"; } +.icon-flag:before { content: "\f024"; } +.icon-headphones:before { content: "\f025"; } +.icon-volume-off:before { content: "\f026"; } +.icon-volume-down:before { content: "\f027"; } +.icon-volume-up:before { content: "\f028"; } +.icon-qrcode:before { content: "\f029"; } +.icon-barcode:before { content: "\f02a"; } +.icon-tag:before { content: "\f02b"; } +.icon-tags:before { content: "\f02c"; } +.icon-book:before { content: "\f02d"; } +.icon-bookmark:before { content: "\f02e"; } +.icon-print:before { content: "\f02f"; } + +.icon-camera:before { content: "\f030"; } +.icon-font:before { content: "\f031"; } +.icon-bold:before { content: "\f032"; } +.icon-italic:before { content: "\f033"; } +.icon-text-height:before { content: "\f034"; } +.icon-text-width:before { content: "\f035"; } +.icon-align-left:before { content: "\f036"; } +.icon-align-center:before { content: "\f037"; } +.icon-align-right:before { content: "\f038"; } +.icon-align-justify:before { content: "\f039"; } +.icon-list:before { content: "\f03a"; } +.icon-indent-left:before { content: "\f03b"; } +.icon-indent-right:before { content: "\f03c"; } +.icon-facetime-video:before { content: "\f03d"; } +.icon-picture:before { content: "\f03e"; } + +.icon-pencil:before { content: "\f040"; } +.icon-map-marker:before { content: "\f041"; } +.icon-adjust:before { content: "\f042"; } +.icon-tint:before { content: "\f043"; } +.icon-edit:before { content: "\f044"; } +.icon-share:before { content: "\f045"; } +.icon-check:before { content: "\f046"; } +.icon-move:before { content: "\f047"; } +.icon-step-backward:before { content: "\f048"; } +.icon-fast-backward:before { content: "\f049"; } +.icon-backward:before { content: "\f04a"; } +.icon-play:before { content: "\f04b"; } +.icon-pause:before { content: "\f04c"; } +.icon-stop:before { content: "\f04d"; } +.icon-forward:before { content: "\f04e"; } + +.icon-fast-forward:before { content: "\f050"; } +.icon-step-forward:before { content: "\f051"; } +.icon-eject:before { content: "\f052"; } +.icon-chevron-left:before { content: "\f053"; } +.icon-chevron-right:before { content: "\f054"; } +.icon-plus-sign:before { content: "\f055"; } +.icon-minus-sign:before { content: "\f056"; } +.icon-remove-sign:before { content: "\f057"; } +.icon-ok-sign:before { content: "\f058"; } +.icon-question-sign:before { content: "\f059"; } +.icon-info-sign:before { content: "\f05a"; } +.icon-screenshot:before { content: "\f05b"; } +.icon-remove-circle:before { content: "\f05c"; } +.icon-ok-circle:before { content: "\f05d"; } +.icon-ban-circle:before { content: "\f05e"; } + +.icon-arrow-left:before { content: "\f060"; } +.icon-arrow-right:before { content: "\f061"; } +.icon-arrow-up:before { content: "\f062"; } +.icon-arrow-down:before { content: "\f063"; } +.icon-share-alt:before { content: "\f064"; } +.icon-resize-full:before { content: "\f065"; } +.icon-resize-small:before { content: "\f066"; } +.icon-plus:before { content: "\f067"; } +.icon-minus:before { content: "\f068"; } +.icon-asterisk:before { content: "\f069"; } +.icon-exclamation-sign:before { content: "\f06a"; } +.icon-gift:before { content: "\f06b"; } +.icon-leaf:before { content: "\f06c"; } +.icon-fire:before { content: "\f06d"; } +.icon-eye-open:before { content: "\f06e"; } + +.icon-eye-close:before { content: "\f070"; } +.icon-warning-sign:before { content: "\f071"; } +.icon-plane:before { content: "\f072"; } +.icon-calendar:before { content: "\f073"; } +.icon-random:before { content: "\f074"; } +.icon-comment:before { content: "\f075"; } +.icon-magnet:before { content: "\f076"; } +.icon-chevron-up:before { content: "\f077"; } +.icon-chevron-down:before { content: "\f078"; } +.icon-retweet:before { content: "\f079"; } +.icon-shopping-cart:before { content: "\f07a"; } +.icon-folder-close:before { content: "\f07b"; } +.icon-folder-open:before { content: "\f07c"; } +.icon-resize-vertical:before { content: "\f07d"; } +.icon-resize-horizontal:before { content: "\f07e"; } + +.icon-bar-chart:before { content: "\f080"; } +.icon-twitter-sign:before { content: "\f081"; } +.icon-facebook-sign:before { content: "\f082"; } +.icon-camera-retro:before { content: "\f083"; } +.icon-key:before { content: "\f084"; } +.icon-cogs:before { content: "\f085"; } +.icon-comments:before { content: "\f086"; } +.icon-thumbs-up:before { content: "\f087"; } +.icon-thumbs-down:before { content: "\f088"; } +.icon-star-half:before { content: "\f089"; } +.icon-heart-empty:before { content: "\f08a"; } +.icon-signout:before { content: "\f08b"; } +.icon-linkedin-sign:before { content: "\f08c"; } +.icon-pushpin:before { content: "\f08d"; } +.icon-external-link:before { content: "\f08e"; } + +.icon-signin:before { content: "\f090"; } +.icon-trophy:before { content: "\f091"; } +.icon-github-sign:before { content: "\f092"; } +.icon-upload-alt:before { content: "\f093"; } +.icon-lemon:before { content: "\f094"; } +.icon-phone:before { content: "\f095"; } +.icon-check-empty:before { content: "\f096"; } +.icon-bookmark-empty:before { content: "\f097"; } +.icon-phone-sign:before { content: "\f098"; } +.icon-twitter:before { content: "\f099"; } +.icon-facebook:before { content: "\f09a"; } +.icon-github:before { content: "\f09b"; } +.icon-unlock:before { content: "\f09c"; } +.icon-credit-card:before { content: "\f09d"; } +.icon-rss:before { content: "\f09e"; } + +.icon-hdd:before { content: "\f0a0"; } +.icon-bullhorn:before { content: "\f0a1"; } +.icon-bell:before { content: "\f0a2"; } +.icon-certificate:before { content: "\f0a3"; } +.icon-hand-right:before { content: "\f0a4"; } +.icon-hand-left:before { content: "\f0a5"; } +.icon-hand-up:before { content: "\f0a6"; } +.icon-hand-down:before { content: "\f0a7"; } +.icon-circle-arrow-left:before { content: "\f0a8"; } +.icon-circle-arrow-right:before { content: "\f0a9"; } +.icon-circle-arrow-up:before { content: "\f0aa"; } +.icon-circle-arrow-down:before { content: "\f0ab"; } +.icon-globe:before { content: "\f0ac"; } +.icon-wrench:before { content: "\f0ad"; } +.icon-tasks:before { content: "\f0ae"; } + +.icon-filter:before { content: "\f0b0"; } +.icon-briefcase:before { content: "\f0b1"; } +.icon-fullscreen:before { content: "\f0b2"; } + +.icon-group:before { content: "\f0c0"; } +.icon-link:before { content: "\f0c1"; } +.icon-cloud:before { content: "\f0c2"; } +.icon-beaker:before { content: "\f0c3"; } +.icon-cut:before { content: "\f0c4"; } +.icon-copy:before { content: "\f0c5"; } +.icon-paper-clip:before { content: "\f0c6"; } +.icon-save:before { content: "\f0c7"; } +.icon-sign-blank:before { content: "\f0c8"; } +.icon-reorder:before { content: "\f0c9"; } +.icon-list-ul:before { content: "\f0ca"; } +.icon-list-ol:before { content: "\f0cb"; } +.icon-strikethrough:before { content: "\f0cc"; } +.icon-underline:before { content: "\f0cd"; } +.icon-table:before { content: "\f0ce"; } + +.icon-magic:before { content: "\f0d0"; } +.icon-truck:before { content: "\f0d1"; } +.icon-pinterest:before { content: "\f0d2"; } +.icon-pinterest-sign:before { content: "\f0d3"; } +.icon-google-plus-sign:before { content: "\f0d4"; } +.icon-google-plus:before { content: "\f0d5"; } +.icon-money:before { content: "\f0d6"; } +.icon-caret-down:before { content: "\f0d7"; } +.icon-caret-up:before { content: "\f0d8"; } +.icon-caret-left:before { content: "\f0d9"; } +.icon-caret-right:before { content: "\f0da"; } +.icon-columns:before { content: "\f0db"; } +.icon-sort:before { content: "\f0dc"; } +.icon-sort-down:before { content: "\f0dd"; } +.icon-sort-up:before { content: "\f0de"; } + +.icon-envelope-alt:before { content: "\f0e0"; } +.icon-linkedin:before { content: "\f0e1"; } +.icon-undo:before { content: "\f0e2"; } +.icon-legal:before { content: "\f0e3"; } +.icon-dashboard:before { content: "\f0e4"; } +.icon-comment-alt:before { content: "\f0e5"; } +.icon-comments-alt:before { content: "\f0e6"; } +.icon-bolt:before { content: "\f0e7"; } +.icon-sitemap:before { content: "\f0e8"; } +.icon-umbrella:before { content: "\f0e9"; } +.icon-paste:before { content: "\f0ea"; } +.icon-lightbulb:before { content: "\f0eb"; } +.icon-exchange:before { content: "\f0ec"; } +.icon-cloud-download:before { content: "\f0ed"; } +.icon-cloud-upload:before { content: "\f0ee"; } + +.icon-user-md:before { content: "\f0f0"; } +.icon-stethoscope:before { content: "\f0f1"; } +.icon-suitcase:before { content: "\f0f2"; } +.icon-bell-alt:before { content: "\f0f3"; } +.icon-coffee:before { content: "\f0f4"; } +.icon-food:before { content: "\f0f5"; } +.icon-file-alt:before { content: "\f0f6"; } +.icon-building:before { content: "\f0f7"; } +.icon-hospital:before { content: "\f0f8"; } +.icon-ambulance:before { content: "\f0f9"; } +.icon-medkit:before { content: "\f0fa"; } +.icon-fighter-jet:before { content: "\f0fb"; } +.icon-beer:before { content: "\f0fc"; } +.icon-h-sign:before { content: "\f0fd"; } +.icon-plus-sign-alt:before { content: "\f0fe"; } + +.icon-double-angle-left:before { content: "\f100"; } +.icon-double-angle-right:before { content: "\f101"; } +.icon-double-angle-up:before { content: "\f102"; } +.icon-double-angle-down:before { content: "\f103"; } +.icon-angle-left:before { content: "\f104"; } +.icon-angle-right:before { content: "\f105"; } +.icon-angle-up:before { content: "\f106"; } +.icon-angle-down:before { content: "\f107"; } +.icon-desktop:before { content: "\f108"; } +.icon-laptop:before { content: "\f109"; } +.icon-tablet:before { content: "\f10a"; } +.icon-mobile-phone:before { content: "\f10b"; } +.icon-circle-blank:before { content: "\f10c"; } +.icon-quote-left:before { content: "\f10d"; } +.icon-quote-right:before { content: "\f10e"; } + +.icon-spinner:before { content: "\f110"; } +.icon-circle:before { content: "\f111"; } +.icon-reply:before { content: "\f112"; } +.icon-github-alt:before { content: "\f113"; } +.icon-folder-close-alt:before { content: "\f114"; } +.icon-folder-open-alt:before { content: "\f115"; } diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fullcalendar/GPL-LICENSE.txt" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fullcalendar/GPL-LICENSE.txt" new file mode 100644 index 0000000..11dddd0 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fullcalendar/GPL-LICENSE.txt" @@ -0,0 +1,278 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fullcalendar/MIT-LICENSE.txt" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fullcalendar/MIT-LICENSE.txt" new file mode 100644 index 0000000..46d4754 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fullcalendar/MIT-LICENSE.txt" @@ -0,0 +1,20 @@ +Copyright (c) 2009 Adam Shaw + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fullcalendar/changelog.txt" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fullcalendar/changelog.txt" new file mode 100644 index 0000000..67068f7 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/assets/fullcalendar/changelog.txt" @@ -0,0 +1,322 @@ + +version 1.5.4 (9/5/12) + - made compatible with jQuery 1.8.* (thx archaeron) + - bundled with jQuery 1.8.1 and jQuery UI 1.8.23 + +version 1.5.3 (2/6/12) + - fixed dragging issue with jQuery UI 1.8.16 (issue 1168) + - bundled with jQuery 1.7.1 and jQuery UI 1.8.17 + +version 1.5.2 (8/21/11) + - correctly process UTC "Z" ISO8601 date strings (issue 750) + +version 1.5.1 (4/9/11) + - more flexible ISO8601 date parsing (issue 814) + - more flexible parsing of UNIX timestamps (issue 826) + - FullCalendar now buildable from source on a Mac (issue 795) + - FullCalendar QA'd in FF4 (issue 883) + - upgraded to jQuery 1.5.2 (which supports IE9) and jQuery UI 1.8.11 + +version 1.5 (3/19/11) + - slicker default styling for buttons + - reworked a lot of the calendar's HTML and accompanying CSS + (solves issues 327 and 395) + - more printer-friendly (fullcalendar-print.css) + - fullcalendar now inherits styles from jquery-ui themes differently. + styles for buttons are distinct from styles for calendar cells. + (solves issue 299) + - can now color events through FullCalendar options and Event-Object properties (issue 117) + THIS IS NOW THE PREFERRED METHOD OF COLORING EVENTS (as opposed to using className and CSS) + - FullCalendar options: + - eventColor (changes both background and border) + - eventBackgroundColor + - eventBorderColor + - eventTextColor + - Event-Object options: + - color (changes both background and border) + - backgroundColor + - borderColor + - textColor + - can now specify an event source as an *object* with a `url` property (json feed) or + an `events` property (function or array) with additional properties that will + be applied to the entire event source: + - color (changes both background and border) + - backgroudColor + - borderColor + - textColor + - className + - editable + - allDayDefault + - ignoreTimezone + - startParam (for a feed) + - endParam (for a feed) + - ANY OF THE JQUERY $.ajax OPTIONS + allows for easily changing from GET to POST and sending additional parameters (issue 386) + allows for easily attaching ajax handlers such as `error` (issue 754) + allows for turning caching on (issue 355) + - Google Calendar feeds are now specified differently: + - specify a simple string of your feed's URL + - specify an *object* with a `url` property of your feed's URL. + you can include any of the new Event-Source options in this object. + - the old `$.fullCalendar.gcalFeed` method still works + - no more IE7 SSL popup (issue 504) + - remove `cacheParam` - use json event source `cache` option instead + - latest jquery/jquery-ui + +version 1.4.11 (2/22/11) + - fixed rerenderEvents bug (issue 790) + - fixed bug with faulty dragging of events from all-day slot in agenda views + - bundled with jquery 1.5 and jquery-ui 1.8.9 + +version 1.4.10 (1/2/11) + - fixed bug with resizing event to different week in 5-day month view (issue 740) + - fixed bug with events not sticking after a removeEvents call (issue 757) + - fixed bug with underlying parseTime method, and other uses of parseInt (issue 688) + +version 1.4.9 (11/16/10) + - new algorithm for vertically stacking events (issue 111) + - resizing an event to a different week (issue 306) + - bug: some events not rendered with consecutive calls to addEventSource (issue 679) + +version 1.4.8 (10/16/10) + - ignoreTimezone option (set to `false` to process UTC offsets in ISO8601 dates) + - bugfixes + - event refetching not being called under certain conditions (issues 417, 554) + - event refetching being called multiple times under certain conditions (issues 586, 616) + - selection cannot be triggered by right mouse button (issue 558) + - agenda view left axis sized incorrectly (issue 465) + - IE js error when calendar is too narrow (issue 517) + - agenda view looks strange when no scrollbars (issue 235) + - improved parsing of ISO8601 dates with UTC offsets + - $.fullCalendar.version + - an internal refactor of the code, for easier future development and modularity + +version 1.4.7 (7/5/10) + - "dropping" external objects onto the calendar + - droppable (boolean, to turn on/off) + - dropAccept (to filter which events the calendar will accept) + - drop (trigger) + - selectable options can now be specified with a View Option Hash + - bugfixes + - dragged & reverted events having wrong time text (issue 406) + - bug rendering events that have an endtime with seconds, but no hours/minutes (issue 477) + - gotoDate date overflow bug (issue 429) + - wrong date reported when clicking on edge of last column in agenda views (412) + - support newlines in event titles + - select/unselect callbacks now passes native js event + +version 1.4.6 (5/31/10) + - "selecting" days or timeslots + - options: selectable, selectHelper, unselectAuto, unselectCancel + - callbacks: select, unselect + - methods: select, unselect + - when dragging an event, the highlighting reflects the duration of the event + - code compressing by Google Closure Compiler + - bundled with jQuery 1.4.2 and jQuery UI 1.8.1 + +version 1.4.5 (2/21/10) + - lazyFetching option, which can force the calendar to fetch events on every view/date change + - scroll state of agenda views are preserved when switching back to view + - bugfixes + - calling methods on an uninitialized fullcalendar throws error + - IE6/7 bug where an entire view becomes invisible (issue 320) + - error when rendering a hidden calendar (in jquery ui tabs for example) in IE (issue 340) + - interconnected bugs related to calendar resizing and scrollbars + - when switching views or clicking prev/next, calendar would "blink" (issue 333) + - liquid-width calendar's events shifted (depending on initial height of browser) (issue 341) + - more robust underlying algorithm for calendar resizing + +version 1.4.4 (2/3/10) + - optimized event rendering in all views (events render in 1/10 the time) + - gotoDate() does not force the calendar to unnecessarily rerender + - render() method now correctly readjusts height + +version 1.4.3 (12/22/09) + - added destroy method + - Google Calendar event pages respect currentTimezone + - caching now handled by jQuery's ajax + - protection from setting aspectRatio to zero + - bugfixes + - parseISO8601 and DST caused certain events to display day before + - button positioning problem in IE6 + - ajax event source removed after recently being added, events still displayed + - event not displayed when end is an empty string + - dynamically setting calendar height when no events have been fetched, throws error + +version 1.4.2 (12/02/09) + - eventAfterRender trigger + - getDate & getView methods + - height & contentHeight options (explicitly sets the pixel height) + - minTime & maxTime options (restricts shown hours in agenda view) + - getters [for all options] and setters [for height, contentHeight, and aspectRatio ONLY! stay tuned..] + - render method now readjusts calendar's size + - bugfixes + - lightbox scripts that use iframes (like fancybox) + - day-of-week classNames were off when firstDay=1 + - guaranteed space on right side of agenda events (even when stacked) + - accepts ISO8601 dates with a space (instead of 'T') + +version 1.4.1 (10/31/09) + - can exclude weekends with new 'weekends' option + - gcal feed 'currentTimezone' option + - bugfixes + - year/month/date option sometimes wouldn't set correctly (depending on current date) + - daylight savings issue caused agenda views to start at 1am (for BST users) + - cleanup of gcal.js code + +version 1.4 (10/19/09) + - agendaWeek and agendaDay views + - added some options for agenda views: + - allDaySlot + - allDayText + - firstHour + - slotMinutes + - defaultEventMinutes + - axisFormat + - modified some existing options/triggers to work with agenda views: + - dragOpacity and timeFormat can now accept a "View Hash" (a new concept) + - dayClick now has an allDay parameter + - eventDrop now has an an allDay parameter + (this will affect those who use revertFunc, adjust parameter list) + - added 'prevYear' and 'nextYear' for buttons in header + - minor change for theme users, ui-state-hover not applied to active/inactive buttons + - added event-color-changing example in docs + - better defaults for right-to-left themed button icons + +version 1.3.2 (10/13/09) + - Bugfixes (please upgrade from 1.3.1!) + - squashed potential infinite loop when addMonths and addDays + is called with an invalid date + - $.fullCalendar.parseDate() now correctly parses IETF format + - when switching views, the 'today' button sticks inactive, fixed + - gotoDate now can accept a single Date argument + - documentation for changes in 1.3.1 and 1.3.2 now on website + +version 1.3.1 (9/30/09) + - Important Bugfixes (please upgrade from 1.3!) + - When current date was late in the month, for long months, and prev/next buttons + were clicked in month-view, some months would be skipped/repeated + - In certain time zones, daylight savings time would cause certain days + to be misnumbered in month-view + - Subtle change in way week interval is chosen when switching from month to basicWeek/basicDay view + - Added 'allDayDefault' option + - Added 'changeView' and 'render' methods + +version 1.3 (9/21/09) + - different 'views': month/basicWeek/basicDay + - more flexible 'header' system for buttons + - themable by jQuery UI themes + - resizable events (require jQuery UI resizable plugin) + - rescoped & rewritten CSS, enhanced default look + - cleaner css & rendering techniques for right-to-left + - reworked options & API to support multiple views / be consistent with jQuery UI + - refactoring of entire codebase + - broken into different JS & CSS files, assembled w/ build scripts + - new test suite for new features, uses firebug-lite + - refactored docs + - Options + + date + + defaultView + + aspectRatio + + disableResizing + + monthNames (use instead of $.fullCalendar.monthNames) + + monthNamesShort (use instead of $.fullCalendar.monthAbbrevs) + + dayNames (use instead of $.fullCalendar.dayNames) + + dayNamesShort (use instead of $.fullCalendar.dayAbbrevs) + + theme + + buttonText + + buttonIcons + x draggable -> editable/disableDragging + x fixedWeeks -> weekMode + x abbrevDayHeadings -> columnFormat + x buttons/title -> header + x eventDragOpacity -> dragOpacity + x eventRevertDuration -> dragRevertDuration + x weekStart -> firstDay + x rightToLeft -> isRTL + x showTime (use 'allDay' CalEvent property instead) + - Triggered Actions + + eventResizeStart + + eventResizeStop + + eventResize + x monthDisplay -> viewDisplay + x resize -> windowResize + 'eventDrop' params changed, can revert if ajax cuts out + - CalEvent Properties + x showTime -> allDay + x draggable -> editable + 'end' is now INCLUSIVE when allDay=true + 'url' now produces a real tag, more native clicking/tab behavior + - Methods: + + renderEvent + x prevMonth -> prev + x nextMonth -> next + x prevYear/nextYear -> moveDate + x refresh -> rerenderEvents/refetchEvents + x removeEvent -> removeEvents + x getEventsByID -> clientEvents + - Utilities: + 'formatDate' format string completely changed (inspired by jQuery UI datepicker + datejs) + 'formatDates' added to support date-ranges + - Google Calendar Options: + x draggable -> editable + - Bugfixes + - gcal extension fetched 25 results max, now fetches all + +version 1.2.1 (6/29/09) + - bugfixes + - allows and corrects invalid end dates for events + - doesn't throw an error in IE while rendering when display:none + - fixed 'loading' callback when used w/ multiple addEventSource calls + - gcal className can now be an array + +version 1.2 (5/31/09) + - expanded API + - 'className' CalEvent attribute + - 'source' CalEvent attribute + - dynamically get/add/remove/update events of current month + - locale improvements: change month/day name text + - better date formatting ($.fullCalendar.formatDate) + - multiple 'event sources' allowed + - dynamically add/remove event sources + - options for prevYear and nextYear buttons + - docs have been reworked (include addition of Google Calendar docs) + - changed behavior of parseDate for number strings + (now interpets as unix timestamp, not MS times) + - bugfixes + - rightToLeft month start bug + - off-by-one errors with month formatting commands + - events from previous months sticking when clicking prev/next quickly + - Google Calendar API changed to work w/ multiple event sources + - can also provide 'className' and 'draggable' options + - date utilties moved from $ to $.fullCalendar + - more documentation in source code + - minified version of fullcalendar.js + - test suit (available from svn) + - top buttons now use +

    Widget Settings

    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Pricing Tables pricing table samples +

    + + +
    +
    + + +
    +
    + +
    +
    +

    Pricing Tables

    +
    + + + + +
    +
    +
    +
    +
    +
    +

    Basic

    +
    + Duis mollis, est non commodo luctus, nisi erat + porttitor ligula, eget lacinia odio sem nec elit. +
    +
      +
    • 10 Email Accounts
    • +
    • 10 User Accounts
    • +
    • 100 GB Storage
    • +
    • 24X7 Support
    • +
    •  
    • +
    •  
    • +
    •  
    • +
    +
    +
    +
    + $
    + Monthly +
    +
    + 99 +
    +
    + + Sign Up + +
    +
    +
    +
    +
    +
    +

    Standard

    +
    + Duis mollis, est non commodo luctus, nisi erat + porttitor ligula, eget lacinia odio sem nec elit. +
    +
      +
    • 100 Email Accounts
    • +
    • 100 User Accounts
    • +
    • 1 TB Storage
    • +
    • 24X7 Support
    • +
    • Full Backup
    • +
    • Free Setup
    • +
    •  
    • +
    +
    +
    +
    + $
    + Monthly +
    +
    + 299 +
    +
    + + Sign Up + +
    +
    +
    +
    +
    +
    +

    Professional

    +
    + Duis mollis, est non commodo luctus, nisi erat + porttitor ligula, eget lacinia odio sem nec elit. +
    +
      +
    • Unlimited Email Accounts
    • +
    • Unlimited User Accounts
    • +
    • 10 TB Storage
    • +
    • 24X7 Support
    • +
    • Full Backup
    • +
    • Free Setup
    • +
    • Free CDN
    • +
    +
    +
    +
    + $
    + Monthly +
    +
    + 399 +
    +
    + + Sign Up + +
    +
    +
    +
    +
    +
    +

    Enterprise

    +
    + Duis mollis, est non commodo luctus, nisi erat + porttitor ligula, eget lacinia odio sem nec elit. +
    +
      +
    • Unlimited Email Accounts
    • +
    • Unlimited User Accounts
    • +
    • Unlimited Storage
    • +
    • 24X7 Support
    • +
    • Full Backup
    • +
    • Free Setup
    • +
    • Free CDN
    • +
    +
    +
    +
    + $
    + Monthly +
    +
    + 999 +
    +
    + + Sign Up + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Pricing Tables

    +
    + + + + +
    +
    +
    +
    +
    +
    +

    Basic

    +
    + Duis mollis, est non commodo luctus, nisi erat + porttitor ligula, eget lacinia odio sem nec elit. +
    +
    +
    +
    + $
    + Monthly +
    +
    + 99 +
    +
    + + Sign Up + +
    +
      +
    • 10 Email Accounts
    • +
    • 10 User Accounts
    • +
    • 100 GB Storage
    • +
    • 24X7 Support
    • +
    •  
    • +
    •  
    • +
    •  
    • +
    +
    +
    +
    +
    +
    +

    Standard

    +
    + Duis mollis, est non commodo luctus, nisi erat + porttitor ligula, eget lacinia odio sem nec elit. +
    +
    +
    +
    + $
    + Monthly +
    +
    + 299 +
    +
    + + Sign Up + +
    +
      +
    • 100 Email Accounts
    • +
    • 100 User Accounts
    • +
    • 1 TB Storage
    • +
    • 24X7 Support
    • +
    • Full Backup
    • +
    • Free Setup
    • +
    •  
    • +
    +
    +
    +
    +
    +
    +

    Professional

    +
    + Duis mollis, est non commodo luctus, nisi erat + porttitor ligula, eget lacinia odio sem nec elit. +
    +
    +
    +
    + $
    + Monthly +
    +
    + 399 +
    +
    + + Sign Up + +
    +
      +
    • Unlimited Email Accounts
    • +
    • Unlimited User Accounts
    • +
    • 10 TB Storage
    • +
    • 24X7 Support
    • +
    • Full Backup
    • +
    • Free Setup
    • +
    • Free CDN
    • +
    +
    +
    +
    +
    +
    +

    Enterprise

    +
    + Duis mollis, est non commodo luctus, nisi erat + porttitor ligula, eget lacinia odio sem nec elit. +
    +
    +
    +
    + $
    + Monthly +
    +
    + 999 +
    +
    + + Sign Up + +
    +
      +
    • Unlimited Email Accounts
    • +
    • Unlimited User Accounts
    • +
    • Unlimited Storage
    • +
    • 24X7 Support
    • +
    • Full Backup
    • +
    • Free Setup
    • +
    • Free CDN
    • +
    +
    +
    +
    +
    +
    + +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/extra_profile.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/extra_profile.html" new file mode 100644 index 0000000..1bcc19f --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/extra_profile.html" @@ -0,0 +1,1684 @@ + + + + + + + + Metronic | Extra - User Profile + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + User Profile user profile sample +

    + + +
    +
    + + +
    +
    + +
    + +
    +
    + +
    +
    +
    +

    John Doe

    +

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt laoreet dolore magna aliquam tincidunt erat volutpat laoreet dolore magna aliquam tincidunt erat volutpat.

    +

    www.mywebsite.com

    +
      +
    • Spain
    • +
    • 18 Jan 1982
    • +
    • Design
    • +
    • Top Seller
    • +
    • BASE Jumping
    • +
    +
    + +
    +
    +
    +

    Sales Summary

    +
    + +
    +
    +
      +
    • + TODAY SOLD + 23 +
    • +
    • + WEEKLY SALES + 87 +
    • +
    • + TOTAL SOLD + 2377 +
    • +
    • + EARNS + $37.990 +
    • +
    +
    +
    + +
    + +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Company Descrition Amount
    Pixel LtdServer hardware purchase52560.10$ PaidView
    + + Smart House + + Office furniture purchase5760.00$ PendingView
    + + FoodMaster Ltd + + Company Anual Dinner Catering12400.00$ PaidView
    + + WaterPure Ltd + + Payment for Jan 2013610.50$ OverdueView
    Pixel LtdServer hardware purchase52560.10$ PaidView
    + + Smart House + + Office furniture purchase5760.00$ PendingView
    + + FoodMaster Ltd + + Company Anual Dinner Catering12400.00$ PaidView
    +
    +
    + +
    +
    +
    +
      +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + You have 4 pending tasks. + + Take action + + +
      +
      +
      +
      +
      +
      + Just now +
      +
      +
    • +
    • + +
      +
      +
      +
      + +
      +
      +
      +
      + New version v1.4 just lunched! +
      +
      +
      +
      +
      +
      + 20 mins +
      +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + Database server #12 overloaded. Please fix the issue. +
      +
      +
      +
      +
      +
      + 24 mins +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 30 mins +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 40 mins +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New user registered. +
      +
      +
      +
      +
      +
      + 1.5 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + Web server hardware needs to be upgraded. + Overdue +
      +
      +
      +
      +
      +
      + 2 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 3 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 5 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 18 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 21 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 22 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 21 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 22 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 21 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 22 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 21 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 22 hours +
      +
      +
    • +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    + +
      +
    • User Name: JDuser
    • +
    • First Name: John
    • +
    • Last Name: Doe
    • +
    • Counrty: Spain
    • +
    • Birthday: 18 Jan 1982
    • +
    • Occupation: Web Developer
    • +
    • Email: john@mywebsite.com
    • +
    • Interests: Design, Web etc.
    • +
    • Website Url: http://www.mywebsite.com
    • +
    • Mobile Number: +1 646 580 DEMO (6284)
    • +
    • About: Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod.
    • +
    +
    + + + +
    +
    +
    + 502 Items sold this week +
    + +
    + +
    +
    + +
    +

    Metronic - Responsive Template

    +

    Lorem ipsum dolor sit consectetuer adipiscing elit.

    +
    +
    +
    +
    + Today Sold + 187 +
    +
    + Total Sold + 1789 +
    +
    + Earns + $37.240 +
    +
    +
    + Manage +
    +
    + +
    +
    + +
    +

    Metronic - Responsive Template

    +

    Lorem ipsum dolor sit consectetuer adipiscing elit.

    +
    +
    +
    +
    + Today Sold + 24 +
    +
    + Total Sold + 660 +
    +
    + Earns + $7.060 +
    +
    +
    + Manage +
    +
    + +
    +
    + +
    +

    Metronic - Responsive Template

    +

    Lorem ipsum dolor sit consectetuer adipiscing elit.

    +
    +
    +
    +
    + Today Sold + 24 +
    +
    + Total Sold + 975 +
    +
    + Earns + $21.700 +
    +
    +
    + Manage +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    + +
    +
    +

    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +

    +

    + moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmodBrunch 3 wolf moon tempor +

    +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    + +
    +
    +

    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +

    +

    + moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmodBrunch 3 wolf moon tempor +

    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    + +
    +
    +

    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +

    +

    + moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmodBrunch 3 wolf moon tempor +

    +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    + +
    +
    +

    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +

    +

    + moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmodBrunch 3 wolf moon tempor +

    +
    +
    +
    +
    + +
    +
    +

    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +

    +

    + moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmodBrunch 3 wolf moon tempor +

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/extra_search.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/extra_search.html" new file mode 100644 index 0000000..c33f4c8 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/extra_search.html" @@ -0,0 +1,1059 @@ + + + + + + + + Metronic | Extra - Search Results + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Search Results search results +

    + + +
    +
    + + +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +

    Metronic - Responsive Template

    +

    Lorem ipsum dolor sit consectetuer adipiscing elit.

    +
    +
    +
    +
    + Today Sold + 187 +
    +
    + Total Sold + 1789 +
    +
    + Earnings + $37.240 +
    +
    +
    + View +
    +
    +
    +
    + +
    +

    Metronic - Responsive Template

    +

    Lorem ipsum dolor sit consectetuer adipiscing elit.

    +
    +
    +
    +
    + Today Sold + 24 +
    +
    + Total Sold + 660 +
    +
    + Earnings + $7.060 +
    +
    +
    + View +
    +
    +
    +
    + +
    +

    Metronic - Responsive Template

    +

    Lorem ipsum dolor sit consectetuer adipiscing elit.

    +
    +
    +
    +
    + Today Sold + 24 +
    +
    + Total Sold + 975 +
    +
    + Earnings + $21.700 +
    +
    +
    + View +
    +
    +
    +
    + +
    +

    Metronic - Responsive Template

    +

    Lorem ipsum dolor sit consectetuer adipiscing elit.

    +
    +
    +
    +
    + Today Sold + 24 +
    +
    + Total Sold + 975 +
    +
    + Earnings + $21.700 +
    +
    +
    + View +
    +
    +
    +
    + +
    +

    Metronic - Responsive Template

    +

    Lorem ipsum dolor sit consectetuer adipiscing elit .

    +
    +
    +
    +
    + Today Sold + 24 +
    +
    + Total Sold + 975 +
    +
    + Earnings + $21.700 +
    +
    +
    + View +
    +
    +
    +
    + +
    +

    Metronic - Responsive Template

    +

    Lorem ipsum dolor sit consectetuer adipiscing elit.

    +
    +
    +
    +
    + Today Sold + 24 +
    +
    + Total Sold + 975 +
    +
    + Earnings + $21.700 +
    +
    +
    + View +
    +
    +
    + +
    + +
    +
    + +
    +
    +

    Metronic - Responsive Admin Dashboard Template

    + http://www.keenthemes.com +

    Metronic is a responsive admin dashboard template powered with Twitter Bootstrap Framework for admin and backend applications. Metronic has a clean and intuitive metro style design which makes your next project look awesome and yet user friendly..

    +
    +
    +

    Conquer - Responsive Admin Dashboard Template

    + http://www.keenthemes.com +

    Conquer is a responsive admin dashboard template created mainly for admin and backend applications(CMS, CRM, Custom Admin Application, Admin Dashboard). Conquer template powered with Twitter Bootstrap Framework..

    +
    +
    +

    Metronic - Responsive Admin Dashboard Template

    + http://www.keenthemes.com +

    Metronic is a responsive admin dashboard template powered with Twitter Bootstrap Framework for admin and backend applications. Metronic has a clean and intuitive metro style design which makes your next project look awesome and yet user friendly..

    +
    +
    +

    Conquer - Responsive Admin Dashboard Template

    + http://www.keenthemes.com +

    Conquer is a responsive admin dashboard template created mainly for admin and backend applications(CMS, CRM, Custom Admin Application, Admin Dashboard). Conquer template powered with Twitter Bootstrap Framework..

    +
    +
    +

    Conquer - Responsive Admin Dashboard Template

    + http://www.keenthemes.com +

    Conquer is a responsive admin dashboard template created mainly for admin and backend applications(CMS, CRM, Custom Admin Application, Admin Dashboard). Conquer template powered with Twitter Bootstrap Framework..

    +
    +
    +

    Metronic - Responsive Admin Dashboard Template

    + http://www.keenthemes.com +

    Metronic is a responsive admin dashboard template powered with Twitter Bootstrap Framework for admin and backend applications. Metronic has a clean and intuitive metro style design which makes your next project look awesome and yet user friendly..

    +
    +
    +

    Conquer - Responsive Admin Dashboard Template

    + http://www.keenthemes.com +

    Conquer is a responsive admin dashboard template created mainly for admin and backend applications(CMS, CRM, Custom Admin Application, Admin Dashboard). Conquer template powered with Twitter Bootstrap Framework..

    +
    +
    + +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Company Descrition Amount
    Pixel LtdServer hardware purchase52560.10$ PaidView
    + + Smart House + + Office furniture purchase5760.00$ PendingView
    + + FoodMaster Ltd + + Company Anual Dinner Catering12400.00$ PaidView
    + + WaterPure Ltd + + Payment for Jan 2013610.50$ OverdueView
    + + Smart House + + Office furniture purchase5760.00$ PendingView
    + + FoodMaster Ltd + + Company Anual Dinner Catering12400.00$ PaidView
    + + WaterPure Ltd + + Payment for Jan 2013610.50$ OverdueView
    Pixel LtdServer hardware purchase52560.10$ PaidView
    + + Smart House + + Office furniture purchase5760.00$ PendingView
    + + FoodMaster Ltd + + Company Anual Dinner Catering12400.00$ PaidView
    Pixel LtdServer hardware purchase52560.10$ PaidView
    + + Smart House + + Office furniture purchase5760.00$ PendingView
    + + FoodMaster Ltd + + Company Anual Dinner Catering12400.00$ PaidView
    +
    +
    + +
    + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PhotoFullnameUsernameJoinedPointsStatus
    Mark Nilsonmakr12419 Jan 20121245ApprovedView
    Filip Roltonjac12309 Feb 201215PendingView
    Colin Foxcol19 Jan 2012245SuspendedView
    Nick Stonesanlim11 Mar 2012565BlockedView
    Edward Cooksanlim11 Mar 201245245BlockedView
    Nick Stonesanlim11 Mar 201224512BlockedView
    Elis Limmakr12411 Mar 2012145ApprovedView
    King Paulking12311 Mar 2012456PendingView
    Filip Larsonfil11 Mar 201212453SuspendedView
    Martin Larsonlarson1201 Apr 20112453BlockedView
    King Paulsanlim11 Mar 2012905BlockedView
    +
    +
    + +
    + +
    +
    + +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/favicon.ico" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/favicon.ico" new file mode 100644 index 0000000000000000000000000000000000000000..384573588bf68f4e0193a57038ec8b6acb4fc210 GIT binary patch literal 569 zcmex=C5UDGKfoZ!!63jOz|1Jfz$D1XEXer(2tzo? zVL(SB01GP@ng~!%fPs+}D9Q|1%F4{b#?HaSC?qV-DF_#ZnezV@0}oIwlOVGogFVCX zZ>fh^N{+eRvC0sgbVp{g>_3eMu8wy+i{7tGyk?PouP|YUsJ5HK>5kc5ZOhNMKjjk& z$mHYbOL=~N>w1skR|oF;Hk?jf)7$dpOy6;zE0fbV?c|!gVo%#nu4nUv8F*dKWpDRS zJ*T2yF-tQqt~bk`TBgdgT?vvPTjd4 zHhgkX>k{Lu<6o=|FKr3&S-qLj?XZc0%zgfb%MK1JrGyq#{1xOl$9%+~`tosG;j~?K PC3lyv-TU=G{r{T)zet;F literal 0 HcmV?d00001 diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_component.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_component.html" new file mode 100644 index 0000000..581547f --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_component.html" @@ -0,0 +1,1300 @@ + + + + + + + + Metronic | Form Stuff - Form Components + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + +

    + Form Components + form components and widgets +

    + +
    +
    + + +
    +
    + +
    +
    +

    Sample Form

    +
    + + + + +
    +
    +
    + +
    +
    + +
    + + Some hint here +
    +
    +
    + +
    + + Some hint here +
    +
    +
    + +
    + + Some hint here +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +

    Start typing to auto complete!. E.g: California

    +
    +
    +
    + +
    +
    + @ +
    +
    +
    +
    + +
    +
    + + +
    +
    +
    +
    + +
    +
    + $.00 +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + + +
    +
    +
    + +
    + + + +
    +
    +
    + +
    + + +
    +
    +
    + +
    + + +
    +
    +
    + +
    + +
    +
    +
    + + +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Tags Input

    +
    + + + + +
    +
    +
    + +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    +

    File Upload

    +
    + + + + +
    +
    +
    + +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    +
    + + +
    + + Select file + Change + + + Remove +
    +
    +
    +
    +
    + +
    +
    + + Select file + Change + + + + +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + Select image + Change + + Remove +
    +
    + NOTE! + + Attached image thumbnail is + supported in Latest Firefox, Chrome, Opera, + Safari and Internet Explorer 10 only + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Color Pickers

    +
    + + + + +
    +
    +
    + +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Time Pickers

    +
    + + + + +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    +
    +
    + +
    +
    + + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    +

    + Clockface Time Pickers +

    +
    + + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Date Pickers

    +
    + + + + +
    +
    +
    + +
    +
    + +
    + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Date Range Pickers

    +
    + + + + +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + +   + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Extras

    +
    + + + + +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    +
    +
    + +
    +
    +
    + + +
    + + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + + +
    +
    + +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_dropzone.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_dropzone.html" new file mode 100644 index 0000000..769e124 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_dropzone.html" @@ -0,0 +1,513 @@ + + + + + + + + Metronic | Form Stuff - Dropzone File Upload + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Dropzone File Upload amazing dropzone file upload sample +

    + + +
    +
    + + +
    +
    +
    +
    +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_fileupload.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_fileupload.html" new file mode 100644 index 0000000..6c688ff --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_fileupload.html" @@ -0,0 +1,667 @@ + + + + + + + + Metronic | Form Stuff - Multiple File Upload + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Multiple File Upload amazing file upload experience +

    + + +
    +
    + + +
    +
    +
    +

    File Upload widget with multiple file selection, drag&drop support, progress bars and preview images for jQuery.
    + Supports cross-domain, chunked and resumable file uploads and client-side image resizing.
    + Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads. +

    +
    +
    + +
    + + + +
    +
    + + + + Add files... + + + + + + +
    + +
    + +
    +
    +
    + +
     
    +
    +
    + +
    +
    + + + + +
    +
    +
    +

    Demo Notes

    +
      +
    • The maximum file size for uploads in this demo is 5 MB (default file size is unlimited).
    • +
    • Only image files (JPG, GIF, PNG) are allowed in this demo (by default there is no file type restriction).
    • +
    • Uploaded files will be deleted automatically after 5 minutes (demo setting).
    • +
    • You can drag & drop files from your desktop on this webpage with Google Chrome, Mozilla Firefox and Apple Safari.
    • +
    • Please refer to the official plugin documentation for more information.
    • +
    +
    +
    +
    +
    +
    + + + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_layout.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_layout.html" new file mode 100644 index 0000000..ed0e862 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_layout.html" @@ -0,0 +1,805 @@ + + + + + + + + Metronic | Form Stuff - Form Layouts + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + +

    + Form Layouts + form layouts and more +

    + +
    +
    + + +
    +
    + +
    +
    +

    + + General Layouts +   +

    +
    +
    +
    + +
    +
    + +
    +
    + +
    + + Some hint here +
    +
    +
    + +
    + + Some hint here +
    +
    +
    + +
    + + Some hint here +
    +
    +
    + +
    + + Some hint here +
    +
    +
    + +
    + + Some hint here +
    +
    +
    + +
    + + Some hint here +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + + +
    +
    +
    + +
    + + + +
    +
    +
    + +
    + + +
    +
    +
    + +
    + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + + +
    +
    + +
    +
    +
    + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + + + + +
    +
    +
    +

    Login Form

    +
    +
    + + + +
    +
    +

    Login Form

    +
    +
    + + +
    +
    + + +
    + + +
    +
    +
    +
    + +
    +
    +

    Search Form

    +
    +
    + +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_samples.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_samples.html" new file mode 100644 index 0000000..ff487bd --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_samples.html" @@ -0,0 +1,1436 @@ + + + + + + + + Metronic | Form Stuff - Advance Form Samples + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + +

    + Form Layouts + form layouts and more +

    + +
    +
    + + +
    +
    +
    + +
    +
    +
    +
    +

    Form Sample

    +
    + + + + +
    +
    +
    + +
    +

    Person Info

    +
    +
    +
    + +
    + + This is inline help +
    +
    +
    + +
    +
    + +
    + + This field has error. +
    +
    +
    + +
    + +
    +
    +
    + +
    + + Select your gender. +
    +
    +
    + +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + + +
    +
    +
    + +
    + +

    Address

    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    +
    +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    +
    +
    +

    Form Sample

    +
    + + + + +
    +
    +
    + +
    +

    Person Info

    +
    +
    +
    + +
    + + This is inline help +
    +
    +
    + +
    +
    + +
    + + This field has error. +
    +
    +
    + +
    + +
    +
    +
    + +
    + + Select your gender. +
    +
    +
    + +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + + +
    +
    +
    + +
    + +

    Address

    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    +
    +
    + +
    + +
    + + +
    +
    + +
    +
    +
    +
    +
    +
    +

    Form Sample

    +
    + + + + +
    +
    +
    + +
    +

    View User Info - Bob Nilson

    +

    Person Info

    +
    +
    +
    + +
    + Bob +
    +
    +
    + +
    +
    + +
    + Nilson +
    +
    +
    + +
    + +
    +
    +
    + +
    + Male +
    +
    +
    + +
    +
    + +
    + 20.01.1984 +
    +
    +
    + +
    + +
    +
    +
    + +
    + Category1 +
    +
    +
    + +
    +
    + +
    + Free +
    +
    +
    + +
    + +

    Address

    +
    +
    +
    + +
    + #24 Sun Park Avenue, Rolton Str +
    +
    +
    +
    +
    +
    +
    + +
    + New York +
    +
    +
    + +
    +
    + +
    + New York +
    +
    +
    + +
    + +
    +
    +
    + +
    + 457890 +
    +
    +
    + +
    +
    + +
    + USA +
    +
    +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    +
    +
    +

    Form Sample

    +
    + + + + +
    +
    +
    + +
    +
    + +
    + + This is inline help +
    +
    +
    + +
    + + This is inline help +
    +
    +
    + +
    + + Select your gender. +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    +
    +
    +

    Form Sample

    +
    + + + + +
    +
    +
    + +
    +
    + +
    + + This is inline help +
    +
    +
    + +
    + + This is inline help +
    +
    +
    + +
    + + Select your gender. +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    +
    +
    +

    Form Sample

    +
    + + + + +
    +
    +
    + +
    +
    + +
    + + This is inline help +
    +
    +
    + +
    + + This is inline help +
    +
    +
    + +
    + + Select your gender. +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + + Select your category. +
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    +
    +
    +

    Form Sample

    +
    + + + + +
    +
    +
    + +
    +
    + +
    + + This is inline help +
    +
    +
    + +
    + + This is inline help +
    +
    +
    + +
    + + Select your gender. +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + + Select your category. +
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    +
    +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_validation.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_validation.html" new file mode 100644 index 0000000..71ab1ee --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_validation.html" @@ -0,0 +1,796 @@ + + + + + + + + Metronic | Form Stuff - Form Validation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + +

    + Form Validation + form validation states +

    + +
    +
    + + +
    +
    + +
    +
    +

    Validation States

    +
    + + + + +
    +
    +
    +

    Basic validation states

    + +
    +
    + +
    + + Something may have gone wrong +
    +
    +
    + +
    + + Please correct the error +
    +
    +
    + +
    + + +
    +
    +
    + +
    + + + + +
    +
    +
    + +
    + + + + +
    +
    +
    + +
    + + + + +
    +
    +
    + + +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Basic Validation

    +
    + + + + +
    +
    +
    + +
    +
    + + You have some form errors. Please check below. +
    +
    + + Your form validation is successful! +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + e.g: http://www.demo.com or http://demo.com +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + e.g: 5500 0000 0000 0004 +
    +
    +
    + +
    + + optional field +
    +
    +
    + +
    + +
    +
    +
    + + +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Advance Validation

    +
    + + + + +
    +
    +
    + +

    Advance validation of custom radio buttons, checkboxes and chosen dropdowns

    +
    +
    + + You have some form errors. Please check below. +
    +
    + + Your form validation is successful! +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + +
    +
    +
    +
    + +
    + + + + (select at least two) +
    +
    +
    +
    + + +
    +
    + +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_wizard.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_wizard.html" new file mode 100644 index 0000000..54106d0 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/form_wizard.html" @@ -0,0 +1,754 @@ + + + + + + + + Metronic | Form Stuff - Form Wizard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + +

    + Form Wizard + form wizard sample +

    + +
    +
    + + +
    +
    +
    +
    +

    + Form Wizard - Step 1 of 4 +

    +
    + + + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +

    Provide your account details

    +
    + +
    + + Provide your username +
    +
    +
    + +
    + + Provide your username +
    +
    +
    + +
    + + Confirm your password +
    +
    +
    +
    +

    Provide your profile details

    +
    + +
    + + Provide your fullname +
    +
    +
    + +
    + + Provide your email address +
    +
    +
    + +
    + + Provide your phone number +
    +
    +
    + +
    + +
    + +
    +
    +
    + +
    + + Provide your street address +
    +
    +
    + +
    + + Provide your city or town +
    +
    +
    + +
    + +
    +
    +
    +
    +

    Provide your billing and credit card details

    +
    + +
    + + +
    +
    +
    + +
    + + +
    +
    +
    + +
    + + +
    +
    +
    + +
    + + +
    +
    +
    + +
    + + + +
    +
    +
    + +
    + + +
    +
    +
    +
    +

    Confirm your account

    +
    + +
    + Bob Nilson +
    +
    +
    + +
    + bob@nilson.com +
    +
    +
    + +
    + 101234023223 +
    +
    +
    + +
    + *************1233 +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/gallery.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/gallery.html" new file mode 100644 index 0000000..b7ceba7 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/gallery.html" @@ -0,0 +1,899 @@ + + + + + + + + Metronic | Gallery + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Gallery gallery management +

    + + +
    +
    + + +
    +
    + +
    +
    +

    Gallery Manager

    +
    + + + + +
    +
    +
    + +
    +
    +

    Browsing Category 1

    +
    +
    +
    + + +
    + Upload +
    +
    +
    + +
    + +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    + +
    + Photo +
    +
    +
    +
    + + + + +
    +
    +
    +
    + + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/index.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/index.html" new file mode 100644 index 0000000..124be98 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/index.html" @@ -0,0 +1,1623 @@ + + + + + + + + + Metronic | Admin Dashboard Template + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Dashboard + statistics and more +

    + + +
    +
    + +
    + +
    +
    +
    +
    + +
    +
    +
    + 1349 +
    +
    + New Feedbacks +
    +
    + + View more + +
    +
    +
    +
    +
    + +
    +
    +
    549
    +
    New Orders
    +
    + + View more + +
    +
    +
    +
    +
    + +
    +
    +
    +89%
    +
    Brand Popularity
    +
    + + View more + +
    +
    +
    +
    +
    + +
    +
    +
    12,5M$
    +
    Total Profit
    +
    + + View more + +
    +
    +
    + +
    +
    +
    + +
    +
    +

    Site Visits

    +
    + +
    +
    +
    +
    + loading +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +

    Activities

    +
    +
    + Users + Orders +
    +
    +
    +
    +
    + loading +
    +
    +
    +
    +
    +
    + + +
    +
    +

    Server Load

    + +
    +
    +
    + loading +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +

    Regional Stats

    +
    + + + + +
    +
    +
    +
    + loading +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +

    Feeds

    +
    + + + + +
    +
    +
    + +
    + +
    +
    +
    +
      +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + You have 4 pending tasks. + + Take action + + +
      +
      +
      +
      +
      +
      + Just now +
      +
      +
    • +
    • + +
      +
      +
      +
      + +
      +
      +
      +
      + New version v1.4 just lunched! +
      +
      +
      +
      +
      +
      + 20 mins +
      +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + Database server #12 overloaded. Please fix the issue. +
      +
      +
      +
      +
      +
      + 24 mins +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 30 mins +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 40 mins +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New user registered. +
      +
      +
      +
      +
      +
      + 1.5 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + Web server hardware needs to be upgraded. + Overdue +
      +
      +
      +
      +
      +
      + 2 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 3 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 5 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 18 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 21 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 22 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 21 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 22 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 21 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 22 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 21 hours +
      +
      +
    • +
    • +
      +
      +
      +
      + +
      +
      +
      +
      + New order received. Please take care of it. +
      +
      +
      +
      +
      +
      + 22 hours +
      +
      +
    • +
    +
    +
    + +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +

    Calendar

    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +

    Chats

    +
    + + + + +
    +
    +
    +
    +
      +
    • + +
      + + Bob Nilson + at Jul 25, 2012 11:09 + + Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. + +
      +
    • +
    • + +
      + + Lisa Wong + at Jul 25, 2012 11:09 + + Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. + +
      +
    • +
    • + +
      + + Bob Nilson + at Jul 25, 2012 11:09 + + Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. + +
      +
    • +
    • + +
      + + Richard Doe + at Jul 25, 2012 11:09 + + Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. + +
      +
    • +
    • + +
      + + Richard Doe + at Jul 25, 2012 11:09 + + Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. + +
      +
    • +
    • + +
      + + Bob Nilson + at Jul 25, 2012 11:09 + + Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. + +
      +
    • +
    • + +
      + + Richard Doe + at Jul 25, 2012 11:09 + + Lorem ipsum dolor sit amet, consectetuer adipiscing elit, + sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. + +
      +
    • +
    +
    +
    +
    + +
    +
    + + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/login.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/login.html" new file mode 100644 index 0000000..1de56a5 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/login.html" @@ -0,0 +1,183 @@ + + + + + + + + Metronic Admin Dashboard Template + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +

    Forget Password ?

    +

    Enter your e-mail address below to reset your password.

    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + +
    +

    Sign Up

    +

    Enter your account details below:

    +
    + +
    +
    + + +
    +
    +
    +
    + +
    +
    + + +
    +
    +
    +
    + +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + +
    +
    + +
    + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/maps_google.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/maps_google.html" new file mode 100644 index 0000000..3c4265e --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/maps_google.html" @@ -0,0 +1,674 @@ + + + + + + + + Metronic | Maps - Google Maps + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Google Maps google map samples +

    + + +
    +
    + + +
    +
    + +
    +
    +

    Basic

    +
    + + + + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +

    Markers

    +
    + + + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Geolocation

    +
    + + + + +
    +
    +
    +
    Not supported in Internet Explorer 8
    +
    +
    +
    + +
    +
    + +
    +
    +

    Polylines

    +
    + + + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Polygons

    +
    + + + + +
    +
    +
    +
    Not supported in Internet Explorer 8
    +
    +
    +
    +
    + +
    +
    + +
    +
    +

    Static

    +
    + + + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Routes

    +
    + + + + +
    +
    +
    +
    + +
    +
    Not supported in Internet Explorer 8
    +
    +
    +
      +
    +
    +
    + +
    +
    + +
    +
    +

    Geocoding

    +
    + + + + +
    +
    +
    +
    + + +
    +
    +
    +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/maps_vector.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/maps_vector.html" new file mode 100644 index 0000000..cb50bfb --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/maps_vector.html" @@ -0,0 +1,604 @@ + + + + + + + + Metronic | Maps - Vector Maps + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Vector Maps interactive vector map samples +

    + + +
    +
    + + +
    +
    + +
    +
    +

    World

    +
    + + + + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +

    USA

    +
    + + + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Europe

    +
    + + + + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +

    Russia

    +
    + + + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Germany

    +
    + + + + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/portlet_draggable.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/portlet_draggable.html" new file mode 100644 index 0000000..2c80bae --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/portlet_draggable.html" @@ -0,0 +1,675 @@ + + + + + + + + Metronic | Portlets - Draggable Portlets + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Draggable Portlets draggable portlet samples +

    + + +
    +
    + + +
    +
    + +
    +
    +

    Portlet

    +
    + Edit + Add +
    +
    +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. + Cras mattis consectetur purus sit amet fermentum. Duis mollis. +
    +
    +
    + + +
    +
    +

    Portlet

    +
    + Edit + Add +
    +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. + Cras mattis consectetur purus sit amet fermentum. Duis mollis. +
    +
    + + +
    +
    +

    Portlet

    +
    + Edit + Add +
    +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. + Cras mattis consectetur purus sit amet fermentum. Duis mollis. +
    +
    + +
    +
    + +
    +
    +

    Portlet

    +
    + + +
    +
    + Edit +
    +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. + Cras mattis consectetur purus sit amet fermentum.Duis mollis. +
    +
    + + +
    +
    +

    Portlet

    +
    + + +
    +
    + Edit +
    +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. + Cras mattis consectetur purus sit amet fermentum.Duis mollis. +
    +
    + + +
    +
    +

    Portlet

    +
    + Edit + Add +
    +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. + Cras mattis consectetur purus sit amet fermentum. Duis mollis. +
    +
    + +
    +
    + +
    +
    +

    Portlet

    + +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. + Cras mattis consectetur purus sit amet fermentum. Duis mollis. +
    +
    + + +
    +
    +

    Portlet

    + +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentumDuis mollis, est non commodo luctus. +
    +
    + + +
    +
    +

    Portlet

    +
    + Edit + Add +
    +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. + Cras mattis consectetur purus sit amet fermentum. Duis mollis. +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/portlet_general.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/portlet_general.html" new file mode 100644 index 0000000..7486aae --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/portlet_general.html" @@ -0,0 +1,898 @@ + + + + + + + + Metronic | Portlets - General Portlets + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + General Portlets + general portlet samples +

    + + +
    +
    + + +
    +
    + +
    +
    +

    Portlet1

    +
    + Edit + Add +
    +
    +
    +
    + Scroll is hidden
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. + consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +
    +
    +
    + +
    +
    + +
    +
    +

    Portlet2

    +
    + + +
    +
    + Edit +
    +
    +
    +
    + Scroll is always visible
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +
    +
    +
    + +
    +
    + +
    +
    +

    Portlet3

    + +
    +
    +
    + Scroll and rail are always visible
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Portlet

    +
    + Edit + Add +
    +
    +
    +
    + Scroll is hidden
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. + consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +
    +
    +
    + +
    +
    + +
    +
    +

    Portlet

    + +
    +
    +
    + Scroll is hidden
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. + consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Portlet

    + +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. + nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.nisi erat porttitor ligula, eget lacinia odio sem nec elit. nisi erat porttitor ligula, eget lacinia odio sem nec elit. + nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum +
    +
    + +
    +
    + +
    +
    +

    Portlet

    +
    +
    +
    + +
    +
    +

    + Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.ut laoreet dolore magna ut laoreet dolore magna. ut laoreet dolore magna. + ut laoreet dolore magna. +

    +
    +
    +

    + Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo. +

    +
    +
    +

    + Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Portlet

    + +
    +
    +
    +

    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +

    +

    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +

    +

    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +

    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Portlet

    +
    + + + +
    +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +
    +
    + +
    +
    + +
    +
    +

    Portlet

    +
    + + + +
    +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +
    +
    + +
    +
    + +
    +
    +

    Portlet

    +
    + + + +
    +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +
    +
    + +
    +
    + +
    +
    +

    Collapsed

    +
    + + +
    +
    +
    + Default Collapsed Portlet +

    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. +

    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Portlet

    + +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis. +
    +
    +
    +
    + +
    +
    +

    Portlet

    + +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Portlet

    +
    + + + + +
    +
    +
    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +
    +
    + +
    +
    + +
    +
    +

    Collapsed

    +
    + + +
    +
    +
    + Default Collapsed +

    + Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. +

    +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/table_basic.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/table_basic.html" new file mode 100644 index 0000000..f6a5f26 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/table_basic.html" @@ -0,0 +1,879 @@ + + + + + + + + Metronic | Data Tables - Basic Tables + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Basic Tables basic table samples +

    + + +
    +
    + + +
    +
    + +
    +
    +

    Simple Table

    +
    + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #First NameLast NameUsernameStatus
    1MarkOttomakr124Approved
    2JacobNilsonjac123Pending
    3LarryCooperlarSuspended
    3SandyLimsanlimBlocked
    +
    +
    + +
    +
    + +
    +
    +

    Bordered Table

    +
    + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #First NameLast NameUsernameStatus
    1MarkOttomakr124Approved
    2JacobNilsonjac123Pending
    3LarryCooperlarSuspended
    3SandyLimsanlimBlocked
    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Striped Table

    +
    + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #First NameLast NameUsernameStatus
    1MarkOttomakr124Approved
    2JacobNilsonjac123Pending
    3LarryCooperlarSuspended
    3SandyLimsanlimBlocked
    +
    +
    + +
    +
    + +
    +
    +

    Condensed Table

    +
    + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #First NameLast NameUsernameStatus
    1MarkOttomakr124Approved
    2JacobNilsonjac123Pending
    3LarryCooperlarSuspended
    3SandyLimsanlimBlocked
    4SandyLimsanlimBlocked
    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Advance Table

    +
    + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Company Contact Total
    +
    + RedBull +
    Mike Nilson2560.60$ Edit
    +
    + Google +
    Adam Larson560.60$ Delete
    +
    + Apple +
    Daniel Kim3460.60$ Edit
    +
    + Microsoft +
    Nick 2560.60$ Share
    +
    +
    + +
    +
    + +
    +
    +

    Advance Table

    +
    + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    From Descrition Total
    Pixel LtdServer hardware purchase52560.10$ PaidView
    + + Smart House + + Office furniture purchase5760.00$ PendingView
    + + FoodMaster Ltd + + Company Anual Dinner Catering12400.00$ PaidView
    + + WaterPure Ltd + + Payment for Jan 2013610.50$ OverdueView
    +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/table_editable.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/table_editable.html" new file mode 100644 index 0000000..f2df632 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/table_editable.html" @@ -0,0 +1,603 @@ + + + + + + + + Metronic | Data Tables - Editable Tables + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Editable Tables + editable table samples +

    + + +
    +
    + + +
    +
    + +
    +
    +

    Editable Table

    +
    + + + + +
    +
    +
    +
    +
    + +
    +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UsernameFull NamePointsNotesEditDelete
    alexAlex Nilson1234power userEditDelete
    lisaLisa Wong434new userEditDelete
    nick12Nick Roberts232power userEditDelete
    goldwebSergio Jackson132elite userEditDelete
    webriverAntonio Sanches462new userEditDelete
    gist124Nick Roberts62new userEditDelete
    +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/table_managed.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/table_managed.html" new file mode 100644 index 0000000..0690415 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/table_managed.html" @@ -0,0 +1,966 @@ + + + + + + + + Metronic | Data Tables - Managed Tables + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Managed Tables managed table samples +

    + + +
    +
    + + +
    +
    + +
    +
    +

    Managed Table

    +
    + + + + +
    +
    +
    +
    +
    + +
    +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UsernameEmailPointsJoined
    shuxershuxer@gmail.com12012 Jan 2012Approved
    looperlooper90@gmail.com12012.12.2011Suspended
    userwowuserwow@yahoo.com2012.12.2012Approved
    user1wowuserwow@gmail.com2012.12.2012Blocked
    restesttest@gmail.com2012.12.2012Approved
    fooplgood@gmail.com2019.11.2010Approved
    weepgood@gmail.com2019.11.2010Approved
    coopgood@gmail.com2019.11.2010Approved
    pppolgood@gmail.com2019.11.2010Approved
    testgood@gmail.com2019.11.2010Approved
    userwowuserwow@gmail.com2012.12.2012Blocked
    testtest@gmail.com2012.12.2012Approved
    goopgood@gmail.com2012.11.2010Approved
    weepgood@gmail.com2015.11.2011Blocked
    tooplgood@gmail.com2016.11.2010Approved
    userwowuserwow@gmail.com209.12.2012Blocked
    tes21ttest@gmail.com2014.12.2012Approved
    fopgood@gmail.com2013.11.2010Suspended
    kopgood@gmail.com2017.11.2010Approved
    voplgood@gmail.com2019.11.2010Approved
    userwowuserwow@gmail.com2012.12.2012Blocked
    waptest@gmail.com2012.12.2012Approved
    testgood@gmail.com2019.12.2010Approved
    toopgood@gmail.com2017.12.2010Approved
    weepgood@gmail.com2015.11.2011Approved
    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Table

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UsernameEmailStatus
    shuxershuxer@gmail.comApproved
    looperlooper90@gmail.comSuspended
    userwowuserwow@yahoo.comApproved
    user1wowuserwow@gmail.comBlocked
    restesttest@gmail.comApproved
    fooplgood@gmail.comApproved
    weepgood@gmail.comApproved
    coopgood@gmail.comApproved
    pppolgood@gmail.comApproved
    testgood@gmail.comApproved
    userwowuserwow@gmail.comBlocked
    testtest@gmail.comApproved
    +
    +
    + +
    +
    + +
    +
    +

    Table

    +
    + Add + Print +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    UsernameEmailStatus
    shuxershuxer@gmail.comApproved
    looperlooper90@gmail.comSuspended
    userwowuserwow@yahoo.comApproved
    user1wowuserwow@gmail.comBlocked
    restesttest@gmail.comApproved
    fooplgood@gmail.comApproved
    weepgood@gmail.comApproved
    coopgood@gmail.comApproved
    pppolgood@gmail.comApproved
    testgood@gmail.comApproved
    userwowuserwow@gmail.comBlocked
    testtest@gmail.comApproved
    +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_buttons.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_buttons.html" new file mode 100644 index 0000000..07a6826 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_buttons.html" @@ -0,0 +1,2288 @@ + + + + + + + + Metronic | UI Features - Buttons + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Buttons buttons, icons, dropdowns and more +

    + + +
    +
    + + +
    +
    + +
    +
    +

    Buttons

    +
    + + + + +
    +
    +
    +

    + + + + +

    +
    + + + +
    +

    + Red Stripe + Purple stripe +

    +

    + Disabled + Disabled + Disabled + Disabled +

    +

    + Mini size + Default size + Large size +

    +

    + +

    +
    +
    + + +
    +
    +

    Icon Buttons

    +
    + + + + +
    +
    +
    +

    Examples to use buttons with font awesome icons.

    +

    + + + + +

    +

    Examples to use buttons with glyphicon halflings icons.

    +

    + + + + +

    +

    Buttons with both text and icon.

    +

    + Delete Item + Add Item + Listen +

    +

    + Submit Entry + pricing options +

    +

    Navigation icons.

    +

    + + + + +

    +

    + + + + +

    +

    Toolbar icon example

    + +
    + Tools + Settings + About +
    +
    + Help + Contact +
    +
    + + + + + + + + +
    +
    + + + + +
    +
    + + + + +
    +

    Star Rating Example

    +
    + + + + + + + +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    +
    +
    +

    Web Application Icons

    +
    +
    +
    +
      +
    • icon-adjust
    • +
    • icon-asterisk
    • +
    • icon-ban-circle
    • +
    • icon-bar-chart
    • +
    • icon-barcode
    • +
    • icon-beaker
    • +
    • icon-bell
    • +
    • icon-bolt
    • +
    • icon-book
    • +
    • icon-bookmark
    • +
    • icon-bookmark-empty
    • +
    • icon-briefcase
    • +
    • icon-bullhorn
    • +
    • icon-calendar
    • +
    • icon-camera
    • +
    • icon-camera-retro
    • +
    • icon-certificate
    • +
    • icon-check
    • +
    • icon-check-empty
    • +
    • icon-cloud
    • +
    • icon-cog
    • +
    • icon-cogs
    • +
    • icon-comment
    • +
    • icon-comment-alt
    • +
    • icon-comments
    • +
    • icon-comments-alt
    • +
    • icon-credit-card
    • +
    • icon-dashboard
    • +
    • icon-download
    • +
    • icon-download-alt
    • +
    • icon-edit
    • +
    • icon-envelope
    • +
    • icon-envelope-alt
    • +
    +
    +
    +
      +
    • icon-exclamation-sign
    • +
    • icon-external-link
    • +
    • icon-eye-close
    • +
    • icon-eye-open
    • +
    • icon-facetime-video
    • +
    • icon-film
    • +
    • icon-filter
    • +
    • icon-fire
    • +
    • icon-flag
    • +
    • icon-folder-close
    • +
    • icon-folder-open
    • +
    • icon-gift
    • +
    • icon-glass
    • +
    • icon-globe
    • +
    • icon-group
    • +
    • icon-hdd
    • +
    • icon-headphones
    • +
    • icon-heart
    • +
    • icon-heart-empty
    • +
    • icon-home
    • +
    • icon-inbox
    • +
    • icon-info-sign
    • +
    • icon-key
    • +
    • icon-leaf
    • +
    • icon-legal
    • +
    • icon-lemon
    • +
    • icon-lock
    • +
    • icon-unlock
    • +
    • icon-magic
    • +
    • icon-magnet
    • +
    • icon-map-marker
    • +
    • icon-minus
    • +
    • icon-minus-sign
    • +
    +
    +
    +
      +
    • icon-money
    • +
    • icon-move
    • +
    • icon-music
    • +
    • icon-off
    • +
    • icon-ok
    • +
    • icon-ok-circle
    • +
    • icon-ok-sign
    • +
    • icon-pencil
    • +
    • icon-picture
    • +
    • icon-plane
    • +
    • icon-plus
    • +
    • icon-plus-sign
    • +
    • icon-print
    • +
    • icon-pushpin
    • +
    • icon-qrcode
    • +
    • icon-question-sign
    • +
    • icon-random
    • +
    • icon-refresh
    • +
    • icon-remove
    • +
    • icon-remove-circle
    • +
    • icon-remove-sign
    • +
    • icon-reorder
    • +
    • icon-resize-horizontal
    • +
    • icon-resize-vertical
    • +
    • icon-retweet
    • +
    • icon-road
    • +
    • icon-rss
    • +
    • icon-screenshot
    • +
    • icon-search
    • +
    • icon-share
    • +
    • icon-share-alt
    • +
    • icon-shopping-cart
    • +
    +
    +
    +
      +
    • icon-signal
    • +
    • icon-signin
    • +
    • icon-signout
    • +
    • icon-sitemap
    • +
    • icon-sort
    • +
    • icon-sort-down
    • +
    • icon-sort-up
    • +
    • icon-star
    • +
    • icon-star-empty
    • +
    • icon-star-half
    • +
    • icon-tag
    • +
    • icon-tags
    • +
    • icon-tasks
    • +
    • icon-thumbs-down
    • +
    • icon-thumbs-up
    • +
    • icon-time
    • +
    • icon-tint
    • +
    • icon-trash
    • +
    • icon-trophy
    • +
    • icon-truck
    • +
    • icon-umbrella
    • +
    • icon-upload
    • +
    • icon-upload-alt
    • +
    • icon-user
    • +
    • icon-user-md
    • +
    • icon-volume-off
    • +
    • icon-volume-down
    • +
    • icon-volume-up
    • +
    • icon-warning-sign
    • +
    • icon-wrench
    • +
    • icon-zoom-in
    • +
    • icon-zoom-out
    • +
    +
    +
    +
    +
    +

    Text Editor Icons

    +
    +
    +
    +
    +
      +
    • icon-file
    • +
    • icon-cut
    • +
    • icon-copy
    • +
    • icon-paste
    • +
    • icon-save
    • +
    • icon-undo
    • +
    • icon-repeat
    • +
    • icon-paper-clip
    • +
    +
    +
    +
      +
    • icon-text-height
    • +
    • icon-text-width
    • +
    • icon-align-left
    • +
    • icon-align-center
    • +
    • icon-align-right
    • +
    • icon-align-justify
    • +
    • icon-indent-left
    • +
    • icon-indent-right
    • +
    +
    +
    +
      +
    • icon-font
    • +
    • icon-bold
    • +
    • icon-italic
    • +
    • icon-strikethrough
    • +
    • icon-underline
    • +
    • icon-link
    • +
    • icon-columns
    • +
    • icon-table
    • +
    +
    +
    +
      +
    • icon-th-large
    • +
    • icon-th
    • +
    • icon-th-list
    • +
    • icon-list
    • +
    • icon-list-ol
    • +
    • icon-list-ul
    • +
    • icon-list-alt
    • +
    +
    +
    +
    +
    +

    Directional Icons

    +
    +
    +
    +
    +
      +
    • icon-arrow-down
    • +
    • icon-arrow-left
    • +
    • icon-arrow-right
    • +
    • icon-arrow-up
    • +
    • icon-chevron-down
    • +
    +
    +
    +
      +
    • icon-circle-arrow-down
    • +
    • icon-circle-arrow-left
    • +
    • icon-circle-arrow-right
    • +
    • icon-circle-arrow-up
    • +
    • icon-chevron-left
    • +
    +
    +
    +
      +
    • icon-caret-down
    • +
    • icon-caret-left
    • +
    • icon-caret-right
    • +
    • icon-caret-up
    • +
    • icon-chevron-right
    • +
    +
    +
    +
      +
    • icon-hand-down
    • +
    • icon-hand-left
    • +
    • icon-hand-right
    • +
    • icon-hand-up
    • +
    • icon-chevron-up
    • +
    +
    +
    +
    +
    +

    Video Player Icons

    +
    +
    +
    +
    +
      +
    • icon-play-circle
    • +
    • icon-play
    • +
    • icon-pause
    • +
    • icon-stop
    • +
    +
    +
    +
      +
    • icon-step-backward
    • +
    • icon-fast-backward
    • +
    • icon-backward
    • +
    • icon-forward
    • +
    +
    +
    +
      +
    • icon-fast-forward
    • +
    • icon-step-forward
    • +
    • icon-eject
    • +
    +
    +
    +
      +
    • icon-fullscreen
    • +
    • icon-resize-full
    • +
    • icon-resize-small
    • +
    +
    +
    +
    +
    +

    Social Icons

    +
    +
    +
    +
    +
      +
    • icon-phone
    • +
    • icon-phone-sign
    • +
    • icon-facebook
    • +
    • icon-facebook-sign
    • +
    +
    +
    +
      +
    • icon-twitter
    • +
    • icon-twitter-sign
    • +
    • icon-github
    • +
    • icon-github-sign
    • +
    +
    +
    +
      +
    • icon-linkedin
    • +
    • icon-linkedin-sign
    • +
    • icon-pinterest
    • +
    • icon-pinterest-sign
    • +
    +
    +
    +
      +
    • icon-google-plus
    • +
    • icon-google-plus-sign
    • +
    • icon-sign-blank
    • +
    +
    +
    +
    +
    +
    + glass + leaf + dog + user + girl + car + user_add + user_remove + film + magic + envelope + camera + heart + beach_umbrella + train + print + bin + music + note + heart_empty + home + snowflake + fire + magnet + parents + binoculars + road + search + cars + notes_2 + pencil + bus + wifi_alt + luggage + old_man + woman + file + coins + airplane + notes + stats + charts + pie_chart + group + keys + calendar + router + camera_small + dislikes + star + link + eye_open + eye_close + alarm + clock + stopwatch + projector + history + truck + cargo + compass + keynote + paperclip + power + lightbulb + tag + tags + cleaning + ruller + gift + umbrella + book + bookmark + wifi + cup + stroller + headphones + headset + warning_sign + signal + retweet + refresh + roundabout + random + heat + repeat + display + log_book + adress_book + building + eyedropper + adjust + tint + crop + vector_path_square + vector_path_circle + vector_path_polygon + vector_path_line + vector_path_curve + vector_path_all + font + italic + bold + text_underline + text_strike + text_height + text_width + text_resize + left_indent + right_indent + align_left + align_center + align_right + justify + list + text_smaller + text_bigger + embed + embed_close + table + message_full + message_empty + message_in + message_out + message_plus + message_minus + message_ban + message_flag + message_lock + message_new + inbox + inbox_plus + inbox_minus + inbox_lock + inbox_in + inbox_out + cogwheel + cogwheels + picture + adjust_alt + database_lock + database_plus + database_minus + database_ban + folder_open + folder_plus + folder_minus + folder_lock + folder_flag + folder_new + edit + new_window + check + unchecked + more_windows + show_big_thumbnails + show_thumbnails + show_thumbnails_with_lines + show_lines + playlist + imac + macbook + ipad + iphone + iphone_transfer + iphone_exchange + ipod + ipod_shuffle + ear_plugs + phone + step_backward + fast_backward + rewind + play + pause + stop + forward + fast_forward + step_forward + eject + facetime_video + download_alt + mute + volume_down + volume_up + screenshot + move + more + brightness_reduce + brightness_increase + circle_plus + circle_minus + circle_remove + circle_ok + circle_question_mark + circle_info + circle_exclamation_mark + remove + ok + ban + download + upload + shopping_cart + lock + unlock + electricity + ok_2 + remove_2 + cart_out + cart_in + left_arrow + right_arrow + down_arrow + up_arrow + resize_small + resize_full + circle_arrow_left + circle_arrow_right + circle_arrow_top + circle_arrow_down + play_button + unshare + + chevron-right + chevron-left + bluetooth + euro + usd + gbp + retweet_2 + moon + sun + cloud + direction + brush + pen + zoom_in + zoom_out + pin + albums + rotation_lock + flash + google_maps + anchor + conversation + chat + male + female + asterisk + divide + snorkel_diving + scuba_diving + oxygen_bottle + fins + fishes + boat + delete + sheriffs_star + qrcode + barcode + pool + buoy + spade + bank + vcard + electrical_plug + flag + credit_card + keyboard-wireless + keyboard-wired + shield + ring + cake + drink + beer + fast_food + cutlery + pizza + birthday_cake + tablet + settings + bullets + cardio + t-shirt + pants + sweater + fabric + leather + scissors + bomb + skull + celebration + tea_kettle + french_press + coffe_cup + pot + grater + kettle + hospital + hospital_h + microphone + webcam + temple_christianity_church + temple_islam + temple_hindu + temple_buddhist + bicycle + life_preserver + + comments + flower + baseball + rugby + ax + table_tennis + bowling + tree_conifer + tree_deciduous + more_items + sort + filter + gamepad + playing_dices + calculator + tie + wallet + piano + sampler + podium + soccer_ball + blog + dashboard + certificate + bell + candle + pushpin + iphone_shake + pin_flag + turtle + rabbit + globe + briefcase + hdd + thumbs_up + thumbs_down + hand_right + hand_left + hand_up + hand_down + fullscreen + shopping_bag + book_open + nameplate + nameplate_alt + vases + bullhorn + dumbbell + suitcase + file_import + file_export + bug + crown + smoking + cloud-upload + cloud-download + restart + security_camera + expand + collapse + collapse_top + globe_af + global + spray + nails + claw_hammer + classic_hammer + hand_saw + riflescope + electrical_socket_eu + electrical_socket_us + pinterest + dropbox + google_plus + jolicloud + yahoo + blogger + picasa + amazon + tumblr + wordpress + instapaper + evernote + xing + zootool + dribbble + deviantart + read_it_later + linked_in + forrst + pinboard + behance + github + youtube + skitch + foursquare + quora + badoo + spotify + stumbleupon + readability + + + instagram + posterous_spaces + vimeo + flickr + last_fm + rss + skype + e-mail +
    +
    +
    +

    Image

    +

    glass

    +

    music

    +

    search

    +

    envelope

    +

    heart

    +

    star

    +

    star-empty

    +

    user

    +

    film

    +

    th-large

    +

    th

    +

    th-list

    +

    ok

    +

    remove

    +

    zoom-in

    +

    zoom-out

    +

    off

    +

    signal

    +

    cog

    +

    trash

    +

    home

    +

    file

    +

    time

    +

    road

    +

    download-alt

    +

    download

    +

    upload

    +

    inbox

    +

    play-circle

    +

    repeat

    +

    refresh

    +

    list-alt

    +

    lock

    +

    flag

    +

    headphones

    +

    volume-off

    +

    volume-down

    +

    volume-up

    +

    qrcode

    +

    barcode

    +

    tag

    +

    tags

    +

    book

    +

    bookmark

    +

    print

    +

    camera

    +

    font

    +

    bold

    +

    italic

    +

    text-height

    +

    text-width

    +

    align-left

    +

    align-center

    +

    align-right

    +

    align-justify

    +

    list

    +

    indent-left

    +

    indent-right

    +

    facetime-video

    +

    picture

    +

    pencil

    +

    map-marker

    +

    adjust

    +

    tint

    +

    edit

    +

    share

    +

    check

    +

    move

    +

    step-backward

    +

    fast-backward

    +

    backward

    +

    play

    +

    pause

    +

    stop

    +

    forward

    +

    fast-forward

    +

    step-forward

    +

    eject

    +

    chevron-left

    +

    chevron-right

    +

    plus-sign

    +

    minus-sign

    +

    remove-sign

    +

    ok-sign

    +

    question-sign

    +

    info-sign

    +

    screenshot

    +

    remove-circle

    +

    ok-circle

    +

    ban-circle

    +

    arrow-left

    +

    arrow-right

    +

    arrow-up

    +

    arrow-down

    +

    share-alt

    +

    resize-full

    +

    resize-small

    +

    plus

    +

    minus

    +

    asterisk

    +

    exclamation-sign

    +

    gift

    +

    leaf

    +

    fire

    +

    eye-open

    +

    eye-close

    +

    warning-sign

    +

    plane

    +

    calendar

    +

    random

    +

    comments

    +

    magnet

    +

    chevron-up

    +

    chevron-down

    +

    retweet

    +

    shopping-cart

    +

    folder-close

    +

    folder-open

    +

    resize-vertical

    +

    resize-horizontal

    +

    hdd

    +

    bullhorn

    +

    bell

    +

    certificate

    +

    thumbs-up

    +

    thumbs-down

    +

    hand-right

    +

    hand-left

    +

    hand-top

    +

    hand-down

    +

    circle-arrow-right

    +

    circle-arrow-left

    +

    circle-arrow-top

    +

    circle-arrow-down

    +

    globe

    +

    wrench

    +

    tasks

    +

    filter

    +

    briefcase

    +

    fullscreen

    +

    dashboard

    +

    paperclip

    +

    heart-empty

    +

    link

    +

    phone

    +

    pushpin

    +

    euro

    +

    usd

    +

    gbp

    +

    sort

    +

    sort-by-alphabet

    +

    sort-by-alphabet-alt

    +

    sort-by-order

    +

    sort-by-order-alt

    +

    sort-by-attributes

    +

    sort-by-attributes-alt

    +

    unchecked

    +

    expand

    +

    collapse

    +

    collapse-top

    +


    +
    +

    Image - white

    +

    glass

    +

    music

    +

    search

    +

    envelope

    +

    heart

    +

    star

    +

    star-empty

    +

    user

    +

    film

    +

    th-large

    +

    th

    +

    th-list

    +

    ok

    +

    remove

    +

    zoom-in

    +

    zoom-out

    +

    off

    +

    signal

    +

    cog

    +

    trash

    +

    home

    +

    file

    +

    time

    +

    road

    +

    download-alt

    +

    download

    +

    upload

    +

    inbox

    +

    play-circle

    +

    repeat

    +

    refresh

    +

    list-alt

    +

    lock

    +

    flag

    +

    headphones

    +

    volume-off

    +

    volume-down

    +

    volume-up

    +

    qrcode

    +

    barcode

    +

    tag

    +

    tags

    +

    book

    +

    bookmark

    +

    print

    +

    camera

    +

    font

    +

    bold

    +

    italic

    +

    text-height

    +

    text-width

    +

    align-left

    +

    align-center

    +

    align-right

    +

    align-justify

    +

    list

    +

    indent-left

    +

    indent-right

    +

    facetime-video

    +

    picture

    +

    pencil

    +

    map-marker

    +

    adjust

    +

    tint

    +

    edit

    +

    share

    +

    check

    +

    move

    +

    step-backward

    +

    fast-backward

    +

    backward

    +

    play

    +

    pause

    +

    stop

    +

    forward

    +

    fast-forward

    +

    step-forward

    +

    eject

    +

    chevron-left

    +

    chevron-right

    +

    plus-sign

    +

    minus-sign

    +

    remove-sign

    +

    ok-sign

    +

    question-sign

    +

    info-sign

    +

    screenshot

    +

    remove-circle

    +

    ok-circle

    +

    ban-circle

    +

    arrow-left

    +

    arrow-right

    +

    arrow-up

    +

    arrow-down

    +

    share-alt

    +

    resize-full

    +

    resize-small

    +

    plus

    +

    minus

    +

    asterisk

    +

    exclamation-sign

    +

    gift

    +

    leaf

    +

    fire

    +

    eye-open

    +

    eye-close

    +

    warning-sign

    +

    plane

    +

    calendar

    +

    random

    +

    comments

    +

    magnet

    +

    chevron-up

    +

    chevron-down

    +

    retweet

    +

    shopping-cart

    +

    folder-close

    +

    folder-open

    +

    resize-vertical

    +

    resize-horizontal

    +

    hdd

    +

    bullhorn

    +

    bell

    +

    certificate

    +

    thumbs-up

    +

    thumbs-down

    +

    hand-right

    +

    hand-left

    +

    hand-top

    +

    hand-down

    +

    circle-arrow-right

    +

    circle-arrow-left

    +

    circle-arrow-top

    +

    circle-arrow-down

    +

    globe

    +

    wrench

    +

    tasks

    +

    filter

    +

    briefcase

    +

    fullscreen

    +

    dashboard

    +

    paperclip

    +

    heart-empty

    +

    link

    +

    phone

    +

    pushpin

    +

    euro

    +

    usd

    +

    gbp

    +

    sort

    +

    sort-by-alphabet

    +

    sort-by-alphabet-alt

    +

    sort-by-order

    +

    sort-by-order-alt

    +

    sort-by-attributes

    +

    sort-by-attributes-alt

    +

    unchecked

    +

    expand

    +

    collapse

    +

    collapse-top

    +
    +

    Fonts

    + glass + music + search + envelope + heart + star + star-empty + user + film + th-large + th + th-list + ok + remove + zoom-in + zoom-out + off + signal + cog + trash + home + file + time + road + download-alt + download + upload + inbox + play-circle + repeat + refresh + list-alt + lock + flag + headphones + volume-off + volume-down + volume-up + qrcode + barcode + tag + tags + book + bookmark + print + camera + font + bold + italic + text-height + text-width + align-left + align-center + align-right + align-justify + list + indent-left + indent-right + facetime-video + picture + pencil + map-marker + adjust + tint + edit + + check + move + step-backward + fast-backward + backward + play + pause + stop + forward + fast-forward + step-forward + eject + chevron-left + chevron-right + plus-sign + minus-sign + remove-sign + ok-sign + question-sign + info-sign + screenshot + remove-circle + ok-circle + ban-circle + arrow-left + arrow-right + arrow-up + arrow-down + + resize-full + resize-small + plus + minus + asterisk + exclamation-sign + gift + leaf + fire + eye-open + eye-close + warning-sign + plane + calendar + random + comments + magnet + chevron-up + chevron-down + retweet + shopping-cart + folder-close + folder-open + resize-vertical + resize-horizontal + hdd + bullhorn + bell + certificate + thumbs-up + thumbs-down + hand-right + hand-left + hand-top + hand-down + circle-arrow-right + circle-arrow-left + circle-arrow-top + circle-arrow-down + globe + wrench + tasks + filter + briefcase + fullscreen + dashboard + paperclip + heart-empty + link + phone + pushpin + euro + usd + gbp + sort + sort-by-alphabet + sort-by-alphabet-alt + sort-by-order + sort-by-order-alt + sort-by-attributes + sort-by-attributes-alt + unchecked + expand + collapse + collapse-top +


    +
    +

    Fonts - white

    + glass + music + search + envelope + heart + star + star-empty + user + film + th-large + th + th-list + ok + remove + zoom-in + zoom-out + off + signal + cog + trash + home + file + time + road + download-alt + download + upload + inbox + play-circle + repeat + refresh + list-alt + lock + flag + headphones + volume-off + volume-down + volume-up + qrcode + barcode + tag + tags + book + bookmark + print + camera + font + bold + italic + text-height + text-width + align-left + align-center + align-right + align-justify + list + indent-left + indent-right + facetime-video + picture + pencil + map-marker + adjust + tint + edit + + check + move + step-backward + fast-backward + backward + play + pause + stop + forward + fast-forward + step-forward + eject + chevron-left + chevron-right + plus-sign + minus-sign + remove-sign + ok-sign + question-sign + info-sign + screenshot + remove-circle + ok-circle + ban-circle + arrow-left + arrow-right + arrow-up + arrow-down + + resize-full + resize-small + plus + minus + asterisk + exclamation-sign + gift + leaf + fire + eye-open + eye-close + warning-sign + plane + calendar + random + comments + magnet + chevron-up + chevron-down + retweet + shopping-cart + folder-close + folder-open + resize-vertical + resize-horizontal + hdd + bullhorn + bell + certificate + thumbs-up + thumbs-down + hand-right + hand-left + hand-top + hand-down + circle-arrow-right + circle-arrow-left + circle-arrow-top + circle-arrow-down + globe + wrench + tasks + filter + briefcase + fullscreen + dashboard + paperclip + heart-empty + link + phone + pushpin + euro + usd + gbp + sort + sort-by-alphabet + sort-by-alphabet-alt + sort-by-order + sort-by-order-alt + sort-by-attributes + sort-by-attributes-alt + unchecked + expand + collapse + collapse-top +
    +
    +
    +
    +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_general.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_general.html" new file mode 100644 index 0000000..36a43f2 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_general.html" @@ -0,0 +1,983 @@ + + + + + + + + Metronic | UI Features - General + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + General general ui components +

    + + +
    +
    + + +
    +
    + +
    +
    +

    Alerts

    +
    + + + + +
    +
    +
    +
    + + Warning! Your monthly traffic is reaching limit. +
    +
    + + Success! The page has been added. +
    +
    + + Info! You have 198 unread messages. +
    +
    + + Error! The daily cronjob has failed. +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Inline Notifications

    +
    + + + + +
    +
    +
    +
    + +

    Error!

    +

    + Duis mollis, est non commodo luctus, + nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +

    +

    + Do this Or do this +

    +
    +
    + +

    Success!

    +

    + Duis mollis, est non commodo luctus, + nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +

    +

    + Do this Or do this +

    +
    +
    + +

    Info!

    +

    + Duis mollis, est non commodo luctus, + nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +

    +

    + Do this Or do this +

    +
    +
    + +

    Warning!

    +

    + Duis mollis, est non commodo luctus, + nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. +

    +

    + Do this Or do this +

    +
    +
    +
    + + +
    +
    +

    Gritter Notifications

    +
    + + + + +
    +
    +
    +
    Click on below buttons to check it out.
    +

    + Regular + Sticky + Imageless +

    +

    + Light + Max of 3 + Remove all +

    +
    +
    + + +
    +
    +

    Pulsate

    +
    + + + + +
    +
    +
    +
    Pulsate any page elements.
    +
    + Repeating Pulsate +
    +
    + + +
    + NOTE! + + Pulsate is + supported in Latest Firefox, Chrome, Opera, + Safari and Internet Explorer 9 and Internet Explorer 10 only. + +
    +
    + + +
    +
    +

    Modal Dialogs

    +
    + + + + +
    +
    +
    +
    Click on below buttons to check it out.
    + + Modal Dialog + Alert + Confirm + + + + +
    +
    + + +
    +
    +

    Tooltips

    +
    + + + + +
    +
    +
    +

    + Tight pants next level keffiyeh + you probably + haven't heard of them. + Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel + have a + terry richardson vinyl chambray. + twitter handle + freegan cred raw denim single-origin coffee viral. +

    +

    + + + + +

    +
    +
    + + +
    +
    +

    Popovers

    +
    + + + + +
    +
    +
    +

    + Tight pants next level keffiyeh + trigger me on click haven't heard of them. + Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel + trigger me on hover + terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa. +

    +

    + + + + +

    +
    +
    + +
    +
    + +
    +
    +

    Popovers

    +
    + + + + +
    +
    +
    +
    + Progress bars use CSS3 gradients, transitions, and animations to achieve all their effects. These features are not supported in IE7-9 or older versions of Firefox. Versions earlier than Internet Explorer 10 and Opera 12 do not support animations. +
    +

    Basic

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Striped

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Animated

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Stacked

    +
    +
    +
    +
    +
    +
    +
    + + +
    +
    +

    Labels and Badges

    +
    + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameLabelsBadges
    + Default + + 1 + + Default +
    + Success + + 2 + + Success +
    + Warning + + 4 + + Warning +
    + Important + + 6 + + Important +
    + Info + + 8 + + Info +
    + Inverse + + 10 + + Inverse +
    +
    +
    + + +
    +
    +

    Pagination

    +
    + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_nestable.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_nestable.html" new file mode 100644 index 0000000..d6d9319 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_nestable.html" @@ -0,0 +1,676 @@ + + + + + + + + Metronic | UI Features - Nestable List + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Nestable List + Drag & drop hierarchical list with mouse and touch compatibility +

    + + +
    +
    + + +
    + NOTE! + + Nestable List Plugin + supported in Firefox, Chrome, Opera, + Safari, Internet Explorer 10 and Internet Explorer 9 only. + Internet Explorer 8 not supported. + +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +

    Serialised Output (per list)

    + + +
    +
    +
    +
    +
    +
    +

    Nestable List 1

    +
    + + + + +
    +
    +
    +
    +
      +
    1. +
      Item 1
      +
    2. +
    3. +
      Item 2
      +
        +
      1. +
        Item 3
        +
      2. +
      3. +
        Item 4
        +
      4. +
      5. +
        Item 5
        +
          +
        1. +
          Item 6
          +
        2. +
        3. +
          Item 7
          +
        4. +
        5. +
          Item 8
          +
        6. +
        +
      6. +
      7. +
        Item 9
        +
      8. +
      9. +
        Item 10
        +
      10. +
      +
    4. +
    5. +
      Item 11
      +
    6. +
    7. +
      Item 12
      +
    8. +
    +
    +
    +
    +
    +
    +
    +
    +

    Nestable List 2

    +
    + + + + +
    +
    +
    +
    +
      +
    1. +
      Item 13
      +
    2. +
    3. +
      Item 14
      +
    4. +
    5. +
      Item 15
      +
        +
      1. +
        Item 16
        +
      2. +
      3. +
        Item 17
        +
      4. +
      5. +
        Item 18
        +
      6. +
      +
    6. +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Nestable List 3

    +
    + + + + +
    +
    +
    +
    +
      +
    1. +
      +
      Item 13
      +
    2. +
    3. +
      +
      Item 14
      +
    4. +
    5. +
      +
      Item 15
      +
        +
      1. +
        +
        Item 16
        +
      2. +
      3. +
        +
        Item 17
        +
      4. +
      5. +
        +
        Item 18
        +
      6. +
      +
    6. +
    +
    +
    +
    +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_sliders.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_sliders.html" new file mode 100644 index 0000000..13e0928 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_sliders.html" @@ -0,0 +1,726 @@ + + + + + + + + Metronic | UI Features - Sliders + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Sliders ui sliders, cirlce dial and more +

    + + +
    +
    + + +
    +
    + +
    +
    +

    Sliders

    +
    + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Basic +
    +
    Snap to increments +
    +
    + Amount ($100 increments): + +
    +
    Range +
    +
    + Price range: + +
    +
    Maximum +
    +
    + Maximum Value: + +
    +
    Minimum +
    +
    + Minimum Value: + +
    +
    Graphic EQ +
    + 88 + 77 + 55 + 33 + 40 + 45 + 90 + 40 + 60 + 20 +
    +
    Vertical +
    + Value: + +
    +
    +
    Range(Vertical) +
    + Target(Millions): + +
    +
    +
    +
    +
    + + +
    +
    +

    Circle Dials

    +
    + + + + +
    +
    +
    +
    +
    +

    Disable display input

    + +
    +
    +

    Cursor Mode

    + +
    +
    +

    Display previous value

    + +
    +
    +
    +
    +

    Angle offset

    + +
    +
    +

    Angle offset and arc

    + +
    +
    +

    5-digit values

    + +
    +
    +
    +
    + + +
    +
    +

    Circle Stats

    +
    + + + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    Unique Visits
    +
    10112
    + 123 + 3 + 3 +
    +
    +
    +
    +
    +
    + +
    +
    +
    New Users
    +
    987
    + 567 + 16 +
    +
    +
    +
    +
    +
    + +
    +
    +
    Downtime
    +
    0.01%
    + 23 + 31 + 39 +
    +
    +
    +
    +
    +
    + +
    +
    +
    Profit
    +
    1120.32$
    + 453 + 123 +
    +
    +
    +
    +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_tabs_accordions.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_tabs_accordions.html" new file mode 100644 index 0000000..0f0a00e --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_tabs_accordions.html" @@ -0,0 +1,771 @@ + + + + + + + + Metronic | UI Features - Tabs & Accordions + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Tabs & Accordions general ui components +

    + + +
    +
    + + +
    +
    + +
    +
    +

    Tabs

    +
    +
    +
    + +
    +
    +

    + Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.ut laoreet dolore magna ut laoreet dolore magna. ut laoreet dolore magna. + ut laoreet dolore magna. +

    +

    + Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. sed diam nonummy nibh euismod.consectetuer. +

    +
    +
    +

    + Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo. +

    +

    + Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat +

    +
    +
    +

    + Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. +

    +

    + Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. +

    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +

    Accordions

    +
    + + + + +
    +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor. +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +

    Inline Tabs

    +
    + + +
    +
    +
    +
    +
    + +
    + +
    +
    +

    I'm in Section 1.

    +

    + Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat. +

    +
    +
    +

    Howdy, I'm in Section 2.

    +

    + Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat. Ut wisi enim ad minim veniam, quis nostrud exerci tation. +

    +
    +
    +

    Howdy, I'm in Section 3.

    +

    + Duis autem vel eum iriure dolor in hendrerit in vulputate. + Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat +

    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +

    I'm in Section 1.

    +

    + Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat +

    +
    +
    +

    Howdy, I'm in Section 2.

    +

    + Duis autem vel eum iriure dolor in hendrerit in vulputate. + Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat +

    +
    +
    +

    Howdy, I'm in Section 3.

    +

    + Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate. +

    +
    +
    + +
    + +
    +
    +
    +
    + +
    + + +
    +
    +

    I'm in Section 1.

    +

    + Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat +

    +
    +
    +

    Howdy, I'm in Section 2.

    +

    + Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate. +

    +
    +
    +

    Howdy, I'm in Section 3.

    +

    + Duis autem vel eum iriure dolor in hendrerit in vulputate. + Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat +

    +
    +
    +
    + +
    +
    +
    + +
    + + +
    +
    +

    I'm in Section 1.

    +

    + Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat. +

    +
    +
    +

    Howdy, I'm in Section 2.

    +

    + Duis autem vel eum iriure dolor in hendrerit in vulputate. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat +

    +
    +
    +

    Howdy, I'm in Section 3.

    +

    + Duis autem vel eum iriure dolor in hendrerit in vulputate. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut. Duis autem vel eum iriure dolor in hendrerit in vulputate. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl. +

    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_tiles.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_tiles.html" new file mode 100644 index 0000000..b149006 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_tiles.html" @@ -0,0 +1,711 @@ + + + + + + + + Metronic | UI Features - Tiles + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Tiles windows 8 style tiles examples +

    + + +
    +
    + + +
    +
    +
    + +
    +
    +
    + Notifications +
    +
    + 6 +
    +
    +
    +
    +
    + +
    +
    +
    + Meetings +
    +
    + 12 +
    +
    +
    +
    +
    +
    +
    +

    support@metronic.com

    +

    Re: Metronic v1.2 - Project Update!

    +

    24 March 2013 12.30PM confirmed for the project plan update meeting...

    +
    +
    +
    + +
    +
    + 14 +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Members +
    +
    + 452 +
    +
    +
    +
    +
    + +

    Announements

    +

    + Easily style icon color, size, shadow, and anything that's possible with CSS. +

    +
    +
    +
    + Bob Nilson +
    +
    + 24 Jan 2013 +
    +
    +
    +
    +
    + +
    +
    +
    + Orders +
    +
    + 121 +
    +
    +
    +
    +
    + +
    +
    +
    + Media +
    +
    +
    +
    +
    + +
    +
    +
    + Feedback +
    +
    + 12 +
    +
    +
    +
    +
    + +

    @lisa_wong

    +

    + I really love this theme. I look forward to check the next release! +

    +
    +
    +
    + +
    +
    + 10:45PM, 23 Jan +
    +
    +
    +
    +
    + +
    +
    +
    + Meetups +
    +
    + 12 Jan +
    +
    +
    +
    +
    + +
    +
    +
    + Reports +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Documents +
    +
    + 124 +
    +
    +
    +
    +
    + +
    +
    +
    + Gallery +
    +
    + 124 +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + Settings +
    +
    +
    +
    +
    + +
    +
    +
    + Projects +
    +
    + 34 +
    +
    +
    +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_tree.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_tree.html" new file mode 100644 index 0000000..6e2a278 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_tree.html" @@ -0,0 +1,642 @@ + + + + + + + + Metronic | UI Features - Tree View + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_typography.html" "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_typography.html" new file mode 100644 index 0000000..c1d5335 --- /dev/null +++ "b/\347\225\214\351\235\242/XHTML_Metronic/template_content/ui_typography.html" @@ -0,0 +1,745 @@ + + + + + + + + Metronic | UI Features - Typography + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +
    +
    + +
    +
    +
    +
    +

    THEME COLOR

    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    +
    + + +

    + Typography texts, headers, list and more +

    + + +
    +
    + + +
    +
    +
    + +
    +
    +

    General

    +
    + + + + +
    +
    +
    +
    +
    +

    Sample text with lead body

    +

    + Lead body. Lorem ipsum dolor sit amet, consectetur adipiscing elit. +

    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales at. Nulla tellus elit, varius non commodo eget, mattis vel eros. In sed ornare nulla. +

    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales at. Nulla tellus elit, varius non commodo eget, mattis vel eros. In sed ornare nulla. +

    +
    +
    +

    Sample text

    +

    + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales at. Nulla tellus elit, varius non commodo eget, mattis vel eros. In sed ornare nulla. +

    +

    Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula ut id elit.

    +

    Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec sed odio dui.

    +
    +
    +
    +
    +

    Texts

    +

    Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.

    +

    Etiam porta sem malesuada magna mollis euismod.

    +

    Donec ullamcorper nulla non metus auctor fringilla.

    +

    Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis.

    +

    Duis mollis, est non commodo luctus, nisi erat porttitor ligula.

    +
    +
    +

    Headings

    +

    h1. Heading 1

    +

    h2. Heading 2

    +

    h3. Heading 3

    +

    h4. Heading 4

    +
    h5. Heading 5
    +
    h6. Heading 6
    +
    +
    +
    +
    +

    Address

    +
    +
    + Loop, Inc.
    + 795 Park Ave, Suite 120
    + San Francisco, CA 94107
    + P: (234) 145-1810 +
    +
    + Full Name
    + first.last@email.com +
    +
    +
    +
    +

    Some more text here

    +

    Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula ut id elit.

    +

    Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec sed odio dui.

    +
    +
    +
    +
    +
    + +
    + +
    +
    +

    Blockquotes

    +
    + + + + +
    +
    +
    +

    +
    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante. Duis mollis, est non commodo luctus, nisi erat porttitor ligula integer posuere erat a ante.

    +
    +
    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

    + Someone famous Source Title +
    +
    +
    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

    + Someone famous Source Title +
    +
    +
    +
    + +
    + +
    +
    +
    +

    Wells

    +
    + + + + +
    +
    +
    +
    +

    Default well

    + Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet.Integer molestie lorem at massa Integer molestie lorem at massa Integer molestie lorem at massa Integer molestie lorem at massa. +
    +
    +

    Large Well

    + Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet. Integer molestie lorem at massa Integer molestie lorem at massa Integer molestie lorem at massa +
    +
    +
    +
    + +
    +
    + +
    +
    +

    Unordered Lists

    +
    + +
    +
    +
    +
      +
    • Lorem ipsum dolor sit amet
    • +
    • Consectetur adipiscing elit
    • +
    • Integer molestie lorem at massa
    • +
    • Facilisis in pretium nisl aliquet
    • +
    • + Nulla volutpat aliquam velit +
        +
      • Phasellus iaculis neque
      • +
      • Purus sodales ultricies
      • +
      • Vestibulum laoreet porttitor sem
      • +
      • Ac tristique libero volutpat at
      • +
      +
    • +
    • Faucibus porta lacus fringilla vel
    • +
    • Aenean sit amet erat nunc
    • +
    • Eget porttitor lorem
    • +
    +
    +
    + + +
    +
    +

    Ordered Lists

    +
    + +
    +
    +
    +
      +
    1. Lorem ipsum dolor sit amet
    2. +
    3. Consectetur adipiscing elit
    4. +
    5. Integer molestie lorem at massa
    6. +
    7. Facilisis in pretium nisl aliquet
    8. +
    9. Nulla volutpat aliquam velit
    10. +
    11. Faucibus porta lacus fringilla vel
    12. +
    13. Aenean sit amet erat nunc
    14. +
    15. Eget porttitor lorem
    16. +
    +
    +
    + + +
    +
    +

    Unstyled Lists

    +
    + +
    +
    +
    +
      +
    • Lorem ipsum dolor sit amet
    • +
    • Consectetur adipiscing elit
    • +
    • Integer molestie lorem at massa
    • +
    • Facilisis in pretium nisl aliquet
    • +
    • + Nulla volutpat aliquam velit +
        +
      • Phasellus iaculis neque
      • +
      • Purus sodales ultricies
      • +
      • Vestibulum laoreet porttitor sem
      • +
      • Ac tristique libero volutpat at
      • +
      +
    • +
    • Faucibus porta lacus fringilla vel
    • +
    • Aenean sit amet erat nunc
    • +
    • Eget porttitor lorem
    • +
    +
    +
    + + +
    +
    +

    Description Lists

    +
    + +
    +
    +
    +
    +
    Description lists
    +
    A description list is perfect for defining terms.
    +
    Euismod
    +
    Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.
    +
    Donec id elit non mi porta gravida at eget metus.
    +
    Malesuada porta
    +
    Etiam porta sem malesuada magna mollis euismod.
    +
    +
    +
    + +
    +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 9fd572eb03da76b33d83da6380b6ed54a52309b3 Mon Sep 17 00:00:00 2001 From: ym1623 <598207893@qq.com> Date: Thu, 31 Oct 2013 14:36:30 +0800 Subject: [PATCH 07/10] add theme to javascript plus --- .../SliderNav-master/README" | 31 ++ .../SliderNav-master/example.html" | 336 ++++++++++++++++++ .../SliderNav-master/jquery-1.4.2.js" | 154 ++++++++ .../SliderNav-master/slidernav-min.js" | 7 + .../SliderNav-master/slidernav.css" | 22 ++ .../SliderNav-master/slidernav.js" | 39 ++ 6 files changed, 589 insertions(+) create mode 100644 "\346\217\222\344\273\266/SliderNav-master/README" create mode 100644 "\346\217\222\344\273\266/SliderNav-master/example.html" create mode 100644 "\346\217\222\344\273\266/SliderNav-master/jquery-1.4.2.js" create mode 100644 "\346\217\222\344\273\266/SliderNav-master/slidernav-min.js" create mode 100644 "\346\217\222\344\273\266/SliderNav-master/slidernav.css" create mode 100644 "\346\217\222\344\273\266/SliderNav-master/slidernav.js" diff --git "a/\346\217\222\344\273\266/SliderNav-master/README" "b/\346\217\222\344\273\266/SliderNav-master/README" new file mode 100644 index 0000000..c5afe17 --- /dev/null +++ "b/\346\217\222\344\273\266/SliderNav-master/README" @@ -0,0 +1,31 @@ +Plugin Name: SliderNav +Author: Monjurul Dolon, http://mdolon.com/ +More Information: http://devgrow.com/slidernav + +SliderNav is a JQuery plugin that lets you add dynamic, sliding content +using a vertical navigation bar (index). It is made mainly for +alphabetical listings but can be used with anything, though longer words +can look a bit awkward. The plugin automatically adds the navigation and +sets the height for the object based on how tall the navigation is, in +order to make sure users have access to the entire list. I also used the +overflow: auto; property for the actual content so you can use your +mousewheel to scroll through the content as well. + +The first of the configurations is height - set this to a pixel value if +you wish to override the automatic detection based on the vertical +navigation (you may need to change the min-height in the CSS too). Also +by default, the plugin will generate an alphabetical navigation that +uses all 26 letters of the English alphabet, however you can also use +custom items using the following code: + + $('#slider').sliderNav({items:['item1','item2','item3'], height:'200'}); + +You can also set arrows to true (default) or false, which displays +arrows above and below the slider object to allow scrolling longer +sections. Click on an arrow will scroll the object by it’s height +– I used this method to keep code to the minimum, as anything +smoother/nicer-looking required a lot more code. The last customizable +option is debug, which can either be true or false. This adds a little +bit of text on the bottom of the slider that shows how many pixels the +current offset is (was useful during early development, probably not +anymore). diff --git "a/\346\217\222\344\273\266/SliderNav-master/example.html" "b/\346\217\222\344\273\266/SliderNav-master/example.html" new file mode 100644 index 0000000..2941908 --- /dev/null +++ "b/\346\217\222\344\273\266/SliderNav-master/example.html" @@ -0,0 +1,336 @@ + + + + +Apple-Style Slider + + + + + + + +

    SliderNav

    +

    SliderNav is a plugin that lets you add dynamic, sliding content using a vertical navigation bar (index). It's made mainly for alphabetical listings but can be used with anything, though longer words look a little awkward (see example 2).

    +

    Basic Usage

    +
    $('.slider').sliderNav();
    +

    For more detailed instructions and customization options, see the article on DevGrow (or view the plugin source).

    +

    Example 1

    +
    +
    + +
    +
    +

    +

    Example 2

    + + +

    +

    Credit and License

    +

    This plugin was created by Monjurul Dolon, author of DevGrow, a blog for web developers and designers. Inspiration for this effect came from a new technology blog called Techi - be sure to support them as well!

    +

    Realeased under the MIT, BSD, and GPL Licenses - do whatever you'd like with it, though a link back would be sincerely appreciated!

    + + \ No newline at end of file diff --git "a/\346\217\222\344\273\266/SliderNav-master/jquery-1.4.2.js" "b/\346\217\222\344\273\266/SliderNav-master/jquery-1.4.2.js" new file mode 100644 index 0000000..48a88b8 --- /dev/null +++ "b/\346\217\222\344\273\266/SliderNav-master/jquery-1.4.2.js" @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(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(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
    a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

    ";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
    ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
    ","
    "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(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,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
    ").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
    "; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); \ No newline at end of file diff --git "a/\346\217\222\344\273\266/SliderNav-master/slidernav-min.js" "b/\346\217\222\344\273\266/SliderNav-master/slidernav-min.js" new file mode 100644 index 0000000..7c847e4 --- /dev/null +++ "b/\346\217\222\344\273\266/SliderNav-master/slidernav-min.js" @@ -0,0 +1,7 @@ +/* + * SliderNav - A Simple Content Slider with a Navigation Bar + * Copyright 2010 Monjurul Dolon, http://mdolon.com/ + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://devgrow.com/slidernav + */ +$.fn.sliderNav=function(options){var defaults={items:["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],debug:false,height:null,arrows:true};var opts=$.extend(defaults,options);var o=$.meta?$.extend({},opts,$$.data()):opts;var slider=$(this);$(slider).addClass('slider');$('.slider-content li:first',slider).addClass('selected');$(slider).append('
      ');for(var i in o.items)$('.slider-nav ul',slider).append("
    • "+o.items[i]+"
    • ");var height=$('.slider-nav',slider).height();if(o.height)height=o.height;$('.slider-content, .slider-nav',slider).css('height',height);if(o.debug)$(slider).append('
      Scroll Offset: 0
      ');$('.slider-nav a',slider).mouseover(function(event){var target=$(this).attr('alt');var cOffset=$('.slider-content',slider).offset().top;var tOffset=$('.slider-content '+target,slider).offset().top;var height=$('.slider-nav',slider).height();if(o.height)height=o.height;var pScroll=(tOffset-cOffset)-height/8;$('.slider-content li',slider).removeClass('selected');$(target).addClass('selected');$('.slider-content',slider).stop().animate({scrollTop:'+='+pScroll+'px'});if(o.debug)$('#debug span',slider).html(tOffset);});if(o.arrows){$('.slider-nav',slider).css('top','20px');$(slider).prepend('
      ');$(slider).append('
      ');$('.slide-down',slider).click(function(){$('.slider-content',slider).animate({scrollTop:"+="+height+"px"},500);});$('.slide-up',slider).click(function(){$('.slider-content',slider).animate({scrollTop:"-="+height+"px"},500);});}}; \ No newline at end of file diff --git "a/\346\217\222\344\273\266/SliderNav-master/slidernav.css" "b/\346\217\222\344\273\266/SliderNav-master/slidernav.css" new file mode 100644 index 0000000..e42cdc9 --- /dev/null +++ "b/\346\217\222\344\273\266/SliderNav-master/slidernav.css" @@ -0,0 +1,22 @@ +/* + * SliderNav - A Simple Content Slider with a Navigation Bar + * Copyright 2010 Monjurul Dolon, http://mdolon.com/ + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://devgrow.com/slidernav + */ +.slider { width: 300px; min-height: 250px; display: block; position: relative; background: #fff; overflow: hidden; } +.slider ul { list-style: none; } +.slider-content { float: left; width: 100%; display: block; overflow: auto; min-height: 250px; } +.slider-content ul { float: left; width: 100%; display: block; position: relative; } +.slider-content ul li { float: left; width: 100%; } +.slider-content ul ul li a { padding: 5px 10px; display: block; border-bottom: 1px solid #f3f3f3; text-transform: capitalize; } +.slider-content ul ul li a:hover { background: #f3faff; border-color: #d5ebf9; } +.slider-content .title { padding: 5px 0; text-indent: 10px; background: #bbb; color: #fff; width: 100%; float: left; font-weight: bold; text-transform: uppercase; } +.slider-content .selected .title { background: #666; } +.slider .slider-nav { position: absolute; right: 0; top: 0; background: #666; min-height: 250px; } +.slider .slider-nav ul { padding: 5px 0; } +.slider .slider-nav li a { padding: 3px 5px; line-height: 13px; text-align: center; color: #fff; font-weight: bold; display: block; text-transform: uppercase; cursor: pointer; } +.slider #debug { position: absolute; bottom: 0; left: 0; padding: 5px; background: #000; color: #fff; } +.slider .arrow { font-size: 0px; line-height: 0%; width: 0px; border-bottom: 8px solid #fff; border-left: 5px solid #333; border-right: 5px solid #333; position: relative; top: 5px; } +.slider .down { border-bottom: none; border-top: 8px solid #fff; top: 15px; } +.slider .slide-up, .slider .slide-down { height: 20px; background: #333; text-align: center; cursor: pointer; float: right; width: 100%; position: relative; } \ No newline at end of file diff --git "a/\346\217\222\344\273\266/SliderNav-master/slidernav.js" "b/\346\217\222\344\273\266/SliderNav-master/slidernav.js" new file mode 100644 index 0000000..d28f7e3 --- /dev/null +++ "b/\346\217\222\344\273\266/SliderNav-master/slidernav.js" @@ -0,0 +1,39 @@ +/* + * SliderNav - A Simple Content Slider with a Navigation Bar + * Copyright 2010 Monjurul Dolon, http://mdolon.com/ + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://devgrow.com/slidernav + */ +$.fn.sliderNav = function(options) { + var defaults = { items: ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"], debug: false, height: null, arrows: true}; + var opts = $.extend(defaults, options); var o = $.meta ? $.extend({}, opts, $$.data()) : opts; var slider = $(this); $(slider).addClass('slider'); + $('.slider-content li:first', slider).addClass('selected'); + $(slider).append('
        '); + for(var i in o.items) $('.slider-nav ul', slider).append("
      • "+o.items[i]+"
      • "); + var height = $('.slider-nav', slider).height(); + if(o.height) height = o.height; + $('.slider-content, .slider-nav', slider).css('height',height); + if(o.debug) $(slider).append('
        Scroll Offset: 0
        '); + $('.slider-nav a', slider).mouseover(function(event){ + var target = $(this).attr('alt'); + var cOffset = $('.slider-content', slider).offset().top; + var tOffset = $('.slider-content '+target, slider).offset().top; + var height = $('.slider-nav', slider).height(); if(o.height) height = o.height; + var pScroll = (tOffset - cOffset) - height/8; + $('.slider-content li', slider).removeClass('selected'); + $(target).addClass('selected'); + $('.slider-content', slider).stop().animate({scrollTop: '+=' + pScroll + 'px'}); + if(o.debug) $('#debug span', slider).html(tOffset); + }); + if(o.arrows){ + $('.slider-nav',slider).css('top','20px'); + $(slider).prepend('
        '); + $(slider).append('
        '); + $('.slide-down',slider).click(function(){ + $('.slider-content',slider).animate({scrollTop : "+="+height+"px"}, 500); + }); + $('.slide-up',slider).click(function(){ + $('.slider-content',slider).animate({scrollTop : "-="+height+"px"}, 500); + }); + } +}; \ No newline at end of file From e54173cc3e64eebd0298a04048847ab22c29dc81 Mon Sep 17 00:00:00 2001 From: ym1623 <598207893@qq.com> Date: Thu, 31 Oct 2013 15:29:20 +0800 Subject: [PATCH 08/10] add theme to javascript plus --- scroll/jQuery-slimScroll-1.3.0/README.md | 9 + .../examples/allow-page-scroll.html | 94 ++ .../examples/chaining.html | 80 + .../examples/disable-fade-out.html | 94 ++ .../examples/dynamic-content.html | 81 + .../examples/height-width.html | 125 ++ .../examples/index.html | 9 + .../examples/libs/prettify/prettify.css | 52 + .../examples/libs/prettify/prettify.js | 1477 +++++++++++++++++ .../examples/mouse-wheel.html | 99 ++ .../examples/multiple-elements.html | 113 ++ .../examples/navigation.html | 30 + .../examples/nested.html | 82 + .../examples/programmatic-scrolling.html | 138 ++ .../examples/rail.html | 190 +++ .../examples/scroll-events.html | 88 + .../examples/scrollbar.html | 189 +++ .../examples/start-position.html | 100 ++ .../examples/style.css | 13 + .../jquery.slimscroll.js | 464 ++++++ .../jquery.slimscroll.min.js | 16 + .../slimScroll.jquery.json | 30 + 22 files changed, 3573 insertions(+) create mode 100644 scroll/jQuery-slimScroll-1.3.0/README.md create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/allow-page-scroll.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/chaining.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/disable-fade-out.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/dynamic-content.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/height-width.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/index.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/libs/prettify/prettify.css create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/libs/prettify/prettify.js create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/mouse-wheel.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/multiple-elements.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/navigation.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/nested.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/programmatic-scrolling.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/rail.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/scroll-events.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/scrollbar.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/start-position.html create mode 100644 scroll/jQuery-slimScroll-1.3.0/examples/style.css create mode 100644 scroll/jQuery-slimScroll-1.3.0/jquery.slimscroll.js create mode 100644 scroll/jQuery-slimScroll-1.3.0/jquery.slimscroll.min.js create mode 100644 scroll/jQuery-slimScroll-1.3.0/slimScroll.jquery.json diff --git a/scroll/jQuery-slimScroll-1.3.0/README.md b/scroll/jQuery-slimScroll-1.3.0/README.md new file mode 100644 index 0000000..44d1b8f --- /dev/null +++ b/scroll/jQuery-slimScroll-1.3.0/README.md @@ -0,0 +1,9 @@ +# What is slimScroll? + +slimScroll is a small jQuery plugin that transforms any div into a scrollable area with a nice scrollbar - similar to the one Facebook and Google started using in their products recently. slimScroll doesn't occupy any visual space as it only appears on a user initiated mouse-over. User can drag the scrollbar or use mouse-wheel to change the scroll value. + +Demo and more: http://rocha.la/jQuery-slimScroll + +Copyright (c) 2011 Piotr Rochala (http://rocha.la) +Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. + diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/allow-page-scroll.html b/scroll/jQuery-slimScroll-1.3.0/examples/allow-page-scroll.html new file mode 100644 index 0000000..b594de3 --- /dev/null +++ b/scroll/jQuery-slimScroll-1.3.0/examples/allow-page-scroll.html @@ -0,0 +1,94 @@ + + + +jquery.slimscroll - allow page scroll + + + + + + + + +Fork me on GitHub +
        +
        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +
        + +
        +  $('#testDiv').slimScroll();
        +
        + +
        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Hello!Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +
        + +
        +  $('#testDiv2').slimScroll({
        +      allowPageScroll: true
        +  });
        +
        + +
        ...adding height...
        +
        + + + + + + + \ No newline at end of file diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/chaining.html b/scroll/jQuery-slimScroll-1.3.0/examples/chaining.html new file mode 100644 index 0000000..fead426 --- /dev/null +++ b/scroll/jQuery-slimScroll-1.3.0/examples/chaining.html @@ -0,0 +1,80 @@ + + + +jquery.slimscroll - chaining + + + + + + + + +Fork me on GitHub +
        +
        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +
        + +
        +$('#testDiv').slimscroll({
        +  height: '250px'
        +}).parent().css({
        +  background: '#237FAD',
        +  border: '2px dashed #184055'
        +});
        +
        + + +
        + + + + + + + \ No newline at end of file diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/disable-fade-out.html b/scroll/jQuery-slimScroll-1.3.0/examples/disable-fade-out.html new file mode 100644 index 0000000..7c8e6fa --- /dev/null +++ b/scroll/jQuery-slimScroll-1.3.0/examples/disable-fade-out.html @@ -0,0 +1,94 @@ + + + +jquery.slimscroll - disable fade out + + + + + + + + + +Fork me on GitHub +
        +
        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +
        + +
        +$('#testDiv').slimscroll();
        +
        + +
        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +
        + +
        +$('#testDiv2').slimscroll({
        +  disableFadeOut: true
        +});
        +
        + +
        + + + + + + + \ No newline at end of file diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/dynamic-content.html b/scroll/jQuery-slimScroll-1.3.0/examples/dynamic-content.html new file mode 100644 index 0000000..1ac5e56 --- /dev/null +++ b/scroll/jQuery-slimScroll-1.3.0/examples/dynamic-content.html @@ -0,0 +1,81 @@ + + + +jquery.slimscroll - dynamic content + + + + + + + + + +Fork me on GitHub +
        + + +
        +
        + +
        +  // update content every second
        +  setInterval(function(){
        +    var el = $('<div></div>').html('#' + $('#testDiv').children().length)
        +            .css({ padding: '3px', border: '1px solid #ccc', margin: '5px' });
        +    $('#testDiv').append(el);
        +
        +    // update slimscroll every time content changes
        +    $('#testDiv').slimscroll();
        +  }, 1000);
        +
        +  $('#testDiv').slimscroll({
        +    alwaysVisible: true,
        +    height: 150
        +  });
        +  
        + + + +
        + + + + + + + \ No newline at end of file diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/height-width.html b/scroll/jQuery-slimScroll-1.3.0/examples/height-width.html new file mode 100644 index 0000000..4b006b0 --- /dev/null +++ b/scroll/jQuery-slimScroll-1.3.0/examples/height-width.html @@ -0,0 +1,125 @@ + + + +jquery.slimscroll - height / width + + + + + + + + + +Fork me on GitHub +
        +
        +
        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +
        +
        + +
        +$('#testDiv').slimscroll({
        +  height: 'auto'
        +});
        +
        + +
        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +
        + +
        +$('#testDiv2').slimscroll({
        +  height: '100px',
        +  width: '300px'
        +});
        +
        + +
        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

        +

        Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

        +

        Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

        +

        Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

        +

        Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

        +
        + +
        +$('#testDiv3').slimscroll();
        +
        + +
        + + + + + + + \ No newline at end of file diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/index.html b/scroll/jQuery-slimScroll-1.3.0/examples/index.html new file mode 100644 index 0000000..890dd71 --- /dev/null +++ b/scroll/jQuery-slimScroll-1.3.0/examples/index.html @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/libs/prettify/prettify.css b/scroll/jQuery-slimScroll-1.3.0/examples/libs/prettify/prettify.css new file mode 100644 index 0000000..400fd74 --- /dev/null +++ b/scroll/jQuery-slimScroll-1.3.0/examples/libs/prettify/prettify.css @@ -0,0 +1,52 @@ +/* Pretty printing styles. Used with prettify.js. */ + +/* SPAN elements with the classes below are added by prettyprint. */ +.pln { color: #000 } /* plain text */ + +@media screen { + .str { color: #080 } /* string content */ + .kwd { color: #008 } /* a keyword */ + .com { color: #800 } /* a comment */ + .typ { color: #606 } /* a type name */ + .lit { color: #066 } /* a literal value */ + /* punctuation, lisp open bracket, lisp close bracket */ + .pun, .opn, .clo { color: #660 } + .tag { color: #008 } /* a markup tag name */ + .atn { color: #606 } /* a markup attribute name */ + .atv { color: #080 } /* a markup attribute value */ + .dec, .var { color: #606 } /* a declaration; a variable name */ + .fun { color: red } /* a function name */ +} + +/* Use higher contrast and text-weight for printable form. */ +@media print, projection { + .str { color: #060 } + .kwd { color: #006; font-weight: bold } + .com { color: #600; font-style: italic } + .typ { color: #404; font-weight: bold } + .lit { color: #044 } + .pun, .opn, .clo { color: #440 } + .tag { color: #006; font-weight: bold } + .atn { color: #404 } + .atv { color: #060 } +} + +/* Put a border around prettyprinted code snippets. */ +pre.prettyprint { padding: 2px; border: 1px solid #888 } + +/* Specify class=linenums on a pre to get line numbering */ +ol.linenums { margin-top: 0; margin-bottom: 0 } /* IE indents via margin-left */ +li.L0, +li.L1, +li.L2, +li.L3, +li.L5, +li.L6, +li.L7, +li.L8 { list-style-type: none } +/* Alternate shading for lines */ +li.L1, +li.L3, +li.L5, +li.L7, +li.L9 { background: #eee } diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/libs/prettify/prettify.js b/scroll/jQuery-slimScroll-1.3.0/examples/libs/prettify/prettify.js new file mode 100644 index 0000000..037c26d --- /dev/null +++ b/scroll/jQuery-slimScroll-1.3.0/examples/libs/prettify/prettify.js @@ -0,0 +1,1477 @@ +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview + * some functions for browser-side pretty printing of code contained in html. + * + *

        + * For a fairly comprehensive set of languages see the + * README + * file that came with this source. At a minimum, the lexer should work on a + * number of languages including C and friends, Java, Python, Bash, SQL, HTML, + * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk + * and a subset of Perl, but, because of commenting conventions, doesn't work on + * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. + *

        + * Usage:

          + *
        1. include this source file in an html page via + * {@code } + *
        2. define style rules. See the example page for examples. + *
        3. mark the {@code
          } and {@code } tags in your source with
          + *    {@code class=prettyprint.}
          + *    You can also use the (html deprecated) {@code } tag, but the pretty
          + *    printer needs to do more substantial DOM manipulations to support that, so
          + *    some css styles may not be preserved.
          + * </ol>
          + * That's it.  I wanted to keep the API as simple as possible, so there's no
          + * need to specify which language the code is in, but if you wish, you can add
          + * another class to the {@code <pre>} or {@code <code>} element to specify the
          + * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
          + * starts with "lang-" followed by a file extension, specifies the file type.
          + * See the "lang-*.js" files in this directory for code that implements
          + * per-language file handlers.
          + * <p>
          + * Change log:<br>
          + * cbeust, 2006/08/22
          + * <blockquote>
          + *   Java annotations (start with "@") are now captured as literals ("lit")
          + * </blockquote>
          + * @requires console
          + */
          +
          +// JSLint declarations
          +/*global console, document, navigator, setTimeout, window */
          +
          +/**
          + * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
          + * UI events.
          + * If set to {@code false}, {@code prettyPrint()} is synchronous.
          + */
          +window['PR_SHOULD_USE_CONTINUATION'] = true;
          +
          +(function () {
          +  // Keyword lists for various languages.
          +  // We use things that coerce to strings to make them compact when minified
          +  // and to defeat aggressive optimizers that fold large string constants.
          +  var FLOW_CONTROL_KEYWORDS = ["break,continue,do,else,for,if,return,while"];
          +  var C_KEYWORDS = [FLOW_CONTROL_KEYWORDS,"auto,case,char,const,default," + 
          +      "double,enum,extern,float,goto,int,long,register,short,signed,sizeof," +
          +      "static,struct,switch,typedef,union,unsigned,void,volatile"];
          +  var COMMON_KEYWORDS = [C_KEYWORDS,"catch,class,delete,false,import," +
          +      "new,operator,private,protected,public,this,throw,true,try,typeof"];
          +  var CPP_KEYWORDS = [COMMON_KEYWORDS,"alignof,align_union,asm,axiom,bool," +
          +      "concept,concept_map,const_cast,constexpr,decltype," +
          +      "dynamic_cast,explicit,export,friend,inline,late_check," +
          +      "mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast," +
          +      "template,typeid,typename,using,virtual,where"];
          +  var JAVA_KEYWORDS = [COMMON_KEYWORDS,
          +      "abstract,boolean,byte,extends,final,finally,implements,import," +
          +      "instanceof,null,native,package,strictfp,super,synchronized,throws," +
          +      "transient"];
          +  var CSHARP_KEYWORDS = [JAVA_KEYWORDS,
          +      "as,base,by,checked,decimal,delegate,descending,dynamic,event," +
          +      "fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock," +
          +      "object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed," +
          +      "stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];
          +  var COFFEE_KEYWORDS = "all,and,by,catch,class,else,extends,false,finally," +
          +      "for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then," +
          +      "true,try,unless,until,when,while,yes";
          +  var JSCRIPT_KEYWORDS = [COMMON_KEYWORDS,
          +      "debugger,eval,export,function,get,null,set,undefined,var,with," +
          +      "Infinity,NaN"];
          +  var PERL_KEYWORDS = "caller,delete,die,do,dump,elsif,eval,exit,foreach,for," +
          +      "goto,if,import,last,local,my,next,no,our,print,package,redo,require," +
          +      "sub,undef,unless,until,use,wantarray,while,BEGIN,END";
          +  var PYTHON_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "and,as,assert,class,def,del," +
          +      "elif,except,exec,finally,from,global,import,in,is,lambda," +
          +      "nonlocal,not,or,pass,print,raise,try,with,yield," +
          +      "False,True,None"];
          +  var RUBY_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "alias,and,begin,case,class," +
          +      "def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo," +
          +      "rescue,retry,self,super,then,true,undef,unless,until,when,yield," +
          +      "BEGIN,END"];
          +  var SH_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "case,done,elif,esac,eval,fi," +
          +      "function,in,local,set,then,until"];
          +  var ALL_KEYWORDS = [
          +      CPP_KEYWORDS, CSHARP_KEYWORDS, JSCRIPT_KEYWORDS, PERL_KEYWORDS +
          +      PYTHON_KEYWORDS, RUBY_KEYWORDS, SH_KEYWORDS];
          +  var C_TYPES = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;
          +
          +  // token style names.  correspond to css classes
          +  /**
          +   * token style for a string literal
          +   * @const
          +   */
          +  var PR_STRING = 'str';
          +  /**
          +   * token style for a keyword
          +   * @const
          +   */
          +  var PR_KEYWORD = 'kwd';
          +  /**
          +   * token style for a comment
          +   * @const
          +   */
          +  var PR_COMMENT = 'com';
          +  /**
          +   * token style for a type
          +   * @const
          +   */
          +  var PR_TYPE = 'typ';
          +  /**
          +   * token style for a literal value.  e.g. 1, null, true.
          +   * @const
          +   */
          +  var PR_LITERAL = 'lit';
          +  /**
          +   * token style for a punctuation string.
          +   * @const
          +   */
          +  var PR_PUNCTUATION = 'pun';
          +  /**
          +   * token style for a punctuation string.
          +   * @const
          +   */
          +  var PR_PLAIN = 'pln';
          +
          +  /**
          +   * token style for an sgml tag.
          +   * @const
          +   */
          +  var PR_TAG = 'tag';
          +  /**
          +   * token style for a markup declaration such as a DOCTYPE.
          +   * @const
          +   */
          +  var PR_DECLARATION = 'dec';
          +  /**
          +   * token style for embedded source.
          +   * @const
          +   */
          +  var PR_SOURCE = 'src';
          +  /**
          +   * token style for an sgml attribute name.
          +   * @const
          +   */
          +  var PR_ATTRIB_NAME = 'atn';
          +  /**
          +   * token style for an sgml attribute value.
          +   * @const
          +   */
          +  var PR_ATTRIB_VALUE = 'atv';
          +
          +  /**
          +   * A class that indicates a section of markup that is not code, e.g. to allow
          +   * embedding of line numbers within code listings.
          +   * @const
          +   */
          +  var PR_NOCODE = 'nocode';
          +
          +
          +
          +/**
          + * A set of tokens that can precede a regular expression literal in
          + * javascript
          + * http://web.archive.org/web/20070717142515/http://www.mozilla.org/js/language/js20/rationale/syntax.html
          + * has the full list, but I've removed ones that might be problematic when
          + * seen in languages that don't support regular expression literals.
          + *
          + * <p>Specifically, I've removed any keywords that can't precede a regexp
          + * literal in a syntactically legal javascript program, and I've removed the
          + * "in" keyword since it's not a keyword in many languages, and might be used
          + * as a count of inches.
          + *
          + * <p>The link a above does not accurately describe EcmaScript rules since
          + * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
          + * very well in practice.
          + *
          + * @private
          + * @const
          + */
          +var REGEXP_PRECEDER_PATTERN = '(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*';
          +
          +// CAVEAT: this does not properly handle the case where a regular
          +// expression immediately follows another since a regular expression may
          +// have flags for case-sensitivity and the like.  Having regexp tokens
          +// adjacent is not valid in any language I'm aware of, so I'm punting.
          +// TODO: maybe style special characters inside a regexp as punctuation.
          +
          +
          +  /**
          +   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
          +   * matches the union of the sets of strings matched by the input RegExp.
          +   * Since it matches globally, if the input strings have a start-of-input
          +   * anchor (/^.../), it is ignored for the purposes of unioning.
          +   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
          +   * @return {RegExp} a global regex.
          +   */
          +  function combinePrefixPatterns(regexs) {
          +    var capturedGroupIndex = 0;
          +  
          +    var needToFoldCase = false;
          +    var ignoreCase = false;
          +    for (var i = 0, n = regexs.length; i < n; ++i) {
          +      var regex = regexs[i];
          +      if (regex.ignoreCase) {
          +        ignoreCase = true;
          +      } else if (/[a-z]/i.test(regex.source.replace(
          +                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
          +        needToFoldCase = true;
          +        ignoreCase = false;
          +        break;
          +      }
          +    }
          +  
          +    var escapeCharToCodeUnit = {
          +      'b': 8,
          +      't': 9,
          +      'n': 0xa,
          +      'v': 0xb,
          +      'f': 0xc,
          +      'r': 0xd
          +    };
          +  
          +    function decodeEscape(charsetPart) {
          +      var cc0 = charsetPart.charCodeAt(0);
          +      if (cc0 !== 92 /* \\ */) {
          +        return cc0;
          +      }
          +      var c1 = charsetPart.charAt(1);
          +      cc0 = escapeCharToCodeUnit[c1];
          +      if (cc0) {
          +        return cc0;
          +      } else if ('0' <= c1 && c1 <= '7') {
          +        return parseInt(charsetPart.substring(1), 8);
          +      } else if (c1 === 'u' || c1 === 'x') {
          +        return parseInt(charsetPart.substring(2), 16);
          +      } else {
          +        return charsetPart.charCodeAt(1);
          +      }
          +    }
          +  
          +    function encodeEscape(charCode) {
          +      if (charCode < 0x20) {
          +        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
          +      }
          +      var ch = String.fromCharCode(charCode);
          +      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
          +        ch = '\\' + ch;
          +      }
          +      return ch;
          +    }
          +  
          +    function caseFoldCharset(charSet) {
          +      var charsetParts = charSet.substring(1, charSet.length - 1).match(
          +          new RegExp(
          +              '\\\\u[0-9A-Fa-f]{4}'
          +              + '|\\\\x[0-9A-Fa-f]{2}'
          +              + '|\\\\[0-3][0-7]{0,2}'
          +              + '|\\\\[0-7]{1,2}'
          +              + '|\\\\[\\s\\S]'
          +              + '|-'
          +              + '|[^-\\\\]',
          +              'g'));
          +      var groups = [];
          +      var ranges = [];
          +      var inverse = charsetParts[0] === '^';
          +      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
          +        var p = charsetParts[i];
          +        if (/\\[bdsw]/i.test(p)) {  // Don't muck with named groups.
          +          groups.push(p);
          +        } else {
          +          var start = decodeEscape(p);
          +          var end;
          +          if (i + 2 < n && '-' === charsetParts[i + 1]) {
          +            end = decodeEscape(charsetParts[i + 2]);
          +            i += 2;
          +          } else {
          +            end = start;
          +          }
          +          ranges.push([start, end]);
          +          // If the range might intersect letters, then expand it.
          +          // This case handling is too simplistic.
          +          // It does not deal with non-latin case folding.
          +          // It works for latin source code identifiers though.
          +          if (!(end < 65 || start > 122)) {
          +            if (!(end < 65 || start > 90)) {
          +              ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
          +            }
          +            if (!(end < 97 || start > 122)) {
          +              ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
          +            }
          +          }
          +        }
          +      }
          +  
          +      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
          +      // -> [[1, 12], [14, 14], [16, 17]]
          +      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
          +      var consolidatedRanges = [];
          +      var lastRange = [NaN, NaN];
          +      for (var i = 0; i < ranges.length; ++i) {
          +        var range = ranges[i];
          +        if (range[0] <= lastRange[1] + 1) {
          +          lastRange[1] = Math.max(lastRange[1], range[1]);
          +        } else {
          +          consolidatedRanges.push(lastRange = range);
          +        }
          +      }
          +  
          +      var out = ['['];
          +      if (inverse) { out.push('^'); }
          +      out.push.apply(out, groups);
          +      for (var i = 0; i < consolidatedRanges.length; ++i) {
          +        var range = consolidatedRanges[i];
          +        out.push(encodeEscape(range[0]));
          +        if (range[1] > range[0]) {
          +          if (range[1] + 1 > range[0]) { out.push('-'); }
          +          out.push(encodeEscape(range[1]));
          +        }
          +      }
          +      out.push(']');
          +      return out.join('');
          +    }
          +  
          +    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
          +      // Split into character sets, escape sequences, punctuation strings
          +      // like ('(', '(?:', ')', '^'), and runs of characters that do not
          +      // include any of the above.
          +      var parts = regex.source.match(
          +          new RegExp(
          +              '(?:'
          +              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
          +              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
          +              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
          +              + '|\\\\[0-9]+'  // a back-reference or octal escape
          +              + '|\\\\[^ux0-9]'  // other escape sequence
          +              + '|\\(\\?[:!=]'  // start of a non-capturing group
          +              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
          +              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
          +              + ')',
          +              'g'));
          +      var n = parts.length;
          +  
          +      // Maps captured group numbers to the number they will occupy in
          +      // the output or to -1 if that has not been determined, or to
          +      // undefined if they need not be capturing in the output.
          +      var capturedGroups = [];
          +  
          +      // Walk over and identify back references to build the capturedGroups
          +      // mapping.
          +      for (var i = 0, groupIndex = 0; i < n; ++i) {
          +        var p = parts[i];
          +        if (p === '(') {
          +          // groups are 1-indexed, so max group index is count of '('
          +          ++groupIndex;
          +        } else if ('\\' === p.charAt(0)) {
          +          var decimalValue = +p.substring(1);
          +          if (decimalValue && decimalValue <= groupIndex) {
          +            capturedGroups[decimalValue] = -1;
          +          }
          +        }
          +      }
          +  
          +      // Renumber groups and reduce capturing groups to non-capturing groups
          +      // where possible.
          +      for (var i = 1; i < capturedGroups.length; ++i) {
          +        if (-1 === capturedGroups[i]) {
          +          capturedGroups[i] = ++capturedGroupIndex;
          +        }
          +      }
          +      for (var i = 0, groupIndex = 0; i < n; ++i) {
          +        var p = parts[i];
          +        if (p === '(') {
          +          ++groupIndex;
          +          if (capturedGroups[groupIndex] === undefined) {
          +            parts[i] = '(?:';
          +          }
          +        } else if ('\\' === p.charAt(0)) {
          +          var decimalValue = +p.substring(1);
          +          if (decimalValue && decimalValue <= groupIndex) {
          +            parts[i] = '\\' + capturedGroups[groupIndex];
          +          }
          +        }
          +      }
          +  
          +      // Remove any prefix anchors so that the output will match anywhere.
          +      // ^^ really does mean an anchored match though.
          +      for (var i = 0, groupIndex = 0; i < n; ++i) {
          +        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
          +      }
          +  
          +      // Expand letters to groups to handle mixing of case-sensitive and
          +      // case-insensitive patterns if necessary.
          +      if (regex.ignoreCase && needToFoldCase) {
          +        for (var i = 0; i < n; ++i) {
          +          var p = parts[i];
          +          var ch0 = p.charAt(0);
          +          if (p.length >= 2 && ch0 === '[') {
          +            parts[i] = caseFoldCharset(p);
          +          } else if (ch0 !== '\\') {
          +            // TODO: handle letters in numeric escapes.
          +            parts[i] = p.replace(
          +                /[a-zA-Z]/g,
          +                function (ch) {
          +                  var cc = ch.charCodeAt(0);
          +                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
          +                });
          +          }
          +        }
          +      }
          +  
          +      return parts.join('');
          +    }
          +  
          +    var rewritten = [];
          +    for (var i = 0, n = regexs.length; i < n; ++i) {
          +      var regex = regexs[i];
          +      if (regex.global || regex.multiline) { throw new Error('' + regex); }
          +      rewritten.push(
          +          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
          +    }
          +  
          +    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
          +  }
          +
          +
          +  /**
          +   * Split markup into a string of source code and an array mapping ranges in
          +   * that string to the text nodes in which they appear.
          +   *
          +   * <p>
          +   * The HTML DOM structure:</p>
          +   * <pre>
          +   * (Element   "p"
          +   *   (Element "b"
          +   *     (Text  "print "))       ; #1
          +   *   (Text    "'Hello '")      ; #2
          +   *   (Element "br")            ; #3
          +   *   (Text    "  + 'World';")) ; #4
          +   * </pre>
          +   * <p>
          +   * corresponds to the HTML
          +   * {@code <p><b>print </b>'Hello '<br>  + 'World';</p>}.</p>
          +   *
          +   * <p>
          +   * It will produce the output:</p>
          +   * <pre>
          +   * {
          +   *   sourceCode: "print 'Hello '\n  + 'World';",
          +   *   //                 1         2
          +   *   //       012345678901234 5678901234567
          +   *   spans: [0, #1, 6, #2, 14, #3, 15, #4]
          +   * }
          +   * </pre>
          +   * <p>
          +   * where #1 is a reference to the {@code "print "} text node above, and so
          +   * on for the other text nodes.
          +   * </p>
          +   *
          +   * <p>
          +   * The {@code} spans array is an array of pairs.  Even elements are the start
          +   * indices of substrings, and odd elements are the text nodes (or BR elements)
          +   * that contain the text for those substrings.
          +   * Substrings continue until the next index or the end of the source.
          +   * </p>
          +   *
          +   * @param {Node} node an HTML DOM subtree containing source-code.
          +   * @return {Object} source code and the text nodes in which they occur.
          +   */
          +  function extractSourceSpans(node) {
          +    var nocode = /(?:^|\s)nocode(?:\s|$)/;
          +  
          +    var chunks = [];
          +    var length = 0;
          +    var spans = [];
          +    var k = 0;
          +  
          +    var whitespace;
          +    if (node.currentStyle) {
          +      whitespace = node.currentStyle.whiteSpace;
          +    } else if (window.getComputedStyle) {
          +      whitespace = document.defaultView.getComputedStyle(node, null)
          +          .getPropertyValue('white-space');
          +    }
          +    var isPreformatted = whitespace && 'pre' === whitespace.substring(0, 3);
          +  
          +    function walk(node) {
          +      switch (node.nodeType) {
          +        case 1:  // Element
          +          if (nocode.test(node.className)) { return; }
          +          for (var child = node.firstChild; child; child = child.nextSibling) {
          +            walk(child);
          +          }
          +          var nodeName = node.nodeName;
          +          if ('BR' === nodeName || 'LI' === nodeName) {
          +            chunks[k] = '\n';
          +            spans[k << 1] = length++;
          +            spans[(k++ << 1) | 1] = node;
          +          }
          +          break;
          +        case 3: case 4:  // Text
          +          var text = node.nodeValue;
          +          if (text.length) {
          +            if (!isPreformatted) {
          +              text = text.replace(/[ \t\r\n]+/g, ' ');
          +            } else {
          +              text = text.replace(/\r\n?/g, '\n');  // Normalize newlines.
          +            }
          +            // TODO: handle tabs here?
          +            chunks[k] = text;
          +            spans[k << 1] = length;
          +            length += text.length;
          +            spans[(k++ << 1) | 1] = node;
          +          }
          +          break;
          +      }
          +    }
          +  
          +    walk(node);
          +  
          +    return {
          +      sourceCode: chunks.join('').replace(/\n$/, ''),
          +      spans: spans
          +    };
          +  }
          +
          +
          +  /**
          +   * Apply the given language handler to sourceCode and add the resulting
          +   * decorations to out.
          +   * @param {number} basePos the index of sourceCode within the chunk of source
          +   *    whose decorations are already present on out.
          +   */
          +  function appendDecorations(basePos, sourceCode, langHandler, out) {
          +    if (!sourceCode) { return; }
          +    var job = {
          +      sourceCode: sourceCode,
          +      basePos: basePos
          +    };
          +    langHandler(job);
          +    out.push.apply(out, job.decorations);
          +  }
          +
          +  var notWs = /\S/;
          +
          +  /**
          +   * Given an element, if it contains only one child element and any text nodes
          +   * it contains contain only space characters, return the sole child element.
          +   * Otherwise returns undefined.
          +   * <p>
          +   * This is meant to return the CODE element in {@code <pre><code ...>} when
          +   * there is a single child element that contains all the non-space textual
          +   * content, but not to return anything where there are multiple child elements
          +   * as in {@code <pre><code>...</code><code>...</code></pre>} or when there
          +   * is textual content.
          +   */
          +  function childContentWrapper(element) {
          +    var wrapper = undefined;
          +    for (var c = element.firstChild; c; c = c.nextSibling) {
          +      var type = c.nodeType;
          +      wrapper = (type === 1)  // Element Node
          +          ? (wrapper ? element : c)
          +          : (type === 3)  // Text Node
          +          ? (notWs.test(c.nodeValue) ? element : wrapper)
          +          : wrapper;
          +    }
          +    return wrapper === element ? undefined : wrapper;
          +  }
          +
          +  /** Given triples of [style, pattern, context] returns a lexing function,
          +    * The lexing function interprets the patterns to find token boundaries and
          +    * returns a decoration list of the form
          +    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
          +    * where index_n is an index into the sourceCode, and style_n is a style
          +    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
          +    * all characters in sourceCode[index_n-1:index_n].
          +    *
          +    * The stylePatterns is a list whose elements have the form
          +    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
          +    *
          +    * Style is a style constant like PR_PLAIN, or can be a string of the
          +    * form 'lang-FOO', where FOO is a language extension describing the
          +    * language of the portion of the token in $1 after pattern executes.
          +    * E.g., if style is 'lang-lisp', and group 1 contains the text
          +    * '(hello (world))', then that portion of the token will be passed to the
          +    * registered lisp handler for formatting.
          +    * The text before and after group 1 will be restyled using this decorator
          +    * so decorators should take care that this doesn't result in infinite
          +    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
          +    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
          +    * '<script>foo()<\/script>', which would cause the current decorator to
          +    * be called with '<script>' which would not match the same rule since
          +    * group 1 must not be empty, so it would be instead styled as PR_TAG by
          +    * the generic tag rule.  The handler registered for the 'js' extension would
          +    * then be called with 'foo()', and finally, the current decorator would
          +    * be called with '<\/script>' which would not match the original rule and
          +    * so the generic tag rule would identify it as a tag.
          +    *
          +    * Pattern must only match prefixes, and if it matches a prefix, then that
          +    * match is considered a token with the same style.
          +    *
          +    * Context is applied to the last non-whitespace, non-comment token
          +    * recognized.
          +    *
          +    * Shortcut is an optional string of characters, any of which, if the first
          +    * character, gurantee that this pattern and only this pattern matches.
          +    *
          +    * @param {Array} shortcutStylePatterns patterns that always start with
          +    *   a known character.  Must have a shortcut string.
          +    * @param {Array} fallthroughStylePatterns patterns that will be tried in
          +    *   order if the shortcut ones fail.  May have shortcuts.
          +    *
          +    * @return {function (Object)} a
          +    *   function that takes source code and returns a list of decorations.
          +    */
          +  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
          +    var shortcuts = {};
          +    var tokenizer;
          +    (function () {
          +      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
          +      var allRegexs = [];
          +      var regexKeys = {};
          +      for (var i = 0, n = allPatterns.length; i < n; ++i) {
          +        var patternParts = allPatterns[i];
          +        var shortcutChars = patternParts[3];
          +        if (shortcutChars) {
          +          for (var c = shortcutChars.length; --c >= 0;) {
          +            shortcuts[shortcutChars.charAt(c)] = patternParts;
          +          }
          +        }
          +        var regex = patternParts[1];
          +        var k = '' + regex;
          +        if (!regexKeys.hasOwnProperty(k)) {
          +          allRegexs.push(regex);
          +          regexKeys[k] = null;
          +        }
          +      }
          +      allRegexs.push(/[\0-\uffff]/);
          +      tokenizer = combinePrefixPatterns(allRegexs);
          +    })();
          +
          +    var nPatterns = fallthroughStylePatterns.length;
          +
          +    /**
          +     * Lexes job.sourceCode and produces an output array job.decorations of
          +     * style classes preceded by the position at which they start in
          +     * job.sourceCode in order.
          +     *
          +     * @param {Object} job an object like <pre>{
          +     *    sourceCode: {string} sourceText plain text,
          +     *    basePos: {int} position of job.sourceCode in the larger chunk of
          +     *        sourceCode.
          +     * }</pre>
          +     */
          +    var decorate = function (job) {
          +      var sourceCode = job.sourceCode, basePos = job.basePos;
          +      /** Even entries are positions in source in ascending order.  Odd enties
          +        * are style markers (e.g., PR_COMMENT) that run from that position until
          +        * the end.
          +        * @type {Array.<number|string>}
          +        */
          +      var decorations = [basePos, PR_PLAIN];
          +      var pos = 0;  // index into sourceCode
          +      var tokens = sourceCode.match(tokenizer) || [];
          +      var styleCache = {};
          +
          +      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
          +        var token = tokens[ti];
          +        var style = styleCache[token];
          +        var match = void 0;
          +
          +        var isEmbedded;
          +        if (typeof style === 'string') {
          +          isEmbedded = false;
          +        } else {
          +          var patternParts = shortcuts[token.charAt(0)];
          +          if (patternParts) {
          +            match = token.match(patternParts[1]);
          +            style = patternParts[0];
          +          } else {
          +            for (var i = 0; i < nPatterns; ++i) {
          +              patternParts = fallthroughStylePatterns[i];
          +              match = token.match(patternParts[1]);
          +              if (match) {
          +                style = patternParts[0];
          +                break;
          +              }
          +            }
          +
          +            if (!match) {  // make sure that we make progress
          +              style = PR_PLAIN;
          +            }
          +          }
          +
          +          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
          +          if (isEmbedded && !(match && typeof match[1] === 'string')) {
          +            isEmbedded = false;
          +            style = PR_SOURCE;
          +          }
          +
          +          if (!isEmbedded) { styleCache[token] = style; }
          +        }
          +
          +        var tokenStart = pos;
          +        pos += token.length;
          +
          +        if (!isEmbedded) {
          +          decorations.push(basePos + tokenStart, style);
          +        } else {  // Treat group 1 as an embedded block of source code.
          +          var embeddedSource = match[1];
          +          var embeddedSourceStart = token.indexOf(embeddedSource);
          +          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
          +          if (match[2]) {
          +            // If embeddedSource can be blank, then it would match at the
          +            // beginning which would cause us to infinitely recurse on the
          +            // entire token, so we catch the right context in match[2].
          +            embeddedSourceEnd = token.length - match[2].length;
          +            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
          +          }
          +          var lang = style.substring(5);
          +          // Decorate the left of the embedded source
          +          appendDecorations(
          +              basePos + tokenStart,
          +              token.substring(0, embeddedSourceStart),
          +              decorate, decorations);
          +          // Decorate the embedded source
          +          appendDecorations(
          +              basePos + tokenStart + embeddedSourceStart,
          +              embeddedSource,
          +              langHandlerForExtension(lang, embeddedSource),
          +              decorations);
          +          // Decorate the right of the embedded section
          +          appendDecorations(
          +              basePos + tokenStart + embeddedSourceEnd,
          +              token.substring(embeddedSourceEnd),
          +              decorate, decorations);
          +        }
          +      }
          +      job.decorations = decorations;
          +    };
          +    return decorate;
          +  }
          +
          +  /** returns a function that produces a list of decorations from source text.
          +    *
          +    * This code treats ", ', and ` as string delimiters, and \ as a string
          +    * escape.  It does not recognize perl's qq() style strings.
          +    * It has no special handling for double delimiter escapes as in basic, or
          +    * the tripled delimiters used in python, but should work on those regardless
          +    * although in those cases a single string literal may be broken up into
          +    * multiple adjacent string literals.
          +    *
          +    * It recognizes C, C++, and shell style comments.
          +    *
          +    * @param {Object} options a set of optional parameters.
          +    * @return {function (Object)} a function that examines the source code
          +    *     in the input job and builds the decoration list.
          +    */
          +  function sourceDecorator(options) {
          +    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
          +    if (options['tripleQuotedStrings']) {
          +      // '''multi-line-string''', 'single-line-string', and double-quoted
          +      shortcutStylePatterns.push(
          +          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
          +           null, '\'"']);
          +    } else if (options['multiLineStrings']) {
          +      // 'multi-line-string', "multi-line-string"
          +      shortcutStylePatterns.push(
          +          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
          +           null, '\'"`']);
          +    } else {
          +      // 'single-line-string', "single-line-string"
          +      shortcutStylePatterns.push(
          +          [PR_STRING,
          +           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
          +           null, '"\'']);
          +    }
          +    if (options['verbatimStrings']) {
          +      // verbatim-string-literal production from the C# grammar.  See issue 93.
          +      fallthroughStylePatterns.push(
          +          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
          +    }
          +    var hc = options['hashComments'];
          +    if (hc) {
          +      if (options['cStyleComments']) {
          +        if (hc > 1) {  // multiline hash comments
          +          shortcutStylePatterns.push(
          +              [PR_COMMENT, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']);
          +        } else {
          +          // Stop C preprocessor declarations at an unclosed open comment
          +          shortcutStylePatterns.push(
          +              [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
          +               null, '#']);
          +        }
          +        fallthroughStylePatterns.push(
          +            [PR_STRING,
          +             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
          +             null]);
          +      } else {
          +        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
          +      }
          +    }
          +    if (options['cStyleComments']) {
          +      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
          +      fallthroughStylePatterns.push(
          +          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
          +    }
          +    if (options['regexLiterals']) {
          +      /**
          +       * @const
          +       */
          +      var REGEX_LITERAL = (
          +          // A regular expression literal starts with a slash that is
          +          // not followed by * or / so that it is not confused with
          +          // comments.
          +          '/(?=[^/*])'
          +          // and then contains any number of raw characters,
          +          + '(?:[^/\\x5B\\x5C]'
          +          // escape sequences (\x5C),
          +          +    '|\\x5C[\\s\\S]'
          +          // or non-nesting character sets (\x5B\x5D);
          +          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
          +          // finally closed by a /.
          +          + '/');
          +      fallthroughStylePatterns.push(
          +          ['lang-regex',
          +           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
          +           ]);
          +    }
          +
          +    var types = options['types'];
          +    if (types) {
          +      fallthroughStylePatterns.push([PR_TYPE, types]);
          +    }
          +
          +    var keywords = ("" + options['keywords']).replace(/^ | $/g, '');
          +    if (keywords.length) {
          +      fallthroughStylePatterns.push(
          +          [PR_KEYWORD,
          +           new RegExp('^(?:' + keywords.replace(/[\s,]+/g, '|') + ')\\b'),
          +           null]);
          +    }
          +
          +    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
          +    fallthroughStylePatterns.push(
          +        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
          +        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
          +        [PR_TYPE,        /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null],
          +        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
          +        [PR_LITERAL,
          +         new RegExp(
          +             '^(?:'
          +             // A hex number
          +             + '0x[a-f0-9]+'
          +             // or an octal or decimal number,
          +             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
          +             // possibly in scientific notation
          +             + '(?:e[+\\-]?\\d+)?'
          +             + ')'
          +             // with an optional modifier like UL for unsigned long
          +             + '[a-z]*', 'i'),
          +         null, '0123456789'],
          +        // Don't treat escaped quotes in bash as starting strings.  See issue 144.
          +        [PR_PLAIN,       /^\\[\s\S]?/, null],
          +        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#\\]*/, null]);
          +
          +    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
          +  }
          +
          +  var decorateSource = sourceDecorator({
          +        'keywords': ALL_KEYWORDS,
          +        'hashComments': true,
          +        'cStyleComments': true,
          +        'multiLineStrings': true,
          +        'regexLiterals': true
          +      });
          +
          +  /**
          +   * Given a DOM subtree, wraps it in a list, and puts each line into its own
          +   * list item.
          +   *
          +   * @param {Node} node modified in place.  Its content is pulled into an
          +   *     HTMLOListElement, and each line is moved into a separate list item.
          +   *     This requires cloning elements, so the input might not have unique
          +   *     IDs after numbering.
          +   */
          +  function numberLines(node, opt_startLineNum) {
          +    var nocode = /(?:^|\s)nocode(?:\s|$)/;
          +    var lineBreak = /\r\n?|\n/;
          +  
          +    var document = node.ownerDocument;
          +  
          +    var whitespace;
          +    if (node.currentStyle) {
          +      whitespace = node.currentStyle.whiteSpace;
          +    } else if (window.getComputedStyle) {
          +      whitespace = document.defaultView.getComputedStyle(node, null)
          +          .getPropertyValue('white-space');
          +    }
          +    // If it's preformatted, then we need to split lines on line breaks
          +    // in addition to <BR>s.
          +    var isPreformatted = whitespace && 'pre' === whitespace.substring(0, 3);
          +  
          +    var li = document.createElement('LI');
          +    while (node.firstChild) {
          +      li.appendChild(node.firstChild);
          +    }
          +    // An array of lines.  We split below, so this is initialized to one
          +    // un-split line.
          +    var listItems = [li];
          +  
          +    function walk(node) {
          +      switch (node.nodeType) {
          +        case 1:  // Element
          +          if (nocode.test(node.className)) { break; }
          +          if ('BR' === node.nodeName) {
          +            breakAfter(node);
          +            // Discard the <BR> since it is now flush against a </LI>.
          +            if (node.parentNode) {
          +              node.parentNode.removeChild(node);
          +            }
          +          } else {
          +            for (var child = node.firstChild; child; child = child.nextSibling) {
          +              walk(child);
          +            }
          +          }
          +          break;
          +        case 3: case 4:  // Text
          +          if (isPreformatted) {
          +            var text = node.nodeValue;
          +            var match = text.match(lineBreak);
          +            if (match) {
          +              var firstLine = text.substring(0, match.index);
          +              node.nodeValue = firstLine;
          +              var tail = text.substring(match.index + match[0].length);
          +              if (tail) {
          +                var parent = node.parentNode;
          +                parent.insertBefore(
          +                    document.createTextNode(tail), node.nextSibling);
          +              }
          +              breakAfter(node);
          +              if (!firstLine) {
          +                // Don't leave blank text nodes in the DOM.
          +                node.parentNode.removeChild(node);
          +              }
          +            }
          +          }
          +          break;
          +      }
          +    }
          +  
          +    // Split a line after the given node.
          +    function breakAfter(lineEndNode) {
          +      // If there's nothing to the right, then we can skip ending the line
          +      // here, and move root-wards since splitting just before an end-tag
          +      // would require us to create a bunch of empty copies.
          +      while (!lineEndNode.nextSibling) {
          +        lineEndNode = lineEndNode.parentNode;
          +        if (!lineEndNode) { return; }
          +      }
          +  
          +      function breakLeftOf(limit, copy) {
          +        // Clone shallowly if this node needs to be on both sides of the break.
          +        var rightSide = copy ? limit.cloneNode(false) : limit;
          +        var parent = limit.parentNode;
          +        if (parent) {
          +          // We clone the parent chain.
          +          // This helps us resurrect important styling elements that cross lines.
          +          // E.g. in <i>Foo<br>Bar</i>
          +          // should be rewritten to <li><i>Foo</i></li><li><i>Bar</i></li>.
          +          var parentClone = breakLeftOf(parent, 1);
          +          // Move the clone and everything to the right of the original
          +          // onto the cloned parent.
          +          var next = limit.nextSibling;
          +          parentClone.appendChild(rightSide);
          +          for (var sibling = next; sibling; sibling = next) {
          +            next = sibling.nextSibling;
          +            parentClone.appendChild(sibling);
          +          }
          +        }
          +        return rightSide;
          +      }
          +  
          +      var copiedListItem = breakLeftOf(lineEndNode.nextSibling, 0);
          +  
          +      // Walk the parent chain until we reach an unattached LI.
          +      for (var parent;
          +           // Check nodeType since IE invents document fragments.
          +           (parent = copiedListItem.parentNode) && parent.nodeType === 1;) {
          +        copiedListItem = parent;
          +      }
          +      // Put it on the list of lines for later processing.
          +      listItems.push(copiedListItem);
          +    }
          +  
          +    // Split lines while there are lines left to split.
          +    for (var i = 0;  // Number of lines that have been split so far.
          +         i < listItems.length;  // length updated by breakAfter calls.
          +         ++i) {
          +      walk(listItems[i]);
          +    }
          +  
          +    // Make sure numeric indices show correctly.
          +    if (opt_startLineNum === (opt_startLineNum|0)) {
          +      listItems[0].setAttribute('value', opt_startLineNum);
          +    }
          +  
          +    var ol = document.createElement('OL');
          +    ol.className = 'linenums';
          +    var offset = Math.max(0, ((opt_startLineNum - 1 /* zero index */)) | 0) || 0;
          +    for (var i = 0, n = listItems.length; i < n; ++i) {
          +      li = listItems[i];
          +      // Stick a class on the LIs so that stylesheets can
          +      // color odd/even rows, or any other row pattern that
          +      // is co-prime with 10.
          +      li.className = 'L' + ((i + offset) % 10);
          +      if (!li.firstChild) {
          +        li.appendChild(document.createTextNode('\xA0'));
          +      }
          +      ol.appendChild(li);
          +    }
          +  
          +    node.appendChild(ol);
          +  }
          +
          +  /**
          +   * Breaks {@code job.sourceCode} around style boundaries in
          +   * {@code job.decorations} and modifies {@code job.sourceNode} in place.
          +   * @param {Object} job like <pre>{
          +   *    sourceCode: {string} source as plain text,
          +   *    spans: {Array.<number|Node>} alternating span start indices into source
          +   *       and the text node or element (e.g. {@code <BR>}) corresponding to that
          +   *       span.
          +   *    decorations: {Array.<number|string} an array of style classes preceded
          +   *       by the position at which they start in job.sourceCode in order
          +   * }</pre>
          +   * @private
          +   */
          +  function recombineTagsAndDecorations(job) {
          +    var isIE = /\bMSIE\b/.test(navigator.userAgent);
          +    var newlineRe = /\n/g;
          +  
          +    var source = job.sourceCode;
          +    var sourceLength = source.length;
          +    // Index into source after the last code-unit recombined.
          +    var sourceIndex = 0;
          +  
          +    var spans = job.spans;
          +    var nSpans = spans.length;
          +    // Index into spans after the last span which ends at or before sourceIndex.
          +    var spanIndex = 0;
          +  
          +    var decorations = job.decorations;
          +    var nDecorations = decorations.length;
          +    // Index into decorations after the last decoration which ends at or before
          +    // sourceIndex.
          +    var decorationIndex = 0;
          +  
          +    // Remove all zero-length decorations.
          +    decorations[nDecorations] = sourceLength;
          +    var decPos, i;
          +    for (i = decPos = 0; i < nDecorations;) {
          +      if (decorations[i] !== decorations[i + 2]) {
          +        decorations[decPos++] = decorations[i++];
          +        decorations[decPos++] = decorations[i++];
          +      } else {
          +        i += 2;
          +      }
          +    }
          +    nDecorations = decPos;
          +  
          +    // Simplify decorations.
          +    for (i = decPos = 0; i < nDecorations;) {
          +      var startPos = decorations[i];
          +      // Conflate all adjacent decorations that use the same style.
          +      var startDec = decorations[i + 1];
          +      var end = i + 2;
          +      while (end + 2 <= nDecorations && decorations[end + 1] === startDec) {
          +        end += 2;
          +      }
          +      decorations[decPos++] = startPos;
          +      decorations[decPos++] = startDec;
          +      i = end;
          +    }
          +  
          +    nDecorations = decorations.length = decPos;
          +  
          +    var decoration = null;
          +    while (spanIndex < nSpans) {
          +      var spanStart = spans[spanIndex];
          +      var spanEnd = spans[spanIndex + 2] || sourceLength;
          +  
          +      var decStart = decorations[decorationIndex];
          +      var decEnd = decorations[decorationIndex + 2] || sourceLength;
          +  
          +      var end = Math.min(spanEnd, decEnd);
          +  
          +      var textNode = spans[spanIndex + 1];
          +      var styledText;
          +      if (textNode.nodeType !== 1  // Don't muck with <BR>s or <LI>s
          +          // Don't introduce spans around empty text nodes.
          +          && (styledText = source.substring(sourceIndex, end))) {
          +        // This may seem bizarre, and it is.  Emitting LF on IE causes the
          +        // code to display with spaces instead of line breaks.
          +        // Emitting Windows standard issue linebreaks (CRLF) causes a blank
          +        // space to appear at the beginning of every line but the first.
          +        // Emitting an old Mac OS 9 line separator makes everything spiffy.
          +        if (isIE) { styledText = styledText.replace(newlineRe, '\r'); }
          +        textNode.nodeValue = styledText;
          +        var document = textNode.ownerDocument;
          +        var span = document.createElement('SPAN');
          +        span.className = decorations[decorationIndex + 1];
          +        var parentNode = textNode.parentNode;
          +        parentNode.replaceChild(span, textNode);
          +        span.appendChild(textNode);
          +        if (sourceIndex < spanEnd) {  // Split off a text node.
          +          spans[spanIndex + 1] = textNode
          +              // TODO: Possibly optimize by using '' if there's no flicker.
          +              = document.createTextNode(source.substring(end, spanEnd));
          +          parentNode.insertBefore(textNode, span.nextSibling);
          +        }
          +      }
          +  
          +      sourceIndex = end;
          +  
          +      if (sourceIndex >= spanEnd) {
          +        spanIndex += 2;
          +      }
          +      if (sourceIndex >= decEnd) {
          +        decorationIndex += 2;
          +      }
          +    }
          +  }
          +
          +
          +  /** Maps language-specific file extensions to handlers. */
          +  var langHandlerRegistry = {};
          +  /** Register a language handler for the given file extensions.
          +    * @param {function (Object)} handler a function from source code to a list
          +    *      of decorations.  Takes a single argument job which describes the
          +    *      state of the computation.   The single parameter has the form
          +    *      {@code {
          +    *        sourceCode: {string} as plain text.
          +    *        decorations: {Array.<number|string>} an array of style classes
          +    *                     preceded by the position at which they start in
          +    *                     job.sourceCode in order.
          +    *                     The language handler should assigned this field.
          +    *        basePos: {int} the position of source in the larger source chunk.
          +    *                 All positions in the output decorations array are relative
          +    *                 to the larger source chunk.
          +    *      } }
          +    * @param {Array.<string>} fileExtensions
          +    */
          +  function registerLangHandler(handler, fileExtensions) {
          +    for (var i = fileExtensions.length; --i >= 0;) {
          +      var ext = fileExtensions[i];
          +      if (!langHandlerRegistry.hasOwnProperty(ext)) {
          +        langHandlerRegistry[ext] = handler;
          +      } else if (window['console']) {
          +        console['warn']('cannot override language handler %s', ext);
          +      }
          +    }
          +  }
          +  function langHandlerForExtension(extension, source) {
          +    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
          +      // Treat it as markup if the first non whitespace character is a < and
          +      // the last non-whitespace character is a >.
          +      extension = /^\s*</.test(source)
          +          ? 'default-markup'
          +          : 'default-code';
          +    }
          +    return langHandlerRegistry[extension];
          +  }
          +  registerLangHandler(decorateSource, ['default-code']);
          +  registerLangHandler(
          +      createSimpleLexer(
          +          [],
          +          [
          +           [PR_PLAIN,       /^[^<?]+/],
          +           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
          +           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
          +           // Unescaped content in an unknown language
          +           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
          +           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
          +           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
          +           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
          +           // Unescaped content in javascript.  (Or possibly vbscript).
          +           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
          +           // Contains unescaped stylesheet content
          +           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
          +           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
          +          ]),
          +      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
          +  registerLangHandler(
          +      createSimpleLexer(
          +          [
          +           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
          +           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
          +           ],
          +          [
          +           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
          +           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
          +           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
          +           [PR_PUNCTUATION,  /^[=<>\/]+/],
          +           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
          +           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
          +           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
          +           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
          +           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
          +           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
          +           ]),
          +      ['in.tag']);
          +  registerLangHandler(
          +      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': CPP_KEYWORDS,
          +          'hashComments': true,
          +          'cStyleComments': true,
          +          'types': C_TYPES
          +        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': 'null,true,false'
          +        }), ['json']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': CSHARP_KEYWORDS,
          +          'hashComments': true,
          +          'cStyleComments': true,
          +          'verbatimStrings': true,
          +          'types': C_TYPES
          +        }), ['cs']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': JAVA_KEYWORDS,
          +          'cStyleComments': true
          +        }), ['java']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': SH_KEYWORDS,
          +          'hashComments': true,
          +          'multiLineStrings': true
          +        }), ['bsh', 'csh', 'sh']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': PYTHON_KEYWORDS,
          +          'hashComments': true,
          +          'multiLineStrings': true,
          +          'tripleQuotedStrings': true
          +        }), ['cv', 'py']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': PERL_KEYWORDS,
          +          'hashComments': true,
          +          'multiLineStrings': true,
          +          'regexLiterals': true
          +        }), ['perl', 'pl', 'pm']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': RUBY_KEYWORDS,
          +          'hashComments': true,
          +          'multiLineStrings': true,
          +          'regexLiterals': true
          +        }), ['rb']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': JSCRIPT_KEYWORDS,
          +          'cStyleComments': true,
          +          'regexLiterals': true
          +        }), ['js']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': COFFEE_KEYWORDS,
          +          'hashComments': 3,  // ### style block comments
          +          'cStyleComments': true,
          +          'multilineStrings': true,
          +          'tripleQuotedStrings': true,
          +          'regexLiterals': true
          +        }), ['coffee']);
          +  registerLangHandler(createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
          +
          +  function applyDecorator(job) {
          +    var opt_langExtension = job.langExtension;
          +
          +    try {
          +      // Extract tags, and convert the source code to plain text.
          +      var sourceAndSpans = extractSourceSpans(job.sourceNode);
          +      /** Plain text. @type {string} */
          +      var source = sourceAndSpans.sourceCode;
          +      job.sourceCode = source;
          +      job.spans = sourceAndSpans.spans;
          +      job.basePos = 0;
          +
          +      // Apply the appropriate language handler
          +      langHandlerForExtension(opt_langExtension, source)(job);
          +
          +      // Integrate the decorations and tags back into the source code,
          +      // modifying the sourceNode in place.
          +      recombineTagsAndDecorations(job);
          +    } catch (e) {
          +      if ('console' in window) {
          +        console['log'](e && e['stack'] ? e['stack'] : e);
          +      }
          +    }
          +  }
          +
          +  /**
          +   * @param sourceCodeHtml {string} The HTML to pretty print.
          +   * @param opt_langExtension {string} The language name to use.
          +   *     Typically, a filename extension like 'cpp' or 'java'.
          +   * @param opt_numberLines {number|boolean} True to number lines,
          +   *     or the 1-indexed number of the first line in sourceCodeHtml.
          +   */
          +  function prettyPrintOne(sourceCodeHtml, opt_langExtension, opt_numberLines) {
          +    var container = document.createElement('PRE');
          +    // This could cause images to load and onload listeners to fire.
          +    // E.g. <img onerror="alert(1337)" src="nosuchimage.png">.
          +    // We assume that the inner HTML is from a trusted source.
          +    container.innerHTML = sourceCodeHtml;
          +    if (opt_numberLines) {
          +      numberLines(container, opt_numberLines);
          +    }
          +
          +    var job = {
          +      langExtension: opt_langExtension,
          +      numberLines: opt_numberLines,
          +      sourceNode: container
          +    };
          +    applyDecorator(job);
          +    return container.innerHTML;
          +  }
          +
          +  function prettyPrint(opt_whenDone) {
          +    function byTagName(tn) { return document.getElementsByTagName(tn); }
          +    // fetch a list of nodes to rewrite
          +    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];
          +    var elements = [];
          +    for (var i = 0; i < codeSegments.length; ++i) {
          +      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
          +        elements.push(codeSegments[i][j]);
          +      }
          +    }
          +    codeSegments = null;
          +
          +    var clock = Date;
          +    if (!clock['now']) {
          +      clock = { 'now': function () { return +(new Date); } };
          +    }
          +
          +    // The loop is broken into a series of continuations to make sure that we
          +    // don't make the browser unresponsive when rewriting a large page.
          +    var k = 0;
          +    var prettyPrintingJob;
          +
          +    var langExtensionRe = /\blang(?:uage)?-([\w.]+)(?!\S)/;
          +    var prettyPrintRe = /\bprettyprint\b/;
          +
          +    function doWork() {
          +      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
          +                     clock['now']() + 250 /* ms */ :
          +                     Infinity);
          +      for (; k < elements.length && clock['now']() < endTime; k++) {
          +        var cs = elements[k];
          +        var className = cs.className;
          +        if (className.indexOf('prettyprint') >= 0) {
          +          // If the classes includes a language extensions, use it.
          +          // Language extensions can be specified like
          +          //     <pre class="prettyprint lang-cpp">
          +          // the language extension "cpp" is used to find a language handler as
          +          // passed to PR.registerLangHandler.
          +          // HTML5 recommends that a language be specified using "language-"
          +          // as the prefix instead.  Google Code Prettify supports both.
          +          // http://dev.w3.org/html5/spec-author-view/the-code-element.html
          +          var langExtension = className.match(langExtensionRe);
          +          // Support <pre class="prettyprint"><code class="language-c">
          +          var wrapper;
          +          if (!langExtension && (wrapper = childContentWrapper(cs))
          +              && "CODE" === wrapper.tagName) {
          +            langExtension = wrapper.className.match(langExtensionRe);
          +          }
          +
          +          if (langExtension) {
          +            langExtension = langExtension[1];
          +          }
          +
          +          // make sure this is not nested in an already prettified element
          +          var nested = false;
          +          for (var p = cs.parentNode; p; p = p.parentNode) {
          +            if ((p.tagName === 'pre' || p.tagName === 'code' ||
          +                 p.tagName === 'xmp') &&
          +                p.className && p.className.indexOf('prettyprint') >= 0) {
          +              nested = true;
          +              break;
          +            }
          +          }
          +          if (!nested) {
          +            // Look for a class like linenums or linenums:<n> where <n> is the
          +            // 1-indexed number of the first line.
          +            var lineNums = cs.className.match(/\blinenums\b(?::(\d+))?/);
          +            lineNums = lineNums
          +                  ? lineNums[1] && lineNums[1].length ? +lineNums[1] : true
          +                  : false;
          +            if (lineNums) { numberLines(cs, lineNums); }
          +
          +            // do the pretty printing
          +            prettyPrintingJob = {
          +              langExtension: langExtension,
          +              sourceNode: cs,
          +              numberLines: lineNums
          +            };
          +            applyDecorator(prettyPrintingJob);
          +          }
          +        }
          +      }
          +      if (k < elements.length) {
          +        // finish up in a continuation
          +        setTimeout(doWork, 250);
          +      } else if (opt_whenDone) {
          +        opt_whenDone();
          +      }
          +    }
          +
          +    doWork();
          +  }
          +
          +   /**
          +    * Find all the {@code <pre>} and {@code <code>} tags in the DOM with
          +    * {@code class=prettyprint} and prettify them.
          +    *
          +    * @param {Function?} opt_whenDone if specified, called when the last entry
          +    *     has been finished.
          +    */
          +  window['prettyPrintOne'] = prettyPrintOne;
          +   /**
          +    * Pretty print a chunk of code.
          +    *
          +    * @param {string} sourceCodeHtml code as html
          +    * @return {string} code as html, but prettier
          +    */
          +  window['prettyPrint'] = prettyPrint;
          +   /**
          +    * Contains functions for creating and registering new language handlers.
          +    * @type {Object}
          +    */
          +  window['PR'] = {
          +        'createSimpleLexer': createSimpleLexer,
          +        'registerLangHandler': registerLangHandler,
          +        'sourceDecorator': sourceDecorator,
          +        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
          +        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
          +        'PR_COMMENT': PR_COMMENT,
          +        'PR_DECLARATION': PR_DECLARATION,
          +        'PR_KEYWORD': PR_KEYWORD,
          +        'PR_LITERAL': PR_LITERAL,
          +        'PR_NOCODE': PR_NOCODE,
          +        'PR_PLAIN': PR_PLAIN,
          +        'PR_PUNCTUATION': PR_PUNCTUATION,
          +        'PR_SOURCE': PR_SOURCE,
          +        'PR_STRING': PR_STRING,
          +        'PR_TAG': PR_TAG,
          +        'PR_TYPE': PR_TYPE
          +      };
          +})();
          diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/mouse-wheel.html b/scroll/jQuery-slimScroll-1.3.0/examples/mouse-wheel.html
          new file mode 100644
          index 0000000..434c80c
          --- /dev/null
          +++ b/scroll/jQuery-slimScroll-1.3.0/examples/mouse-wheel.html
          @@ -0,0 +1,99 @@
          +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          +<html>
          +<head>
          +<title>jquery.slimscroll - mouse wheel</title>
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          +<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
          +
          +<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" />
          +<script type="text/javascript" src="libs/prettify/prettify.js"></script>
          +<script type="text/javascript" src="../jquery.slimscroll.js"></script>
          +<link href="style.css" type="text/css" rel="stylesheet" />
          +</head>
          +<body>
          +<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a>
          +
          +<div class="examples">
          +  <div id="testDiv">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv').slimScroll({
          +      wheelStep: 20
          +  });
          +</pre>
          +
          +  <div id="testDiv2">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv2').slimScroll({
          +      wheelStep: 100
          +  });
          +</pre>
          +
          +</div>
          +
          +<script type="text/javascript">
          +    $(function(){
          +
          +      $('#testDiv').slimScroll({
          +          wheelStep: 20
          +      });
          +
          +      $('#testDiv2').slimScroll({
          +          wheelStep: 100
          +      });
          +
          +    });
          +</script>
          +
          +
          +<script type="text/javascript">
          +
          +  //enable syntax highlighter
          +  prettyPrint();
          +
          +  var _gaq = _gaq || [];
          +  _gaq.push(['_setAccount', 'UA-3112455-22']);
          +  _gaq.push(['_setDomainName', 'none']);
          +  _gaq.push(['_trackPageview']);
          +
          +  (function() {
          +    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
          +    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
          +    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
          +  })();
          +</script>
          +</body>
          +</html>
          \ No newline at end of file
          diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/multiple-elements.html b/scroll/jQuery-slimScroll-1.3.0/examples/multiple-elements.html
          new file mode 100644
          index 0000000..6f98b32
          --- /dev/null
          +++ b/scroll/jQuery-slimScroll-1.3.0/examples/multiple-elements.html
          @@ -0,0 +1,113 @@
          +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          +<html>
          +<head>
          +<title>jquery.slimscroll - multiple elements</title>
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          +<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
          +
          +<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" />
          +<script type="text/javascript" src="libs/prettify/prettify.js"></script>
          +<script type="text/javascript" src="../jquery.slimscroll.js"></script>
          +<link href="style.css" type="text/css" rel="stylesheet" />
          +</head>
          +<body>
          +<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a>
          +
          +<div class="examples">
          +  <div class="area">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +  <div class="area">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +  <div class="area">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<div style="clear:both"></div>
          +<pre class="prettyprint">
          +  $('.area').slimscroll({
          +    width: '200px'
          +  }).parent().css({
          +    'float': 'left',
          +    'margin-right': '30px'
          +  });
          +</pre>
          +
          +<div style="clear:both"></div>
          +</div>
          +
          +<script type="text/javascript">
          +    $(function(){
          +
          +      $('.area').slimscroll({
          +        width: '200px'
          +      }).parent().css({
          +        'float': 'left',
          +        'margin-right': '30px'
          +      });
          +
          +    });
          +</script>
          +
          +
          +<script type="text/javascript">
          +
          +  //enable syntax highlighter
          +  prettyPrint();
          +
          +  var _gaq = _gaq || [];
          +  _gaq.push(['_setAccount', 'UA-3112455-22']);
          +  _gaq.push(['_setDomainName', 'none']);
          +  _gaq.push(['_trackPageview']);
          +
          +  (function() {
          +    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
          +    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
          +    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
          +  })();
          +</script>
          +</body>
          +</html>
          \ No newline at end of file
          diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/navigation.html b/scroll/jQuery-slimScroll-1.3.0/examples/navigation.html
          new file mode 100644
          index 0000000..2df6272
          --- /dev/null
          +++ b/scroll/jQuery-slimScroll-1.3.0/examples/navigation.html
          @@ -0,0 +1,30 @@
          +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          +<html>
          +<head>
          +<title>jquery.slimscroll - navigation</title>
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          +<link href="style.css" type="text/css" rel="stylesheet" />
          +</head>
          +<body>
          +<div id="nav">
          +  <h1>jQuery slimScroll</h1>
          +  <h2>Facebook-style jQuery Scrollbar</h1>
          +  <hr />
          +  <ul>
          +    <li><a target="main" href="height-width.html">Height / Width options</a></li>
          +    <li><a target="main" href="scrollbar.html">Scrollbar options</a></li>
          +    <li><a target="main" href="rail.html">Rail options</a></li>
          +    <li><a target="main" href="start-position.html">Start position</a></li>
          +    <li><a target="main" href="chaining.html">Chaining</a></li>
          +    <li><a target="main" href="multiple-elements.html">Mulitple bindings</a></li>
          +    <li><a target="main" href="programmatic-scrolling.html">Programmatic Scrolling</a></li>
          +    <li><a target="main" href="scroll-events.html">Scroll Events</a></li>
          +    <li><a target="main" href="allow-page-scroll.html">allowPageScroll option</a></li>
          +    <li><a target="main" href="disable-fade-out.html">disableFadeOut option</a></li>
          +    <li><a target="main" href="mouse-wheel.html">wheelStep option</a></li>
          +    <li><a target="main" href="nested.html">nested elements</a></li>
          +    <li><a target="main" href="dynamic-content.html">dynamic content</a></li>
          +  </ul>
          +</div>
          +</body>
          +</html>
          \ No newline at end of file
          diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/nested.html b/scroll/jQuery-slimScroll-1.3.0/examples/nested.html
          new file mode 100644
          index 0000000..92bd599
          --- /dev/null
          +++ b/scroll/jQuery-slimScroll-1.3.0/examples/nested.html
          @@ -0,0 +1,82 @@
          +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          +<html>
          +<head>
          +<title>jquery.slimscroll - nested elements</title>
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          +<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
          +
          +<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" />
          +<script type="text/javascript" src="libs/prettify/prettify.js"></script>
          +<script type="text/javascript" src="../jquery.slimscroll.js"></script>
          +<link href="style.css" type="text/css" rel="stylesheet" />
          +</head>
          +<body>
          +<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a>
          +
          +<div class="examples">
          +  <div id="testDiv">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +      <div id="testDivNested">
          +        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +        <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +        <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +        <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +        <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +      </div>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv').slimscroll({
          +    height: '500px'
          +  });
          +  $('#testDivNested').slimscroll({
          +    width: '300px',
          +    height: '200px'
          +  });
          +</pre>
          +
          +
          +</div>
          +
          +<script type="text/javascript">
          +    $(function(){
          +
          +      $('#testDiv').slimscroll({
          +        height: '500px'
          +      });
          +      $('#testDivNested').slimscroll({
          +        width: '300px',
          +        height: '200px'
          +      }).parent().css({
          +        'float': 'left',
          +        'margin': '0 10px 10px 0'
          +      });
          +
          +    });
          +</script>
          +
          +
          +<script type="text/javascript">
          +
          +  //enable syntax highlighter
          +  prettyPrint();
          +
          +  var _gaq = _gaq || [];
          +  _gaq.push(['_setAccount', 'UA-3112455-22']);
          +  _gaq.push(['_setDomainName', 'none']);
          +  _gaq.push(['_trackPageview']);
          +
          +  (function() {
          +    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
          +    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
          +    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
          +  })();
          +</script>
          +</body>
          +</html>
          \ No newline at end of file
          diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/programmatic-scrolling.html b/scroll/jQuery-slimScroll-1.3.0/examples/programmatic-scrolling.html
          new file mode 100644
          index 0000000..163e753
          --- /dev/null
          +++ b/scroll/jQuery-slimScroll-1.3.0/examples/programmatic-scrolling.html
          @@ -0,0 +1,138 @@
          +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          +<html>
          +<head>
          +<title>jquery.slimscroll - programmatic scrolling</title>
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          +<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
          +
          +<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" />
          +<script type="text/javascript" src="libs/prettify/prettify.js"></script>
          +<script type="text/javascript" src="../jquery.slimscroll.js"></script>
          +<link href="style.css" type="text/css" rel="stylesheet" />
          +</head>
          +<body>
          +<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a>
          +
          +<div class="examples">
          +  <div id="testDiv">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +  <input type="button" id="scrollDown" value="scroll down by 50 px" />
          +  <input type="button" id="scrollUp" value="scroll up by 50 px" />
          +
          +
          +<pre class="prettyprint">
          +$('#testDiv').slimscroll({
          +  height: '250px'
          +});
          +
          +$('#scrollDown').click(function(){
          +  $('#testDiv').slimScroll({ scrollBy: '50px' });
          +});
          +
          +$('#scrollUp').click(function(){
          +  $('#testDiv').slimScroll({ scrollBy: '-50px' });
          +});
          +</pre>
          +
          +  <div id="testDiv2">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +  <input type="button" id="scrollDownTo" value="Scroll to 300px from the top" />
          +  <input type="button" id="scrollUpTo" value="Scroll to 20px from the top" />
          +
          +
          +<pre class="prettyprint">
          +$('#testDiv2').slimscroll({
          +  height: '250px'
          +});
          +
          +$('#scrollDownTo').click(function(){
          +  $('#testDiv2').slimScroll({ scrollTo: '300px' });
          +});
          +
          +$('#scrollUpTo').click(function(){
          +  $('#testDiv2').slimScroll({ scrollTo: '20px' });
          +});
          +</pre>
          +
          +
          +
          +</div>
          +
          +<script type="text/javascript">
          +    $(function(){
          +      $('#testDiv').slimscroll({
          +        height: '250px'
          +      });
          +
          +      $('#scrollDown').click(function(){
          +        $('#testDiv').slimScroll({ scrollBy: '50px' });
          +      });
          +
          +      $('#scrollUp').click(function(){
          +        $('#testDiv').slimScroll({ scrollBy: '-50px' });
          +      });
          +
          +      $('#testDiv2').slimscroll({
          +        height: '250px'
          +      });
          +
          +      $('#scrollDownTo').click(function(){
          +        $('#testDiv2').slimScroll({ scrollTo: '300px' });
          +      });
          +
          +      $('#scrollUpTo').click(function(){
          +        $('#testDiv2').slimScroll({ scrollTo: '20px' });
          +      });
          +
          +    });
          +</script>
          +
          +
          +<script type="text/javascript">
          +
          +  //enable syntax highlighter
          +  prettyPrint();
          +
          +  var _gaq = _gaq || [];
          +  _gaq.push(['_setAccount', 'UA-3112455-22']);
          +  _gaq.push(['_setDomainName', 'none']);
          +  _gaq.push(['_trackPageview']);
          +
          +  (function() {
          +    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
          +    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
          +    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
          +  })();
          +</script>
          +</body>
          +</html>
          \ No newline at end of file
          diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/rail.html b/scroll/jQuery-slimScroll-1.3.0/examples/rail.html
          new file mode 100644
          index 0000000..4f77f34
          --- /dev/null
          +++ b/scroll/jQuery-slimScroll-1.3.0/examples/rail.html
          @@ -0,0 +1,190 @@
          +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          +<html>
          +<head>
          +<title>jquery.slimscroll - rail options</title>
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          +<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
          +
          +<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" />
          +<script type="text/javascript" src="libs/prettify/prettify.js"></script>
          +<script type="text/javascript" src="../jquery.slimscroll.js"></script>
          +<link href="style.css" type="text/css" rel="stylesheet" />
          +</head>
          +<body>
          +<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a>
          +
          +<div class="examples">
          +  <div id="testDiv">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv').slimScroll({
          +      alwaysVisible: true,
          +      railVisible: true
          +  });
          +</pre>
          +
          +  <div id="testDiv2">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv2').slimScroll({
          +      railVisible: true,
          +      railColor: '#f00'
          +  });
          +</pre>
          +
          +  <div id="testDiv3">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv3').slimScroll({
          +      railVisible: true,
          +      railOpacity: 0.8
          +  });
          +</pre>
          +
          +  <div id="testDiv4">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv4').slimscroll({
          +    railVisible: true,
          +    railBorderRadius: 0
          +  });
          +</pre>
          +
          +  <div id="testDiv5">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv5').slimscroll({
          +    railDraggable: false
          +  });
          +</pre>
          +
          +</div>
          +
          +<script type="text/javascript">
          +    $(function(){
          +
          +      $('#testDiv').slimScroll({
          +          alwaysVisible: true,
          +          railVisible: true
          +      });
          +
          +      $('#testDiv2').slimScroll({
          +          railVisible: true,
          +          railColor: '#f00'
          +      });
          +
          +      $('#testDiv3').slimScroll({
          +          railVisible: true,
          +          railOpacity: 0.8
          +      });
          +
          +      $('#testDiv4').slimscroll({
          +        railVisible: true,
          +        railBorderRadius: 0
          +      });
          +
          +      $('#testDiv5').slimscroll({
          +        railDraggable: false
          +      });
          +    });
          +</script>
          +
          +
          +<script type="text/javascript">
          +
          +  //enable syntax highlighter
          +  prettyPrint();
          +
          +  var _gaq = _gaq || [];
          +  _gaq.push(['_setAccount', 'UA-3112455-22']);
          +  _gaq.push(['_setDomainName', 'none']);
          +  _gaq.push(['_trackPageview']);
          +
          +  (function() {
          +    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
          +    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
          +    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
          +  })();
          +</script>
          +</body>
          +</html>
          \ No newline at end of file
          diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/scroll-events.html b/scroll/jQuery-slimScroll-1.3.0/examples/scroll-events.html
          new file mode 100644
          index 0000000..9eabbdc
          --- /dev/null
          +++ b/scroll/jQuery-slimScroll-1.3.0/examples/scroll-events.html
          @@ -0,0 +1,88 @@
          +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          +<html>
          +<head>
          +<title>jquery.slimscroll - top/bottom events</title>
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          +<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
          +
          +<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" />
          +<script type="text/javascript" src="libs/prettify/prettify.js"></script>
          +<script type="text/javascript" src="../jquery.slimscroll.js"></script>
          +<link href="style.css" type="text/css" rel="stylesheet" />
          +</head>
          +<body>
          +<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a>
          +
          +<div class="examples">
          +  <div id="testDiv">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +  </div>
          +  <div style="padding:2px;border:1px dashed #333;margin:2px;" id="testDivOut"></div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv').slimscroll({
          +    alwaysVisible: true
          +  }).bind('slimscroll', function(e, pos) {
          +    $('#testDivOut').append("Reached " + pos + ", ");
          +  });
          +</pre>
          +
          +  <div id="testDiv2">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +  </div>
          +  <div style="padding:2px;border:1px dashed #333;margin:2px;" id="testDivOut2"></div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv2').slimscroll().bind('slimscrolling', function(e, pos) {
          +    $('#testDivOut2').append("Scroll value: " + pos + "px");
          +  });
          +</pre>
          +
          +
          +</div>
          +
          +<script type="text/javascript">
          +    $(function(){
          +
          +      $('#testDiv').slimscroll({
          +        alwaysVisible: true
          +      }).bind('slimscroll', function(e, pos) {
          +        $('#testDivOut').append("Reached " + pos + ", ");
          +      });
          +
          +      $('#testDiv2').slimscroll().bind('slimscrolling', function(e, pos) {
          +        $('#testDivOut2').append("Scroll: " + pos + "px, ");
          +      });
          +
          +    });
          +</script>
          +
          +
          +<script type="text/javascript">
          +
          +  //enable syntax highlighter
          +  prettyPrint();
          +
          +  var _gaq = _gaq || [];
          +  _gaq.push(['_setAccount', 'UA-3112455-22']);
          +  _gaq.push(['_setDomainName', 'none']);
          +  _gaq.push(['_trackPageview']);
          +
          +  (function() {
          +    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
          +    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
          +    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
          +  })();
          +</script>
          +</body>
          +</html>
          \ No newline at end of file
          diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/scrollbar.html b/scroll/jQuery-slimScroll-1.3.0/examples/scrollbar.html
          new file mode 100644
          index 0000000..9f13b03
          --- /dev/null
          +++ b/scroll/jQuery-slimScroll-1.3.0/examples/scrollbar.html
          @@ -0,0 +1,189 @@
          +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          +<html>
          +<head>
          +<title>jquery.slimscroll - scrollbar options</title>
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          +<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
          +
          +<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" />
          +<script type="text/javascript" src="libs/prettify/prettify.js"></script>
          +<script type="text/javascript" src="../jquery.slimscroll.js"></script>
          +<link href="style.css" type="text/css" rel="stylesheet" />
          +</head>
          +<body>
          +<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a>
          +
          +<div class="examples">
          +  <div id="testDiv">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv').slimscroll({
          +    size: '15px'
          +  });
          +</pre>
          +
          +  <div id="testDiv2">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv2').slimScroll({
          +      position: 'left'
          +  });
          +</pre>
          +
          +  <div id="testDiv3">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv3').slimScroll({
          +      color: '#00f'
          +  });
          +</pre>
          +
          +
          +
          +  <div id="testDiv4">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv4').slimScroll({
          +      alwaysVisible: true
          +  });
          +</pre>
          +
          +
          +
          +  <div id="testDiv5">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv5').slimScroll({
          +      distance: '20px',
          +      opacity: 1
          +  });
          +</pre>
          +
          +
          +</div>
          +
          +<script type="text/javascript">
          +    $(function(){
          +      $('#testDiv').slimscroll({
          +        size: '15px'
          +      });
          +
          +      $('#testDiv2').slimScroll({
          +          position: 'left'
          +      });
          +
          +      $('#testDiv3').slimScroll({
          +          color: '#00f'
          +      });
          +
          +      $('#testDiv4').slimScroll({
          +          alwaysVisible: true
          +      });
          +
          +      $('#testDiv5').slimScroll({
          +          distance: '20px',
          +          opacity: 1
          +      });
          +
          +    });
          +</script>
          +
          +
          +<script type="text/javascript">
          +
          +  //enable syntax highlighter
          +  prettyPrint();
          +
          +  var _gaq = _gaq || [];
          +  _gaq.push(['_setAccount', 'UA-3112455-22']);
          +  _gaq.push(['_setDomainName', 'none']);
          +  _gaq.push(['_trackPageview']);
          +
          +  (function() {
          +    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
          +    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
          +    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
          +  })();
          +</script>
          +</body>
          +</html>
          \ No newline at end of file
          diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/start-position.html b/scroll/jQuery-slimScroll-1.3.0/examples/start-position.html
          new file mode 100644
          index 0000000..8afdda6
          --- /dev/null
          +++ b/scroll/jQuery-slimScroll-1.3.0/examples/start-position.html
          @@ -0,0 +1,100 @@
          +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          +<html>
          +<head>
          +<title>jquery.slimscroll - start position</title>
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          +<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
          +
          +<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" />
          +<script type="text/javascript" src="libs/prettify/prettify.js"></script>
          +<script type="text/javascript" src="../jquery.slimscroll.js"></script>
          +<link href="style.css" type="text/css" rel="stylesheet" />
          +</head>
          +<body>
          +<a id="git-fork" href="https://github.com/rochal/jQuery-slimScroll"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a>
          +
          +<div class="examples">
          +  <div id="testDiv">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv').slimScroll({
          +      start: 'bottom'
          +  });
          +</pre>
          +
          +  <div id="testDiv2">
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p><span class="helloDiv" style="background:green;font-weigh:bold;">Hello!</span>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.</p>
          +    <p>Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
          +    <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.</p>
          +    <p>Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.</p>
          +    <p>Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.</p>
          +  </div>
          +
          +<pre class="prettyprint">
          +  $('#testDiv2').slimScroll({
          +      start: $('.helloDiv')
          +  });
          +</pre>
          +
          +
          +</div>
          +
          +<script type="text/javascript">
          +    $(function(){
          +
          +      $('#testDiv').slimScroll({
          +          start: 'bottom'
          +      });
          +
          +      $('#testDiv2').slimScroll({
          +          start: $('.helloDiv')
          +      });
          +
          +    });
          +</script>
          +
          +
          +<script type="text/javascript">
          +
          +  //enable syntax highlighter
          +  prettyPrint();
          +
          +  var _gaq = _gaq || [];
          +  _gaq.push(['_setAccount', 'UA-3112455-22']);
          +  _gaq.push(['_setDomainName', 'none']);
          +  _gaq.push(['_trackPageview']);
          +
          +  (function() {
          +    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
          +    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
          +    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
          +  })();
          +</script>
          +</body>
          +</html>
          \ No newline at end of file
          diff --git a/scroll/jQuery-slimScroll-1.3.0/examples/style.css b/scroll/jQuery-slimScroll-1.3.0/examples/style.css
          new file mode 100644
          index 0000000..f12104a
          --- /dev/null
          +++ b/scroll/jQuery-slimScroll-1.3.0/examples/style.css
          @@ -0,0 +1,13 @@
          +body { font-family:Verdana,sans-serif; font-size:12px; color:#000; background:#111; }
          +h1 { font-size:20px; margin:0 }
          +h2 { font-size:10px; margin:0 }
          +p { margin:5px 0; font-size:12px; }
          +pre.prettyprint { padding:15px; border:1px solid #eee; border-radius:5px; background:#eee; border-bottom:3px solid; }
          +.examples { border-radius:20px; background:#fff; padding:15px;
          +  margin:0 150px 0 0; border-collapse: collapse; border:1px solid #000; }
          +.slimScrollDiv { border:1px solid #eee; }
          +#nav { position:fixed; top:0 left:0; background:#fff; padding:15px; border-radius:20px; width:200px; }
          +#nav ul { list-style-type:square; list-style-position:inside; margin:20px 0 0 0; padding:0; }
          +#nav a { text-decoration:none; color:#000; }
          +#nav a:hover { text-decoration: underline }
          +#git-fork img { position:fixed; top:0; right:0; border:0; z-index:999; }
          \ No newline at end of file
          diff --git a/scroll/jQuery-slimScroll-1.3.0/jquery.slimscroll.js b/scroll/jQuery-slimScroll-1.3.0/jquery.slimscroll.js
          new file mode 100644
          index 0000000..2ea5b08
          --- /dev/null
          +++ b/scroll/jQuery-slimScroll-1.3.0/jquery.slimscroll.js
          @@ -0,0 +1,464 @@
          +/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)
          + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
          + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
          + *
          + * Version: 1.3.0
          + *
          + */
          +(function($) {
          +
          +  jQuery.fn.extend({
          +    slimScroll: function(options) {
          +
          +      var defaults = {
          +
          +        // width in pixels of the visible scroll area
          +        width : 'auto',
          +
          +        // height in pixels of the visible scroll area
          +        height : '250px',
          +
          +        // width in pixels of the scrollbar and rail
          +        size : '7px',
          +
          +        // scrollbar color, accepts any hex/color value
          +        color: '#000',
          +
          +        // scrollbar position - left/right
          +        position : 'right',
          +
          +        // distance in pixels between the side edge and the scrollbar
          +        distance : '1px',
          +
          +        // default scroll position on load - top / bottom / $('selector')
          +        start : 'top',
          +
          +        // sets scrollbar opacity
          +        opacity : .4,
          +
          +        // enables always-on mode for the scrollbar
          +        alwaysVisible : false,
          +
          +        // check if we should hide the scrollbar when user is hovering over
          +        disableFadeOut : false,
          +
          +        // sets visibility of the rail
          +        railVisible : false,
          +
          +        // sets rail color
          +        railColor : '#333',
          +
          +        // sets rail opacity
          +        railOpacity : .2,
          +
          +        // whether  we should use jQuery UI Draggable to enable bar dragging
          +        railDraggable : true,
          +
          +        // defautlt CSS class of the slimscroll rail
          +        railClass : 'slimScrollRail',
          +
          +        // defautlt CSS class of the slimscroll bar
          +        barClass : 'slimScrollBar',
          +
          +        // defautlt CSS class of the slimscroll wrapper
          +        wrapperClass : 'slimScrollDiv',
          +
          +        // check if mousewheel should scroll the window if we reach top/bottom
          +        allowPageScroll : false,
          +
          +        // scroll amount applied to each mouse wheel step
          +        wheelStep : 20,
          +
          +        // scroll amount applied when user is using gestures
          +        touchScrollStep : 200,
          +
          +        // sets border radius
          +        borderRadius: '7px',
          +
          +        // sets border radius of the rail
          +        railBorderRadius : '7px'
          +      };
          +
          +      var o = $.extend(defaults, options);
          +
          +      // do it for every element that matches selector
          +      this.each(function(){
          +
          +      var isOverPanel, isOverBar, isDragg, queueHide, touchDif,
          +        barHeight, percentScroll, lastScroll,
          +        divS = '<div></div>',
          +        minBarHeight = 30,
          +        releaseScroll = false;
          +
          +        // used in event handlers and for better minification
          +        var me = $(this);
          +
          +        // ensure we are not binding it again
          +        if (me.parent().hasClass(o.wrapperClass))
          +        {
          +            // start from last bar position
          +            var offset = me.scrollTop();
          +
          +            // find bar and rail
          +            bar = me.parent().find('.' + o.barClass);
          +            rail = me.parent().find('.' + o.railClass);
          +
          +            getBarHeight();
          +
          +            // check if we should scroll existing instance
          +            if ($.isPlainObject(options))
          +            {
          +              // Pass height: auto to an existing slimscroll object to force a resize after contents have changed
          +              if ( 'height' in options && options.height == 'auto' ) {
          +                me.parent().css('height', 'auto');
          +                me.css('height', 'auto');
          +                var height = me.parent().parent().height();
          +                me.parent().css('height', height);
          +                me.css('height', height);
          +              }
          +
          +              if ('scrollTo' in options)
          +              {
          +                // jump to a static point
          +                offset = parseInt(o.scrollTo);
          +              }
          +              else if ('scrollBy' in options)
          +              {
          +                // jump by value pixels
          +                offset += parseInt(o.scrollBy);
          +              }
          +              else if ('destroy' in options)
          +              {
          +                // remove slimscroll elements
          +                bar.remove();
          +                rail.remove();
          +                me.unwrap();
          +                return;
          +              }
          +
          +              // scroll content by the given offset
          +              scrollContent(offset, false, true);
          +            }
          +
          +            return;
          +        }
          +
          +        // optionally set height to the parent's height
          +        o.height = (o.height == 'auto') ? me.parent().height() : o.height;
          +
          +        // wrap content
          +        var wrapper = $(divS)
          +          .addClass(o.wrapperClass)
          +          .css({
          +            position: 'relative',
          +            overflow: 'hidden',
          +            width: o.width,
          +            height: o.height
          +          });
          +
          +        // update style for the div
          +        me.css({
          +          overflow: 'hidden',
          +          width: o.width,
          +          height: o.height
          +        });
          +
          +        // create scrollbar rail
          +        var rail = $(divS)
          +          .addClass(o.railClass)
          +          .css({
          +            width: o.size,
          +            height: '100%',
          +            position: 'absolute',
          +            top: 0,
          +            display: (o.alwaysVisible && o.railVisible) ? 'block' : 'none',
          +            'border-radius': o.railBorderRadius,
          +            background: o.railColor,
          +            opacity: o.railOpacity,
          +            zIndex: 90
          +          });
          +
          +        // create scrollbar
          +        var bar = $(divS)
          +          .addClass(o.barClass)
          +          .css({
          +            background: o.color,
          +            width: o.size,
          +            position: 'absolute',
          +            top: 0,
          +            opacity: o.opacity,
          +            display: o.alwaysVisible ? 'block' : 'none',
          +            'border-radius' : o.borderRadius,
          +            BorderRadius: o.borderRadius,
          +            MozBorderRadius: o.borderRadius,
          +            WebkitBorderRadius: o.borderRadius,
          +            zIndex: 99
          +          });
          +
          +        // set position
          +        var posCss = (o.position == 'right') ? { right: o.distance } : { left: o.distance };
          +        rail.css(posCss);
          +        bar.css(posCss);
          +
          +        // wrap it
          +        me.wrap(wrapper);
          +
          +        // append to parent div
          +        me.parent().append(bar);
          +        me.parent().append(rail);
          +
          +        // make it draggable and no longer dependent on the jqueryUI
          +        if (o.railDraggable){
          +          bar.bind("mousedown", function(e) {
          +            var $doc = $(document);
          +            isDragg = true;
          +            t = parseFloat(bar.css('top'));
          +            pageY = e.pageY;
          +
          +            $doc.bind("mousemove.slimscroll", function(e){
          +              currTop = t + e.pageY - pageY;
          +              bar.css('top', currTop);
          +              scrollContent(0, bar.position().top, false);// scroll content
          +            });
          +
          +            $doc.bind("mouseup.slimscroll", function(e) {
          +              isDragg = false;hideBar();
          +              $doc.unbind('.slimscroll');
          +            });
          +            return false;
          +          }).bind("selectstart.slimscroll", function(e){
          +            e.stopPropagation();
          +            e.preventDefault();
          +            return false;
          +          });
          +        }
          +
          +        // on rail over
          +        rail.hover(function(){
          +          showBar();
          +        }, function(){
          +          hideBar();
          +        });
          +
          +        // on bar over
          +        bar.hover(function(){
          +          isOverBar = true;
          +        }, function(){
          +          isOverBar = false;
          +        });
          +
          +        // show on parent mouseover
          +        me.hover(function(){
          +          isOverPanel = true;
          +          showBar();
          +          hideBar();
          +        }, function(){
          +          isOverPanel = false;
          +          hideBar();
          +        });
          +
          +        // support for mobile
          +        me.bind('touchstart', function(e,b){
          +          if (e.originalEvent.touches.length)
          +          {
          +            // record where touch started
          +            touchDif = e.originalEvent.touches[0].pageY;
          +          }
          +        });
          +
          +        me.bind('touchmove', function(e){
          +          // prevent scrolling the page if necessary
          +          if(!releaseScroll)
          +          {
          +  		      e.originalEvent.preventDefault();
          +		      }
          +          if (e.originalEvent.touches.length)
          +          {
          +            // see how far user swiped
          +            var diff = (touchDif - e.originalEvent.touches[0].pageY) / o.touchScrollStep;
          +            // scroll content
          +            scrollContent(diff, true);
          +            touchDif = e.originalEvent.touches[0].pageY;
          +          }
          +        });
          +
          +        // set up initial height
          +        getBarHeight();
          +
          +        // check start position
          +        if (o.start === 'bottom')
          +        {
          +          // scroll content to bottom
          +          bar.css({ top: me.outerHeight() - bar.outerHeight() });
          +          scrollContent(0, true);
          +        }
          +        else if (o.start !== 'top')
          +        {
          +          // assume jQuery selector
          +          scrollContent($(o.start).position().top, null, true);
          +
          +          // make sure bar stays hidden
          +          if (!o.alwaysVisible) { bar.hide(); }
          +        }
          +
          +        // attach scroll events
          +        attachWheel();
          +
          +        function _onWheel(e)
          +        {
          +          // use mouse wheel only when mouse is over
          +          if (!isOverPanel) { return; }
          +
          +          var e = e || window.event;
          +
          +          var delta = 0;
          +          if (e.wheelDelta) { delta = -e.wheelDelta/120; }
          +          if (e.detail) { delta = e.detail / 3; }
          +
          +          var target = e.target || e.srcTarget || e.srcElement;
          +          if ($(target).closest('.' + o.wrapperClass).is(me.parent())) {
          +            // scroll content
          +            scrollContent(delta, true);
          +          }
          +
          +          // stop window scroll
          +          if (e.preventDefault && !releaseScroll) { e.preventDefault(); }
          +          if (!releaseScroll) { e.returnValue = false; }
          +        }
          +
          +        function scrollContent(y, isWheel, isJump)
          +        {
          +          releaseScroll = false;
          +          var delta = y;
          +          var maxTop = me.outerHeight() - bar.outerHeight();
          +
          +          if (isWheel)
          +          {
          +            // move bar with mouse wheel
          +            delta = parseInt(bar.css('top')) + y * parseInt(o.wheelStep) / 100 * bar.outerHeight();
          +
          +            // move bar, make sure it doesn't go out
          +            delta = Math.min(Math.max(delta, 0), maxTop);
          +
          +            // if scrolling down, make sure a fractional change to the
          +            // scroll position isn't rounded away when the scrollbar's CSS is set
          +            // this flooring of delta would happened automatically when
          +            // bar.css is set below, but we floor here for clarity
          +            delta = (y > 0) ? Math.ceil(delta) : Math.floor(delta);
          +
          +            // scroll the scrollbar
          +            bar.css({ top: delta + 'px' });
          +          }
          +
          +          // calculate actual scroll amount
          +          percentScroll = parseInt(bar.css('top')) / (me.outerHeight() - bar.outerHeight());
          +          delta = percentScroll * (me[0].scrollHeight - me.outerHeight());
          +
          +          if (isJump)
          +          {
          +            delta = y;
          +            var offsetTop = delta / me[0].scrollHeight * me.outerHeight();
          +            offsetTop = Math.min(Math.max(offsetTop, 0), maxTop);
          +            bar.css({ top: offsetTop + 'px' });
          +          }
          +
          +          // scroll content
          +          me.scrollTop(delta);
          +
          +          // fire scrolling event
          +          me.trigger('slimscrolling', ~~delta);
          +
          +          // ensure bar is visible
          +          showBar();
          +
          +          // trigger hide when scroll is stopped
          +          hideBar();
          +        }
          +
          +        function attachWheel()
          +        {
          +          if (window.addEventListener)
          +          {
          +            this.addEventListener('DOMMouseScroll', _onWheel, false );
          +            this.addEventListener('mousewheel', _onWheel, false );
          +            this.addEventListener('MozMousePixelScroll', _onWheel, false );
          +          }
          +          else
          +          {
          +            document.attachEvent("onmousewheel", _onWheel)
          +          }
          +        }
          +
          +        function getBarHeight()
          +        {
          +          // calculate scrollbar height and make sure it is not too small
          +          barHeight = Math.max((me.outerHeight() / me[0].scrollHeight) * me.outerHeight(), minBarHeight);
          +          bar.css({ height: barHeight + 'px' });
          +
          +          // hide scrollbar if content is not long enough
          +          var display = barHeight == me.outerHeight() ? 'none' : 'block';
          +          bar.css({ display: display });
          +        }
          +
          +        function showBar()
          +        {
          +          // recalculate bar height
          +          getBarHeight();
          +          clearTimeout(queueHide);
          +
          +          // when bar reached top or bottom
          +          if (percentScroll == ~~percentScroll)
          +          {
          +            //release wheel
          +            releaseScroll = o.allowPageScroll;
          +
          +            // publish approporiate event
          +            if (lastScroll != percentScroll)
          +            {
          +                var msg = (~~percentScroll == 0) ? 'top' : 'bottom';
          +                me.trigger('slimscroll', msg);
          +            }
          +          }
          +          else
          +          {
          +            releaseScroll = false;
          +          }
          +          lastScroll = percentScroll;
          +
          +          // show only when required
          +          if(barHeight >= me.outerHeight()) {
          +            //allow window scroll
          +            releaseScroll = true;
          +            return;
          +          }
          +          bar.stop(true,true).fadeIn('fast');
          +          if (o.railVisible) { rail.stop(true,true).fadeIn('fast'); }
          +        }
          +
          +        function hideBar()
          +        {
          +          // only hide when options allow it
          +          if (!o.alwaysVisible)
          +          {
          +            queueHide = setTimeout(function(){
          +              if (!(o.disableFadeOut && isOverPanel) && !isOverBar && !isDragg)
          +              {
          +                bar.fadeOut('slow');
          +                rail.fadeOut('slow');
          +              }
          +            }, 1000);
          +          }
          +        }
          +
          +      });
          +
          +      // maintain chainability
          +      return this;
          +    }
          +  });
          +
          +  jQuery.fn.extend({
          +    slimscroll: jQuery.fn.slimScroll
          +  });
          +
          +})(jQuery);
          diff --git a/scroll/jQuery-slimScroll-1.3.0/jquery.slimscroll.min.js b/scroll/jQuery-slimScroll-1.3.0/jquery.slimscroll.min.js
          new file mode 100644
          index 0000000..26220d6
          --- /dev/null
          +++ b/scroll/jQuery-slimScroll-1.3.0/jquery.slimscroll.min.js
          @@ -0,0 +1,16 @@
          +/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)
          + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
          + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
          + *
          + * Version: 1.3.0
          + *
          + */
          +(function(f){jQuery.fn.extend({slimScroll:function(h){var a=f.extend({width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:0.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:"#333",railOpacity:0.2,railDraggable:!0,railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:"7px",railBorderRadius:"7px"},h);this.each(function(){function r(d){if(s){d=d||
          +window.event;var c=0;d.wheelDelta&&(c=-d.wheelDelta/120);d.detail&&(c=d.detail/3);f(d.target||d.srcTarget||d.srcElement).closest("."+a.wrapperClass).is(b.parent())&&m(c,!0);d.preventDefault&&!k&&d.preventDefault();k||(d.returnValue=!1)}}function m(d,f,h){k=!1;var e=d,g=b.outerHeight()-c.outerHeight();f&&(e=parseInt(c.css("top"))+d*parseInt(a.wheelStep)/100*c.outerHeight(),e=Math.min(Math.max(e,0),g),e=0<d?Math.ceil(e):Math.floor(e),c.css({top:e+"px"}));l=parseInt(c.css("top"))/(b.outerHeight()-c.outerHeight());
          +e=l*(b[0].scrollHeight-b.outerHeight());h&&(e=d,d=e/b[0].scrollHeight*b.outerHeight(),d=Math.min(Math.max(d,0),g),c.css({top:d+"px"}));b.scrollTop(e);b.trigger("slimscrolling",~~e);v();p()}function C(){window.addEventListener?(this.addEventListener("DOMMouseScroll",r,!1),this.addEventListener("mousewheel",r,!1),this.addEventListener("MozMousePixelScroll",r,!1)):document.attachEvent("onmousewheel",r)}function w(){u=Math.max(b.outerHeight()/b[0].scrollHeight*b.outerHeight(),D);c.css({height:u+"px"});
          +var a=u==b.outerHeight()?"none":"block";c.css({display:a})}function v(){w();clearTimeout(A);l==~~l?(k=a.allowPageScroll,B!=l&&b.trigger("slimscroll",0==~~l?"top":"bottom")):k=!1;B=l;u>=b.outerHeight()?k=!0:(c.stop(!0,!0).fadeIn("fast"),a.railVisible&&g.stop(!0,!0).fadeIn("fast"))}function p(){a.alwaysVisible||(A=setTimeout(function(){a.disableFadeOut&&s||(x||y)||(c.fadeOut("slow"),g.fadeOut("slow"))},1E3))}var s,x,y,A,z,u,l,B,D=30,k=!1,b=f(this);if(b.parent().hasClass(a.wrapperClass)){var n=b.scrollTop(),
          +c=b.parent().find("."+a.barClass),g=b.parent().find("."+a.railClass);w();if(f.isPlainObject(h)){if("height"in h&&"auto"==h.height){b.parent().css("height","auto");b.css("height","auto");var q=b.parent().parent().height();b.parent().css("height",q);b.css("height",q)}if("scrollTo"in h)n=parseInt(a.scrollTo);else if("scrollBy"in h)n+=parseInt(a.scrollBy);else if("destroy"in h){c.remove();g.remove();b.unwrap();return}m(n,!1,!0)}}else{a.height="auto"==a.height?b.parent().height():a.height;n=f("<div></div>").addClass(a.wrapperClass).css({position:"relative",
          +overflow:"hidden",width:a.width,height:a.height});b.css({overflow:"hidden",width:a.width,height:a.height});var g=f("<div></div>").addClass(a.railClass).css({width:a.size,height:"100%",position:"absolute",top:0,display:a.alwaysVisible&&a.railVisible?"block":"none","border-radius":a.railBorderRadius,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=f("<div></div>").addClass(a.barClass).css({background:a.color,width:a.size,position:"absolute",top:0,opacity:a.opacity,display:a.alwaysVisible?
          +"block":"none","border-radius":a.borderRadius,BorderRadius:a.borderRadius,MozBorderRadius:a.borderRadius,WebkitBorderRadius:a.borderRadius,zIndex:99}),q="right"==a.position?{right:a.distance}:{left:a.distance};g.css(q);c.css(q);b.wrap(n);b.parent().append(c);b.parent().append(g);a.railDraggable&&c.bind("mousedown",function(a){var b=f(document);y=!0;t=parseFloat(c.css("top"));pageY=a.pageY;b.bind("mousemove.slimscroll",function(a){currTop=t+a.pageY-pageY;c.css("top",currTop);m(0,c.position().top,!1)});
          +b.bind("mouseup.slimscroll",function(a){y=!1;p();b.unbind(".slimscroll")});return!1}).bind("selectstart.slimscroll",function(a){a.stopPropagation();a.preventDefault();return!1});g.hover(function(){v()},function(){p()});c.hover(function(){x=!0},function(){x=!1});b.hover(function(){s=!0;v();p()},function(){s=!1;p()});b.bind("touchstart",function(a,b){a.originalEvent.touches.length&&(z=a.originalEvent.touches[0].pageY)});b.bind("touchmove",function(b){k||b.originalEvent.preventDefault();b.originalEvent.touches.length&&
          +(m((z-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0),z=b.originalEvent.touches[0].pageY)});w();"bottom"===a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),m(0,!0)):"top"!==a.start&&(m(f(a.start).position().top,null,!0),a.alwaysVisible||c.hide());C()}});return this}});jQuery.fn.extend({slimscroll:jQuery.fn.slimScroll})})(jQuery);
          \ No newline at end of file
          diff --git a/scroll/jQuery-slimScroll-1.3.0/slimScroll.jquery.json b/scroll/jQuery-slimScroll-1.3.0/slimScroll.jquery.json
          new file mode 100644
          index 0000000..41174e6
          --- /dev/null
          +++ b/scroll/jQuery-slimScroll-1.3.0/slimScroll.jquery.json
          @@ -0,0 +1,30 @@
          +{
          +  "name"        : "slimScroll",
          +  "version"     : "1.2.0",
          +  "title"       : "jQuery slimScroll scrollbar",
          +  "description" : "slimScroll is a small jQuery plugin that transforms any div into a scrollable area. slimScroll doesn't occupy any visual space as it only appears on a user initiated mouse-over.",
          +  "keywords"    : ["scrollbar", "scroll", "slimscroll", "scrollable", "scrolling", "scroller", "ui"],
          +  "demo"        : "http://rocha.la/jQuery-slimScroll/",
          +  "homepage"    : "http://rocha.la/jQuery-slimScroll/",
          +  "download"    : "http://rocha.la/jQuery-slimScroll/",
          +
          +  "author" : {
          +    "name"  : "Piotr Rochala",
          +    "url"   : "http://rocha.la/"
          +  },
          +
          +  "dependencies" : {
          +    "jquery" : ">= 1.7"
          +  },
          +
          +  "licenses" : [
          +    {
          +      "type": "MIT",
          +      "url": "http://www.opensource.org/licenses/mit-license.php"
          +    },
          +    {
          +      "type": "GPL",
          +      "url": "http://www.opensource.org/licenses/gpl-license.php"
          +    }
          +  ]
          +}
          \ No newline at end of file
          
          From b01ff803d40515beacd4cbdf6aaf1df3281b1613 Mon Sep 17 00:00:00 2001
          From: ym <598207893@qq.com>
          Date: Tue, 1 Apr 2014 10:58:29 +0800
          Subject: [PATCH 09/10] up
          
          ---
           .../css/start_v5.css"                         |   1 +
           .../image/start/v3/Thumbs.db"                 | Bin 0 -> 3072 bytes
           .../image/start/v3/close.png"                 | Bin 0 -> 1758 bytes
           .../image/start/v5/sprite.png"                | Bin 0 -> 426 bytes
           .../index.html"                               |  35 ++++++++++++++++++
           .../js/page/top_banner_v1.js"                 |   1 +
           .../js/plugin/jquery.cookie.min.js"           |   1 +
           7 files changed, 38 insertions(+)
           create mode 100644 "\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/css/start_v5.css"
           create mode 100644 "\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/image/start/v3/Thumbs.db"
           create mode 100644 "\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/image/start/v3/close.png"
           create mode 100644 "\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/image/start/v5/sprite.png"
           create mode 100644 "\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/index.html"
           create mode 100644 "\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/js/page/top_banner_v1.js"
           create mode 100644 "\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/js/plugin/jquery.cookie.min.js"
          
          diff --git "a/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/css/start_v5.css" "b/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/css/start_v5.css"
          new file mode 100644
          index 0000000..ec50f12
          --- /dev/null
          +++ "b/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/css/start_v5.css"
          @@ -0,0 +1 @@
          +html,body,div,span,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td,button{margin:0;padding:0;border:0;font-family:"Microsoft YaHei","微软雅黑","宋体";font-size:12px;line-height:1.5;outline:0;color:#333;}a{text-decoration:none;color:#444;outline:none;}a,button{cursor:pointer;}html,body{overflow:hidden;}ul{padding:0;margin:0;}li{list-style:none;}img{border:0;}.lt{float:left;}.rt{float:right;}.f-cb{zoom:1;}.fn-clear:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0;}.fn-clear{zoom:1;}.loading{position:absolute;top:50%;left:0;z-index:1;width:100%;margin:20px auto;text-align:center;margin-top:-8px;}.loading .load{background:url(../image/start/v5/load.gif) no-repeat right center;display:block;font-size:22px;line-height:25px;margin:0 auto;width:68px;}.bgwrap{position:absolute;z-index:2;top:0;left:0;width:100%;height:100%;overflow:hidden;}.bgwrap #bg{display:none;width:100%;height:auto;}.wrap .navwrap{display:none;}.wrap .navwrap .nav{width:14px;height:14px;background:url(../image/start/v5/nav_bg.png) no-repeat scroll;background-position:-13px 0;z-index:900;position:fixed;right:20px;top:50px;cursor:pointer;}.wrap .navwrap .nav.cur{background-position:1px 0;}#top_banner{width:100%;height:0;position:relative;z-index:22;display:none;}#focus{width:100%;overflow:hidden;position:relative;}#focus ul{position:absolute;}#focus ul li{float:left;width:50%;height:100%;overflow:hidden;position:relative;background:#000;}#focus ul li a{display:block;width:100%;height:100%;}#focus ul li img{display:block;width:100%;}#focus ul li div{position:absolute;overflow:hidden;}#focus .btnBg{position:absolute;width:100%;height:20px;left:0;bottom:0;background:#000;}#focus .btn{position:absolute;width:100%;height:10px;padding:5px 10px;right:0;bottom:0;text-align:right;}#focus .btn span{display:inline-block;_display:inline;_zoom:1;width:25px;height:10px;_font-size:0;margin-left:5px;cursor:pointer;background:#fff;}#focus .btn span.on{background:#fff;}#focus .preNext{width:45px;height:100px;position:absolute;top:50%;margin-top:-70px;background:url(../image/start/v5/sprite.png) no-repeat 0 0;cursor:pointer;}#focus .pre{left:0;}#focus .next{right:0;background-position:right top;}.city{float:left;margin-right:40px;}.city h2{float:left;line-height:55px;padding-right:15px;color:#FFF;font-size:16px;font-weight:normal;}.city a{position:relative;float:left;display:inline-block;margin-top:0;padding-right:12px;height:55px;color:#c0c0c0;text-decoration:none;_margin-top:0;line-height:55px;font-size:13px;}.city a .tri4{top:25px;right:0;border-top:4px solid #c0c0c0;_top:8px;}.tri4{position:absolute;width:0;height:0;border:4px dashed transparent;font-size:0;line-height:0;cursor:pointer;}
          \ No newline at end of file
          diff --git "a/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/image/start/v3/Thumbs.db" "b/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/image/start/v3/Thumbs.db"
          new file mode 100644
          index 0000000000000000000000000000000000000000..4194b54c3af3e01069ff43af4f4fa7c5c766e58a
          GIT binary patch
          literal 3072
          zcmeHINlX+`5Ut<8dwQF}?xANuF0zXrOjrapMgs^6H^BYmu!tI?vM6HW0o=Lat~YS^
          zHX?2pMRC0Vu7DSC!Q}+*nm}8BU`9eh(!dEr{jRRxzpMJ!tNK;l+M;*WdBeJ41T6vz
          z1EvhNVe16vjD4g5a5!Pl1Ey&XE&||miY8G6`q5XGKgRq}E+>)uQ?5=h0=cjiM>&K;
          z25doD3YGp+wj|vk1ZqCe8%D8gO=<2a%xWQ&z4zS!;z!Z7y37MdSO{1zV$!PJZDxR!
          z4jx49fz23&;=!dc-8JljY+pZFF;-D2*@~h?9sk};S~Ll$v7E6`uynBc7m!)c7m+1o
          z8CgO0_lV(pP0c5N1nihwb_N>o5SZ;|7iig;S(!ixfps{*e2pbSIgVXOJYIq%2s|$+
          zqG*%sirua%s_F=GYK|a1NL4krrUx4?m&-maB-Cw$It`b>K0+wk@PaG|vf)r2#+b>x
          z1G)r@VId`v!0CkQ#B7Ec=)Qp7GKYtVaOk5=lw?Ikg+{DULMg{n<~3^X#`nPMf-@pM
          z)fSxN5hF{CgsR#)DJsp|<jQU9jZVxjt(FycNa*yinAn+dvt}pFO-`9Ne?j_^jLfCW
          zva<7*uUNTi^_sN>g+=R&H*DNgR=#~l#m>rId-m?zf8gMun!`tq9y@;G<f+s3XU?8G
          zf8pY#%U2q%HeS1a<L0fq_nPlNc=+h?lc&#~zj*noy`!`H&D(eHdp>;p^ttcL*Kgl{
          z{QUL%55q-(4#El`8-YtlTpZ6+USzlkSAk4*UWkadIa6~)Pf2iOLX~8s)z*2N<fz2l
          zURQo;o8pd6>W=AS(0s_O0jnMtvH-AuxH`d32_}!~n8^OT`kFYH08_IAH0)F?^LSK!
          i9E;L-5|X8G_OB`Mb@nnSf;q4a|8V2!@%YLAmi_{~Ae~$Q
          
          literal 0
          HcmV?d00001
          
          diff --git "a/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/image/start/v3/close.png" "b/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/image/start/v3/close.png"
          new file mode 100644
          index 0000000000000000000000000000000000000000..45d87a4d6c911a1e705278e38d990fb05b0e606b
          GIT binary patch
          literal 1758
          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
          Ax&QzG
          
          literal 0
          HcmV?d00001
          
          diff --git "a/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/image/start/v5/sprite.png" "b/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/image/start/v5/sprite.png"
          new file mode 100644
          index 0000000000000000000000000000000000000000..b03d028f98f0307d4131d3656384d8b59ec4fa46
          GIT binary patch
          literal 426
          zcmeAS@N?(olHy`uVBq!ia0vp^DIm<j3?$ucQqzExWQl7;NpOBzNqJ&XDuZK6ep0G}
          zXKrG8YEWuoN@d~6R2!foo&cW^S0Mf3#f!gx|Nj5~e`orZCLo`sB*-rq$YpTQTKR>6
          zfl<ZN#WAGf)|(lQVuuwtTuk@=pS$~Ywy*@7@AB@x+YI*pf^NrNtT~?D`(D?X$MA>%
          zh?r2{>cca0yMfk;J<|pAuiHH}cB)a^J!Nuz(TD0Oo6D!gT2JZDpLOW<l-22V{$ZMp
          z@;iF6r<~xv`$N?01@mdI`9jqXZe3lf^3ApJO`y^1Rb1s7D{~`XReI$`eixp`^rmCk
          z(ZC6!mn9{+wk*7r?|V=zrhmQ0(efaV2O3xHH)OFM)hwSp&82e5uOk(Aryf-*TCe!-
          zQ3m_O`?9Q-{qc?}x0hO0_;O|IEnc=JgKNpME7`NAE&H3*(&8qRd1S8JvMiSE&t5L5
          zWXYUYJga@>v(B}WVj0KeW-<1qi7b^|m3gdrHP<DuFCkw2{#7J_A!9F3XGr^#Gr;g;
          N@O1TaS?83{1OUbAwA}yz
          
          literal 0
          HcmV?d00001
          
          diff --git "a/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/index.html" "b/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/index.html"
          new file mode 100644
          index 0000000..de35995
          --- /dev/null
          +++ "b/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/index.html"
          @@ -0,0 +1,35 @@
          +<!DOCTYPE html>
          +<html>
          +<head>
          +<meta http-equiv="X-UA-Compatible" content="IE=edge" />
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<title>微俱聚平台可关闭的jquery焦点图特效</title>
          +
          +<link rel="stylesheet" href="css/start_v5.css?v=20140326" />
          +<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
          +<script type="text/javascript" src="js/plugin/jquery.cookie.min.js?v=20140326"></script>
          +
          +</head>
          +<body>
          +	<div id="top_banner">
          +		<div id="focus">
          +			<ul>
          +				<li><a href="http://www.jq-school.com" target="_blank"><img src="http://wxj.weixinjia.net/image/start/v5/2014sf/banner15.jpg"></a></li>
          +				<li><a href="http://www.jq-school.com" target="_blank"><img class="top_banner_img" src="http://wxj.weixinjia.net/image/start/v5/2014sf/banner16.jpg"></a></li>
          +				<li><a href="http://www.jq-school.com" target="_blank"><img class="top_banner_img" src="http://wxj.weixinjia.net/image/start/v5/2014sf/banner13.jpg"></a></li>
          +				<li><a href="http://www.jq-school.com" target="_blank"><img class="top_banner_img" src="http://wxj.weixinjia.net/image/start/v5/2014sf/banner14.jpg"></a></li>
          +				<li><a href="http://www.jq-school.com" target="_blank"><img class="top_banner_img" src="http://wxj.weixinjia.net/image/start/v5/2014sf/banner12.jpg"></a></li>
          +				<li><a href="http://www.jq-school.com" target="_blank"><img class="top_banner_img" src="http://wxj.weixinjia.net/image/start/v5/2014sf/banner11.jpg"></a></li>
          +			</ul>
          +		</div>
          +		<a href="javascript:;" class="top_banner_close"><img style="position: absolute;right: 20px;top: 20px;" src="image/start/v3/close.png"></a>
          +	</div>
          +	<script type="text/javascript" src="js/page/top_banner_v1.js?v=20140326"></script>
          +	<center>
          +  <span style="font-size:15px; font-weight:bold; text-align:center; line-height:25px; color:#000; width:100%">微俱聚平台可关闭的jquery焦点图特效<br />
          +  <a href="http://www.jq-school.com" target="_blank" style="color:#000">JquerySchool</a>网站出品(<a href="http://www.jq-school.com" style="color:#000" target="_blank">http://www.jq-school.com</a>) <br />
          +   <a href="http://api.jq-school.com/" target="_blank" style="color:#000">在线API帮助文档</a> <br />
          +  <a target="_blank" href="http://wp.qq.com/wpa/qunwpa?idkey=6fcb83942dc3630777ae7745bd5093a1a5917f915f4e95cfc498633379ebfbb4">官方网站学习交流QQ群<img border="0" src="http://pub.idqqimg.com/wpa/images/group.png" style="width:90px; height:22px;" alt="Jquery学堂QQ⑤群" width="90" height="22" title="Jquery学堂QQ⑤群"></a></span>
          +</center>
          +	</body>
          +</html>
          \ No newline at end of file
          diff --git "a/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/js/page/top_banner_v1.js" "b/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/js/page/top_banner_v1.js"
          new file mode 100644
          index 0000000..012d81a
          --- /dev/null
          +++ "b/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/js/page/top_banner_v1.js"
          @@ -0,0 +1 @@
          +$(function(){if($.cookie("weijuju_banner_10")!=1){var f=$(window).width()*0.39375;$("#online_qq_layer").hide();$("#focus").height(f);$("#focus ul li").width($(window).width());$("#top_banner").show().animate({height:f+"px"},2000);$(".top_banner_close").click(function(){$("#top_banner").remove();var h=new Date();h.setTime(h.getTime()+(12*60*60*1000));$.cookie("weijuju_banner_10","1",{expires:h});$("#online_qq_layer").show()});var j=$("#focus").width();var a=$("#focus ul li").length;var c=0;var g;var e="<div class='btnBg'></div><div class='btn'>";for(var d=0;d<a;d++){e+="<span></span>"}e+="</div><div class='preNext pre'></div><div class='preNext next'></div>";$("#focus").append(e);$("#focus .btnBg").css("opacity",0.5);$("#focus .btn span").css("opacity",0.4).mouseover(function(){c=$("#focus .btn span").index(this);b(c)}).eq(0).trigger("mouseover");$("#focus .preNext").css("opacity",0.2).hover(function(){$(this).stop(true,false).animate({opacity:"0.5"},300)},function(){$(this).stop(true,false).animate({opacity:"0.2"},300)});$("#focus .pre").click(function(){c-=1;if(c==-1){c=a-1}b(c)});$("#focus .next").click(function(){c+=1;if(c==a){c=0}b(c)});$("#focus ul").css("width",j*(a));$("#focus").hover(function(){clearInterval(g)},function(){g=setInterval(function(){b(c);c++;if(c==a){c=0}},5000)}).trigger("mouseleave");function b(h){var i=-h*j;$("#focus ul").stop(true,false).animate({left:i},300);$("#focus .btn span").stop(true,false).animate({opacity:"0.4"},300).eq(h).stop(true,false).animate({opacity:"1"},300)}}});
          \ No newline at end of file
          diff --git "a/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/js/plugin/jquery.cookie.min.js" "b/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/js/plugin/jquery.cookie.min.js"
          new file mode 100644
          index 0000000..5a9834e
          --- /dev/null
          +++ "b/\345\233\276\347\211\207&\347\225\214\351\235\242/\345\276\256\344\277\241\350\201\232\345\233\276\347\211\207\347\204\246\347\202\271/js/plugin/jquery.cookie.min.js"
          @@ -0,0 +1 @@
          +jQuery.cookie=function(e,b,a){if(arguments.length>1&&String(b)!=="[object Object]"){a=jQuery.extend({},a);if(b===null||b===void 0)a.expires=-1;if(typeof a.expires==="number"){var d=a.expires,c=a.expires=new Date;c.setDate(c.getDate()+d)}b=String(b);return document.cookie=[encodeURIComponent(e),"=",a.raw?b:encodeURIComponent(b),a.expires?"; expires="+a.expires.toUTCString():"",a.path?"; path="+a.path:"",a.domain?"; domain="+a.domain:"",a.secure?"; secure":""].join("")}a=b||{};c=a.raw?function(a){return a}:decodeURIComponent;return(d=RegExp("(?:^|; )"+encodeURIComponent(e)+"=([^;]*)").exec(document.cookie))?c(d[1]):null};
          \ No newline at end of file
          
          From c1c4f2fa83efd1a5fa5d1d3276a534a14bf053ea Mon Sep 17 00:00:00 2001
          From: ym1623 <598207893@qq.com>
          Date: Fri, 8 Aug 2014 16:18:27 +0800
          Subject: [PATCH 10/10] add timeline plugin
          
          ---
           .../css/about.css"                            |  28 ++
           .../img/dian.png"                             | Bin 0 -> 116 bytes
           .../img/dian2.png"                            | Bin 0 -> 121 bytes
           .../img/dian3.png"                            | Bin 0 -> 111 bytes
           .../img/jian.png"                             | Bin 0 -> 1108 bytes
           .../img/morelink.gif"                         | Bin 0 -> 1132 bytes
           .../img/pagination_1.png"                     | Bin 0 -> 262 bytes
           .../img/titlebg.jpg"                          | Bin 0 -> 384 bytes
           .../index.html"                               | 265 ++++++++++++++++++
           .../js/jquery.min_v1.0.js"                    |   4 +
           10 files changed, 297 insertions(+)
           create mode 100644 "\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/css/about.css"
           create mode 100644 "\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/dian.png"
           create mode 100644 "\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/dian2.png"
           create mode 100644 "\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/dian3.png"
           create mode 100644 "\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/jian.png"
           create mode 100644 "\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/morelink.gif"
           create mode 100644 "\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/pagination_1.png"
           create mode 100644 "\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/titlebg.jpg"
           create mode 100644 "\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/index.html"
           create mode 100644 "\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/js/jquery.min_v1.0.js"
          
          diff --git "a/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/css/about.css" "b/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/css/about.css"
          new file mode 100644
          index 0000000..20c1ff9
          --- /dev/null
          +++ "b/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/css/about.css"
          @@ -0,0 +1,28 @@
          +@CHARSET "UTF-8";
          +/*= Reset =*//* 代码整理:大头网 www.datouwang.com */
          +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,p,blockquote,th,td,figure{margin:0;padding:0;}
          +article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}
          +table{border-collapse:collapse;border-spacing:0;}
          +caption,th{font-weight:normal;text-align:left;}
          +fieldset,img{border:0;}
          +ul li{list-style:none;}
          +h1,h2,h3,h4,h5,h6{font-size:100%;}
          +h5{font-size:18px;margin-bottom:20px;color:#666;}
          +h5 span{font-size:12px;color:#ccc;font-weight:normal;}
          +blockquote:before,blockquote:after,q:before,q:after{content:"";}
          +html{-webkit-text-size-adjust:none;-ms-text-size-adjust:none;}
          +body{font:normal 14px/24px "Helvetica Neue",Helvetica,STheiti,"Microsoft Yahei","冬青黑体简体中文 w3",宋体,Arial,Tahoma,sans-serif,serif;word-wrap:break-word;background: #F0F0F0;}
          +a { text-decoration:none;color:#1C3D72 }
          +img{-ms-interpolation-mode:bicubic;}
          +.box { width:940px;margin:18px auto 0 auto; }
          +.event_year { width:60px;border-bottom:2px solid #DDD;text-align:center;float:left;margin-top:10px; }
          +.event_year li { height:40px;line-height:40px;background:#FFF;margin-bottom:1px;font-size:18px;color:#828282;cursor:pointer; }
          +.event_year li.current { width:61px;background:#0066ff url('../img/jian.png') 60px 0 no-repeat;color:#FFF;text-align:left;padding-left:9px; }
          +.event_list { width:850px;float:right;background:url('../img/dian3.png') 139px 0 repeat-y;margin:10px 0 20px 0; }
          +.event_list h3 { margin:0 0 10px 132px;font-size:24px;font-family:Georgia;color:#0066ff;padding-left:25px;background:url('../img/jian.png') 0 -45px no-repeat;height:38px;line-height:30px;font-style:italic; }
          +.event_list li { background:url('../img/jian.png') 136px -80px no-repeat; }
          +.event_list li span { width:127px;text-align:right;display:block;float:left;margin-top:10px; }
          +.event_list li p { width:680px;margin-left:24px;display:inline-block;padding-left:10px;background:url('../img/jian.png') -21px 0 no-repeat;line-height:25px;_float:left; }
          +.event_list li p span { width:650px;text-align:left;border-bottom:2px solid #DDD;padding:10px 15px;background:#FFF;margin:0; }
          +.copyright { width:1050px;margin:0 auto;padding:20px 0;text-align:center;color:#999;display:table;margin-left:180px; }
          +/* 代码整理:大头网 www.datouwang.com */
          \ No newline at end of file
          diff --git "a/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/dian.png" "b/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/dian.png"
          new file mode 100644
          index 0000000000000000000000000000000000000000..9f6f610ebdcfa75b2a739e1a9f39973a65742295
          GIT binary patch
          literal 116
          zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvk|nMYCBgY=CFO}lsSJ)O`AMk?
          zp1FzXsX?iUDV2pMQ*D5X#5`RbLn>}1*%UwHVU{p3JiySzDv-e7oWYc}X63vOKotz0
          Lu6{1-oD!M<Ig=k=
          
          literal 0
          HcmV?d00001
          
          diff --git "a/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/dian2.png" "b/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/dian2.png"
          new file mode 100644
          index 0000000000000000000000000000000000000000..8646b93a1c77488c897a019e48b5b62260150eac
          GIT binary patch
          literal 121
          zcmeAS@N?(olHy`uVBq!ia0vp^j6fX2!2~1~(mlQdDajJoh?3y^w370~qErUQl>DSr
          z1<%~X^wgl##FWaylc_d9Mbe%wjv*Ddl79XFZ!gTud{|?d;lA?savf|O1`K!Bu?4KF
          SXLJK9WAJqKb6Mw<&;$T8mLl^2
          
          literal 0
          HcmV?d00001
          
          diff --git "a/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/dian3.png" "b/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/dian3.png"
          new file mode 100644
          index 0000000000000000000000000000000000000000..a53a87a99c4e24abd17036a1c398e000558eb445
          GIT binary patch
          literal 111
          zcmeAS@N?(olHy`uVBq!ia0vp^EI`c2!2~4B;%3YOQj#UE5hcO-X(i=}MX3yqDfvmM
          z3ZA)%>8U}fi7AzZCsS>JiUd7f978H@CGDyHuE)&7z#_pQGo5K>@1$N8pd^E*tDnm{
          Hr-UW|k<A?l
          
          literal 0
          HcmV?d00001
          
          diff --git "a/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/jian.png" "b/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/jian.png"
          new file mode 100644
          index 0000000000000000000000000000000000000000..a6566d19920ac7d522965f57b16f6eb2f8d3d1b8
          GIT binary patch
          literal 1108
          zcmeAS@N?(olHy`uVBq!ia0vp^%0N7mgAGV7?P&G_Qj#UE5hcO-X(i=}MX3yqDfvmM
          z3ZA)%>8U}fi7AzZCsS=07?{6#x;TbZ+<G%R+CwBz;`sl~({IL>pLO!)WfnX$sY>fb
          zouG*6)O%euLQ7tJ3d(mg*QtJ?TC=i;W61%HrWFFBW=l3LxgDGsrQ){fo!AuZ-EWRw
          zJ8ArAnRWHd!t{30{ru;w&i#D$CjbBQ-{&lg)22(y%Zn=<-n40x#R-$`xA!hEEA>!T
          zmS|FxXo`$7kbVF2OQYq#15L}+pM80`Y@3~M-`(v8-aa;|PF{Rb!aD6;?SsI}X}*>M
          z#|uxKI3eJDhvA>evg7B%r0uM}Xa*}A8ym0E3f%nixcuA|0r$<Fy{;r2?+U6ubbjHt
          zWujRrQA(yM{l+I#X2qC3i#oI~Vdk->U5`7AOm)P%b2^S%%9@0-6g*zwAGkPfz4+qA
          ziyy_Sify00PX5Efy5a)I`9>mK2cH%lOxvtzZ7p53w=U7(^cg0r{;G|Ir5TP2Hs=o~
          z7<8Pfu#x*wWB26AlLJ{>wO%jd{kd?7!y(?+B}rbJl{lJK2x<EmMxHv;loH8uwW(;G
          z*P0)H|IN^9oocy7vtwVdT&SbaN|8{>X@<U{|E4U@TjC`&BgIHfa%z*~%j#EKSUN*G
          z#h$P@8vxPEBsSIGyS=?6`_}4vNP<ESgk~JwFfUPm;`xR9|6N-6m$(0Ue8YLY$rX9E
          zc?{Lpn0TX`G~z5x*9&gF=JH4=N$<>7akZFNh6n8>_ttI>Jh1Z=gWnszC46cUOs{UQ
          z-N1kHwxquP&+a}p{ffO+1`lUg-p`!Id#LB9S^3PX{0|tH%WaRFEfRmmYz=#?RcYe8
          zJ*G+~_G$<HyRU4Lm)L6*e8W&)QD*nEch+%tbE?c#YEN8<VK)i=`~UwLI|uvTx?dM-
          z_GesITYBdE{h*c7<qp>@+h=>vchuihJ-JOYLNE8@H|>?h)%(BPnI+n^%OK}W#};n?
          z#?@s9EDeKie7t%565BU1|5eq(*X^GOmTkQy;(d<k*HcgaZBuVtk^bWK*(u}Bsv7QZ
          zAHFqItbN6JC+K<it=Nytn!8P3y<63ucths%hKt>&x7HOJ^`x%p`)Lp#_f-Adq{!-b
          zLW{~L96oS<rr@@cP=VCfEm!mvGnTr80vrViU*_3tUU2yE;SIOnKFsfY`s~@FJ$qza
          zU0qk*TXA%6XR`gaS8w0ChKGlTw7+_lHD&75Os2)jU0=R@IZ~2Ps;sPh>xfTzx%skX
          zN%?0sSUp?J*>m}&&x<Do7MIj#Khj*T<r5bd=d`@3i77W>)v8rT)>|AanXxX}Zq|Vf
          zg-bSVGFryGT3biw3QODUzk$!+EHF1SQww|Y{CT$hi;L$(4+`)QLT8eif2to~c-2@K
          V^1RdeJg}Hx@O1TaS?83{1OVel1J3{e
          
          literal 0
          HcmV?d00001
          
          diff --git "a/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/morelink.gif" "b/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/morelink.gif"
          new file mode 100644
          index 0000000000000000000000000000000000000000..3287e144d0d75747ec9f5b94c15e1431351450bd
          GIT binary patch
          literal 1132
          zcmZ?wbhEHb<Y3@nSj52a|NsA@qT-U0($?12-rl~Xq$CC~Q2fsw;Txdfl30=mq;2dg
          z3KEmEQ%e+*Qqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)Wn
          zQ(;w+TacStlBiITo0C^;Rbi`?n3A8AY6WD2g!Ppaz)DK8ZIv8B5(*$Yo%4%Q6-@O^
          zb(0MYO%%*6^$bl7O)Ly`6pRcEjr9$T^$m@64UMb}EUgSp6`()~Xj@TAnpKdC8`Lf!
          z&sHg;q@=(~U%$M(T(8_%FTW^V-_X+1Qs2Nx-^fT8s6w~6GOr}DLN~8i8D@e@YH@N=
          zW<g12ex3rz#Kffh(h^%Gpi3cM$Sr^yn^&v{_Kse1ey)B+Vu8M)o&m^9FonLp_?717
          z!c`ZS1f?R}i`C%bkjjEo{h-w1{L-T2RG@NYkW~d%&PAz-CHX}m`T04pPz=b(FUc>?
          z$S+WEc2>{`&&*57FE7>vEBE!a^2{qPNz6-5^>ndS0ve!~nVDi`>}uxf>||_dY-H?g
          zXy|HeX=>(ZVQK8*Xy)W%YT@Dv)9aF-T$-DjR|3<Ug3#-TQ!gkb<Q4#Jc1bPDEK5ys
          zE6UGR0Q=Y~6SrH;aheC!n}XXd7C80l10ACeidUp~h6w=^4~Pj*wLlI$-KXXO6MGRb
          zRWtto_xI25Uq63*|MvCE=T9F$ynpxh&Ffb$Up#;I^vUB#4<FpWclXZiTQ_f9zjpP?
          z<x3YYoIiK=%;{4nPaHpX^vK~u2M_Guw|CF(T|0Md-?nwj=1m(ntY5cw&FWPvS1ez)
          zbjjjH3m43vH+RnLSu<x$pEh;M<Vh1J^!N4lba!=jw70dkG&eOi)YsM4R9972l$Vv3
          z6c-g1<mct)WM^e&q^G5(Bqt>%#K*<PL`OwNgolNO1P28M`1|?#czbzzxVyQ!I6FBy
          z*xT9KSX)_In46iJ7#kTH=<Dg~XlrR|sH>@}C@U!{$jiyfNJ~jdh>MAe2nz`c@bmHV
          zaC32Tu(PqUFf%bSFev_H0T&TEAQDuJFffa8SS{vLv=NmRTqNR?caP~|i11GXKPCoi
          E0Gk7gg#Z8m
          
          literal 0
          HcmV?d00001
          
          diff --git "a/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/pagination_1.png" "b/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/pagination_1.png"
          new file mode 100644
          index 0000000000000000000000000000000000000000..7f18eacbd66e68033aa7f394e5827429cf4dd2bf
          GIT binary patch
          literal 262
          zcmeAS@N?(olHy`uVBq!ia0vp^AhtLM8;~@ry7vP}NtU=qlmzFem6RtIr7}3C<R_&n
          zc;+Uirv{}arc@T5Otk?jTH)#97*cU7$)@-j53`T~LsGIr8r!2_hZ;t;gG@`8HdgQn
          zR2wX4l69EFbi{vV1B<$V{DDOsj9P4y9<yk!VNMcdyThOo&K@Lj&OxHZ*zvAAhexxB
          zovM@K4P))jfE_|hHgI;le-OwrDVs_258n~K3kJytg!&YAzTd#WzVouMlyTaH8J2xA
          z#yxK&*GqOV>SX-6xI;~Uog*XPr?09ua!g0J%6)w-rEq{DOWfdl&1#lrpqm*yUHx3v
          IIVCg!0F{PUWdHyG
          
          literal 0
          HcmV?d00001
          
          diff --git "a/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/titlebg.jpg" "b/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/img/titlebg.jpg"
          new file mode 100644
          index 0000000000000000000000000000000000000000..c2486228c0fb4cb55e0e807821b4982c4e47c3c7
          GIT binary patch
          literal 384
          zcmex=<NpH&0WUXCHwH#VMur3+WcYuZ!I^=Xi3x;&fCY$HIapa)SXjB(+1WUFxOjND
          zxwyG``Gf>``2_j6xdp@o1cgOJMMZh|#U;c<B!omnML>oyG6VInuyV4pa*FVB^NNrR
          z{vTiv<X~WCsApyrWMC3xWEN!ne}q94=u`$&zzGzV5@29pM-^sb6$@E>5hy2up@RV=
          zDu`|l!~a_hJj{$hyO;$T>=~B#nylC+?;w>Km}A#qa%s_xT87M}t{Z+aT=wct{KB|w
          bs@UNd%)VN>?HAZ)g+%i&;3ZAD{r{T)XMswU
          
          literal 0
          HcmV?d00001
          
          diff --git "a/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/index.html" "b/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/index.html"
          new file mode 100644
          index 0000000..68b2aed
          --- /dev/null
          +++ "b/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/index.html"
          @@ -0,0 +1,265 @@
          +<!DOCTYPE html>
          +<html>
          +
          +<head>
          +<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
          +<link rel="stylesheet" href="css/about.css">
          +<style>
          +.page { width:100%;background:#F0F0F0 url('img/dian2.png') repeat-x; }
          +</style>
          +<title>jQuery时间轴网站大事记特效_xw素材网</title>
          +</head>
          +
          +<body>
          +
          +<!-- 代码开始 -->
          +<div class="box">
          +	<ul class="event_year">
          +		<li class="current"><label for="2013">2013</label></li>
          +		<li><label for="2012">2012</label></li>
          +		<li><label for="2011">2011</label></li>
          +		<li><label for="2010">2010</label></li>
          +		<li><label for="2009">2009</label></li>
          +		<li><label for="2008">2008</label></li>
          +		<li><label for="2007">2007</label></li>
          +		<li><label for="2006">2006</label></li>
          +		<li><label for="2005">2005</label></li>
          +		<li><label for="2004">2004</label></li>
          +		<li><label for="2003">2003</label></li>
          +		<li><label for="2002">2002</label></li>
          +	</ul>
          +	<ul class="event_list">
          +		<div>
          +			<h3 id="2013">2013</h3>
          +			<li><span>5月</span>
          +			<p><span>站长之家专栏改版上线</span></p>
          +			</li>
          +			<li><span>4月</span>
          +			<p><span>站长工具旗下产品,超级监控上线</span></p>
          +			</li>
          +			<li><span>3月</span>
          +			<p><span>站长之家创业栏目上线</span></p>
          +			</li>
          +		</div>
          +		<div>
          +			<h3 id="2012">2012</h3>
          +			<li><span>9月</span>
          +			<p><span>站长之家北京分公司成立</span></p>
          +			</li>
          +		</div>
          +		<div>
          +			<h3 id="2011">2011</h3>
          +			<li><span>3月13日</span><p><span>建站大师上线</span></p>
          +			</li>
          +			<li><span>3月26日</span><p><span>站长论坛荣获2010年第二届中文论坛100强称号(名列第50位)</span></p>
          +			</li>
          +			<li><span>4月-11月</span><p><span>4月-11月 站长之家九周年全国交流会启动(厦门、南京、杭州、广州、合肥、武汉、西安、重庆、上海等地),同时宣布与新浪微博达成微博创新基金合作,启动中小站长专项投资</span></p>
          +			</li>
          +			<li><span>6月11日</span><p><span>推出建站大师开放平台open.313.com</span></p>
          +			</li>
          +			<li><span>9月10日</span><p><span>站长之家北京分公司成立</span></p>
          +			</li>
          +		</div>
          +		<div>
          +			<h3 id="2010">2010</h3>
          +			<li><span>5月21日</span><p><span>全站用户中心上线</span></p>
          +			</li>
          +			<li><span>5月26日</span><p><span>C2C交易平台站长交易上线</span></p>
          +			</li>
          +			<li><span>6月11日</span><p><span>站长论坛新版上线</span></p>
          +			</li>
          +			<li><span>9月10日</span><p><span>站长论坛发帖超过千万</span></p>
          +			</li>
          +			<li><span>10月8日</span><p><span>我的工具(Mytool.chinaz.com)新版上线</span></p>
          +			</li>
          +			<li><span>10月14日</span><p><span>站长下载第三次改版完成</span></p>
          +			</li>
          +			<li><span>10月18日</span><p><span>全资收购社区开发商BBSMAX,并与微软Web应用平台达成合作</span></p>
          +			</li>
          +			<li><span>12月4日</span><p><span>在阿里巴巴主办的“第二届中国地方与行业网站峰会”上获最受欢迎的站长服务商</span></p>
          +			</li>
          +		</div>
          +		<div>
          +			<h3 id="2009">2009</h3>
          +			<li><span>3月20日</span><p><span>举办中国站长站7周年站长调查活动</span></p>
          +			</li>
          +			<li><span>3月23日</span><p><span>正式推出IDC行业的B2C平台 - 主机网!</span></p>
          +			</li>
          +			<li><span>7月8日</span><p><span>发布中国站长行业调查报告</span></p>
          +			</li>
          +			<li><span>9月8日</span><p><span>正式推出集虚拟主机评测和IDC导航于一体的主机之家!</span></p>
          +			</li>
          +			<li><span>11月26日</span><p><span>我的工具(MYtool.chinaz.com)发布</span></p>
          +			</li>
          +		</div>
          +		<div>
          +			<h3 id="2008">2008</h3>
          +			<li><span>1月8日</span><p><span>站长统计用户数突破60万!</span></p>
          +			</li>
          +			<li><span>2月2日</span><p><span>宣布与BBSmax结成战略合作伙伴!</span></p>
          +			</li>
          +			<li><span>2月15日</span><p><span>推出站长工具软件v1.0测试版</span></p>
          +			</li>
          +			<li><span>4月16日</span><p><span>推出一个小工具-网站测速 v1.0测试版</span></p>
          +			</li>
          +			<li><span>4月23日</span><p><span>站长资讯推出v2008新版</span></p>
          +			</li>
          +			<li><span>4月28日</span><p><span>推出软件下载子站-精品软件站 chinaz.cn</span></p>
          +			</li>
          +			<li><span>5月5日</span><p><span>站长工具软件正式更名为站长助手</span></p>
          +			</li>
          +			<li><span>5月6日</span><p><span>推出一个小工具,网站保姆</span></p>
          +			</li>
          +			<li><span>5月22日</span><p><span>推出&quot;万站签名迎奥运&quot;活动!</span></p>
          +			</li>
          +			<li><span>6月1日</span><p><span>站长下载第二次改版完成</span></p>
          +			</li>
          +		</div>
          +		<div>
          +			<h3 id="2007">2007</h3>
          +			<li><span>1月29日</span><p><span>推出壁纸栏目 Desk.chinaz.com</span></p>
          +			</li>
          +			<li><span>3月3日</span><p><span>五周年站长聚会活动 厦门站顺利召开</span></p>
          +			</li>
          +			<li><span>3月17日</span><p><span>五周年站长聚会活动 上海站顺利召开</span></p>
          +			</li>
          +			<li><span>3月31日</span><p><span>五周年聚会-千位站长齐聚广州</span></p>
          +			</li>
          +			<li><span>4月7日</span><p><span>五周年聚会安徽合肥站顺利召开</span></p>
          +			</li>
          +			<li><span>4月22日</span><p><span>CNZZ荣获第三届站长大会07年十大创新网站</span></p>
          +			</li>
          +			<li><span>8月13日</span><p><span>站长统计当日统计流量突破10亿!</span></p>
          +			</li>
          +			<li><span>9月14日</span><p><span>站长下载栏目改版完成</span></p>
          +			</li>
          +		</div>
          +		<div>
          +			<h3 id="2006">2006</h3>
          +			<li><span>4月8日</span><p><span>中国站长联盟(cnzz.com)的免费统计分析服务当日统计量突破4亿次!</span></p>
          +			</li>
          +			<li><span>5月25日</span><p><span>推出素材下载栏目(sc.chinaz.com)!</span></p>
          +			</li>
          +			<li><span>8月8日</span><p><span>中国站长联盟(cnzz.com)的免费统计分析服务当日统计量突破5亿次!</span></p>
          +			</li>
          +		</div>
          +		<div>
          +			<h3 id="2005">2005</h3>
          +			<li><span>1月23日</span><p><span>网站论坛帖子突破200万!</span></p>
          +			</li>
          +			<li><span>2月20日</span><p><span>免费域名注册量突破20万!</span></p>
          +			</li>
          +			<li><span>3月10日</span><p><span>站长学院栏目正式开通(edu.chinaz.com)!</span></p>
          +			</li>
          +			<li><span>5月20日</span><p><span>域名交易栏目已有1万个域名在进行出售!</span></p>
          +			</li>
          +			<li><span>5月24日</span><p><span>正式进入ALEXA中文网站排名100强(第98名)!</span></p>
          +			</li>
          +			<li><span>6月3日</span><p><span>网站用户达到20万!</span></p>
          +			</li>
          +			<li><span>7月1日</span><p><span>正式进入ALEXA全球网站500强!!(第499名)</span></p>
          +			</li>
          +			<li><span>7月16日</span><p><span>推出站长博客栏目。blog.chinaz.com</span></p>
          +			</li>
          +			<li><span>8月28日</span><p><span>网站在Alexa.com的全球网站当日排名进入200名内(199名)!</span></p>
          +			</li>
          +			<li><span>9月1日</span><p><span>中国站长联盟(cnzz.com)推出,开始提供统计服务!</span></p>
          +			</li>
          +			<li><span>10月9日</span><p><span>子站点中国站长联盟(cnzz.com)当日排名进入1000名内(890)!</span></p>
          +			</li>
          +			<li><span>11月5日</span><p><span>子站点中国站长联盟(cnzz.com)当日排名进入500名内(485)!</span></p>
          +			</li>
          +			<li><span>12月16日</span><p><span>chinaz.com正式进入alexa全球总排名200名以内。(第195名)</span></p>
          +			</li>
          +			<li><span>12月23日</span><p><span>中国站长联盟(cnzz.com)的免费统计分析服务当日统计量突破1.8亿次!</span></p>
          +			</li>
          +			<li><span>12月27日</span><p><span>网站在Alexa.com的全球网站当日排名进入100名内(97名)!</span></p>
          +			</li>
          +		</div>
          +		<div>
          +			<h3 id="2004">2004</h3>
          +			<li><span>3月2日</span><p><span>网站论坛帖子突破100万!</span></p>
          +			</li>
          +			<li><span>4月18日</span><p><span>下载栏目提供下载次数突破2000万!</span></p>
          +			</li>
          +			<li><span>4月20日</span><p><span>9126.com免费转向域名系统为用户提供转向次数突破1亿次!</span></p>
          +			</li>
          +			<li><span>5月7日</span><p><span>网站在Alexa.com的全球网站排名中正式进入1000名内(全球第958名)!</span></p>
          +			</li>
          +			<li><span>8月3日</span><p><span>网站在Alexa.com的全球网站当日排名进入500名内(495名)!</span></p>
          +			</li>
          +			<li><span>9月3日</span><p><span>域名交易栏目测试开通!</span></p>
          +			</li>
          +		</div>
          +		<div>
          +			<h3 id="2003">2003</h3>
          +			<li><span>3月22日</span><p><span>网站注册用户达到50000</span></p>
          +			</li>
          +			<li><span>4月12日</span><p><span>9126.com免费转向域名系统为站长们提供的转向次数突破2000万!</span></p>
          +			</li>
          +			<li><span>5月13日</span><p><span>下载栏目提供下载次数突破1000万!</span></p>
          +			</li>
          +			<li><span>6月13日</span><p><span>虚拟主机栏目正式开通!(idc.chinaz.com)</span></p>
          +			</li>
          +			<li><span>6月25日</span><p><span>网站日访问量突破20万!</span></p>
          +			</li>
          +			<li><span>7月3日</span><p><span>在Alexa.com的全球网站排名进入1万名以内(9826)!</span></p>
          +			</li>
          +			<li><span>7月9日</span><p><span>9126.com免费转向域名系统注册用户突破10万!</span></p>
          +			</li>
          +			<li><span>10月19日</span><p><span>网站论坛帖子突破50万!</span></p>
          +			</li>
          +			<li><span>11月2日</span><p><span>网站在Alexa.com的全球网站当日排名进入1000名内(974名)!</span></p>
          +			</li>
          +			<li><span>11月3日</span><p><span>网站注册用户突破10万!</span></p>
          +			</li>
          +			<li><span>12月26日</span><p><span>网站在Alexa.com的全球网站当日排名再创新高!!(636名)</span></p>
          +			</li>
          +		</div>
          +		<div>
          +			<h3 id="2002">2002</h3>
          +			<li><span>12月28</span>
          +			<p><span>网站主域名更改为chinaz.com</span></p>
          +			</li>
          +			<li><span>12月27日</span>
          +			<p><span>网站注册用户达到20000</span></p>
          +			</li>
          +			<li><span>11月20日</span>
          +			<p><span>网站日访问量突破10万!</span></p>
          +			</li>
          +			<li><span>10月21日</span>
          +			<p><span>免费转向域名栏目开始提供服务</span></p>
          +			</li>
          +			<li><span>5月1日</span>
          +			<p><span>网站正式对外公布,下载栏目正式开通</span></p>
          +			</li>
          +			<li><span>4月1日</span>
          +			<p><span>网站主域名更改为cnzzz.com</span></p>
          +			</li>
          +			<li><span>3月3日</span>
          +			<p><span>网站开始筹建(chinazzz.com)</span></p>
          +			</li>
          +		</div>
          +	</ul>
          +	<div class="clearfix">
          +	</div>
          +</div>
          +</div>
          +<script src="js/jquery.min_v1.0.js" type="text/javascript"></script>
          +<script>
          +$(function(){
          +	$('label').click(function(){
          +		$('.event_year>li').removeClass('current');
          +		$(this).parent('li').addClass('current');
          +		var year = $(this).attr('for');
          +		$('#'+year).parent().prevAll('div').slideUp(800);
          +		$('#'+year).parent().slideDown(800).nextAll('div').slideDown(800);
          +	});
          +});
          +</script>
          +<!-- 代码结束 -->
          +
          +
          +</body>
          +
          +</html>
          diff --git "a/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/js/jquery.min_v1.0.js" "b/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/js/jquery.min_v1.0.js"
          new file mode 100644
          index 0000000..fcb65a7
          --- /dev/null
          +++ "b/\346\227\266\351\227\264date/\346\227\266\351\227\264\350\275\264/js/jquery.min_v1.0.js"
          @@ -0,0 +1,4 @@
          +/*! jQuery v1.7.1 jquery.com | jquery.org/license *//* 代码整理:大头网 www.datouwang.com */
          +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;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 bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?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<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.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=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?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<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}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}}}}),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<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
          +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){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<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\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;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=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 b<c[3]-0},gt:function(a,b,c){return b>c[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<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=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;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",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 href='#'></a>",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="<p class='TEST'></p>";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="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</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){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
          +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;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(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!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&&X.test(k)&&o.insertBefore(b.createTextNode(X.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<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.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(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,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=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.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}),bz=bA||bB,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 bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.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("<div>").append(c.replace(bN,"")).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||bO.test(this.nodeName)||bI.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(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[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","*":bX},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:bZ(bT),ajaxTransport:bZ(bU),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?cb(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=cc(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=bH.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(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.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]!=="*"?", "+bX+"; 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=b$(bU,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){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),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&&(ce.test(b.url)||e&&ce.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(ce,l),b.url===j&&(e&&(k=k.replace(ce,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 cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,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,cf&&delete ch[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=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=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<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["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=cy(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=cy(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,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
          \ No newline at end of file