diff -Nru okasha-0.2.1/debian/changelog okasha-0.2.4/debian/changelog --- okasha-0.2.1/debian/changelog 2011-05-08 14:45:41.000000000 +0000 +++ okasha-0.2.4/debian/changelog 2011-07-30 14:45:34.000000000 +0000 @@ -1,3 +1,18 @@ +okasha (0.2.4-1) unstable; urgency=low + + * New upstream release. + * debian/python-okasha-examples.install: Install demo-themes instead of + files & templates. + * Updated debian/python-okasha-examples.links + * debian/copyright: update copyright years + * debian/control: + + Put python-all in Build-Depends rather than Build-Depends-Indep + (Closes: #606375) + + Bumped Standards-Version to 3.9.2, no changes needed. + * Bumped compat level to 8. + + -- أحمد المحمودي (Ahmed El-Mahmoudy) Thu, 28 Jul 2011 14:47:44 +0200 + okasha (0.2.1-2) unstable; urgency=low * Team upload. diff -Nru okasha-0.2.1/debian/compat okasha-0.2.4/debian/compat --- okasha-0.2.1/debian/compat 2010-10-26 22:27:33.000000000 +0000 +++ okasha-0.2.4/debian/compat 2011-05-08 08:59:16.000000000 +0000 @@ -1 +1 @@ -7 +8 diff -Nru okasha-0.2.1/debian/control okasha-0.2.4/debian/control --- okasha-0.2.1/debian/control 2010-12-02 16:30:43.000000000 +0000 +++ okasha-0.2.4/debian/control 2011-07-28 12:31:33.000000000 +0000 @@ -3,9 +3,8 @@ Priority: optional Maintainer: Debian Python Modules Team Uploaders: أحمد المحمودي (Ahmed El-Mahmoudy) -Build-Depends: debhelper (>= 7.0.50~) -Build-Depends-Indep: python-all (>= 2.6.6-2) -Standards-Version: 3.9.1 +Build-Depends: debhelper (>= 8), python-all (>= 2.6.6-3~) +Standards-Version: 3.9.2 Homepage: http://okasha.ojuba.org Vcs-Svn: svn://svn.debian.org/python-modules/packages/okasha/trunk/ Vcs-Browser: http://svn.debian.org/viewsvn/python-modules/packages/okasha/trunk/ diff -Nru okasha-0.2.1/debian/copyright okasha-0.2.4/debian/copyright --- okasha-0.2.1/debian/copyright 2010-11-22 16:22:23.000000000 +0000 +++ okasha-0.2.4/debian/copyright 2011-07-28 13:43:07.000000000 +0000 @@ -76,7 +76,7 @@ `/usr/share/common-licenses/GPL-2'. Files: debian/* -Copyright: 2010, أحمد المحمودي (Ahmed El-Mahmoudy) +Copyright: 2010-2011, أحمد المحمودي (Ahmed El-Mahmoudy) License: GPL-3+ or Waqf Public License License: GPL-3+ diff -Nru okasha-0.2.1/debian/python-okasha-examples.install okasha-0.2.4/debian/python-okasha-examples.install --- okasha-0.2.1/debian/python-okasha-examples.install 2010-10-26 22:27:33.000000000 +0000 +++ okasha-0.2.4/debian/python-okasha-examples.install 2011-07-28 12:31:33.000000000 +0000 @@ -1,4 +1,3 @@ -files/ usr/share/doc/python-okasha/examples/ -templates/ usr/share/doc/python-okasha/examples/ +demo-themes/ usr/share/doc/python-okasha/examples/ test.py usr/share/doc/python-okasha/examples/ test.wsgi usr/share/doc/python-okasha/examples/ diff -Nru okasha-0.2.1/debian/python-okasha-examples.links okasha-0.2.4/debian/python-okasha-examples.links --- okasha-0.2.1/debian/python-okasha-examples.links 2010-10-26 22:27:33.000000000 +0000 +++ okasha-0.2.4/debian/python-okasha-examples.links 2011-07-28 12:31:33.000000000 +0000 @@ -1 +1 @@ -usr/share/javascript/jquery/jquery.min.js usr/share/doc/python-okasha/examples/files/jquery.min.js +usr/share/javascript/jquery/jquery.min.js usr/share/doc/python-okasha/examples/demo-themes/default/static/jquery.min.js Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/10.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/10.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/11.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/11.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/12.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/12.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/13.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/13.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/14.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/14.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/15.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/15.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/1.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/1.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/2.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/2.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/3.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/3.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/4.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/4.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/5.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/5.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/6.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/6.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/7.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/7.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/8.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/8.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/9.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/9.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/caution.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/caution.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/important.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/important.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/note.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/note.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/tip.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/tip.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/titlepage.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/titlepage.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/docbook-img/warning.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/docbook-img/warning.png differ diff -Nru okasha-0.2.1/demo-themes/default/static/jquery.min.js okasha-0.2.4/demo-themes/default/static/jquery.min.js --- okasha-0.2.1/demo-themes/default/static/jquery.min.js 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/default/static/jquery.min.js 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1,19 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/logo.gif and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/logo.gif differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/default/static/logo.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/default/static/logo.png differ diff -Nru okasha-0.2.1/demo-themes/default/static/logo.svg okasha-0.2.4/demo-themes/default/static/logo.svg --- okasha-0.2.1/demo-themes/default/static/logo.svg 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/default/static/logo.svg 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1,155 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru okasha-0.2.1/demo-themes/default/static/okasha-docbook.css okasha-0.2.4/demo-themes/default/static/okasha-docbook.css --- okasha-0.2.1/demo-themes/default/static/okasha-docbook.css 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/default/static/okasha-docbook.css 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1,194 @@ +/* + +CSS for Red Hat Linux Project docs from the Documentation Project + +Written by Tammy Fox and Garrett LeSage + +Copyright 2003 Tammy Fox, Garrett LeSage, and Red Hat, Inc. +Copywight 2005 Tommy Reynolds + +License: GPL + +*/ + +body { + background-attachment scroll; + background-color: #FEFEFF; + background-image: url('watermark.png'); + background-position: top center; + background-repeat: repeat; + margin-left: 1.5em; + margin-right: 1.5em; + direction: rtl; +} + +p { + line-height: 140%; +} + +li p { + # display: inline; +} + +li p.title { + display: inline; +} + +div.table table { + width: 95%; + background-color: #DCDCDC; + color: #000000; + border-spacing: 0; +} + +div.table table th { + border: 1px solid #A9A9A9; + background-color: #A9A9A9; + color: #000000; +} + +div.table table td { + border: 1px solid #A9A9A9; + background-color: #DCDCDC; + color: #000000; + padding: 0.5em; + margin-bottom: 0.5em; + margin-top: 2px; + +} + +div.note table, div.tip table, div.important table, div.caution table, div.warning table { + width: 95%; + border: 2px solid #D0D0B0; + background-color: #FAF9E0; + color: #000000; + /* padding inside table area */ + padding: 0.5em; + margin-bottom: 0.5em; + margin-top: 0.5em; +} + +.qandaset table { + border-collapse: collapse; +} +.qandaset { +} +.qandaset tr.question { +} +.qandaset tr.question td { + font-weight: bold; + padding: 1em 1em 0; +} +.qandaset tr.answer td { + padding: 0.25em 1em 1.5em; +} +.qandaset tr.question td, .qandaset tr.answer td { +} + +.segmentedlist { +} +.segmentedlist .title { + font-weight: bold; + margin-bottom: 0.5em; + margin-top: 1.5em; +} +.segmentedlist table { + border-collapse: collapse; + margin-bottom: 2em; +} +.segmentedlist tr { + border: 1px solid #22437f; +} +.segmentedlist tr.segtitle { + background: #33649f; + color: #fefefe; + font-weight: bold; +} +.segmentedlist th { + text-align: left; + padding: 0.5em 5em 0.5em 0.5em; +} +.segmentedlist td { + padding: 0.5em 5em 0.5em 0.5em; +} + +hr { + border: 0; + border-bottom: 1px solid #ccc; +} + +h1, h2, h3, h4 { + font-family: luxi sans,sans-serif; + color: #22437f; + font-weight: bold; +} +h1 { + font-size: 1.75em; +} + +h2 { + font-size: 1.25em; +} + +h3 { + font-size: 1.1em; +} + +a:link { + color: #060; +} +a:visited { + color: #240; +} +a:hover { + color: #02f; +} +code.programlisting, pre.programlisting { + direction: ltr; +} + +code.screen, pre.screen { + direction: ltr; + font-family: monospace; + font-size: 1em; + display: block; + padding: 10px; + border: 1px solid #bbb; + background-color: #eee; + color: #000; + overflow: auto; + border-radius: 2.5px; + -moz-border-radius: 2.5px; + margin: 0.5em 2em; +} + +div.example { + direction: ltr; + padding: 10px; + border: 1px solid #bbb; + margin: 0.5em 2em; +} + +.procedure ol li { + margin-bottom: 0.5em; +} +.procedure ol li li { + /* prevent inheritance */ + margin-bottom: 0em; +} +.procedure ol li pre { + direction: ltr; + margin-bottom: 1em; +} + +.itemizedlist ul li { + margin-bottom: 0.5em; +} +.itemizedlist ul li li { + /* prevent inheritance */ + margin-bottom: 0em; +} + +p.title { + text-align: center; +} diff -Nru okasha-0.2.1/demo-themes/default/templates/bottle-base.tpl okasha-0.2.4/demo-themes/default/templates/bottle-base.tpl --- okasha-0.2.1/demo-themes/default/templates/bottle-base.tpl 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/default/templates/bottle-base.tpl 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1,9 @@ + + + {{_r.title or "Fallback title"}} + + +%include + + + diff -Nru okasha-0.2.1/demo-themes/default/templates/bottle-header.tpl okasha-0.2.4/demo-themes/default/templates/bottle-header.tpl --- okasha-0.2.1/demo-themes/default/templates/bottle-header.tpl 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/default/templates/bottle-header.tpl 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1,2 @@ +

{{title}}

+ diff -Nru okasha-0.2.1/demo-themes/default/templates/bottle-test.tpl okasha-0.2.4/demo-themes/default/templates/bottle-test.tpl --- okasha-0.2.1/demo-themes/default/templates/bottle-test.tpl 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/default/templates/bottle-test.tpl 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1,15 @@ +%_r.title="Fav Colors :: Bottle Test" + +%include bottle-header title="Fav Color" + +%if colors: +%for c in colors: +

I like {{c}} apple

+%end +%else: +

no color is provided

+%end +

for more details on this template visit Bottle Docs

+ +%rebase bottle-base + diff -Nru okasha-0.2.1/demo-themes/default/templates/cookies.html okasha-0.2.4/demo-themes/default/templates/cookies.html --- okasha-0.2.1/demo-themes/default/templates/cookies.html 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/default/templates/cookies.html 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1,17 @@ + + + +cookies with okasha + + + +

welcome to okasha sample web application

+

the previous value for color cookie was [%(color)s]

+
+ + +
+ + diff -Nru okasha-0.2.1/demo-themes/default/templates/docbook.xsl okasha-0.2.4/demo-themes/default/templates/docbook.xsl --- okasha-0.2.1/demo-themes/default/templates/docbook.xsl 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/default/templates/docbook.xsl 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1,16 @@ + + +1 +/_files/okasha-docbook.css +text/css +1 +/_files/docbook-img/ +/_files/docbook-img/ +figure after +example after +equation afer +table after +procedure after + + diff -Nru okasha-0.2.1/demo-themes/default/templates/format.html okasha-0.2.4/demo-themes/default/templates/format.html --- okasha-0.2.1/demo-themes/default/templates/format.html 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/default/templates/format.html 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1,16 @@ + + + +{title} + + + +

this is from tmp.html template

+we get the following arguments: {args}
+the value of key2 is {key2}
+again the value of key2 is {key2}
+I don't want to show you the value of key1
+ + diff -Nru okasha-0.2.1/demo-themes/default/templates/kidtest.kid okasha-0.2.4/demo-themes/default/templates/kidtest.kid --- okasha-0.2.1/demo-themes/default/templates/kidtest.kid 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/default/templates/kidtest.kid 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1,24 @@ + + + + + + This is replaced with the value of the title variable. + + + +

title goes here

+
    +
  • I like ${fruit}s
  • +
+

+ The current time is ${time.strftime('%C %c')}. +

+ + + diff -Nru okasha-0.2.1/demo-themes/default/templates/main.html okasha-0.2.4/demo-themes/default/templates/main.html --- okasha-0.2.1/demo-themes/default/templates/main.html 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/default/templates/main.html 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1,50 @@ + + + +%(title)s + + + + +

welcome to okasha sample web application

+

we are running %(version)s in %(mode)s

+random:[] - time:[] +
+
+ + +
+
the uppser case version of your input is []
+
we can split your input by - to be +
    +
+
+ + + diff -Nru okasha-0.2.1/demo-themes/default/templates/test.xsl okasha-0.2.4/demo-themes/default/templates/test.xsl --- okasha-0.2.1/demo-themes/default/templates/test.xsl 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/default/templates/test.xsl 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + diff -Nru okasha-0.2.1/demo-themes/default/templates/tmp.html okasha-0.2.4/demo-themes/default/templates/tmp.html --- okasha-0.2.1/demo-themes/default/templates/tmp.html 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/default/templates/tmp.html 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1,16 @@ + + + +%(title)s + + + +

this is from tmp.html template

+we get the following arguments: %(args)s
+the value of key2 is %(key2)s
+again the value of key2 is %(key2)s
+I don't want to show you the value of key1
+ + diff -Nru okasha-0.2.1/demo-themes/default/templates/upload.html okasha-0.2.4/demo-themes/default/templates/upload.html --- okasha-0.2.1/demo-themes/default/templates/upload.html 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/default/templates/upload.html 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1,23 @@ + + + +file uploads with okasha + + + +

welcome to okasha sample web application

+

Upload file to /tmp

+
+ + + +
+the last submitted value for b was "%(b)s" and for color was "%(color)s" +and the content of the submitted file is +
+%(f)s
+
+ + Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/demo-themes/fancy/static/logo.png and /tmp/f9qFDqVtfg/okasha-0.2.4/demo-themes/fancy/static/logo.png differ diff -Nru okasha-0.2.1/demo-themes/fancy/theme.txt okasha-0.2.4/demo-themes/fancy/theme.txt --- okasha-0.2.1/demo-themes/fancy/theme.txt 1970-01-01 00:00:00.000000000 +0000 +++ okasha-0.2.4/demo-themes/fancy/theme.txt 2011-07-27 20:32:33.000000000 +0000 @@ -0,0 +1 @@ +parent=default diff -Nru okasha-0.2.1/docs/deployment.html okasha-0.2.4/docs/deployment.html --- okasha-0.2.1/docs/deployment.html 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/docs/deployment.html 2011-07-27 20:32:33.000000000 +0000 @@ -28,9 +28,10 @@ +
  • +
  • @@ -38,9 +39,7 @@
    - - -

    طرق النشر

    +

    طرق النشر

    @@ -52,8 +51,8 @@

    - -

    طريقة CGI البائدة وما يشبهها

    + +

    طريقة CGI البائدة وما يشبهها

    @@ -65,8 +64,8 @@

    - -

    عبر خادم python-paste المنضدد

    + +

    عبر خادم python-paste المنضدد

    @@ -74,18 +73,16 @@

    - -

    عبر mod_proxy في apache

    + +

    عبر mod_proxy في apache

    لنفرض أن التطبيق يعمل على خادم paste الضمني على المنفذ 8080 ويستمع فقط للطلبات المحلية على العنوان 127.0.0.1 أي localhost حتى نجعله متوفر عبر خادم apache العام على منفذ 80 يمكننا بكل بساطة أن نضيف ما يلي إلى إعدادات Apache

    -
    -ProxyPass         /myapp  http://localhost:8080/
    -ProxyPassReverse  /myapp  http://localhost:8080/
    -
    +
    ProxyPass         /myapp  http://localhost:8080/
    +ProxyPassReverse  /myapp  http://localhost:8080/

    وفي هذه الحالة ستحال الطلبات القدمة إلى المنفذ 80 إن كانت تبدأ ب /myapp إلى http://localhost:8080/ @@ -97,8 +94,8 @@

    - -

    عبر google app engine

    + +

    عبر google app engine

    @@ -123,22 +120,19 @@ ونعمل ملف app.yaml نخبره أن يحل كل شيء إلى apptest.py هكذا

    -
    -application: okashaTest
    +
    application: okashaTest
     version: 1
     runtime: python
     api_version: 1
     
     handlers:
     - url: .*
    -  script: apptest.py
    -
    + script: apptest.py

    بعدها قم بتجربته فإن كان كل شيء على خير ما يرام يمكنك نقل تخديم الملفات الساكنة إلى google apps عوضا عن عكاشة بتعديل الملف app.yaml إلى

    -
    -application: okashaTest
    +
    application: okashaTest
     version: 1
     runtime: python
     api_version: 1
    @@ -148,8 +142,7 @@
       static_dir: files
     
     - url: .*
    -  script: apptest.py
    -
    + script: apptest.py

    ملاحظة: لا تستطيع استخدام قوالب formatTemplate لأنها غير متوفرة في بايثون 2.5 بل 2.6. @@ -165,18 +158,18 @@

    - -

    عبر mod_python في خادم apache

    + +

    عبر mod_python في خادم apache

    - -

    عبر mod_wsgi في خادم apache

    + +

    عبر mod_wsgi في خادم apache

    - -

    طريقة توزيع الملفات

    + +

    طريقة توزيع الملفات

    @@ -194,7 +187,7 @@ import sys, os, os.path prefix=os.path.expanduser('~/myapp-files/') pyprefix=os.path.expanduser('~/pyapps/') -sys.path.insert(0, pyprefix) +sys.path.insert(0, pyprefix) from myapp import MyApp application=MyApp( os.path.join(prefix,'templates'), @@ -206,8 +199,8 @@

    - -

    إعداد apache

    + +

    إعداد apache

    @@ -238,9 +231,41 @@ </Directory>

    - -

    خادم أخرى

    -
    + +

    عبر Fast CGI

    +
    + +

    +توفر flup دعم fast cgi تطليقات wsgi مثل عكاشة كل ما عليك هو عمل ملف يشبه الملف أدناه وتسميته myapp.fcgi وحفظه في مكان يراه خادم apache +

    +
    #! /usr/bin/python
    +# -*- coding: UTF-8 -*-
    + 
    +sys.path.insert(0, os.path.expanduser('~/projects/'))
    +from flup.server.fcgi import WSGIServer
    +from myapp import MyApp
    +application=MyApp(
    +  os.path.join(prefix,'templates'),
    +  staticBaseDir={'/media/':os.path.join(prefix,'static-files')}
    +  );
    + 
    +if __name__ == '__main__':
    +  WSGIServer(application).run()
    + +

    +انظر +

    + + +
    + +

    خوادم أخرى

    +

    من أفضل خوادم WSGI أداءً وتوفيرا في الذاكرة وسرعة الاستجابة @@ -253,11 +278,13 @@

  • +
  • +
  • - -

    تقييم خوادم WSGI

    + +

    تقييم خوادم WSGI

    @@ -270,6 +297,6 @@

    -
    + diff -Nru okasha-0.2.1/docs/elixir.html okasha-0.2.4/docs/elixir.html --- okasha-0.2.1/docs/elixir.html 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/docs/elixir.html 2011-07-27 20:32:33.000000000 +0000 @@ -36,14 +36,12 @@ - - -

    قواعد البيانات عبر الإكسير

    +

    قواعد البيانات عبر الإكسير

    - -

    مقدمة

    + +

    مقدمة

    @@ -91,13 +89,13 @@

    - -

    الإكسير من خارج عكاشة

    + +

    الإكسير من خارج عكاشة

    - -

    عمل المخطط

    + +

    عمل المخطط

    @@ -170,8 +168,8 @@

    - -

    تنفيذ المخطط

    + +

    تنفيذ المخطط

    @@ -184,10 +182,10 @@ class Book(Entity): using_options(tablename="book") n = Field(Integer, primary_key=True, autoincrement=True) - title = Field(Unicode(30), index=True) + title = Field(Unicode(30), index=True) description = Field(UnicodeText) year = Field(Integer) - isbn = Field(String(16), index=True, unique=True) + isbn = Field(String(16), index=True, unique=True) authors = ManyToMany('Author', lazy=False) publisher = ManyToOne('Publisher', lazy=False) keywords = ManyToMany('Keywords', lazy=False) @@ -195,7 +193,7 @@ class Author(Entity): using_options(tablename="author") n = Field(Integer, primary_key=True, autoincrement=True) - name = Field(Unicode(30), index=True) + name = Field(Unicode(30), index=True) details = Field(UnicodeText) year_of_birth = Field(Integer, index=True) year_of_death = Field(Integer, index=True, default=0) @@ -204,13 +202,13 @@ class Publisher(Entity): using_options(tablename="publisher") n = Field(Integer, primary_key=True, autoincrement=True) - name = Field(Unicode(30), index=True) + name = Field(Unicode(30), index=True) books = OneToMany('Book', lazy=True)   class Keywords(Entity): using_options(tablename="keywords") n = Field(Integer, primary_key=True, autoincrement=True) - name = Field(Unicode(30), index=True) + name = Field(Unicode(30), index=True) books = ManyToMany('Book', lazy=True)

    @@ -258,8 +256,8 @@

    elixir.metadata.bind.echo = True
    - -

    إضافة المدخلات

    + +

    إضافة المدخلات

    @@ -307,8 +305,8 @@

    - -

    الاستعلام والتعديل

    + +

    الاستعلام والتعديل

    @@ -349,30 +347,30 @@ print "."

    - -

    الاستعلام والفلترة

    + +

    الاستعلام والفلترة

    بطريقة مشابهة لنفرض أننا نريد كل الكتب التي طبعت بعد 1960

    -
    books=Book.query.filter(Book.year>1960)
    +
    books=Book.query.filter(Book.year>1960)
     for b in books: print b.title, "@", b.year

    يمكننا أيضا تركيب الفلاتر وراء بعضها كذلك يمكننا ترتيب النتائج وأخذ أول كذا نتيجة

    -
    books=Book.query.filter(Book.year>1960).order_by(elixir.sqlalchemy.desc(Book.year)).limit(10)
    +
    books=Book.query.filter(Book.year>1960).order_by(elixir.sqlalchemy.desc(Book.year)).limit(10)
     for b in books: print b.title, "@", b.year
    - -

    مثال على ربطها مع عكاشة

    + +

    مثال على ربطها مع عكاشة

    - + diff -Nru okasha-0.2.1/docs/index.html okasha-0.2.4/docs/index.html --- okasha-0.2.1/docs/index.html 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/docs/index.html 2011-07-27 20:32:33.000000000 +0000 @@ -42,14 +42,12 @@ - - -

    إطار الويب عكاشة

    +

    إطار الويب عكاشة

    - -

    تمهيد

    + +

    تمهيد

    @@ -66,8 +64,8 @@

    - -

    الوثائق

    + +

    الوثائق

    @@ -86,13 +84,13 @@

    - -

    الأسئلة الشائعة

    + +

    الأسئلة الشائعة

    - -

    ما هو عكاشة ؟

    + +

    ما هو عكاشة ؟

    @@ -101,8 +99,8 @@

    - -

    من هو عكاشة ؟

    + +

    من هو عكاشة ؟

    @@ -110,8 +108,8 @@

    - -

    ما معنى الكلمة ؟

    + +

    ما معنى الكلمة ؟

    @@ -127,8 +125,8 @@

    - -

    من أين أحصل عليه ؟

    + +

    من أين أحصل عليه ؟

    @@ -140,8 +138,8 @@

    - -

    لماذا لم يكتب على php كبقية التطبيقات في العالم ؟

    + +

    لماذا لم يكتب على php كبقية التطبيقات في العالم ؟

    @@ -149,8 +147,8 @@

    - -

    هل هو وفق بُنية MVC ؟

    + +

    هل هو وفق بُنية MVC ؟

    @@ -158,8 +156,8 @@

    - -

    هل يدفع أم يسحب ؟

    + +

    هل يدفع أم يسحب ؟

    @@ -171,8 +169,8 @@

    - -

    أين تضعه مقارنة بالأطر البايثونية الأخرى ؟

    + +

    أين تضعه مقارنة بالأطر البايثونية الأخرى ؟

    @@ -198,8 +196,8 @@

    - -

    كيف يمكنني اختبار برنامجي ؟

    + +

    كيف يمكنني اختبار برنامجي ؟

    @@ -207,8 +205,8 @@

    - -

    أين أجد هكذا خادم ضمني ؟

    + +

    أين أجد هكذا خادم ضمني ؟

    @@ -217,8 +215,8 @@

    - -

    كيف يمكنني نشر تطبيق الويب ؟ وأي الاستضافات تدعمه ؟

    + +

    كيف يمكنني نشر تطبيق الويب ؟ وأي الاستضافات تدعمه ؟

    @@ -247,7 +245,7 @@

    -
    +
    1) هو عكاشة بن محصن بن حرثان بن قيس بن مرة بن كبير بن غنم بن دودان بن أسد بن خزيمة
    diff -Nru okasha-0.2.1/docs/sample1.html okasha-0.2.4/docs/sample1.html --- okasha-0.2.1/docs/sample1.html 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/docs/sample1.html 2011-07-27 20:32:33.000000000 +0000 @@ -32,9 +32,7 @@
    - - -

    مثال أولي بسيط

    +

    مثال أولي بسيط

    @@ -54,8 +52,8 @@

    - -

    كيف نبدأ ؟

    + +

    كيف نبدأ ؟

    @@ -83,8 +81,8 @@

    - -

    كيف نشغّل هذا التطبيق ؟

    + +

    كيف نشغّل هذا التطبيق ؟

    @@ -102,7 +100,7 @@ from paste import httpserver from myapp import MyApp   -d=os.path.dirname(sys.argv[0]) +d=os.path.dirname(sys.argv[0]) application=MyApp( os.path.join(d,'templates'), staticBaseDir={'/media/':os.path.join(d,'media')} @@ -132,7 +130,7 @@ from paste import httpserver import sys, os, os.path   - d=os.path.dirname(sys.argv[0]) + d=os.path.dirname(sys.argv[0]) application=MyApp( os.path.join(d,'templates'), staticBaseDir={'/media/':os.path.join(d,'media')} @@ -144,8 +142,8 @@

    - -

    ما معنى الكود ؟

    + +

    ما معنى الكود ؟

    @@ -196,7 +194,7 @@ نقوم بعمل هذا الكائن كما نعمل أي متغير أو كائن في بايثون

    -
        d=os.path.dirname(sys.argv[0])
    +
        d=os.path.dirname(sys.argv[0])
         application=MyApp(
           os.path.join(d,'templates'),
           staticBaseDir={'/media/':os.path.join(d,'media')}
    @@ -221,8 +219,8 @@
     

    - -

    ماذا يفعل هذا التطبيق الخالي ؟

    + +

    ماذا يفعل هذا التطبيق الخالي ؟

    @@ -240,8 +238,8 @@

    You requested [/hello/omar]
    - -

    كتابة دالة خاصة بنا

    + +

    كتابة دالة خاصة بنا

    @@ -280,13 +278,13 @@ </body></html>""" % rq.script

    - -

    التفاعل مع عناوين URL

    + +

    التفاعل مع عناوين URL

      @expose()
       def hello(self, rq, *args):
         if not args: s="world"
    -    else: s=args[0]
    +    else: s=args[0]
         return """<html><body>
     <h1>Hello, %s!</h1>
     </body></html>""" % s
    @@ -330,8 +328,8 @@
     

    - -

    التفاعل مع النماذج forms

    + +

    التفاعل مع النماذج forms

    @@ -353,7 +351,7 @@

    -
    +
    1) الاعتماديات التي نحتاجها في هذا المثال هي عكاشة و python-paste فقط
    diff -Nru okasha-0.2.1/docs/templates.html okasha-0.2.4/docs/templates.html --- okasha-0.2.1/docs/templates.html 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/docs/templates.html 2011-07-27 20:32:33.000000000 +0000 @@ -31,9 +31,7 @@
    - - -

    القوالب

    +

    القوالب

    @@ -45,8 +43,8 @@

    - -

    قوالب formatTemplate

    + +

    قوالب formatTemplate

    @@ -82,9 +80,7 @@ توفر هذه الدالة الكثير من طرق التنسيق مثلا

    -
    -<tt>{balance:.3f}</tt>
    -
    +
    <tt>{balance:.3f}</tt>

    هذه الطريقة مفيدة جدا إلا أنه يعيبها @@ -107,8 +103,8 @@

    - -

    قوالب percentTemplate

    + +

    قوالب percentTemplate

    @@ -151,8 +147,8 @@

    - -

    قالب jsonDumps

    + +

    قالب jsonDumps

    @@ -179,8 +175,8 @@

    - -

    قوالب bottle المتقدمة

    + +

    قوالب bottle المتقدمة

    @@ -196,26 +192,20 @@ في هذا القالب تستطيع وضع أي تعبير بايثوني (على أن يعيد نص أو عدة نصوص) بين حاصرتين مزدوجتين هكذا:

    -
    -Hello, {{name}}!
    -
    +
    Hello, {{name}}!

    هنا سيتم تعويض قيمة name بعد Hello. والتي قد تعطي شيء يشبه

    -
    -Hello, Ali!
    -
    +
    Hello, Ali!

    يمكن استخدام تعابير أعقد مثل

    -
    -Hello, {{user.get_name() if user else "world"}}!
    -
    +
    Hello, {{user.get_name() if user else "world"}}!

    @@ -226,9 +216,7 @@ كذلك يعمل على تخطي العلامة الخاصة ب html حتى تظهر بالشكل الصحيح. مثلا إن كانت القيمة مثلا <a> فإنه سيحوله إلى &lt;a&gt; حتى يظهر في HTML كما هو فإن كنت تريده أن يظهر دون تخطي ضع ! بعد فتح الحاصرتين.

    -
    -Hello, {{!name}}!
    -
    +
    Hello, {{!name}}!

    يمكنك استخدام عبارات 'if' و 'elif' و 'else' و 'try' و 'except' و 'finally' و 'for' و 'while' و 'with' و 'def' و 'class' لكن على أن تبدأها ب % وأن لا يسبقها إلا مسافات وعلى أن تنهيها ب %end وذلك عوضا عن المسافات البادئة في بايثون مثلا يمكنك أن تعمل ما يشبه @@ -298,8 +286,8 @@

    - -

    قوالب kid المتقدمة

    + +

    قوالب kid المتقدمة

    @@ -335,12 +323,10 @@ لاحظ كيف استدعينا بايثون كما نفعل مع php هكذا

    -
    -<?python
    +
    <?python
     import time
     title = "A Kid Template"
    -?>
    -
    +?>

    @@ -377,8 +363,8 @@

    - -

    قوالب xslt

    + +

    قوالب xslt

    @@ -400,6 +386,6 @@

    - + Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/10.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/10.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/11.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/11.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/12.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/12.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/13.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/13.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/14.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/14.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/15.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/15.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/1.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/1.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/2.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/2.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/3.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/3.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/4.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/4.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/5.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/5.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/6.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/6.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/7.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/7.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/8.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/8.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/9.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/9.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/caution.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/caution.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/important.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/important.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/note.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/note.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/tip.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/tip.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/titlepage.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/titlepage.png differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/docbook-img/warning.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/docbook-img/warning.png differ diff -Nru okasha-0.2.1/files/jquery.min.js okasha-0.2.4/files/jquery.min.js --- okasha-0.2.1/files/jquery.min.js 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/files/jquery.min.js 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -/* - * jQuery JavaScript Library v1.3.2 - * http://jquery.com/ - * - * Copyright (c) 2009 John Resig - * Dual licensed under the MIT and GPL licenses. - * http://docs.jquery.com/License - * - * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) - * Revision: 6246 - */ -(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
    "]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
    ","
    "]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); -/* - * Sizzle CSS Selector Engine - v0.9.3 - * Copyright 2009, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

    ";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
    ";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
    ").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
    ';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/logo.gif and /tmp/f9qFDqVtfg/okasha-0.2.4/files/logo.gif differ Binary files /tmp/onHRCQ7W4E/okasha-0.2.1/files/logo.png and /tmp/f9qFDqVtfg/okasha-0.2.4/files/logo.png differ diff -Nru okasha-0.2.1/files/logo.svg okasha-0.2.4/files/logo.svg --- okasha-0.2.1/files/logo.svg 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/files/logo.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,155 +0,0 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru okasha-0.2.1/files/okasha-docbook.css okasha-0.2.4/files/okasha-docbook.css --- okasha-0.2.1/files/okasha-docbook.css 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/files/okasha-docbook.css 1970-01-01 00:00:00.000000000 +0000 @@ -1,194 +0,0 @@ -/* - -CSS for Red Hat Linux Project docs from the Documentation Project - -Written by Tammy Fox and Garrett LeSage - -Copyright 2003 Tammy Fox, Garrett LeSage, and Red Hat, Inc. -Copywight 2005 Tommy Reynolds - -License: GPL - -*/ - -body { - background-attachment scroll; - background-color: #FEFEFF; - background-image: url('watermark.png'); - background-position: top center; - background-repeat: repeat; - margin-left: 1.5em; - margin-right: 1.5em; - direction: rtl; -} - -p { - line-height: 140%; -} - -li p { - # display: inline; -} - -li p.title { - display: inline; -} - -div.table table { - width: 95%; - background-color: #DCDCDC; - color: #000000; - border-spacing: 0; -} - -div.table table th { - border: 1px solid #A9A9A9; - background-color: #A9A9A9; - color: #000000; -} - -div.table table td { - border: 1px solid #A9A9A9; - background-color: #DCDCDC; - color: #000000; - padding: 0.5em; - margin-bottom: 0.5em; - margin-top: 2px; - -} - -div.note table, div.tip table, div.important table, div.caution table, div.warning table { - width: 95%; - border: 2px solid #D0D0B0; - background-color: #FAF9E0; - color: #000000; - /* padding inside table area */ - padding: 0.5em; - margin-bottom: 0.5em; - margin-top: 0.5em; -} - -.qandaset table { - border-collapse: collapse; -} -.qandaset { -} -.qandaset tr.question { -} -.qandaset tr.question td { - font-weight: bold; - padding: 1em 1em 0; -} -.qandaset tr.answer td { - padding: 0.25em 1em 1.5em; -} -.qandaset tr.question td, .qandaset tr.answer td { -} - -.segmentedlist { -} -.segmentedlist .title { - font-weight: bold; - margin-bottom: 0.5em; - margin-top: 1.5em; -} -.segmentedlist table { - border-collapse: collapse; - margin-bottom: 2em; -} -.segmentedlist tr { - border: 1px solid #22437f; -} -.segmentedlist tr.segtitle { - background: #33649f; - color: #fefefe; - font-weight: bold; -} -.segmentedlist th { - text-align: left; - padding: 0.5em 5em 0.5em 0.5em; -} -.segmentedlist td { - padding: 0.5em 5em 0.5em 0.5em; -} - -hr { - border: 0; - border-bottom: 1px solid #ccc; -} - -h1, h2, h3, h4 { - font-family: luxi sans,sans-serif; - color: #22437f; - font-weight: bold; -} -h1 { - font-size: 1.75em; -} - -h2 { - font-size: 1.25em; -} - -h3 { - font-size: 1.1em; -} - -a:link { - color: #060; -} -a:visited { - color: #240; -} -a:hover { - color: #02f; -} -code.programlisting, pre.programlisting { - direction: ltr; -} - -code.screen, pre.screen { - direction: ltr; - font-family: monospace; - font-size: 1em; - display: block; - padding: 10px; - border: 1px solid #bbb; - background-color: #eee; - color: #000; - overflow: auto; - border-radius: 2.5px; - -moz-border-radius: 2.5px; - margin: 0.5em 2em; -} - -div.example { - direction: ltr; - padding: 10px; - border: 1px solid #bbb; - margin: 0.5em 2em; -} - -.procedure ol li { - margin-bottom: 0.5em; -} -.procedure ol li li { - /* prevent inheritance */ - margin-bottom: 0em; -} -.procedure ol li pre { - direction: ltr; - margin-bottom: 1em; -} - -.itemizedlist ul li { - margin-bottom: 0.5em; -} -.itemizedlist ul li li { - /* prevent inheritance */ - margin-bottom: 0em; -} - -p.title { - text-align: center; -} diff -Nru okasha-0.2.1/okasha/baseWebApp.py okasha-0.2.4/okasha/baseWebApp.py --- okasha-0.2.1/okasha/baseWebApp.py 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/okasha/baseWebApp.py 2011-07-27 20:32:33.000000000 +0000 @@ -68,14 +68,98 @@ e.kw['location']=l return e +class OkDict(dict): + """ + a dictionary that can be accessed through mydict.key + constructor takes an extra argument that is the default value + + you can't set values for the following keys: +'iteritems', 'pop', 'has_key', 'viewkeys', 'viewitems', 'itervalues', 'get', 'keys', 'update', 'popitem', 'copy', 'iterkeys', 'fromkeys', 'setdefault', 'viewvalues', 'items', 'clear', 'values' + + example usage: +mydict=OkDict(None, {"y":3}) +print mydict.x +print mydict.y +mydict.y=2 +mydict.x=7 +print mydict.x +print mydict.y + """ + def __init__(self, default=None, *a, **kw): + self.__dict__["_default"]=default + dict.__init__(self, *a, **kw) + self.__dict__["_protect"] = set(dir(self)) + self._protect.add("_protect") + #print filter(lambda s: not s.startswith('_'), self._protect) + def __getattr__(self, key): + return self.get(key, self._default) + def __setattr__(self, k, v): + if k in self._protect: raise KeyError + self[k]=v + return v + def __delattr__(self, key): + if self.has_key(key): del self[key] + return super(dict, self).__delattr__(key) + -class Response: +class Response(OkDict): def __init__(self, rq=None, code=None,contentType=None,headers=None): + OkDict.__init__(self) self.rq=rq self.code=code self.contentType=contentType self.headers=headers self.cookies=SimpleCookie('') + self.title=u'' + self.meta_description=u'' + self.meta_keywords=[] + self.js_links={} + self.css_links={} + + def add_js_link(self, js, weight=50, pos='head', name=None): + ''' + js is relative to theme + name is a way to avoid registering the same file twice + pos can be head, begin, end + ''' + if not name: name=os.path.basename(js) + if not self.js_links.has_key(pos): self.js_links[pos]={} + if self.js_links[pos].has_key(name): return False + self.js_links[pos][name]=(weight, js) + return True + + def add_css_link(self, css, weight=50, media='all', name=None): + ''' + css is relative to theme + name is a way to avoid registering the same file twice + ''' + if not name: name=os.path.basename(css) + if not self.css_links.has_key(media): self.css_links[media]={} + if self.css_links[media].has_key(name): return False + self.css_links[media][name]=(weight, css) + return True + + def render_css_links(self): + r=[] + for media, v in self.css_links.items(): + l=v.values() + l.sort() + for w,f in l: + r.append(u'' % ( + media, self.rq.script, self.rq.webapp._themePrefix, f, + )) + return u'\n'.join(r) + + def render_js_links(self, pos='head'): + if not self.js_links.has_key(pos): return '' + r=[] + l=self.js_links[pos].values() + l.sort() + for w,f in l: + r.append(u'' % ( + self.rq.script, self.rq.webapp._themePrefix, f, + )) + return u'\n'.join(r) def setCookie(self, key, value, t=None, path=None, domain=None, comment=None): """ @@ -178,7 +262,6 @@ except IOError: return -4 return r - class Request: def __init__(self, webapp, environ, start_response): self.webapp=webapp @@ -263,10 +346,7 @@ """ see http://docs.python.org/library/string.html#format-string-syntax """ - d=rq.webapp._templatesDir - if not os.path.isdir(d): raise fileNotFoundException() - if not bfn: bfn='root.html' - fn=os.path.join(d, bfn) + fn=rq.webapp._getTemplateFile(bfn) try: tmp=open(fn,'r').read().decode('utf-8') except IOError: raise fileNotFoundException() except: @@ -286,10 +366,7 @@ """ see http://docs.python.org/library/stdtypes.html#string-formatting-operations """ - d=rq.webapp._templatesDir - if not os.path.isdir(d): raise fileNotFoundException() - if not bfn: bfn='root.html' - fn=os.path.join(d, bfn) + fn=rq.webapp._getTemplateFile(bfn) try: tmp=open(fn,'r').read().decode('utf-8') except IOError: raise fileNotFoundException() except: @@ -315,6 +392,40 @@ def error(self, msg): pass def critical(self, msg): pass + +def parse_theme(theme_d): + r={} + fn=os.path.join(theme_d, u"theme.txt") + if not os.path.exists(fn): return {} + try: + f=open(fn) + t=f.readlines() + f.close() + except: return {} + for l in t: + a=l.strip().split("=",1) + if len(a)!=2: continue + r[a[0].strip()]=a[1].strip() + return r + +def get_theme_parent(theme_d): + t=parse_theme(theme_d) + return t.get('parent', None) + +def get_theme_dir(lookup, theme): + for i in lookup: + d=os.path.join(i, theme) + if os.path.isdir(d): return d + raise IOError + +def get_theme_dirs(lookup, theme): + parents=[] + while(theme): + d=get_theme_dir(lookup, theme) + parents.append(d) + theme=get_theme_parent(d) + return parents + class baseWebApp: """ The base for our web Application, it's a mini web framework @@ -326,7 +437,7 @@ 'jpg': 'image/jpeg', 'jpeg': 'image/jpeg' } - def __init__(self, templatesDir, staticBaseDir={}, redirectBaseUrls={}, logger=fakeLogger(), max_files_count=-1, debug=False): + def __init__(self, theme_lookup, theme='default', themePrefix='/theme/', staticBaseDir={}, redirectBaseUrls={}, logger=fakeLogger(), max_files_count=-1, debug=False): """ staticBaseDirs: a dictionary of prefixes and corresponding directories for serving static content redirectBaseUrls: just like staticBaseDirs, but redirect to this BaseUrls instead of surving them @@ -339,9 +450,15 @@ """ self._logger=logger # TODO: add a self._templateFilesCache - self._templatesDir=templatesDir + self._theme=theme + self._theme_lookup=theme_lookup + themesDir=get_theme_dirs(theme_lookup, theme) + if not hasattr(themesDir, '__iter__'): themesDir=[themesDir] + self._themesDir=map(os.path.abspath, themesDir) + self._templatesDir=map(lambda s: s+'/templates/', themesDir) # TODO: add a self._staticFilesCache self._staticBaseDir={} + self._themePrefix=themePrefix self._max_files_count=max_files_count self._debug=debug # FIXME: no longer needed for k in staticBaseDir: @@ -361,6 +478,16 @@ self._redirectBaseUrlsKeys.sort() self._redirectBaseUrlsKeys.reverse() + def _getTemplateFile(self, fn, default="root.html"): + if fn==None: fn=default + if hasattr(self._templatesDir, '__iter__'): + for i in self._templatesDir: + tfn=os.path.join(i, fn) + if os.path.isfile(tfn): return tfn + else: + return os.path.join(self._templatesDir, fn) + raise fileNotFoundException() + def _tailingOsSlash(self, s): if not s.endswith(os.sep): return s+os.sep return s @@ -399,6 +526,19 @@ # if not rq.uri: return ('File was not found',) # return ('File [%s] was not found' % rq.uri,) + def __serveTheme(self, rq): + """ + internal method to serve themed static files like png, css,js ...etc. + """ + fn=rq.uri[len(self._themePrefix):] + if os.sep!='/': fn=fn.replace('/', os.sep) + for i in self._themesDir: + ffn=os.path.join(i, 'static', fn) + if not os.path.abspath(ffn).startswith(i): + return self._handleException(rq, forbiddenException()) + if os.path.exists(ffn): return self.__serveStatic(rq, ffn) + return self._handleException(rq, notModifiedException() ) + def __serveStatic(self, rq, fn): """ internal method to serve static files like png, css,js ...etc. @@ -428,6 +568,10 @@ self._logger.info('got request for uri=[%s] from ip=[%s]' % (rq.uri,rq.environ.get('REMOTE_ADDR','unkown'))) self._logger.debug('got env=[%s]' % rq.environ) rq.q._ok_max_files_count=self._max_files_count + if rq.uri.startswith(self._themePrefix): + try: return self.__serveTheme(rq) + except webAppBaseException as e: + return self._handleException(rq, e) # check if we need to serve static content for k in self._staticBaseDirKeys: if rq.uri.startswith(k): diff -Nru okasha-0.2.1/okasha/bottleTemplate.py okasha-0.2.4/okasha/bottleTemplate.py --- okasha-0.2.1/okasha/bottleTemplate.py 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/okasha/bottleTemplate.py 2011-07-27 20:32:33.000000000 +0000 @@ -23,16 +23,15 @@ from baseWebApp import fileNotFoundException from bottleTemplateSegment import SimpleTemplate, TemplateError - class bottleTemplate(object): def __init__(self, *a, **kw): self._tmp=None def _load(self, rq, bfn=None, **kw): - d=rq.webapp._templatesDir - if not os.path.isdir(d): raise fileNotFoundException() + if hasattr(rq.webapp._templatesDir, '__iter__'): d=rq.webapp._templatesDir + else: d=[rq.webapp._templatesDir] if not bfn: bfn='root.tpl' - try: self._tmp=SimpleTemplate(name=bfn, lookup=[d]) + try: self._tmp=SimpleTemplate(name=bfn, lookup=d) except: rq.webapp._logger.debug('template error fn=[%s]' % bfn) raise @@ -40,7 +39,9 @@ def __call__(self, rq, o, *a, **kw): if not self._tmp: self._load(rq, *a, **kw) - o.update(kw) - return self._tmp.render(**o) + d=kw.copy() + d.update(o) + d['_r']=rq.response + return self._tmp.render(**d) diff -Nru okasha-0.2.1/okasha/bottleTemplateSegment.py okasha-0.2.4/okasha/bottleTemplateSegment.py --- okasha-0.2.1/okasha/bottleTemplateSegment.py 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/okasha/bottleTemplateSegment.py 2011-07-27 20:32:33.000000000 +0000 @@ -247,19 +247,28 @@ return '\n'.join(codebuffer) + '\n' def subtemplate(self, _name, _stdout, **args): + # NOTE: the following line added for okasha + if '_r' not in args: args['_r']=None if _name not in self.cache: self.cache[_name] = self.__class__(name=_name, lookup=self.lookup) return self.cache[_name].execute(_stdout, **args) def execute(self, _stdout, **args): + # NOTE: the following 4 lines added for okasha + if '_r' not in args: args['_r']=None + def _subtemplate(*a, **kw): + if '_r' not in kw: kw['_r']=args['_r'] + return self.subtemplate(*a, **kw) + env = self.defaults.copy() env.update({'_stdout': _stdout, '_printlist': _stdout.extend, - '_include': self.subtemplate, '_str': self._str, + '_include': _subtemplate, '_str': self._str, # NOTE: _subtemplate added for okasha '_escape': self._escape}) env.update(args) eval(self.co, env) if '_rebase' in env: subtpl, rargs = env['_rebase'] + rargs['_r']=args['_r'] # NOTE: added for okasha subtpl = self.__class__(name=subtpl, lookup=self.lookup) rargs['_base'] = _stdout[:] #copy stdout del _stdout[:] # clear stdout diff -Nru okasha-0.2.1/okasha/kidTemplate.py okasha-0.2.4/okasha/kidTemplate.py --- okasha-0.2.1/okasha/kidTemplate.py 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/okasha/kidTemplate.py 2011-07-27 20:32:33.000000000 +0000 @@ -22,10 +22,7 @@ #from utils import ObjectsCache # kid has its own cache def kidTemplate(rq, o, bfn=None, **kw): - d=rq.webapp._templatesDir - if not os.path.isdir(d): raise fileNotFoundException() - if not bfn: bfn='root.kid' - fn=os.path.join(d, bfn) + fn=rq.webapp._getTemplateFile(bfn, default="root.kid") try: tmp=kid.load_template(file=fn) except kid.template_util.TemplateNotFound: raise fileNotFoundException() except: diff -Nru okasha-0.2.1/okasha/xsltTemplate.py okasha-0.2.4/okasha/xsltTemplate.py --- okasha-0.2.1/okasha/xsltTemplate.py 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/okasha/xsltTemplate.py 2011-07-27 20:32:33.000000000 +0000 @@ -28,10 +28,7 @@ """ """ - d=rq.webapp._templatesDir - if not os.path.isdir(d): raise fileNotFoundException() - if not bfn: bfn='root.xsl' - fn=os.path.join(d, bfn) + fn=rq.webapp._getTemplateFile(bfn, default="root.xsl") # prepare xsl trans trans=xsltCache.get(fn) if not trans: diff -Nru okasha-0.2.1/python-okasha.spec okasha-0.2.4/python-okasha.spec --- okasha-0.2.1/python-okasha.spec 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/python-okasha.spec 2011-07-27 20:32:33.000000000 +0000 @@ -5,7 +5,7 @@ Summary: trivial WSGI web framework for python URL: http://okasha.ojuba.org -Version: 0.2.0 +Version: 0.2.4 Release: 1%{?dist} Source0: http://git.ojuba.org/cgit/%{srcname}/snapshot/%{srcname}-%{version}.tar.bz2 License: Waqf @@ -59,7 +59,7 @@ --optimize=2 mkdir -p $RPM_BUILD_ROOT/%{_datadir}/doc/%{name}-docs/ -cp -a test.py test.wsgi files templates $RPM_BUILD_ROOT/%{_datadir}/doc/%{name}-docs/ +cp -a test.py test.wsgi demo-themes $RPM_BUILD_ROOT/%{_datadir}/doc/%{name}-docs/ rm docs/update-from-site.sh cp -a docs/* $RPM_BUILD_ROOT/%{_datadir}/doc/%{name}-docs/ diff -Nru okasha-0.2.1/templates/bottle-test.tpl okasha-0.2.4/templates/bottle-test.tpl --- okasha-0.2.1/templates/bottle-test.tpl 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/templates/bottle-test.tpl 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ - - - {{title}} - - - %if colors: - %for c in colors: -

    I like {{c}} apple

    - %end - %else: -

    no color is provided

    - %end -

    for more details on this template visit Bottle Docs

    - - - diff -Nru okasha-0.2.1/templates/cookies.html okasha-0.2.4/templates/cookies.html --- okasha-0.2.1/templates/cookies.html 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/templates/cookies.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ - - - -cookies with okasha - - - -

    welcome to okasha sample web application

    -

    the previous value for color cookie was [%(color)s]

    -
    - - -
    - - diff -Nru okasha-0.2.1/templates/docbook.xsl okasha-0.2.4/templates/docbook.xsl --- okasha-0.2.1/templates/docbook.xsl 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/templates/docbook.xsl 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ - - -1 -/_files/okasha-docbook.css -text/css -1 -/_files/docbook-img/ -/_files/docbook-img/ -figure after -example after -equation afer -table after -procedure after - - diff -Nru okasha-0.2.1/templates/format.html okasha-0.2.4/templates/format.html --- okasha-0.2.1/templates/format.html 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/templates/format.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ - - - -{title} - - - -

    this is from tmp.html template

    -we get the following arguments: {args}
    -the value of key2 is {key2}
    -again the value of key2 is {key2}
    -I don't want to show you the value of key1
    - - diff -Nru okasha-0.2.1/templates/kidtest.kid okasha-0.2.4/templates/kidtest.kid --- okasha-0.2.1/templates/kidtest.kid 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/templates/kidtest.kid 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - - - - - - This is replaced with the value of the title variable. - - - -

    title goes here

    -
      -
    • I like ${fruit}s
    • -
    -

    - The current time is ${time.strftime('%C %c')}. -

    - - - diff -Nru okasha-0.2.1/templates/main.html okasha-0.2.4/templates/main.html --- okasha-0.2.1/templates/main.html 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/templates/main.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ - - - -%(title)s - - - - -

    welcome to okasha sample web application

    -

    we are running %(version)s in %(mode)s

    -random:[] - time:[] -
    -
    - - -
    -
    the uppser case version of your input is []
    -
    we can split your input by - to be -
      -
    -
    - - - diff -Nru okasha-0.2.1/templates/test.xsl okasha-0.2.4/templates/test.xsl --- okasha-0.2.1/templates/test.xsl 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/templates/test.xsl 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - diff -Nru okasha-0.2.1/templates/tmp.html okasha-0.2.4/templates/tmp.html --- okasha-0.2.1/templates/tmp.html 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/templates/tmp.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ - - - -%(title)s - - - -

    this is from tmp.html template

    -we get the following arguments: %(args)s
    -the value of key2 is %(key2)s
    -again the value of key2 is %(key2)s
    -I don't want to show you the value of key1
    - - diff -Nru okasha-0.2.1/templates/upload.html okasha-0.2.4/templates/upload.html --- okasha-0.2.1/templates/upload.html 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/templates/upload.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ - - - -file uploads with okasha - - - -

    welcome to okasha sample web application

    -

    Upload file to /tmp

    -
    - - - -
    -the last submitted value for b was "%(b)s" and for color was "%(color)s" -and the content of the submitted file is -
    -%(f)s
    -
    - - diff -Nru okasha-0.2.1/test.py okasha-0.2.4/test.py --- okasha-0.2.1/test.py 2010-11-21 14:15:15.000000000 +0000 +++ okasha-0.2.4/test.py 2011-07-27 20:32:33.000000000 +0000 @@ -23,6 +23,8 @@ from okasha.xsltTemplate import xsltTemplate from okasha.bottleTemplate import bottleTemplate +from glob import glob + class webApp(baseWebApp): def __init__(self, mode,*args, **kw): """ @@ -77,6 +79,16 @@ """ return """

    welcome to Okasha

    +
    +classic logo + +
    +logo from custom theme + +
    +file only found in base theme + +
    You requested [%(u)s] which is not handled by any method
    You query is [%(q)s]

    try out the following

    @@ -282,11 +294,12 @@ myLogger.addHandler(h) myLogger.setLevel(logging.DEBUG) # in production use logging.INFO - d=os.path.dirname(sys.argv[0]) + d=os.path.abspath(os.path.dirname(sys.argv[0])) + lookup=[os.path.join(d,'demo-themes')] app=webApp( 'SafeMode', - os.path.join(d,'templates'), - staticBaseDir={'/_files/':os.path.join(d,'files')}, + lookup, 'fancy', '/_theme/', + staticBaseDir={'/_files/':os.path.join(d,'demo-themes/default/static/')}, logger=myLogger ); # for options see http://pythonpaste.org/modules/httpserver.html