
(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<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=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;G<E;G++){L.call(K(this[G],H),this.length>1||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<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return!o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-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+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!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;E<F;E++){if(H[E]===G){return E}}return-1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?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)})}});(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<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":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<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=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 U<T[3]-0},gt:function(V,U,T){return U>T[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<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=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<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex"in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+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="<a href='#'></a>";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="<p class='TEST'></p>";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="<div class='test e'></div><div class='test'></div>";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;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){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;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||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<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=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("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/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<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").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<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;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<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=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='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';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")}})})();(function(d){d.tools=d.tools||{};d.tools.tabs={version:"1.0.4",conf:{tabs:"a",current:"current",onBeforeClick:null,onClick:null,effect:"default",initialIndex:0,event:"click",api:false,rotate:false},addEffect:function(e,f){c[e]=f}};var c={"default":function(f,e){this.getPanes().hide().eq(f).show();e.call()},fade:function(g,e){var f=this.getConf(),j=f.fadeOutSpeed,h=this.getPanes();if(j){h.fadeOut(j)}else{h.hide()}h.eq(g).fadeIn(f.fadeInSpeed,e)},slide:function(f,e){this.getPanes().slideUp(200);this.getPanes().eq(f).slideDown(400,e)},ajax:function(f,e){this.getPanes().eq(0).load(this.getTabs().eq(f).attr("href"),e)}};var b;d.tools.tabs.addEffect("horizontal",function(f,e){if(!b){b=this.getPanes().eq(0).width()}this.getCurrentPane().animate({width:0},function(){d(this).hide()});this.getPanes().eq(f).animate({width:b},function(){d(this).show();e.call()})});function a(g,h,f){var e=this,j=d(this),i;d.each(f,function(k,l){if(d.isFunction(l)){j.bind(k,l)}});d.extend(this,{click:function(k,n){var o=e.getCurrentPane();var l=g.eq(k);if(typeof k=="string"&&k.replace("#","")){l=g.filter("[href*="+k.replace("#","")+"]");k=Math.max(g.index(l),0)}if(f.rotate){var m=g.length-1;if(k<0){return e.click(m,n)}if(k>m){return e.click(0,n)}}if(!l.length){if(i>=0){return e}k=f.initialIndex;l=g.eq(k)}if(k===i){return e}n=n||d.Event();n.type="onBeforeClick";j.trigger(n,[k]);if(n.isDefaultPrevented()){return}c[f.effect].call(e,k,function(){n.type="onClick";j.trigger(n,[k])});n.type="onStart";j.trigger(n,[k]);if(n.isDefaultPrevented()){return}i=k;g.removeClass(f.current);l.addClass(f.current);return e},getConf:function(){return f},getTabs:function(){return g},getPanes:function(){return h},getCurrentPane:function(){return h.eq(i)},getCurrentTab:function(){return g.eq(i)},getIndex:function(){return i},next:function(){return e.click(i+1)},prev:function(){return e.click(i-1)},bind:function(k,l){j.bind(k,l);return e},onBeforeClick:function(k){return this.bind("onBeforeClick",k)},onClick:function(k){return this.bind("onClick",k)},unbind:function(k){j.unbind(k);return e}});g.each(function(k){d(this).bind(f.event,function(l){e.click(k,l);return false})});if(location.hash){e.click(location.hash)}else{if(f.initialIndex===0||f.initialIndex>0){e.click(f.initialIndex)}}h.find("a[href^=#]").click(function(k){e.click(d(this).attr("href"),k)})}d.fn.tabs=function(i,f){var g=this.eq(typeof f=="number"?f:0).data("tabs");if(g){return g}if(d.isFunction(f)){f={onBeforeClick:f}}var h=d.extend({},d.tools.tabs.conf),e=this.length;f=d.extend(h,f);this.each(function(l){var j=d(this);var k=j.find(f.tabs);if(!k.length){k=j.children()}var m=i.jquery?i:j.children(i);if(!m.length){m=e==1?d(i):j.parent().find(i)}g=new a(k,m,f);j.data("tabs",g)});return f.api?g:this}})(jQuery);(function(b){var a=b.tools.tabs;a.plugins=a.plugins||{};a.plugins.slideshow={version:"1.0.2",conf:{next:".forward",prev:".backward",disabledClass:"disabled",autoplay:false,autopause:true,interval:3000,clickable:true,api:false}};b.prototype.slideshow=function(e){var f=b.extend({},a.plugins.slideshow.conf),c=this.length,d;e=b.extend(f,e);this.each(function(){var p=b(this),m=p.tabs(),i=b(m),o=m;b.each(e,function(t,u){if(b.isFunction(u)){m.bind(t,u)}});function n(t){return c==1?b(t):p.parent().find(t)}var s=n(e.next).click(function(){m.next()});var q=n(e.prev).click(function(){m.prev()});var h,j,l,g=false;b.extend(m,{play:function(){if(h){return}var t=b.Event("onBeforePlay");i.trigger(t);if(t.isDefaultPrevented()){return m}g=false;h=setInterval(m.next,e.interval);i.trigger("onPlay");m.next()},pause:function(){if(!h){return m}var t=b.Event("onBeforePause");i.trigger(t);if(t.isDefaultPrevented()){return m}h=clearInterval(h);l=clearInterval(l);i.trigger("onPause")},stop:function(){m.pause();g=true},onBeforePlay:function(t){return m.bind("onBeforePlay",t)},onPlay:function(t){return m.bind("onPlay",t)},onBeforePause:function(t){return m.bind("onBeforePause",t)},onPause:function(t){return m.bind("onPause",t)}});if(e.autopause){var k=m.getTabs().add(s).add(q).add(m.getPanes());k.hover(function(){m.pause();j=clearInterval(j)},function(){if(!g){j=setTimeout(m.play,e.interval)}})}if(e.autoplay){l=setTimeout(m.play,e.interval)}else{m.stop()}if(e.clickable){m.getPanes().click(function(){m.next()})}if(!m.getConf().rotate){var r=e.disabledClass;if(!m.getIndex()){q.addClass(r)}m.onBeforeClick(function(u,t){if(!t){q.addClass(r)}else{q.removeClass(r);if(t==m.getTabs().length-1){s.addClass(r)}else{s.removeClass(r)}}})}});return e.api?d:this}})(jQuery);(function(d){var a=d.tools.tabs;a.plugins=a.plugins||{};a.plugins.history={version:"1.0.2",conf:{api:false}};var e,b;function c(f){if(f){var g=b.contentWindow.document;g.open().close();g.location.hash=f}}d.fn.onHash=function(g){var f=this;if(d.browser.msie&&d.browser.version<"8"){if(!b){b=d("<iframe/>").attr("src","javascript:false;").hide().get(0);d("body").append(b);setInterval(function(){var i=b.contentWindow.document,j=i.location.hash;if(e!==j){d.event.trigger("hash",j);e=j}},100);c(location.hash||"#")}f.bind("click.hash",function(h){c(d(this).attr("href"))})}else{setInterval(function(){var j=location.hash;var i=f.filter("[href$="+j+"]");if(!i.length){j=j.replace("#","");i=f.filter("[href$="+j+"]")}if(i.length&&j!==e){e=j;d.event.trigger("hash",j)}},100)}d(window).bind("hash",g);return this};d.fn.history=function(g){var h=d.extend({},a.plugins.history.conf),f;g=d.extend(h,g);this.each(function(){var j=d(this).tabs(),i=j.getTabs();if(j){f=j}i.onHash(function(k,l){if(!l||l=="#"){l=j.getConf().initialIndex}j.click(l)});i.click(function(k){location.hash=d(this).attr("href").replace("#","")})});return g.api?f:this}})(jQuery);(function(c){var d=[];c.tools=c.tools||{};c.tools.tooltip={version:"1.1.3",conf:{effect:"toggle",fadeOutSpeed:"fast",tip:null,predelay:0,delay:30,opacity:1,lazy:undefined,position:["top","center"],offset:[0,0],cancelDefault:true,relative:false,oneInstance:true,events:{def:"mouseover,mouseout",input:"focus,blur",widget:"focus mouseover,blur mouseout",tooltip:"mouseover,mouseout"},api:false},addEffect:function(e,g,f){b[e]=[g,f]}};var b={toggle:[function(e){var f=this.getConf(),g=this.getTip(),h=f.opacity;if(h<1){g.css({opacity:h})}g.show();e.call()},function(e){this.getTip().hide();e.call()}],fade:[function(e){this.getTip().fadeIn(this.getConf().fadeInSpeed,e)},function(e){this.getTip().fadeOut(this.getConf().fadeOutSpeed,e)}]};function a(f,g){var p=this,k=c(this);f.data("tooltip",p);var l=f.next();if(g.tip){l=c(g.tip);if(l.length>1){l=f.nextAll(g.tip).eq(0);if(!l.length){l=f.parent().nextAll(g.tip).eq(0)}}}function o(u){var t=g.relative?f.position().top:f.offset().top,s=g.relative?f.position().left:f.offset().left,v=g.position[0];t-=l.outerHeight()-g.offset[0];s+=f.outerWidth()+g.offset[1];var q=l.outerHeight()+f.outerHeight();if(v=="center"){t+=q/2}if(v=="bottom"){t+=q}v=g.position[1];var r=l.outerWidth()+f.outerWidth();if(v=="center"){s-=r/2}if(v=="left"){s-=r}return{top:t,left:s}}var i=f.is(":input"),e=i&&f.is(":checkbox, :radio, select, :button"),h=f.attr("type"),n=g.events[h]||g.events[i?(e?"widget":"input"):"def"];n=n.split(/,\s*/);if(n.length!=2){throw"Tooltip: bad events configuration for "+h}f.bind(n[0],function(r){if(g.oneInstance){c.each(d,function(){this.hide()})}var q=l.data("trigger");if(q&&q[0]!=this){l.hide().stop(true,true)}r.target=this;p.show(r);n=g.events.tooltip.split(/,\s*/);l.bind(n[0],function(){p.show(r)});if(n[1]){l.bind(n[1],function(){p.hide(r)})}});f.bind(n[1],function(q){p.hide(q)});if(!c.browser.msie&&!i&&!g.predelay){f.mousemove(function(){if(!p.isShown()){f.triggerHandler("mouseover")}})}if(g.opacity<1){l.css("opacity",g.opacity)}var m=0,j=f.attr("title");if(j&&g.cancelDefault){f.removeAttr("title");f.data("title",j)}c.extend(p,{show:function(r){if(r){f=c(r.target)}clearTimeout(l.data("timer"));if(l.is(":animated")||l.is(":visible")){return p}function q(){l.data("trigger",f);var t=o(r);if(g.tip&&j){l.html(f.data("title"))}r=r||c.Event();r.type="onBeforeShow";k.trigger(r,[t]);if(r.isDefaultPrevented()){return p}t=o(r);l.css({position:"absolute",top:t.top,left:t.left});var s=b[g.effect];if(!s){throw'Nonexistent effect "'+g.effect+'"'}s[0].call(p,function(){r.type="onShow";k.trigger(r)})}if(g.predelay){clearTimeout(m);m=setTimeout(q,g.predelay)}else{q()}return p},hide:function(r){clearTimeout(l.data("timer"));clearTimeout(m);if(!l.is(":visible")){return}function q(){r=r||c.Event();r.type="onBeforeHide";k.trigger(r);if(r.isDefaultPrevented()){return}b[g.effect][1].call(p,function(){r.type="onHide";k.trigger(r)})}if(g.delay&&r){l.data("timer",setTimeout(q,g.delay))}else{q()}return p},isShown:function(){return l.is(":visible, :animated")},getConf:function(){return g},getTip:function(){return l},getTrigger:function(){return f},bind:function(q,r){k.bind(q,r);return p},onHide:function(q){return this.bind("onHide",q)},onBeforeShow:function(q){return this.bind("onBeforeShow",q)},onShow:function(q){return this.bind("onShow",q)},onBeforeHide:function(q){return this.bind("onBeforeHide",q)},unbind:function(q){k.unbind(q);return p}});c.each(g,function(q,r){if(c.isFunction(r)){p.bind(q,r)}})}c.prototype.tooltip=function(e){var f=this.eq(typeof e=="number"?e:0).data("tooltip");if(f){return f}var g=c.extend(true,{},c.tools.tooltip.conf);if(c.isFunction(e)){e={onBeforeShow:e}}else{if(typeof e=="string"){e={tip:e}}}e=c.extend(true,g,e);if(typeof e.position=="string"){e.position=e.position.split(/,?\s/)}if(e.lazy!==false&&(e.lazy===true||this.length>20)){this.one("mouseover",function(h){f=new a(c(this),e);f.show(h);d.push(f)})}else{this.each(function(){f=new a(c(this),e);d.push(f)})}return e.api?f:this}})(jQuery);(function(b){var a=b.tools.tooltip;a.effects=a.effects||{};a.effects.slide={version:"1.0.0"};b.extend(a.conf,{direction:"up",bounce:false,slideOffset:10,slideInSpeed:200,slideOutSpeed:200,slideFade:!b.browser.msie});var c={up:["-","top"],down:["+","top"],left:["-","left"],right:["+","left"]};b.tools.tooltip.addEffect("slide",function(d){var f=this.getConf(),g=this.getTip(),h=f.slideFade?{opacity:f.opacity}:{},e=c[f.direction]||c.up;h[e[1]]=e[0]+"="+f.slideOffset;if(f.slideFade){g.css({opacity:0})}g.show().animate(h,f.slideInSpeed,d)},function(e){var g=this.getConf(),i=g.slideOffset,h=g.slideFade?{opacity:0}:{},f=c[g.direction]||c.up;var d=""+f[0];if(g.bounce){d=d=="+"?"-":"+"}h[f[1]]=d+"="+i;this.getTip().animate(h,g.slideOutSpeed,function(){b(this).hide();e.call()})})})(jQuery);(function(d){var c=d.tools.tooltip;c.plugins=c.plugins||{};c.plugins.dynamic={version:"1.0.1",conf:{api:false,classNames:"top right bottom left"}};function b(h){var e=d(window);var g=e.width()+e.scrollLeft();var f=e.height()+e.scrollTop();return[h.offset().top<=e.scrollTop(),g<=h.offset().left+h.width(),f<=h.offset().top+h.height(),e.scrollLeft()>=h.offset().left]}function a(f){var e=f.length;while(e--){if(f[e]){return false}}return true}d.fn.dynamic=function(g){var h=d.extend({},c.plugins.dynamic.conf),f;if(typeof g=="number"){g={speed:g}}g=d.extend(h,g);var e=g.classNames.split(/\s/),i;this.each(function(){if(d(this).tooltip().jquery){throw"Lazy feature not supported by dynamic plugin. set lazy: false for tooltip"}var j=d(this).tooltip().onBeforeShow(function(n,o){var m=this.getTip(),l=this.getConf();if(!i){i=[l.position[0],l.position[1],l.offset[0],l.offset[1],d.extend({},l)]}d.extend(l,i[4]);l.position=[i[0],i[1]];l.offset=[i[2],i[3]];m.css({visibility:"hidden",position:"absolute",top:o.top,left:o.left}).show();var k=b(m);if(!a(k)){if(k[2]){d.extend(l,g.top);l.position[0]="top";m.addClass(e[0])}if(k[3]){d.extend(l,g.right);l.position[1]="right";m.addClass(e[1])}if(k[0]){d.extend(l,g.bottom);l.position[0]="bottom";m.addClass(e[2])}if(k[1]){d.extend(l,g.left);l.position[1]="left";m.addClass(e[3])}if(k[0]||k[2]){l.offset[0]*=-1}if(k[1]||k[3]){l.offset[1]*=-1}}m.css({visibility:"visible"}).hide()});j.onShow(function(){var l=this.getConf(),k=this.getTip();l.position=[i[0],i[1]];l.offset=[i[2],i[3]]});j.onHide(function(){var k=this.getTip();k.removeClass(g.classNames)});f=j});return g.api?f:this}})(jQuery);(function(b){b.tools=b.tools||{};b.tools.scrollable={version:"1.1.2",conf:{size:5,vertical:false,speed:400,keyboard:true,keyboardSteps:null,disabledClass:"disabled",hoverClass:null,clickable:true,activeClass:"active",easing:"swing",loop:false,items:".items",item:null,prev:".prev",next:".next",prevPage:".prevPage",nextPage:".nextPage",api:false}};var c;function a(o,m){var r=this,p=b(this),d=!m.vertical,e=o.children(),k=0,i;if(!c){c=r}b.each(m,function(s,t){if(b.isFunction(t)){p.bind(s,t)}});if(e.length>1){e=b(m.items,o)}function l(t){var s=b(t);return m.globalNav?s:o.parent().find(t)}o.data("finder",l);var f=l(m.prev),h=l(m.next),g=l(m.prevPage),n=l(m.nextPage);b.extend(r,{getIndex:function(){return k},getClickIndex:function(){var s=r.getItems();return s.index(s.filter("."+m.activeClass))},getConf:function(){return m},getSize:function(){return r.getItems().size()},getPageAmount:function(){return Math.ceil(this.getSize()/m.size)},getPageIndex:function(){return Math.ceil(k/m.size)},getNaviButtons:function(){return f.add(h).add(g).add(n)},getRoot:function(){return o},getItemWrap:function(){return e},getItems:function(){return e.children(m.item)},getVisibleItems:function(){return r.getItems().slice(k,k+m.size)},seekTo:function(s,w,t){if(s<0){s=0}if(k===s){return r}if(b.isFunction(w)){t=w}if(s>r.getSize()-m.size){return m.loop?r.begin():this.end()}var u=r.getItems().eq(s);if(!u.length){return r}var v=b.Event("onBeforeSeek");p.trigger(v,[s]);if(v.isDefaultPrevented()){return r}if(w===undefined||b.isFunction(w)){w=m.speed}function x(){if(t){t.call(r,s)}p.trigger("onSeek",[s])}if(d){e.animate({left:-u.position().left},w,m.easing,x)}else{e.animate({top:-u.position().top},w,m.easing,x)}c=r;k=s;v=b.Event("onStart");p.trigger(v,[s]);if(v.isDefaultPrevented()){return r}f.add(g).toggleClass(m.disabledClass,s===0);h.add(n).toggleClass(m.disabledClass,s>=r.getSize()-m.size);return r},move:function(u,t,s){i=u>0;return this.seekTo(k+u,t,s)},next:function(t,s){return this.move(1,t,s)},prev:function(t,s){return this.move(-1,t,s)},movePage:function(w,v,u){i=w>0;var s=m.size*w;var t=k%m.size;if(t>0){s+=(w>0?-t:m.size-t)}return this.move(s,v,u)},prevPage:function(t,s){return this.movePage(-1,t,s)},nextPage:function(t,s){return this.movePage(1,t,s)},setPage:function(t,u,s){return this.seekTo(t*m.size,u,s)},begin:function(t,s){i=false;return this.seekTo(0,t,s)},end:function(t,s){i=true;var u=this.getSize()-m.size;return u>0?this.seekTo(u,t,s):r},reload:function(){p.trigger("onReload");return r},focus:function(){c=r;return r},click:function(u){var v=r.getItems().eq(u),s=m.activeClass,t=m.size;if(u<0||u>=r.getSize()){return r}if(t==1){if(m.loop){return r.next()}if(u===0||u==r.getSize()-1){i=(i===undefined)?true:!i}return i===false?r.prev():r.next()}if(t==2){if(u==k){u--}r.getItems().removeClass(s);v.addClass(s);return r.seekTo(u,time,fn)}if(!v.hasClass(s)){r.getItems().removeClass(s);v.addClass(s);var x=Math.floor(t/2);var w=u-x;if(w>r.getSize()-t){w=r.getSize()-t}if(w!==u){return r.seekTo(w)}}return r},bind:function(s,t){p.bind(s,t);return r},unbind:function(s){p.unbind(s);return r}});b.each("onBeforeSeek,onStart,onSeek,onReload".split(","),function(s,t){r[t]=function(u){return r.bind(t,u)}});f.addClass(m.disabledClass).click(function(){r.prev()});h.click(function(){r.next()});n.click(function(){r.nextPage()});if(r.getSize()<m.size){h.add(n).addClass(m.disabledClass)}g.addClass(m.disabledClass).click(function(){r.prevPage()});var j=m.hoverClass,q="keydown."+Math.random().toString().substring(10);r.onReload(function(){if(j){r.getItems().hover(function(){b(this).addClass(j)},function(){b(this).removeClass(j)})}if(m.clickable){r.getItems().each(function(s){b(this).unbind("click.scrollable").bind("click.scrollable",function(t){if(b(t.target).is("a")){return}return r.click(s)})})}if(m.keyboard){b(document).unbind(q).bind(q,function(t){if(t.altKey||t.ctrlKey){return}if(m.keyboard!="static"&&c!=r){return}var u=m.keyboardSteps;if(d&&(t.keyCode==37||t.keyCode==39)){r.move(t.keyCode==37?-u:u);return t.preventDefault()}if(!d&&(t.keyCode==38||t.keyCode==40)){r.move(t.keyCode==38?-u:u);return t.preventDefault()}return true})}else{b(document).unbind(q)}});r.reload()}b.fn.scrollable=function(d){var e=this.eq(typeof d=="number"?d:0).data("scrollable");if(e){return e}var f=b.extend({},b.tools.scrollable.conf);d=b.extend(f,d);d.keyboardSteps=d.keyboardSteps||d.size;this.each(function(){e=new a(b(this),d);b(this).data("scrollable",e)});return d.api?e:this}})(jQuery);(function(b){var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.circular={version:"0.5.1",conf:{api:false,clonedClass:"cloned"}};b.fn.circular=function(e){var d=b.extend({},a.plugins.circular.conf),c;b.extend(d,e);this.each(function(){var i=b(this).scrollable(),n=i.getItems(),k=i.getConf(),f=i.getItemWrap(),j=0;if(i){c=i}if(n.length<k.size){return false}n.slice(0,k.size).each(function(o){b(this).clone().appendTo(f).click(function(){i.click(n.length+o)}).addClass(d.clonedClass)});var l=b.makeArray(n.slice(-k.size)).reverse();b(l).each(function(o){b(this).clone().prependTo(f).click(function(){i.click(-o-1)}).addClass(d.clonedClass)});var m=f.children(k.item);var h=k.hoverClass;if(h){m.hover(function(){b(this).addClass(h)},function(){b(this).removeClass(h)})}function g(o){var p=m.eq(o);if(k.vertical){f.css({top:-p.position().top})}else{f.css({left:-p.position().left})}}g(k.size);b.extend(i,{move:function(s,r,p,q){var u=j+s+k.size;var t=u>i.getSize()-k.size;if(u<=0||t){var o=j+k.size+(t?-n.length:n.length);g(o);u=o+s}if(q){m.removeClass(k.activeClass).eq(u+Math.floor(k.size/2)).addClass(k.activeClass)}if(u===j+k.size){return self}return i.seekTo(u,r,p)},begin:function(p,o){return this.seekTo(k.size,p,o)},end:function(p,o){return this.seekTo(n.length,p,o)},click:function(p,r,q){if(!k.clickable){return self}if(k.size==1){return this.next()}var s=p-j,o=k.activeClass;s-=Math.floor(k.size/2);return this.move(s,r,q,true)},getIndex:function(){return j},setPage:function(p,q,o){return this.seekTo(p*k.size+k.size,q,o)},getPageAmount:function(){return Math.ceil(n.length/k.size)},getPageIndex:function(){if(j<0){return this.getPageAmount()-1}if(j>=n.length){return 0}var o=(j+k.size)/k.size-1;return o},getVisibleItems:function(){var o=j+k.size;return m.slice(o,o+k.size)}});i.onStart(function(p,o){j=o-k.size;return false});i.getNaviButtons().removeClass(k.disabledClass)});return d.api?c:this}})(jQuery);(function(b){var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.autoscroll={version:"1.0.1",conf:{autoplay:true,interval:3000,autopause:true,steps:1,api:false}};b.fn.autoscroll=function(d){if(typeof d=="number"){d={interval:d}}var e=b.extend({},a.plugins.autoscroll.conf),c;b.extend(e,d);this.each(function(){var g=b(this).scrollable();if(g){c=g}var i,f,h=true;g.play=function(){if(i){return}h=false;i=setInterval(function(){g.move(e.steps)},e.interval);g.move(e.steps)};g.pause=function(){i=clearInterval(i)};g.stop=function(){g.pause();h=true};if(e.autopause){g.getRoot().add(g.getNaviButtons()).hover(function(){g.pause();clearInterval(f)},function(){if(!h){f=setTimeout(g.play,e.interval)}})}if(e.autoplay){setTimeout(g.play,e.interval)}});return e.api?c:this}})(jQuery);(function(b){var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.navigator={version:"1.0.2",conf:{navi:".navi",naviItem:null,activeClass:"active",indexed:false,api:false,idPrefix:null}};b.fn.navigator=function(d){var e=b.extend({},a.plugins.navigator.conf),c;if(typeof d=="string"){d={navi:d}}d=b.extend(e,d);this.each(function(){var i=b(this).scrollable(),f=i.getRoot(),l=f.data("finder").call(null,d.navi),g=null,k=i.getNaviButtons();if(i){c=i}i.getNaviButtons=function(){return k.add(l)};function j(){if(!l.children().length||l.data("navi")==i){l.empty();l.data("navi",i);for(var m=0;m<i.getPageAmount();m++){l.append(b("<"+(d.naviItem||"a")+"/>"))}g=l.children().each(function(n){var o=b(this);o.click(function(p){i.setPage(n);return p.preventDefault()});if(d.indexed){o.text(n)}if(d.idPrefix){o.attr("id",d.idPrefix+n)}})}else{g=d.naviItem?l.find(d.naviItem):l.children();g.each(function(n){var o=b(this);o.click(function(p){i.setPage(n);return p.preventDefault()})})}g.eq(0).addClass(d.activeClass)}i.onStart(function(o,n){var m=d.activeClass;g.removeClass(m).eq(i.getPageIndex()).addClass(m)});i.onReload(function(){j()});j();var h=g.filter("[href="+location.hash+"]");if(h.length){i.move(g.index(h))}});return d.api?c:this}})(jQuery);(function(b){b.fn.wheel=function(e){return this[e?"bind":"trigger"]("wheel",e)};b.event.special.wheel={setup:function(){b.event.add(this,d,c,{})},teardown:function(){b.event.remove(this,d,c)}};var d=!b.browser.mozilla?"mousewheel":"DOMMouseScroll"+(b.browser.version<"1.9"?" mousemove":"");function c(e){switch(e.type){case"mousemove":return b.extend(e.data,{clientX:e.clientX,clientY:e.clientY,pageX:e.pageX,pageY:e.pageY});case"DOMMouseScroll":b.extend(e,e.data);e.delta=-e.detail/3;break;case"mousewheel":e.delta=e.wheelDelta/120;break}e.type="wheel";return b.event.handle.call(this,e,e.delta)}var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.mousewheel={version:"1.0.1",conf:{api:false,speed:50}};b.fn.mousewheel=function(f){var g=b.extend({},a.plugins.mousewheel.conf),e;if(typeof f=="number"){f={speed:f}}f=b.extend(g,f);this.each(function(){var h=b(this).scrollable();if(h){e=h}h.getRoot().wheel(function(i,j){h.move(j<0?1:-1,f.speed||50);return false})});return f.api?e:this}})(jQuery);(function(c){c.tools=c.tools||{};c.tools.overlay={version:"1.1.2",addEffect:function(e,f,g){b[e]=[f,g]},conf:{top:"10%",left:"center",absolute:false,speed:"normal",closeSpeed:"fast",effect:"default",close:null,oneInstance:true,closeOnClick:true,closeOnEsc:true,api:false,expose:null,target:null}};var b={};c.tools.overlay.addEffect("default",function(e){this.getOverlay().fadeIn(this.getConf().speed,e)},function(e){this.getOverlay().fadeOut(this.getConf().closeSpeed,e)});var d=[];function a(g,k){var o=this,m=c(this),n=c(window),j,i,h,e=k.expose&&c.tools.expose.version;var f=k.target||g.attr("rel");i=f?c(f):null||g;if(!i.length){throw"Could not find Overlay: "+f}if(g&&g.index(i)==-1){g.click(function(p){o.load(p);return p.preventDefault()})}c.each(k,function(p,q){if(c.isFunction(q)){m.bind(p,q)}});c.extend(o,{load:function(u){if(o.isOpened()){return o}var r=b[k.effect];if(!r){throw'Overlay: cannot find effect : "'+k.effect+'"'}if(k.oneInstance){c.each(d,function(){this.close(u)})}u=u||c.Event();u.type="onBeforeLoad";m.trigger(u);if(u.isDefaultPrevented()){return o}h=true;if(e){i.expose().load(u)}var t=k.top;var s=k.left;var p=i.outerWidth({margin:true});var q=i.outerHeight({margin:true});if(typeof t=="string"){t=t=="center"?Math.max((n.height()-q)/2,0):parseInt(t,10)/100*n.height()}if(s=="center"){s=Math.max((n.width()-p)/2,0)}if(!k.absolute){t+=n.scrollTop();s+=n.scrollLeft()}i.css({top:t,left:s,position:"absolute"});u.type="onStart";m.trigger(u);r[0].call(o,function(){if(h){u.type="onLoad";m.trigger(u)}});if(k.closeOnClick){c(document).bind("click.overlay",function(w){if(!o.isOpened()){return}var v=c(w.target);if(v.parents(i).length>1){return}c.each(d,function(){this.close(w)})})}if(k.closeOnEsc){c(document).unbind("keydown.overlay").bind("keydown.overlay",function(v){if(v.keyCode==27){c.each(d,function(){this.close(v)})}})}return o},close:function(q){if(!o.isOpened()){return o}q=q||c.Event();q.type="onBeforeClose";m.trigger(q);if(q.isDefaultPrevented()){return}h=false;b[k.effect][1].call(o,function(){q.type="onClose";m.trigger(q)});var p=true;c.each(d,function(){if(this.isOpened()){p=false}});if(p){c(document).unbind("click.overlay").unbind("keydown.overlay")}return o},getContent:function(){return i},getOverlay:function(){return i},getTrigger:function(){return g},getClosers:function(){return j},isOpened:function(){return h},getConf:function(){return k},bind:function(p,q){m.bind(p,q);return o},unbind:function(p){m.unbind(p);return o}});c.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","),function(p,q){o[q]=function(r){return o.bind(q,r)}});if(e){if(typeof k.expose=="string"){k.expose={color:k.expose}}c.extend(k.expose,{api:true,closeOnClick:k.closeOnClick,closeOnEsc:false});var l=i.expose(k.expose);l.onBeforeClose(function(p){o.close(p)});o.onClose(function(p){l.close(p)})}j=i.find(k.close||".close");if(!j.length&&!k.close){j=c('<div class="close"></div>');i.prepend(j)}j.click(function(p){o.close(p)})}c.fn.overlay=function(e){var f=this.eq(typeof e=="number"?e:0).data("overlay");if(f){return f}if(c.isFunction(e)){e={onBeforeLoad:e}}var g=c.extend({},c.tools.overlay.conf);e=c.extend(true,g,e);this.each(function(){f=new a(c(this),e);d.push(f);c(this).data("overlay",f)});return e.api?f:this}})(jQuery);(function(b){var a=b.tools.overlay;a.plugins=a.plugins||{};a.plugins.gallery={version:"1.0.0",conf:{imgId:"img",next:".next",prev:".prev",info:".info",progress:".progress",disabledClass:"disabled",activeClass:"active",opacity:0.8,speed:"slow",template:"<strong>${title}</strong> <span>Image ${index} of ${total}</span>",autohide:true,preload:true,api:false}};b.fn.gallery=function(d){var o=b.extend({},a.plugins.gallery.conf),m;b.extend(o,d);m=this.overlay();var r=this,j=m.getOverlay(),k=j.find(o.next),g=j.find(o.prev),e=j.find(o.info),c=j.find(o.progress),h=g.add(k).add(e).css({opacity:o.opacity}),s=m.getClosers(),l;function p(u){c.fadeIn();h.hide();s.hide();var t=u.attr("href");var v=new Image();v.onload=function(){c.fadeOut();var y=b("#"+o.imgId,j);if(!y.length){y=b("<img/>").attr("id",o.imgId).css("visibility","hidden");j.prepend(y)}y.attr("src",t).css("visibility","hidden");var z=v.width;var A=(b(window).width()-z)/2;l=r.index(r.filter("[href="+t+"]"));r.removeClass(o.activeClass).eq(l).addClass(o.activeClass);var w=o.disabledClass;h.removeClass(w);if(l===0){g.addClass(w)}if(l==r.length-1){k.addClass(w)}var B=o.template.replace("${title}",u.attr("title")||u.data("title")).replace("${index}",l+1).replace("${total}",r.length);var x=parseInt(e.css("paddingLeft"),10)+parseInt(e.css("paddingRight"),10);e.html(B).css({width:z-x});j.animate({width:z,height:v.height,left:A},o.speed,function(){y.hide().css("visibility","visible").fadeIn(function(){if(!o.autohide){h.fadeIn();s.show()}})})};v.onerror=function(){j.fadeIn().html("Cannot find image "+t)};v.src=t;if(o.preload){r.filter(":eq("+(l-1)+"), :eq("+(l+1)+")").each(function(){var w=new Image();w.src=b(this).attr("href")})}}function f(t,u){t.click(function(){if(t.hasClass(o.disabledClass)){return}var v=r.eq(i=l+(u?1:-1));if(v.length){p(v)}})}f(k,true);f(g);b(document).keydown(function(t){if(!j.is(":visible")||t.altKey||t.ctrlKey){return}if(t.keyCode==37||t.keyCode==39){var u=t.keyCode==37?g:k;u.click();return t.preventDefault()}return true});function q(){if(!j.is(":animated")){h.show();s.show()}}if(o.autohide){j.hover(q,function(){h.fadeOut();s.hide()}).mousemove(q)}var n;this.each(function(){var v=b(this),u=b(this).overlay(),t=u;u.onBeforeLoad(function(){p(v)});u.onClose(function(){r.removeClass(o.activeClass)})});return o.api?n:this}})(jQuery);(function(d){var b=d.tools.overlay;b.effects=b.effects||{};b.effects.apple={version:"1.0.1"};d.extend(b.conf,{start:{absolute:true,top:null,left:null},fadeInSpeed:"fast",zIndex:9999});function c(f){var g=f.offset();return[g.top+f.height()/2,g.left+f.width()/2]}var e=function(n){var k=this.getOverlay(),f=this.getConf(),i=this.getTrigger(),q=this,r=k.outerWidth({margin:true}),m=k.data("img");if(!m){var l=k.css("backgroundImage");if(!l){throw"background-image CSS property not set for overlay"}l=l.substring(l.indexOf("(")+1,l.indexOf(")")).replace(/\"/g,"");k.css("backgroundImage","none");m=d('<img src="'+l+'"/>');m.css({border:0,position:"absolute",display:"none"}).width(r);d("body").append(m);k.data("img",m)}var o=d(window),j=f.start.top||Math.round(o.height()/2),h=f.start.left||Math.round(o.width()/2);if(i){var g=c(i);j=g[0];h=g[1]}if(!f.start.absolute){j+=o.scrollTop();h+=o.scrollLeft()}m.css({top:j,left:h,width:0,zIndex:f.zIndex}).show();m.animate({top:k.css("top"),left:k.css("left"),width:r},f.speed,function(){k.css("zIndex",f.zIndex+1).fadeIn(f.fadeInSpeed,function(){if(q.isOpened()&&!d(this).index(k)){n.call()}else{k.hide()}})})};var a=function(f){var h=this.getOverlay(),i=this.getConf(),g=this.getTrigger(),l=i.start.top,k=i.start.left;h.hide();if(g){var j=c(g);l=j[0];k=j[1]}h.data("img").animate({top:l,left:k,width:0},i.closeSpeed,f)};b.addEffect("apple",e,a)})(jQuery);(function(b){b.tools=b.tools||{};b.tools.expose={version:"1.0.5",conf:{maskId:null,loadSpeed:"slow",closeSpeed:"fast",closeOnClick:true,closeOnEsc:true,zIndex:9998,opacity:0.8,color:"#456",api:false}};function a(){if(b.browser.msie){var f=b(document).height(),e=b(window).height();return[window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,f-e<20?e:f]}return[b(window).width(),b(document).height()]}function c(h,g){var e=this,j=b(this),d=null,f=false,i=0;b.each(g,function(k,l){if(b.isFunction(l)){j.bind(k,l)}});b(window).resize(function(){e.fit()});b.extend(this,{getMask:function(){return d},getExposed:function(){return h},getConf:function(){return g},isLoaded:function(){return f},load:function(n){if(f){return e}i=h.eq(0).css("zIndex");if(g.maskId){d=b("#"+g.maskId)}if(!d||!d.length){var l=a();d=b("<div/>").css({position:"absolute",top:0,left:0,width:l[0],height:l[1],display:"none",opacity:0,zIndex:g.zIndex});if(g.maskId){d.attr("id",g.maskId)}b("body").append(d);var k=d.css("backgroundColor");if(!k||k=="transparent"||k=="rgba(0, 0, 0, 0)"){d.css("backgroundColor",g.color)}if(g.closeOnEsc){b(document).bind("keydown.unexpose",function(o){if(o.keyCode==27){e.close()}})}if(g.closeOnClick){d.bind("click.unexpose",function(o){e.close(o)})}}n=n||b.Event();n.type="onBeforeLoad";j.trigger(n);if(n.isDefaultPrevented()){return e}b.each(h,function(){var o=b(this);if(!/relative|absolute|fixed/i.test(o.css("position"))){o.css("position","relative")}});h.css({zIndex:Math.max(g.zIndex+1,i=="auto"?0:i)});var m=d.height();if(!this.isLoaded()){d.css({opacity:0,display:"block"}).fadeTo(g.loadSpeed,g.opacity,function(){if(d.height()!=m){d.css("height",m)}n.type="onLoad";j.trigger(n)})}f=true;return e},close:function(k){if(!f){return e}k=k||b.Event();k.type="onBeforeClose";j.trigger(k);if(k.isDefaultPrevented()){return e}d.fadeOut(g.closeSpeed,function(){k.type="onClose";j.trigger(k);h.css({zIndex:b.browser.msie?i:null})});f=false;return e},fit:function(){if(d){var k=a();d.css({width:k[0],height:k[1]})}},bind:function(k,l){j.bind(k,l);return e},unbind:function(k){j.unbind(k);return e}});b.each("onBeforeLoad,onLoad,onBeforeClose,onClose".split(","),function(k,l){e[l]=function(m){return e.bind(l,m)}})}b.fn.expose=function(d){var e=this.eq(typeof d=="number"?d:0).data("expose");if(e){return e}if(typeof d=="string"){d={color:d}}var f=b.extend({},b.tools.expose.conf);d=b.extend(f,d);this.each(function(){e=new c(b(this),d);b(this).data("expose",e)});return d.api?e:this}})(jQuery);(function(){function g(o){console.log("$f.fireEvent",[].slice.call(o))}function k(q){if(!q||typeof q!="object"){return q}var o=new q.constructor();for(var p in q){if(q.hasOwnProperty(p)){o[p]=k(q[p])}}return o}function m(t,q){if(!t){return}var o,p=0,r=t.length;if(r===undefined){for(o in t){if(q.call(t[o],o,t[o])===false){break}}}else{for(var s=t[0];p<r&&q.call(s,p,s)!==false;s=t[++p]){}}return t}function c(o){return document.getElementById(o)}function i(q,p,o){if(typeof p!="object"){return q}if(q&&p){m(p,function(r,s){if(!o||typeof s!="function"){q[r]=s}})}return q}function n(s){var q=s.indexOf(".");if(q!=-1){var p=s.substring(0,q)||"*";var o=s.substring(q+1,s.length);var r=[];m(document.getElementsByTagName(p),function(){if(this.className&&this.className.indexOf(o)!=-1){r.push(this)}});return r}}function f(o){o=o||window.event;if(o.preventDefault){o.stopPropagation();o.preventDefault()}else{o.returnValue=false;o.cancelBubble=true}return false}function j(q,o,p){q[o]=q[o]||[];q[o].push(p)}function e(){return"_"+(""+Math.random()).substring(2,10)}var h=function(t,r,s){var q=this;var p={};var u={};q.index=r;if(typeof t=="string"){t={url:t}}i(this,t,true);m(("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop").split(","),function(){var v="on"+this;if(v.indexOf("*")!=-1){v=v.substring(0,v.length-1);var w="onBefore"+v.substring(2);q[w]=function(x){j(u,w,x);return q}}q[v]=function(x){j(u,v,x);return q};if(r==-1){if(q[w]){s[w]=q[w]}if(q[v]){s[v]=q[v]}}});i(this,{onCuepoint:function(x,w){if(arguments.length==1){p.embedded=[null,x];return q}if(typeof x=="number"){x=[x]}var v=e();p[v]=[x,w];if(s.isLoaded()){s._api().fp_addCuepoints(x,r,v)}return q},update:function(w){i(q,w);if(s.isLoaded()){s._api().fp_updateClip(w,r)}var v=s.getConfig();var x=(r==-1)?v.clip:v.playlist[r];i(x,w,true)},_fireEvent:function(v,y,w,A){if(v=="onLoad"){m(p,function(B,C){if(C[0]){s._api().fp_addCuepoints(C[0],r,B)}});return false}A=A||q;if(v=="onCuepoint"){var z=p[y];if(z){return z[1].call(s,A,w)}}if(y&&"onBeforeBegin,onMetaData,onStart,onUpdate,onResume".indexOf(v)!=-1){i(A,y);if(y.metaData){if(!A.duration){A.duration=y.metaData.duration}else{A.fullDuration=y.metaData.duration}}}var x=true;m(u[v],function(){x=this.call(s,A,y,w)});return x}});if(t.onCuepoint){var o=t.onCuepoint;q.onCuepoint.apply(q,typeof o=="function"?[o]:o);delete t.onCuepoint}m(t,function(v,w){if(typeof w=="function"){j(u,v,w);delete t[v]}});if(r==-1){s.onCuepoint=this.onCuepoint}};var l=function(p,r,q,t){var s={};var o=this;var u=false;if(t){i(s,t)}m(r,function(v,w){if(typeof w=="function"){s[v]=w;delete r[v]}});i(this,{animate:function(y,z,x){if(!y){return o}if(typeof z=="function"){x=z;z=500}if(typeof y=="string"){var w=y;y={};y[w]=z;z=500}if(x){var v=e();s[v]=x}if(z===undefined){z=500}r=q._api().fp_animate(p,y,z,v);return o},css:function(w,x){if(x!==undefined){var v={};v[w]=x;w=v}r=q._api().fp_css(p,w);i(o,r);return o},show:function(){this.display="block";q._api().fp_showPlugin(p);return o},hide:function(){this.display="none";q._api().fp_hidePlugin(p);return o},toggle:function(){this.display=q._api().fp_togglePlugin(p);return o},fadeTo:function(y,x,w){if(typeof x=="function"){w=x;x=500}if(w){var v=e();s[v]=w}this.display=q._api().fp_fadeTo(p,y,x,v);this.opacity=y;return o},fadeIn:function(w,v){return o.fadeTo(1,w,v)},fadeOut:function(w,v){return o.fadeTo(0,w,v)},getName:function(){return p},getPlayer:function(){return q},_fireEvent:function(w,v,x){if(w=="onUpdate"){var y=q._api().fp_getPlugin(p);if(!y){return}i(o,y);delete o.methods;if(!u){m(y.methods,function(){var A=""+this;o[A]=function(){var B=[].slice.call(arguments);var C=q._api().fp_invoke(p,A,B);return C==="undefined"||C===undefined?o:C}});u=true}}var z=s[w];if(z){z.apply(o,v);if(w.substring(0,1)=="_"){delete s[w]}}}})};function b(o,t,z){var E=this,y=null,x,u,p=[],s={},B={},r,v,w,D,A,q;i(E,{id:function(){return r},isLoaded:function(){return(y!==null)},getParent:function(){return o},hide:function(F){if(F){o.style.height="0px"}if(y){y.style.height="0px"}return E},show:function(){o.style.height=q+"px";if(y){y.style.height=A+"px"}return E},isHidden:function(){return y&&parseInt(y.style.height,10)===0},load:function(F){if(!y&&E._fireEvent("onBeforeLoad")!==false){m(a,function(){this.unload()});x=o.innerHTML;if(x&&!flashembed.isSupported(t.version)){o.innerHTML=""}flashembed(o,t,{config:z});if(F){F.cached=true;j(B,"onLoad",F)}}return E},unload:function(){if(x.replace(/\s/g,"")!==""){if(E._fireEvent("onBeforeUnload")===false){return E}try{if(y){y.fp_close();E._fireEvent("onUnload")}}catch(F){}y=null;o.innerHTML=x}return E},getClip:function(F){if(F===undefined){F=D}return p[F]},getCommonClip:function(){return u},getPlaylist:function(){return p},getPlugin:function(F){var H=s[F];if(!H&&E.isLoaded()){var G=E._api().fp_getPlugin(F);if(G){H=new l(F,G,E);s[F]=H}}return H},getScreen:function(){return E.getPlugin("screen")},getControls:function(){return E.getPlugin("controls")},getConfig:function(F){return F?k(z):z},getFlashParams:function(){return t},loadPlugin:function(I,H,K,J){if(typeof K=="function"){J=K;K={}}var G=J?e():"_";E._api().fp_loadPlugin(I,H,K,G);var F={};F[G]=J;var L=new l(I,null,E,F);s[I]=L;return L},getState:function(){return y?y.fp_getState():-1},play:function(G,F){function H(){if(G!==undefined){E._api().fp_play(G,F)}else{E._api().fp_play()}}if(y){H()}else{E.load(function(){H()})}return E},getVersion:function(){var G="flowplayer.js 3.1.4";if(y){var F=y.fp_getVersion();F.push(G);return F}return G},_api:function(){if(!y){throw"Flowplayer "+E.id()+" not loaded when calling an API method"}return y},setClip:function(F){E.setPlaylist([F]);return E},getIndex:function(){return w}});m(("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut").split(","),function(){var F="on"+this;if(F.indexOf("*")!=-1){F=F.substring(0,F.length-1);var G="onBefore"+F.substring(2);E[G]=function(H){j(B,G,H);return E}}E[F]=function(H){j(B,F,H);return E}});m(("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffering,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip,playFeed").split(","),function(){var F=this;E[F]=function(H,G){if(!y){return E}var I=null;if(H!==undefined&&G!==undefined){I=y["fp_"+F](H,G)}else{I=(H===undefined)?y["fp_"+F]():y["fp_"+F](H)}return I==="undefined"||I===undefined?E:I}});E._fireEvent=function(O){if(typeof O=="string"){O=[O]}var P=O[0],M=O[1],K=O[2],J=O[3],I=0;if(z.debug){g(O)}if(!y&&P=="onLoad"&&M=="player"){y=y||c(v);A=y.clientHeight;m(p,function(){this._fireEvent("onLoad")});m(s,function(Q,R){R._fireEvent("onUpdate")});u._fireEvent("onLoad")}if(P=="onLoad"&&M!="player"){return}if(P=="onError"){if(typeof M=="string"||(typeof M=="number"&&typeof K=="number")){M=K;K=J}}if(P=="onContextMenu"){m(z.contextMenu[M],function(Q,R){R.call(E)});return}if(P=="onPluginEvent"){var F=M.name||M;var G=s[F];if(G){G._fireEvent("onUpdate",M);G._fireEvent(K,O.slice(3))}return}if(P=="onPlaylistReplace"){p=[];var L=0;m(M,function(){p.push(new h(this,L++,E))})}if(P=="onClipAdd"){if(M.isInStream){return}M=new h(M,K,E);p.splice(K,0,M);for(I=K+1;I<p.length;I++){p[I].index++}}var N=true;if(typeof M=="number"&&M<p.length){D=M;var H=p[M];if(H){N=H._fireEvent(P,K,J)}if(!H||N!==false){N=u._fireEvent(P,K,J,H)}}m(B[P],function(){N=this.call(E,M,K);if(this.cached){B[P].splice(I,1)}if(N===false){return false}I++});return N};function C(){if($f(o)){$f(o).getParent().innerHTML="";w=$f(o).getIndex();a[w]=E}else{a.push(E);w=a.length-1}q=parseInt(o.style.height,10)||o.clientHeight;if(typeof t=="string"){t={src:t}}r=o.id||"fp"+e();v=t.id||r+"_api";t.id=v;z.playerId=r;if(typeof z=="string"){z={clip:{url:z}}}if(typeof z.clip=="string"){z.clip={url:z.clip}}z.clip=z.clip||{};if(o.getAttribute("href",2)&&!z.clip.url){z.clip.url=o.getAttribute("href",2)}u=new h(z.clip,-1,E);z.playlist=z.playlist||[z.clip];var F=0;m(z.playlist,function(){var H=this;if(typeof H=="object"&&H.length){H={url:""+H}}m(z.clip,function(I,J){if(J!==undefined&&H[I]===undefined&&typeof J!="function"){H[I]=J}});z.playlist[F]=H;H=new h(H,F,E);p.push(H);F++});m(z,function(H,I){if(typeof I=="function"){if(u[H]){u[H](I)}else{j(B,H,I)}delete z[H]}});m(z.plugins,function(H,I){if(I){s[H]=new l(H,I,E)}});if(!z.plugins||z.plugins.controls===undefined){s.controls=new l("controls",null,E)}s.canvas=new l("canvas",null,E);t.bgcolor=t.bgcolor||"#000000";t.version=t.version||[9,0];t.expressInstall="http://www.flowplayer.org/swf/expressinstall.swf";function G(H){if(!E.isLoaded()&&E._fireEvent("onBeforeClick")!==false){E.load()}return f(H)}x=o.innerHTML;if(x.replace(/\s/g,"")!==""){if(o.addEventListener){o.addEventListener("click",G,false)}else{if(o.attachEvent){o.attachEvent("onclick",G)}}}else{if(o.addEventListener){o.addEventListener("click",f,false)}E.load()}}if(typeof o=="string"){flashembed.domReady(function(){var F=c(o);if(!F){throw"Flowplayer cannot access element: "+o}else{o=F;C()}})}else{C()}}var a=[];function d(o){this.length=o.length;this.each=function(p){m(o,p)};this.size=function(){return o.length}}window.flowplayer=window.$f=function(){var p=null;var o=arguments[0];if(!arguments.length){m(a,function(){if(this.isLoaded()){p=this;return false}});return p||a[0]}if(arguments.length==1){if(typeof o=="number"){return a[o]}else{if(o=="*"){return new d(a)}m(a,function(){if(this.id()==o.id||this.id()==o||this.getParent()==o){p=this;return false}});return p}}if(arguments.length>1){var r=arguments[1];var q=(arguments.length==3)?arguments[2]:{};if(typeof o=="string"){if(o.indexOf(".")!=-1){var t=[];m(n(o),function(){t.push(new b(this,k(r),k(q)))});return new d(t)}else{var s=c(o);return new b(s!==null?s:o,r,q)}}else{if(o){return new b(o,r,q)}}}return null};i(window.$f,{fireEvent:function(){var o=[].slice.call(arguments);var q=$f(o[0]);return q?q._fireEvent(o.slice(1)):null},addPlugin:function(o,p){b.prototype[o]=p;return $f},each:m,extend:i});if(typeof jQuery=="function"){jQuery.prototype.flowplayer=function(q,p){if(!arguments.length||typeof arguments[0]=="number"){var o=[];this.each(function(){var r=$f(this);if(r){o.push(r)}});return arguments.length?o[arguments[0]]:new d(o)}return this.each(function(){$f(this,k(q),p?k(p):{})})}}})();(function(){var e=typeof jQuery=="function";var i={width:"100%",height:"100%",allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:null,onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(e){jQuery.tools=jQuery.tools||{};jQuery.tools.flashembed={version:"1.0.4",conf:i}}function j(){if(c.done){return false}var l=document;if(l&&l.getElementsByTagName&&l.getElementById&&l.body){clearInterval(c.timer);c.timer=null;for(var k=0;k<c.ready.length;k++){c.ready[k].call()}c.ready=null;c.done=true}}var c=e?jQuery:function(k){if(c.done){return k()}if(c.timer){c.ready.push(k)}else{c.ready=[k];c.timer=setInterval(j,13)}};function f(l,k){if(k){for(key in k){if(k.hasOwnProperty(key)){l[key]=k[key]}}}return l}function g(k){switch(h(k)){case"string":k=k.replace(new RegExp('(["\\\\])',"g"),"\\$1");k=k.replace(/^\s?(\d+)%/,"$1pct");return'"'+k+'"';case"array":return"["+b(k,function(n){return g(n)}).join(",")+"]";case"function":return'"function()"';case"object":var l=[];for(var m in k){if(k.hasOwnProperty(m)){l.push('"'+m+'":'+g(k[m]))}}return"{"+l.join(",")+"}"}return String(k).replace(/\s/g," ").replace(/\'/g,'"')}function h(l){if(l===null||l===undefined){return false}var k=typeof l;return(k=="object"&&l.push)?"array":k}if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}function b(k,n){var m=[];for(var l in k){if(k.hasOwnProperty(l)){m[l]=n(k[l])}}return m}function a(r,t){var q=f({},r);var s=document.all;var n='<object width="'+q.width+'" height="'+q.height+'"';if(s&&!q.id){q.id="_"+(""+Math.random()).substring(9)}if(q.id){n+=' id="'+q.id+'"'}if(q.cachebusting){q.src+=((q.src.indexOf("?")!=-1?"&":"?")+Math.random())}if(q.w3c||!s){n+=' data="'+q.src+'" type="application/x-shockwave-flash"'}else{n+=' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'}n+=">";if(q.w3c||s){n+='<param name="movie" value="'+q.src+'" />'}q.width=q.height=q.id=q.w3c=q.src=null;for(var l in q){if(q[l]!==null){n+='<param name="'+l+'" value="'+q[l]+'" />'}}var o="";if(t){for(var m in t){if(t[m]!==null){o+=m+"="+(typeof t[m]=="object"?g(t[m]):t[m])+"&"}}o=o.substring(0,o.length-1);n+='<param name="flashvars" value=\''+o+"' />"}n+="</object>";return n}function d(m,p,l){var k=flashembed.getVersion();f(this,{getContainer:function(){return m},getConf:function(){return p},getVersion:function(){return k},getFlashvars:function(){return l},getApi:function(){return m.firstChild},getHTML:function(){return a(p,l)}});var q=p.version;var r=p.expressInstall;var o=!q||flashembed.isSupported(q);if(o){p.onFail=p.version=p.expressInstall=null;m.innerHTML=a(p,l)}else{if(q&&r&&flashembed.isSupported([6,65])){f(p,{src:r});l={MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title};m.innerHTML=a(p,l)}else{if(m.innerHTML.replace(/\s/g,"")!==""){}else{m.innerHTML="<h2>Flash version "+q+" or greater is required</h2><h3>"+(k[0]>0?"Your version is "+k:"You have no flash plugin installed")+"</h3>"+(m.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='http://www.adobe.com/go/getflashplayer'>here</a></p>");if(m.tagName=="A"){m.onclick=function(){location.href="http://www.adobe.com/go/getflashplayer"}}}}}if(!o&&p.onFail){var n=p.onFail.call(this);if(typeof n=="string"){m.innerHTML=n}}if(document.all){window[p.id]=document.getElementById(p.id)}}window.flashembed=function(l,m,k){if(typeof l=="string"){var n=document.getElementById(l);if(n){l=n}else{c(function(){flashembed(l,m,k)});return}}if(!l){return}if(typeof m=="string"){m={src:m}}var o=f({},i);f(o,m);return new d(l,o,k)};f(window.flashembed,{getVersion:function(){var m=[0,0];if(navigator.plugins&&typeof navigator.plugins["Shockwave Flash"]=="object"){var l=navigator.plugins["Shockwave Flash"].description;if(typeof l!="undefined"){l=l.replace(/^.*\s+(\S+\s+\S+$)/,"$1");var n=parseInt(l.replace(/^(.*)\..*$/,"$1"),10);var r=/r/.test(l)?parseInt(l.replace(/^.*r(.*)$/,"$1"),10):0;m=[n,r]}}else{if(window.ActiveXObject){try{var p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(q){try{p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");m=[6,0];p.AllowScriptAccess="always"}catch(k){if(m[0]==6){return m}}try{p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(o){}}if(typeof p=="object"){l=p.GetVariable("$version");if(typeof l!="undefined"){l=l.replace(/^\S+\s+(.*)$/,"$1").split(",");m=[parseInt(l[0],10),parseInt(l[2],10)]}}}}return m},isSupported:function(k){var m=flashembed.getVersion();var l=(m[0]>k[0])||(m[0]==k[0]&&m[1]>=k[1]);return l},domReady:c,asString:g,getHTML:a});if(e){jQuery.fn.flashembed=function(l,k){var m=null;this.each(function(){m=flashembed(this,l,k)});return l.api===false?this:m}}})();$f.addPlugin("controls",function(wrap,options){function fixE(e){if(typeof e=='undefined'){e=window.event;}if(typeof e.layerX=='undefined'){e.layerX=e.offsetX;}if(typeof e.layerY=='undefined'){e.layerY=e.offsetY;}return e;}function w(e){return e.clientWidth;}function offset(e){return e.offsetLeft;}function Draggable(o,min,max,offset){var dragging=false;function foo(){}o.onDragStart=o.onDragStart||foo;o.onDragEnd=o.onDragEnd||foo;o.onDrag=o.onDrag||foo;function move(x){if(x>max){return false;}if(x<min){return false;}o.style.left=x+"px";return true;}function end(){document.onmousemove=null;document.onmouseup=null;o.onDragEnd(parseInt(o.style.left,10));dragging=false;}function drag(e){e=fixE(e);var x=e.clientX-offset;if(move(x)){dragging=true;o.onDrag(x);}return false;}o.onmousedown=function(e){e=fixE(e);o.onDragStart(parseInt(o.style.left,10));document.onmousemove=drag;document.onmouseup=end;return false;};this.dragTo=function(x){if(move(x)){o.onDragEnd(x);}};this.setMax=function(val){max=val;};this.isDragging=function(){return dragging;};return this;}function extend(to,from){if(from){for(key in from){if(key){to[key]=from[key];}}}}function byClass(name){var els=wrap.getElementsByTagName("*");var re=new RegExp("(^|\\s)"+name+"(\\s|$)");for(var i=0;i<els.length;i++){if(re.test(els[i].className)){return els[i];}}}function pad(val){val=parseInt(val,10);return val>=10?val:"0"+val;}function toTime(sec){var h=Math.floor(sec/3600);var min=Math.floor(sec/60);sec=sec-(min*60);if(h>=1){min-=h*60;return pad(h)+":"+pad(min)+":"+pad(sec);}return pad(min)+":"+pad(sec);}function getTime(time,duration){return"<span>"+toTime(time)+"</span> <strong>"+toTime(duration)+"</strong>";}var self=this;var opts={playHeadClass:'playhead',trackClass:'track',playClass:'play',pauseClass:'pause',bufferClass:'buffer',progressClass:'progress',timeClass:'time',muteClass:'mute',unmuteClass:'unmute',duration:0,template:'<a class="play">play</a>'+'<div class="track">'+'<div class="buffer"></div>'+'<div class="progress"></div>'+'<div class="playhead"></div>'+'</div>'+'<div class="time"></div>'+'<a class="mute">mute</a>'};extend(opts,options);if(typeof wrap=='string'){wrap=document.getElementById(wrap);}if(!wrap){return;}if(!wrap.innerHTML.replace(/\s/g,'')){wrap.innerHTML=opts.template;}var ball=byClass(opts.playHeadClass);var bufferBar=byClass(opts.bufferClass);var progressBar=byClass(opts.progressClass);var track=byClass(opts.trackClass);var time=byClass(opts.timeClass);var mute=byClass(opts.muteClass);time.innerHTML=getTime(0,opts.duration);var trackWidth=w(track);var ballWidth=w(ball);var head=new Draggable(ball,0,0,offset(wrap)+offset(track)+(ballWidth/2));track.onclick=function(e){e=fixE(e);if(e.target==ball){return false;}head.dragTo(e.layerX-ballWidth/2);};var play=byClass(opts.playClass);play.onclick=function(){if(self.isLoaded()){self.toggle();}else{self.play();}};mute.onclick=function(){if(self.getStatus().muted){self.unmute();}else{self.mute();}};var timer=null;function getMax(len,total){return parseInt(Math.min(len/total*trackWidth,trackWidth-ballWidth/2),10);}self.onStart(function(clip){var duration=clip.duration||0;clearInterval(timer);timer=setInterval(function(){var status=self.getStatus();if(status.time){time.innerHTML=getTime(status.time,clip.duration);}if(status.time===undefined){clearInterval(timer);return;}var x=getMax(status.bufferEnd,duration);bufferBar.style.width=x+"px";head.setMax(x);if(!self.isPaused()&&!head.isDragging()){x=getMax(status.time,duration);progressBar.style.width=x+"px";ball.style.left=(x-ballWidth/2)+"px";}},500);});self.onBegin(function(){play.className=opts.pauseClass;});self.onPause(function(){play.className=opts.playClass;});self.onResume(function(){play.className=opts.pauseClass;});self.onMute(function(){mute.className=opts.unmuteClass;});self.onUnmute(function(){mute.className=opts.muteClass;});self.onFinish(function(clip){clearInterval(timer);});self.onUnload(function(){time.innerHTML=getTime(0,opts.duration);});ball.onDragEnd=function(x){var to=parseInt(x/trackWidth*100,10)+"%";progressBar.style.width=x+"px";if(self.isLoaded()){self.seek(to);}};ball.onDrag=function(x){progressBar.style.width=x+"px";};return self;});(function(a){$f.addPlugin("playlist",function(d,o){var n=this;var b={playingClass:"playing",pausedClass:"paused",progressClass:"progress",template:'<a href="${url}">${title}</a>',loop:false,playOnClick:true,manual:false};a.extend(b,o);d=a(d);var j=n.getPlaylist().length<=1||b.manual;var k=null;function e(q){var p=m;a.each(q,function(r,s){if(!a.isFunction(s)){p=p.replace("${"+r+"}",s).replace("$%7B"+r+"%7D",s)}});return p}function i(){k=d.children().unbind("click.playlist").bind("click.playlist",function(){return h(a(this),k.index(this))})}function c(){d.empty();a.each(n.getPlaylist(),function(){d.append(e(this))});i()}function h(p,q){if(p.hasClass(b.playingClass)||p.hasClass(b.pausedClass)){n.toggle()}else{p.addClass(b.progressClass);n.play(q)}return false}function l(){if(j){k=d.children()}k.removeClass(b.playingClass);k.removeClass(b.pausedClass);k.removeClass(b.progressClass)}function f(p){return(j)?k.filter("[href="+p.originalUrl+"]"):k.eq(p.index)}if(!j){var m=d.is(":empty")?b.template:d.html();c()}else{k=d.children();if(a.isFunction(k.live)){a(d.selector+"> *").live("click",function(){var p=a(this);return h(p,p.attr("href"))})}else{k.click(function(){var p=a(this);return h(p,p.attr("href"))})}var g=n.getClip(0);if(!g.url&&b.playOnClick){g.update({url:k.eq(0).attr("href")})}}n.onBegin(function(p){l();f(p).addClass(b.playingClass)});n.onPause(function(p){f(p).removeClass(b.playingClass).addClass(b.pausedClass)});n.onResume(function(p){f(p).removeClass(b.pausedClass).addClass(b.playingClass)});if(!b.loop&&!j){n.onBeforeFinish(function(p){if(!p.isInStream&&p.index<k.length-1){return false}})}if(j&&b.loop){n.onBeforeFinish(function(q){var p=f(q);if(p.next().length){p.next().click()}else{k.eq(0).click()}return false})}n.onUnload(function(){l()});if(!j){n.onPlaylistReplace(function(){c()})}n.onClipAdd(function(q,p){k.eq(p).before(e(q));i()});return n})})(jQuery);(function(){function toAbsolute(url,base){if(url.substring(0,4)=="http"){return url;}if(base){return base+(base.substring(base.length-1)!="/"?"/":"")+url;}base=location.protocol+"//"+location.host;if(url.substring(0,1)=="/"){return base+url;}var path=location.pathname;path=path.substring(0,path.lastIndexOf("/"));return base+path+"/"+url;}$f.addPlugin("embed",function(options){var self=this;var conf=self.getConfig(true);var opts={width:self.getParent().clientWidth||'100%',height:self.getParent().clientHeight||'100%',url:toAbsolute(self.getFlashParams().src),index:-1,allowfullscreen:true,allowscriptaccess:'always'};$f.extend(opts,options);opts.src=opts.url;opts.w3c=true;delete conf.playerId;delete opts.url;delete opts.index;this.getEmbedCode=function(runnable,index){index=typeof index=='number'?index:opts.index;if(index>=0){conf.playlist=[self.getPlaylist()[index]];}index=0;$f.each(conf.playlist,function(){conf.playlist[index++].url=toAbsolute(this.url,this.baseUrl);});var html=flashembed.getHTML(opts,{config:conf});if(!runnable){html=html.replace(/\</g,"&lt;").replace(/\>/g,"&gt;");}return html;};return self;});})();(function(){function a(b,c){if(b.substring(0,4)=="http"){return b}if(c){return c+(c.substring(c.length-1)!="/"?"/":"")+b}c=location.protocol+"//"+location.host;if(b.substring(0,1)=="/"){return c+b}var d=location.pathname;d=d.substring(0,d.lastIndexOf("/"));return c+d+"/"+b}$f.addPlugin("embed",function(d){var b=this;var c=b.getConfig(true);var e={width:b.getParent().clientWidth||"100%",height:b.getParent().clientHeight||"100%",url:a(b.getFlashParams().src),index:-1,allowfullscreen:true,allowscriptaccess:"always",id:"_"+b.id()};$f.extend(e,d);e.src=e.url;e.w3c=true;delete c.playerId;delete e.url;delete e.index;this.getEmbedCode=function(h,f){f=typeof f=="number"?f:e.index;if(f>=0){c.playlist=[b.getPlaylist()[f]]}f=0;$f.each(c.playlist,function(){c.playlist[f++].url=a(this.url,this.baseUrl)});var g=flashembed.getHTML(e,{config:c});if(!h){g=g.replace(/\</g,"&lt;").replace(/\>/g,"&gt;")}return g};return b})})();(function(){var e=typeof jQuery=="function";var i={width:"100%",height:"100%",allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:null,onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(e){jQuery.tools=jQuery.tools||{};jQuery.tools.flashembed={version:"1.0.4",conf:i}}function j(){if(c.done){return false}var l=document;if(l&&l.getElementsByTagName&&l.getElementById&&l.body){clearInterval(c.timer);c.timer=null;for(var k=0;k<c.ready.length;k++){c.ready[k].call()}c.ready=null;c.done=true}}var c=e?jQuery:function(k){if(c.done){return k()}if(c.timer){c.ready.push(k)}else{c.ready=[k];c.timer=setInterval(j,13)}};function f(l,k){if(k){for(key in k){if(k.hasOwnProperty(key)){l[key]=k[key]}}}return l}function g(k){switch(h(k)){case"string":k=k.replace(new RegExp('(["\\\\])',"g"),"\\$1");k=k.replace(/^\s?(\d+)%/,"$1pct");return'"'+k+'"';case"array":return"["+b(k,function(n){return g(n)}).join(",")+"]";case"function":return'"function()"';case"object":var l=[];for(var m in k){if(k.hasOwnProperty(m)){l.push('"'+m+'":'+g(k[m]))}}return"{"+l.join(",")+"}"}return String(k).replace(/\s/g," ").replace(/\'/g,'"')}function h(l){if(l===null||l===undefined){return false}var k=typeof l;return(k=="object"&&l.push)?"array":k}if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}function b(k,n){var m=[];for(var l in k){if(k.hasOwnProperty(l)){m[l]=n(k[l])}}return m}function a(r,t){var q=f({},r);var s=document.all;var n='<object width="'+q.width+'" height="'+q.height+'"';if(s&&!q.id){q.id="_"+(""+Math.random()).substring(9)}if(q.id){n+=' id="'+q.id+'"'}if(q.cachebusting){q.src+=((q.src.indexOf("?")!=-1?"&":"?")+Math.random())}if(q.w3c||!s){n+=' data="'+q.src+'" type="application/x-shockwave-flash"'}else{n+=' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'}n+=">";if(q.w3c||s){n+='<param name="movie" value="'+q.src+'" />'}q.width=q.height=q.id=q.w3c=q.src=null;for(var l in q){if(q[l]!==null){n+='<param name="'+l+'" value="'+q[l]+'" />'}}var o="";if(t){for(var m in t){if(t[m]!==null){o+=m+"="+(typeof t[m]=="object"?g(t[m]):t[m])+"&"}}o=o.substring(0,o.length-1);n+='<param name="flashvars" value=\''+o+"' />"}n+="</object>";return n}function d(m,p,l){var k=flashembed.getVersion();f(this,{getContainer:function(){return m},getConf:function(){return p},getVersion:function(){return k},getFlashvars:function(){return l},getApi:function(){return m.firstChild},getHTML:function(){return a(p,l)}});var q=p.version;var r=p.expressInstall;var o=!q||flashembed.isSupported(q);if(o){p.onFail=p.version=p.expressInstall=null;m.innerHTML=a(p,l)}else{if(q&&r&&flashembed.isSupported([6,65])){f(p,{src:r});l={MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title};m.innerHTML=a(p,l)}else{if(m.innerHTML.replace(/\s/g,"")!==""){}else{m.innerHTML="<h2>Flash version "+q+" or greater is required</h2><h3>"+(k[0]>0?"Your version is "+k:"You have no flash plugin installed")+"</h3>"+(m.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='http://www.adobe.com/go/getflashplayer'>here</a></p>");if(m.tagName=="A"){m.onclick=function(){location.href="http://www.adobe.com/go/getflashplayer"}}}}}if(!o&&p.onFail){var n=p.onFail.call(this);if(typeof n=="string"){m.innerHTML=n}}if(document.all){window[p.id]=document.getElementById(p.id)}}window.flashembed=function(l,m,k){if(typeof l=="string"){var n=document.getElementById(l);if(n){l=n}else{c(function(){flashembed(l,m,k)});return}}if(!l){return}if(typeof m=="string"){m={src:m}}var o=f({},i);f(o,m);return new d(l,o,k)};f(window.flashembed,{getVersion:function(){var m=[0,0];if(navigator.plugins&&typeof navigator.plugins["Shockwave Flash"]=="object"){var l=navigator.plugins["Shockwave Flash"].description;if(typeof l!="undefined"){l=l.replace(/^.*\s+(\S+\s+\S+$)/,"$1");var n=parseInt(l.replace(/^(.*)\..*$/,"$1"),10);var r=/r/.test(l)?parseInt(l.replace(/^.*r(.*)$/,"$1"),10):0;m=[n,r]}}else{if(window.ActiveXObject){try{var p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(q){try{p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");m=[6,0];p.AllowScriptAccess="always"}catch(k){if(m[0]==6){return m}}try{p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(o){}}if(typeof p=="object"){l=p.GetVariable("$version");if(typeof l!="undefined"){l=l.replace(/^\S+\s+(.*)$/,"$1").split(",");m=[parseInt(l[0],10),parseInt(l[2],10)]}}}}return m},isSupported:function(k){var m=flashembed.getVersion();var l=(m[0]>k[0])||(m[0]==k[0]&&m[1]>=k[1]);return l},domReady:c,asString:g,getHTML:a});if(e){jQuery.fn.flashembed=function(l,k){var m=null;this.each(function(){m=flashembed(this,l,k)});return l.api===false?this:m}}})();(function(){function $empty(){};function $extend(original,extended){for(var key in(extended||{}))original[key]=extended[key];return original;};function $lambda(value){return(typeof value=='function')?value:function(){return value;};};var $time=Date.now||function(){return+new Date;};function $splat(obj){var type=$type(obj);return(type)?((type!='array')?[obj]:obj):[];};var $type=function(elem){return $type.s.call(elem).match(/^\[object\s(.*)\]$/)[1].toLowerCase();};$type.s=Object.prototype.toString;function $each(iterable,fn){var type=$type(iterable);if(type=='object'){for(var key in iterable)fn(iterable[key],key);}else{for(var i=0;i<iterable.length;i++)fn(iterable[i],i);}};function $merge(){var mix={};for(var i=0,l=arguments.length;i<l;i++){var object=arguments[i];if($type(object)!='object')continue;for(var key in object){var op=object[key],mp=mix[key];mix[key]=(mp&&$type(op)=='object'&&$type(mp)=='object')?$merge(mp,op):$unlink(op);}}
return mix;};function $unlink(object){var unlinked;switch($type(object)){case'object':unlinked={};for(var p in object)unlinked[p]=$unlink(object[p]);break;case'array':unlinked=[];for(var i=0,l=object.length;i<l;i++)unlinked[i]=$unlink(object[i]);break;default:return object;}
return unlinked;};function $rgbToHex(srcArray,array){if(srcArray.length<3)return null;if(srcArray.length==4&&srcArray[3]==0&&!array)return'transparent';var hex=[];for(var i=0;i<3;i++){var bit=(srcArray[i]-0).toString(16);hex.push((bit.length==1)?'0'+bit:bit);}
return(array)?hex:'#'+hex.join('');};function $destroy(elem){$clean(elem);if(elem.parentNode)elem.parentNode.removeChild(elem);if(elem.clearAttributes)elem.clearAttributes();};function $clean(elem){for(var ch=elem.childNodes,i=0;i<ch.length;i++){$destroy(ch[i]);}};function $addEvent(obj,type,fn){if(obj.addEventListener)
obj.addEventListener(type,fn,false);else
obj.attachEvent('on'+type,fn);};function $hasClass(obj,klass){return(' '+obj.className+' ').indexOf(' '+klass+' ')>-1;};function $addClass(obj,klass){if(!$hasClass(obj,klass))obj.className=(obj.className+" "+klass);};function $removeClass(obj,klass){obj.className=obj.className.replace(new RegExp('(^|\\s)'+klass+'(?:\\s|$)'),'$1');};function $get(id){return document.getElementById(id);};var Class=function(properties){properties=properties||{};var klass=function(){this.constructor=klass;if(Class.prototyping)return this;var instance=(this.initialize)?this.initialize.apply(this,arguments):this;return instance;};for(var mutator in Class.Mutators){if(!properties[mutator])continue;properties=Class.Mutators[mutator](properties,properties[mutator]);delete properties[mutator];}
$extend(klass,this);klass.constructor=Class;klass.prototype=properties;return klass;};Class.Mutators={Extends:function(self,klass){Class.prototyping=klass.prototype;var subclass=new klass;delete subclass.parent;subclass=Class.inherit(subclass,self);delete Class.prototyping;return subclass;},Implements:function(self,klasses){$each($splat(klasses),function(klass){Class.prototying=klass;$extend(self,($type(klass)=='function')?new klass:klass);delete Class.prototyping;});return self;}};$extend(Class,{inherit:function(object,properties){var caller=arguments.callee.caller;for(var key in properties){var override=properties[key];var previous=object[key];var type=$type(override);if(previous&&type=='function'){if(override!=previous){if(caller){override.__parent=previous;object[key]=override;}else{Class.override(object,key,override);}}}else if(type=='object'){object[key]=$merge(previous,override);}else{object[key]=override;}}
if(caller)object.parent=function(){return arguments.callee.caller.__parent.apply(this,arguments);};return object;},override:function(object,name,method){var parent=Class.prototyping;if(parent&&object[name]!=parent[name])parent=null;var override=function(){var previous=this.parent;this.parent=parent?parent[name]:object[name];var value=method.apply(this,arguments);this.parent=previous;return value;};object[name]=override;}});Class.prototype.implement=function(){var proto=this.prototype;$each(Array.prototype.slice.call(arguments||[]),function(properties){Class.inherit(proto,properties);});return this;};this.TreeUtil={prune:function(tree,maxLevel){this.each(tree,function(elem,i){if(i==maxLevel&&elem.children){delete elem.children;elem.children=[];}});},getParent:function(tree,id){if(tree.id==id)return false;var ch=tree.children;if(ch&&ch.length>0){for(var i=0;i<ch.length;i++){if(ch[i].id==id)
return tree;else{var ans=this.getParent(ch[i],id);if(ans)return ans;}}}
return false;},getSubtree:function(tree,id){if(tree.id==id)return tree;for(var i=0,ch=tree.children;i<ch.length;i++){var t=this.getSubtree(ch[i],id);if(t!=null)return t;}
return null;},getLeaves:function(node,maxLevel){var leaves=[],levelsToShow=maxLevel||Number.MAX_VALUE;this.each(node,function(elem,i){if(i<levelsToShow&&(!elem.children||elem.children.length==0)){leaves.push({'node':elem,'level':levelsToShow-i});}});return leaves;},eachLevel:function(tree,initLevel,toLevel,action){if(initLevel<=toLevel){action(tree,initLevel);for(var i=0,ch=tree.children;i<ch.length;i++){this.eachLevel(ch[i],initLevel+1,toLevel,action);}}},each:function(tree,action){this.eachLevel(tree,0,Number.MAX_VALUE,action);},loadSubtrees:function(tree,controller){var maxLevel=controller.request&&controller.levelsToShow;var leaves=this.getLeaves(tree,maxLevel),len=leaves.length,selectedNode={};if(len==0)controller.onComplete();for(var i=0,counter=0;i<len;i++){var leaf=leaves[i],id=leaf.node.id;selectedNode[id]=leaf.node;controller.request(id,leaf.level,{onComplete:function(nodeId,tree){var ch=tree.children;selectedNode[nodeId].children=ch;if(++counter==len){controller.onComplete();}}});}}};this.Canvas=(function(){var config={'injectInto':'id','width':200,'height':200,'backgroundColor':'#333333','styles':{'fillStyle':'#000000','strokeStyle':'#000000'},'backgroundCanvas':false};function hasCanvas(){hasCanvas.t=hasCanvas.t||typeof(HTMLCanvasElement);return"function"==hasCanvas.t||"object"==hasCanvas.t;};function create(tag,prop,styles){var elem=document.createElement(tag);(function(obj,prop){if(prop){for(var p in prop){obj[p]=prop[p];}}
return arguments.callee;})(elem,prop)(elem.style,styles);if(tag=="canvas"&&!hasCanvas()&&G_vmlCanvasManager){elem=G_vmlCanvasManager.initElement(document.body.appendChild(elem));}
return elem;};function get(id){return document.getElementById(id);};function translateToCenter(canvas,ctx,w,h){var width=w?(canvas.width-w):canvas.width;var height=h?(canvas.height-h):canvas.height;ctx.translate(width/2,height/2);};return function(id,opt){var ctx,bkctx,mainContainer,labelContainer,canvas,bkcanvas;if(arguments.length<1)
throw"Arguments missing";var idLabel=id+"-label",idCanvas=id+"-canvas",idBCanvas=id+"-bkcanvas";opt=$merge(config,opt||{});var dim={'width':opt.width,'height':opt.height};mainContainer=create("div",{'id':id},$merge(dim,{'position':'relative'}));labelContainer=create("div",{'id':idLabel},{'overflow':'visible','position':'absolute','top':0,'left':0,'width':dim.width+'px','height':0});var dimPos={'position':'absolute','top':0,'left':0,'width':dim.width+'px','height':dim.height+'px'};canvas=create("canvas",$merge({'id':idCanvas},dim),dimPos);var bc=opt.backgroundCanvas;if(bc){bkcanvas=create("canvas",$merge({'id':idBCanvas},dim),dimPos);mainContainer.appendChild(bkcanvas);}
mainContainer.appendChild(canvas);mainContainer.appendChild(labelContainer);get(opt.injectInto).appendChild(mainContainer);ctx=canvas.getContext('2d');translateToCenter(canvas,ctx);var st=opt.styles;var s;for(s in st)
ctx[s]=st[s];if(bc){bkctx=bkcanvas.getContext('2d');st=bc.styles;for(s in st){bkctx[s]=st[s];}
translateToCenter(bkcanvas,bkctx);bc.impl.init(bkcanvas,bkctx);bc.impl.plot(bkcanvas,bkctx);}
return{'id':id,getCtx:function(){return ctx;},getElement:function(){return mainContainer;},resize:function(width,height){var pwidth=canvas.width,pheight=canvas.height;canvas.width=width;canvas.height=height;canvas.style.width=width+"px";canvas.style.height=height+"px";if(bc){bkcanvas.width=width;bkcanvas.height=height;bkcanvas.style.width=width+"px";bkcanvas.style.height=height+"px";}
if(!hasCanvas()){translateToCenter(canvas,ctx,pwidth,pheight);}else{translateToCenter(canvas,ctx);}
var st=opt.styles;var s;for(s in st){ctx[s]=st[s];}
if(bc){st=bc.styles;for(s in st)
bkctx[s]=st[s];if(!hasCanvas()){translateToCenter(bkcanvas,bkctx,pwidth,pheight);}else{translateToCenter(bkcanvas,bkctx);}
bc.impl.init(bkcanvas,bkctx);bc.impl.plot(bkcanvas,bkctx);}},getSize:function(){return{'width':canvas.width,'height':canvas.height};},path:function(type,action){ctx.beginPath();action(ctx);ctx[type]();ctx.closePath();},clear:function(){var size=this.getSize();ctx.clearRect(-size.width/2,-size.height/2,size.width,size.height);},clearRectangle:function(top,right,bottom,left){if(!hasCanvas()){var f0=ctx.fillStyle;ctx.fillStyle=opt.backgroundColor;ctx.fillRect(left,top,Math.abs(right-left),Math.abs(bottom-top));ctx.fillStyle=f0;}
else{ctx.clearRect(left,top,Math.abs(right-left),Math.abs(bottom-top));}}};};})();this.Polar=function(theta,rho){this.theta=theta;this.rho=rho;};Polar.prototype={getc:function(simple){return this.toComplex(simple);},getp:function(){return this;},set:function(v){v=v.getp();this.theta=v.theta;this.rho=v.rho;},setc:function(x,y){this.rho=Math.sqrt(x*x+y*y);this.theta=Math.atan2(y,x);if(this.theta<0)this.theta+=Math.PI*2;},setp:function(theta,rho){this.theta=theta;this.rho=rho;},clone:function(){return new Polar(this.theta,this.rho);},toComplex:function(simple){var x=Math.cos(this.theta)*this.rho;var y=Math.sin(this.theta)*this.rho;if(simple)return{'x':x,'y':y};return new Complex(x,y);},add:function(polar){return new Polar(this.theta+polar.theta,this.rho+polar.rho);},scale:function(number){return new Polar(this.theta,this.rho*number);},equals:function(c){return this.theta==c.theta&&this.rho==c.rho;},$add:function(polar){this.theta=this.theta+polar.theta;this.rho+=polar.rho;return this;},$madd:function(polar){this.theta=(this.theta+polar.theta)%(Math.PI*2);this.rho+=polar.rho;return this;},$scale:function(number){this.rho*=number;return this;},interpolate:function(elem,delta){var pi=Math.PI,pi2=pi*2;var ch=function(t){return(t<0)?(t%pi2)+pi2:t%pi2;};var tt=this.theta,et=elem.theta;var sum;if(Math.abs(tt-et)>pi){if(tt>et){sum=ch((et+((tt-pi2)-et)*delta));}else{sum=ch((et-pi2+(tt-(et-pi2))*delta));}}else{sum=ch((et+(tt-et)*delta));}
var r=(this.rho-elem.rho)*delta+elem.rho;return{'theta':sum,'rho':r};}};var $P=function(a,b){return new Polar(a,b);};Polar.KER=$P(0,0);this.Complex=function(x,y){this.x=x;this.y=y;};Complex.prototype={getc:function(){return this;},getp:function(simple){return this.toPolar(simple);},set:function(c){c=c.getc(true);this.x=c.x;this.y=c.y;},setc:function(x,y){this.x=x;this.y=y;},setp:function(theta,rho){this.x=Math.cos(theta)*rho;this.y=Math.sin(theta)*rho;},clone:function(){return new Complex(this.x,this.y);},toPolar:function(simple){var rho=this.norm();var atan=Math.atan2(this.y,this.x);if(atan<0)atan+=Math.PI*2;if(simple)return{'theta':atan,'rho':rho};return new Polar(atan,rho);},norm:function(){return Math.sqrt(this.squaredNorm());},squaredNorm:function(){return this.x*this.x+this.y*this.y;},add:function(pos){return new Complex(this.x+pos.x,this.y+pos.y);},prod:function(pos){return new Complex(this.x*pos.x-this.y*pos.y,this.y*pos.x+this.x*pos.y);},conjugate:function(){return new Complex(this.x,-this.y);},scale:function(factor){return new Complex(this.x*factor,this.y*factor);},equals:function(c){return this.x==c.x&&this.y==c.y;},$add:function(pos){this.x+=pos.x;this.y+=pos.y;return this;},$prod:function(pos){var x=this.x,y=this.y;this.x=x*pos.x-y*pos.y;this.y=y*pos.x+x*pos.y;return this;},$conjugate:function(){this.y=-this.y;return this;},$scale:function(factor){this.x*=factor;this.y*=factor;return this;},$div:function(pos){var x=this.x,y=this.y;var sq=pos.squaredNorm();this.x=x*pos.x+y*pos.y;this.y=y*pos.x-x*pos.y;return this.$scale(1/sq);}};var $C=function(a,b){return new Complex(a,b);};Complex.KER=$C(0,0);this.Graph=new Class({initialize:function(opt){var innerOptions={'complex':false,'Node':{}};this.opt=$merge(innerOptions,opt||{});this.nodes={};},getNode:function(id){if(this.hasNode(id))return this.nodes[id];return false;},getAdjacence:function(id,id2){var adjs=[];if(this.hasNode(id)&&this.hasNode(id2)&&this.nodes[id].adjacentTo({'id':id2})&&this.nodes[id2].adjacentTo({'id':id})){adjs.push(this.nodes[id].getAdjacency(id2));adjs.push(this.nodes[id2].getAdjacency(id));return adjs;}
return false;},addNode:function(obj){if(!this.nodes[obj.id]){this.nodes[obj.id]=new Graph.Node($extend({'id':obj.id,'name':obj.name,'data':obj.data},this.opt.Node),this.opt.complex);}
return this.nodes[obj.id];},addAdjacence:function(obj,obj2,data){var adjs=[];if(!this.hasNode(obj.id)){this.addNode(obj);}
if(!this.hasNode(obj2.id)){this.addNode(obj2);}
obj=this.nodes[obj.id];obj2=this.nodes[obj2.id];for(var i in this.nodes){if(this.nodes[i].id==obj.id){if(!this.nodes[i].adjacentTo(obj2)){adjs.push(this.nodes[i].addAdjacency(obj2,data));}}
if(this.nodes[i].id==obj2.id){if(!this.nodes[i].adjacentTo(obj)){adjs.push(this.nodes[i].addAdjacency(obj,data));}}}
return adjs;},removeNode:function(id){if(this.hasNode(id)){var node=this.nodes[id];for(var i=0 in node.adjacencies){var adj=node.adjacencies[i];this.removeAdjacence(id,adj.nodeTo.id);}
delete this.nodes[id];}},removeAdjacence:function(id1,id2){if(this.hasNode(id1))this.nodes[id1].removeAdjacency(id2);if(this.hasNode(id2))this.nodes[id2].removeAdjacency(id1);},hasNode:function(id){return id in this.nodes;}});Graph.Node=new Class({initialize:function(opt,complex){var innerOptions={'id':'','name':'','data':{},'adjacencies':{},'selected':false,'drawn':false,'exist':false,'angleSpan':{'begin':0,'end':0},'alpha':1,'startAlpha':1,'endAlpha':1,'pos':(complex&&$C(0,0))||$P(0,0),'startPos':(complex&&$C(0,0))||$P(0,0),'endPos':(complex&&$C(0,0))||$P(0,0)};$extend(this,$extend(innerOptions,opt));},adjacentTo:function(node){return node.id in this.adjacencies;},getAdjacency:function(id){return this.adjacencies[id];},addAdjacency:function(node,data){var adj=new Graph.Adjacence(this,node,data);return this.adjacencies[node.id]=adj;},removeAdjacency:function(id){delete this.adjacencies[id];}});Graph.Adjacence=function(nodeFrom,nodeTo,data){this.nodeFrom=nodeFrom;this.nodeTo=nodeTo;this.data=data||{};this.alpha=1;this.startAlpha=1;this.endAlpha=1;};Graph.Util={filter:function(param){if(!param||!($type(param)=='string'))return function(){return true;};var props=param.split(" ");return function(elem){for(var i=0;i<props.length;i++){if(elem[props[i]]){return false;}}
return true;};},getNode:function(graph,id){return graph.getNode(id);},eachNode:function(graph,action,flags){var filter=this.filter(flags);for(var i in graph.nodes){if(filter(graph.nodes[i]))action(graph.nodes[i]);}},eachAdjacency:function(node,action,flags){var adj=node.adjacencies,filter=this.filter(flags);for(var id in adj){if(filter(adj[id])){action(adj[id],id);}}},computeLevels:function(graph,id,startDepth,flags){startDepth=startDepth||0;var filter=this.filter(flags);this.eachNode(graph,function(elem){elem._flag=false;elem._depth=-1;},flags);var root=graph.getNode(id);root._depth=startDepth;var queue=[root];while(queue.length!=0){var node=queue.pop();node._flag=true;this.eachAdjacency(node,function(adj){var n=adj.nodeTo;if(n._flag==false&&filter(n)){if(n._depth<0)n._depth=node._depth+1+startDepth;queue.unshift(n);}},flags);}},eachBFS:function(graph,id,action,flags){var filter=this.filter(flags);this.clean(graph);var queue=[graph.getNode(id)];while(queue.length!=0){var node=queue.pop();node._flag=true;action(node,node._depth);this.eachAdjacency(node,function(adj){var n=adj.nodeTo;if(n._flag==false&&filter(n)){n._flag=true;queue.unshift(n);}},flags);}},eachLevel:function(node,levelBegin,levelEnd,action,flags){var d=node._depth,filter=this.filter(flags),that=this;levelEnd=levelEnd===false?Number.MAX_VALUE-d:levelEnd;(function loopLevel(node,levelBegin,levelEnd){var d=node._depth;if(d>=levelBegin&&d<=levelEnd&&filter(node))action(node,d);if(d<levelEnd){that.eachAdjacency(node,function(adj){var n=adj.nodeTo;if(n._depth>d)loopLevel(n,levelBegin,levelEnd);});}})(node,levelBegin+d,levelEnd+d);},eachSubgraph:function(node,action,flags){this.eachLevel(node,0,false,action,flags);},eachSubnode:function(node,action,flags){this.eachLevel(node,1,1,action,flags);},anySubnode:function(node,cond,flags){var flag=false;cond=cond||$lambda(true);var c=$type(cond)=='string'?function(n){return n[cond];}:cond;this.eachSubnode(node,function(elem){if(c(elem))flag=true;},flags);return flag;},getSubnodes:function(node,level,flags){var ans=[],that=this;level=level||0;var levelStart,levelEnd;if($type(level)=='array'){levelStart=level[0];levelEnd=level[1];}else{levelStart=level;levelEnd=Number.MAX_VALUE-node._depth;}
this.eachLevel(node,levelStart,levelEnd,function(n){ans.push(n);},flags);return ans;},getParents:function(node){var ans=[];this.eachAdjacency(node,function(adj){var n=adj.nodeTo;if(n._depth<node._depth)ans.push(n);});return ans;},isDescendantOf:function(node,id){if(node.id==id)return true;var pars=this.getParents(node),ans=false;for(var i=0;!ans&&i<pars.length;i++){ans=ans||this.isDescendantOf(pars[i],id);}
return ans;},clean:function(graph){this.eachNode(graph,function(elem){elem._flag=false;});}};Graph.Op={options:{type:'nothing',duration:2000,hideLabels:true,fps:30},removeNode:function(node,opt){var viz=this.viz;var options=$merge(this.options,viz.controller,opt);var n=$splat(node);var i,that,nodeObj;switch(options.type){case'nothing':for(i=0;i<n.length;i++)viz.graph.removeNode(n[i]);break;case'replot':this.removeNode(n,{type:'nothing'});viz.fx.clearLabels();viz.refresh(true);break;case'fade:seq':case'fade':that=this;for(i=0;i<n.length;i++){nodeObj=viz.graph.getNode(n[i]);nodeObj.endAlpha=0;}
viz.fx.animate($merge(options,{modes:['fade:nodes'],onComplete:function(){that.removeNode(n,{type:'nothing'});viz.fx.clearLabels();viz.reposition();viz.fx.animate($merge(options,{modes:['linear']}));}}));break;case'fade:con':that=this;for(i=0;i<n.length;i++){nodeObj=viz.graph.getNode(n[i]);nodeObj.endAlpha=0;nodeObj.ignore=true;}
viz.reposition();viz.fx.animate($merge(options,{modes:['fade:nodes','linear'],onComplete:function(){that.removeNode(n,{type:'nothing'});}}));break;case'iter':that=this;viz.fx.sequence({condition:function(){return n.length!=0;},step:function(){that.removeNode(n.shift(),{type:'nothing'});viz.fx.clearLabels();},onComplete:function(){options.onComplete();},duration:Math.ceil(options.duration/n.length)});break;default:this.doError();}},removeEdge:function(vertex,opt){var viz=this.viz;var options=$merge(this.options,viz.controller,opt);var v=($type(vertex[0])=='string')?[vertex]:vertex;var i,that,adjs;switch(options.type){case'nothing':for(i=0;i<v.length;i++)viz.graph.removeAdjacence(v[i][0],v[i][1]);break;case'replot':this.removeEdge(v,{type:'nothing'});viz.refresh(true);break;case'fade:seq':case'fade':that=this;for(i=0;i<v.length;i++){adjs=viz.graph.getAdjacence(v[i][0],v[i][1]);if(adjs){adjs[0].endAlpha=0;adjs[1].endAlpha=0;}}
viz.fx.animate($merge(options,{modes:['fade:vertex'],onComplete:function(){that.removeEdge(v,{type:'nothing'});viz.reposition();viz.fx.animate($merge(options,{modes:['linear']}));}}));break;case'fade:con':that=this;for(i=0;i<v.length;i++){adjs=viz.graph.getAdjacence(v[i][0],v[i][1]);if(adjs){adjs[0].endAlpha=0;adjs[0].ignore=true;adjs[1].endAlpha=0;adjs[1].ignore=true;}}
viz.reposition();viz.fx.animate($merge(options,{modes:['fade:vertex','linear'],onComplete:function(){that.removeEdge(v,{type:'nothing'});}}));break;case'iter':that=this;viz.fx.sequence({condition:function(){return v.length!=0;},step:function(){that.removeEdge(v.shift(),{type:'nothing'});viz.fx.clearLabels();},onComplete:function(){options.onComplete();},duration:Math.ceil(options.duration/v.length)});break;default:this.doError();}},sum:function(json,opt){var viz=this.viz;var options=$merge(this.options,viz.controller,opt),root=viz.root;var GUtil,graph;viz.root=opt.id||viz.root;switch(options.type){case'nothing':graph=viz.construct(json);GUtil=Graph.Util;GUtil.eachNode(graph,function(elem){GUtil.eachAdjacency(elem,function(adj){viz.graph.addAdjacence(adj.nodeFrom,adj.nodeTo,adj.data);});});break;case'replot':viz.refresh(true);this.sum(json,{type:'nothing'});viz.refresh(true);break;case'fade:seq':case'fade':case'fade:con':GUtil=Graph.Util;that=this;graph=viz.construct(json);var fadeEdges=this.preprocessSum(graph);var modes=!fadeEdges?['fade:nodes']:['fade:nodes','fade:vertex'];viz.reposition();if(options.type!='fade:con'){viz.fx.animate($merge(options,{modes:['linear'],onComplete:function(){viz.fx.animate($merge(options,{modes:modes,onComplete:function(){options.onComplete();}}));}}));}else{GUtil.eachNode(viz.graph,function(elem){if(elem.id!=root&&elem.pos.getp().equals(Polar.KER)){elem.pos.set(elem.endPos);elem.startPos.set(elem.endPos);}});viz.fx.animate($merge(options,{modes:['linear'].concat(modes)}));}
break;default:this.doError();}},morph:function(json,opt){var viz=this.viz;var options=$merge(this.options,viz.controller,opt),root=viz.root;var GUtil,graph;viz.root=opt.id||viz.root;switch(options.type){case'nothing':graph=viz.construct(json);GUtil=Graph.Util;GUtil.eachNode(graph,function(elem){GUtil.eachAdjacency(elem,function(adj){viz.graph.addAdjacence(adj.nodeFrom,adj.nodeTo,adj.data);});});GUtil.eachNode(viz.graph,function(elem){GUtil.eachAdjacency(elem,function(adj){if(!graph.getAdjacence(adj.nodeFrom.id,adj.nodeTo.id)){viz.graph.removeAdjacence(adj.nodeFrom.id,adj.nodeTo.id);}});if(!graph.hasNode(elem.id))viz.graph.removeNode(elem.id);});break;case'replot':viz.fx.clearLabels(true);this.morph(json,{type:'nothing'});viz.refresh(true);viz.refresh(true);break;case'fade:seq':case'fade':case'fade:con':GUtil=Graph.Util;that=this;graph=viz.construct(json);var fadeEdges=this.preprocessSum(graph);GUtil.eachNode(viz.graph,function(elem){if(!graph.hasNode(elem.id)){elem.alpha=1;elem.startAlpha=1;elem.endAlpha=0;elem.ignore=true;}});GUtil.eachNode(viz.graph,function(elem){if(elem.ignore)return;GUtil.eachAdjacency(elem,function(adj){if(adj.nodeFrom.ignore||adj.nodeTo.ignore)return;var nodeFrom=graph.getNode(adj.nodeFrom.id);var nodeTo=graph.getNode(adj.nodeTo.id);if(!nodeFrom.adjacentTo(nodeTo)){var adjs=viz.graph.getAdjacence(nodeFrom.id,nodeTo.id);fadeEdges=true;adjs[0].alpha=1;adjs[0].startAlpha=1;adjs[0].endAlpha=0;adjs[0].ignore=true;adjs[1].alpha=1;adjs[1].startAlpha=1;adjs[1].endAlpha=0;adjs[1].ignore=true;}});});var modes=!fadeEdges?['fade:nodes']:['fade:nodes','fade:vertex'];viz.reposition();GUtil.eachNode(viz.graph,function(elem){if(elem.id!=root&&elem.pos.getp().equals(Polar.KER)){elem.pos.set(elem.endPos);elem.startPos.set(elem.endPos);}});viz.fx.animate($merge(options,{modes:['polar'].concat(modes),onComplete:function(){GUtil.eachNode(viz.graph,function(elem){if(elem.ignore)viz.graph.removeNode(elem.id);});GUtil.eachNode(viz.graph,function(elem){GUtil.eachAdjacency(elem,function(adj){if(adj.ignore)viz.graph.removeAdjacence(adj.nodeFrom.id,adj.nodeTo.id);});});options.onComplete();}}));break;default:this.doError();}},preprocessSum:function(graph){var viz=this.viz;var GUtil=Graph.Util;GUtil.eachNode(graph,function(elem){if(!viz.graph.hasNode(elem.id)){viz.graph.addNode(elem);var n=viz.graph.getNode(elem.id);n.alpha=0;n.startAlpha=0;n.endAlpha=1;}});var fadeEdges=false;GUtil.eachNode(graph,function(elem){GUtil.eachAdjacency(elem,function(adj){var nodeFrom=viz.graph.getNode(adj.nodeFrom.id);var nodeTo=viz.graph.getNode(adj.nodeTo.id);if(!nodeFrom.adjacentTo(nodeTo)){var adjs=viz.graph.addAdjacence(nodeFrom,nodeTo,adj.data);if(nodeFrom.startAlpha==nodeFrom.endAlpha&&nodeTo.startAlpha==nodeTo.endAlpha){fadeEdges=true;adjs[0].alpha=0;adjs[0].startAlpha=0;adjs[0].endAlpha=1;adjs[1].alpha=0;adjs[1].startAlpha=0;adjs[1].endAlpha=1;}}});});return fadeEdges;}};Graph.Plot={Interpolator:{'moebius':function(elem,delta,vector){if(delta<=1||vector.norm()<=1){var x=vector.x,y=vector.y;var ans=elem.startPos.getc().moebiusTransformation(vector);elem.pos.setc(ans.x,ans.y);vector.x=x;vector.y=y;}},'linear':function(elem,delta){var from=elem.startPos.getc(true);var to=elem.endPos.getc(true);elem.pos.setc((to.x-from.x)*delta+from.x,(to.y-from.y)*delta+from.y);},'fade:nodes':function(elem,delta){if(delta<=1&&(elem.endAlpha!=elem.alpha)){var from=elem.startAlpha;var to=elem.endAlpha;elem.alpha=from+(to-from)*delta;}},'fade:vertex':function(elem,delta){var adjs=elem.adjacencies;for(var id in adjs)this['fade:nodes'](adjs[id],delta);},'polar':function(elem,delta){var from=elem.startPos.getp(true);var to=elem.endPos.getp();var ans=to.interpolate(from,delta);elem.pos.setp(ans.theta,ans.rho);}},labelsHidden:false,labelContainer:false,labels:{},getLabelContainer:function(){return this.labelContainer?this.labelContainer:this.labelContainer=document.getElementById(this.viz.config.labelContainer);},getLabel:function(id){return(id in this.labels&&this.labels[id]!=null)?this.labels[id]:this.labels[id]=document.getElementById(id);},hideLabels:function(hide){var container=this.getLabelContainer();if(hide)container.style.display='none';else container.style.display='';this.labelsHidden=hide;},clearLabels:function(force){for(var id in this.labels){if(force||!this.viz.graph.hasNode(id)){this.disposeLabel(id);delete this.labels[id];}}},disposeLabel:function(id){var elem=this.getLabel(id);if(elem&&elem.parentNode){elem.parentNode.removeChild(elem);}},hideLabel:function(node,flag){node=$splat(node);var st=flag?"":"none",lab,that=this;$each(node,function(n){var lab=that.getLabel(n.id);if(lab){lab.style.display=st;}});},sequence:function(options){var that=this;options=$merge({condition:$lambda(false),step:$empty,onComplete:$empty,duration:200},options||{});var interval=setInterval(function(){if(options.condition()){options.step();}else{clearInterval(interval);options.onComplete();}
that.viz.refresh(true);},options.duration);},animate:function(opt,versor){var that=this,viz=this.viz,graph=viz.graph,GUtil=Graph.Util;opt=$merge(viz.controller,opt||{});if(opt.hideLabels)this.hideLabels(true);this.animation.setOptions($merge(opt,{$animating:false,compute:function(delta){var vector=versor?versor.scale(-delta):null;GUtil.eachNode(graph,function(node){for(var i=0;i<opt.modes.length;i++){that.Interpolator[opt.modes[i]](node,delta,vector);}});that.plot(opt,this.$animating);this.$animating=true;},complete:function(){GUtil.eachNode(graph,function(node){node.startPos.set(node.pos);node.startAlpha=node.alpha;});if(opt.hideLabels)that.hideLabels(false);that.plot(opt);opt.onComplete();opt.onAfterCompute();}})).start();},plot:function(opt,animating){var viz=this.viz,aGraph=viz.graph,canvas=viz.canvas,id=viz.root,that=this,ctx=canvas.getCtx(),GUtil=Graph.Util;opt=opt||this.viz.controller;opt.clearCanvas&&canvas.clear();var T=!!aGraph.getNode(id).visited;GUtil.eachNode(aGraph,function(node){GUtil.eachAdjacency(node,function(adj){var nodeTo=adj.nodeTo;if(!!nodeTo.visited===T&&node.drawn&&nodeTo.drawn){!animating&&opt.onBeforePlotLine(adj);ctx.save();ctx.globalAlpha=Math.min(Math.min(node.alpha,nodeTo.alpha),adj.alpha);that.plotLine(adj,canvas,animating);ctx.restore();!animating&&opt.onAfterPlotLine(adj);}});ctx.save();if(node.drawn){ctx.globalAlpha=node.alpha;!animating&&opt.onBeforePlotNode(node);that.plotNode(node,canvas,animating);!animating&&opt.onAfterPlotNode(node);}
if(!that.labelsHidden&&opt.withLabels){if(node.drawn&&ctx.globalAlpha>=0.95){that.plotLabel(canvas,node,opt);}else{that.hideLabel(node,false);}}
ctx.restore();node.visited=!T;});},plotLabel:function(canvas,node,controller){var id=node.id,tag=this.getLabel(id);if(!tag&&!(tag=document.getElementById(id))){tag=document.createElement('div');var container=this.getLabelContainer();container.appendChild(tag);tag.id=id;tag.className='node';tag.style.position='absolute';controller.onCreateLabel(tag,node);this.labels[node.id]=tag;}
this.placeLabel(tag,node,controller);},plotNode:function(node,canvas,animating){var nconfig=this.node,data=node.data;var cond=nconfig.overridable&&data;var width=cond&&data.$lineWidth||nconfig.lineWidth;var color=cond&&data.$color||nconfig.color;var ctx=canvas.getCtx();ctx.lineWidth=width;ctx.fillStyle=color;ctx.strokeStyle=color;var f=node.data&&node.data.$type||nconfig.type;this.nodeTypes[f].call(this,node,canvas,animating);},plotLine:function(adj,canvas,animating){var econfig=this.edge,data=adj.data;var cond=econfig.overridable&&data;var width=cond&&data.$lineWidth||econfig.lineWidth;var color=cond&&data.$color||econfig.color;var ctx=canvas.getCtx();ctx.lineWidth=width;ctx.fillStyle=color;ctx.strokeStyle=color;var f=adj.data&&adj.data.$type||econfig.type;this.edgeTypes[f].call(this,adj,canvas,animating);},fitsInCanvas:function(pos,canvas){var size=canvas.getSize();if(pos.x>=size.width||pos.x<0||pos.y>=size.height||pos.y<0)return false;return true;}};var Loader={construct:function(json){var isGraph=($type(json)=='array');var ans=new Graph(this.graphOptions);if(!isGraph)
(function(ans,json){ans.addNode(json);for(var i=0,ch=json.children;i<ch.length;i++){ans.addAdjacence(json,ch[i]);arguments.callee(ans,ch[i]);}})(ans,json);else
(function(ans,json){var getNode=function(id){for(var w=0;w<json.length;w++){if(json[w].id==id){return json[w];}}
return undefined;};for(var i=0;i<json.length;i++){ans.addNode(json[i]);for(var j=0,adj=json[i].adjacencies;j<adj.length;j++){var node=adj[j],data;if(typeof adj[j]!='string'){data=node.data;node=node.nodeTo;}
ans.addAdjacence(json[i],getNode(node),data);}}})(ans,json);return ans;},loadJSON:function(json,i){this.json=json;this.graph=this.construct(json);if($type(json)!='array'){this.root=json.id;}else{this.root=json[i?i:0].id;}}};this.Trans={linear:function(p){return p;}};(function(){var makeTrans=function(transition,params){params=$splat(params);return $extend(transition,{easeIn:function(pos){return transition(pos,params);},easeOut:function(pos){return 1-transition(1-pos,params);},easeInOut:function(pos){return(pos<=0.5)?transition(2*pos,params)/2:(2-transition(2*(1-pos),params))/2;}});};var transitions={Pow:function(p,x){return Math.pow(p,x[0]||6);},Expo:function(p){return Math.pow(2,8*(p-1));},Circ:function(p){return 1-Math.sin(Math.acos(p));},Sine:function(p){return 1-Math.sin((1-p)*Math.PI/2);},Back:function(p,x){x=x[0]||1.618;return Math.pow(p,2)*((x+1)*p-x);},Bounce:function(p){var value;for(var a=0,b=1;1;a+=b,b/=2){if(p>=(7-4*a)/11){value=b*b-Math.pow((11-6*a-11*p)/4,2);break;}}
return value;},Elastic:function(p,x){return Math.pow(2,10*--p)*Math.cos(20*p*Math.PI*(x[0]||1)/3);}};$each(transitions,function(val,key){Trans[key]=makeTrans(val);});$each(['Quad','Cubic','Quart','Quint'],function(elem,i){Trans[elem]=makeTrans(function(p){return Math.pow(p,[i+2]);});});})();var Animation=new Class({initalize:function(options){this.setOptions(options);},setOptions:function(options){var opt={duration:2500,fps:40,transition:Trans.Quart.easeInOut,compute:$empty,complete:$empty};this.opt=$merge(opt,options||{});return this;},getTime:function(){return $time();},step:function(){var time=this.getTime(),opt=this.opt;if(time<this.time+opt.duration){var delta=opt.transition((time-this.time)/opt.duration);opt.compute(delta);}else{this.timer=clearInterval(this.timer);opt.compute(1);opt.complete();}},start:function(){this.time=0;this.startTimer();return this;},startTimer:function(){var that=this,opt=this.opt;if(this.timer)return false;this.time=this.getTime()-this.time;this.timer=setInterval((function(){that.step();}),Math.round(1000/opt.fps));return true;}});(function(){var slice=Array.prototype.slice;function getBoundaries(graph,config,level,orn){var dim=config.Node,GUtil=Graph.Util;var multitree=config.multitree;if(dim.overridable){var w=-1,h=-1;GUtil.eachNode(graph,function(n){if(n._depth==level&&(!multitree||('$orn'in n.data)&&n.data.$orn==orn)){var dw=n.data.$width||dim.width;var dh=n.data.$height||dim.height;w=(w<dw)?dw:w;h=(h<dh)?dh:h;}});return{'width':w<0?dim.width:w,'height':h<0?dim.height:h};}else{return dim;}};function movetree(node,prop,val,orn){var p=(orn=="left"||orn=="right")?"y":"x";node[prop][p]+=val;};function moveextent(extent,val){var ans=[];$each(extent,function(elem){elem=slice.call(elem);elem[0]+=val;elem[1]+=val;ans.push(elem);});return ans;};function merge(ps,qs){if(ps.length==0)return qs;if(qs.length==0)return ps;var p=ps.shift(),q=qs.shift();return[[p[0],q[1]]].concat(merge(ps,qs));};function mergelist(ls,def){def=def||[];if(ls.length==0)return def;var ps=ls.pop();return mergelist(ls,merge(ps,def));};function fit(ext1,ext2,subtreeOffset,siblingOffset,i){if(ext1.length<=i||ext2.length<=i)return 0;var p=ext1[i][1],q=ext2[i][0];return Math.max(fit(ext1,ext2,subtreeOffset,siblingOffset,++i)
+subtreeOffset,p-q+siblingOffset);};function fitlistl(es,subtreeOffset,siblingOffset){function $fitlistl(acc,es,i){if(es.length<=i)return[];var e=es[i],ans=fit(acc,e,subtreeOffset,siblingOffset,0);return[ans].concat($fitlistl(merge(acc,moveextent(e,ans)),es,++i));};return $fitlistl([],es,0);};function fitlistr(es,subtreeOffset,siblingOffset){function $fitlistr(acc,es,i){if(es.length<=i)return[];var e=es[i],ans=-fit(e,acc,subtreeOffset,siblingOffset,0);return[ans].concat($fitlistr(merge(moveextent(e,ans),acc),es,++i));};es=slice.call(es);var ans=$fitlistr([],es.reverse(),0);return ans.reverse();};function fitlist(es,subtreeOffset,siblingOffset,align){var esl=fitlistl(es,subtreeOffset,siblingOffset),esr=fitlistr(es,subtreeOffset,siblingOffset);if(align=="left")
esr=esl;else if(align=="right")
esl=esr;for(var i=0,ans=[];i<esl.length;i++){ans[i]=(esl[i]+esr[i])/2;}
return ans;};function design(graph,node,prop,config,orn){var multitree=config.multitree;var auxp=['x','y'],auxs=['width','height'];var ind=+(orn=="left"||orn=="right");var p=auxp[ind],notp=auxp[1-ind];var cnode=config.Node;var s=auxs[ind],nots=auxs[1-ind];var siblingOffset=config.siblingOffset;var subtreeOffset=config.subtreeOffset;var align=config.align;var GUtil=Graph.Util;function $design(node,maxsize,acum){var sval=(cnode.overridable&&node.data["$"+s])||cnode[s];var notsval=maxsize||((cnode.overridable&&node.data["$"+nots])||cnode[nots]);var trees=[],extents=[],chmaxsize=false;var chacum=notsval+config.levelDistance;GUtil.eachSubnode(node,function(n){if(n.exist&&(!multitree||('$orn'in n.data)&&n.data.$orn==orn)){if(!chmaxsize)
chmaxsize=getBoundaries(graph,config,n._depth,orn);var s=$design(n,chmaxsize[nots],acum+chacum);trees.push(s.tree);extents.push(s.extent);}});var positions=fitlist(extents,subtreeOffset,siblingOffset,align);for(var i=0,ptrees=[],pextents=[];i<trees.length;i++){movetree(trees[i],prop,positions[i],orn);pextents.push(moveextent(extents[i],positions[i]));}
var resultextent=[[-sval/2,sval/2]].concat(mergelist(pextents));node[prop][p]=0;if(orn=="top"||orn=="left"){node[prop][notp]=acum;}else{node[prop][notp]=-acum;}
return{tree:node,extent:resultextent};};$design(node,false,0);};this.ST=(function(){var nodesInPath=[];function getNodesToHide(node){node=node||this.clickedNode;var Geom=this.geom,GUtil=Graph.Util;var graph=this.graph;var canvas=this.canvas;var level=node._depth,nodeArray=[];GUtil.eachNode(graph,function(n){if(n.exist&&!n.selected){if(GUtil.isDescendantOf(n,node.id)){if(n._depth<=level)nodeArray.push(n);}else{nodeArray.push(n);}}});var leafLevel=Geom.getRightLevelToShow(node,canvas);GUtil.eachLevel(node,leafLevel,leafLevel,function(n){if(n.exist&&!n.selected)nodeArray.push(n);});for(var i=0;i<nodesInPath.length;i++){var n=this.graph.getNode(nodesInPath[i]);if(!GUtil.isDescendantOf(n,node.id)){nodeArray.push(n);}}
return nodeArray;};function getNodesToShow(node){var nodeArray=[],GUtil=Graph.Util,config=this.config;node=node||this.clickedNode;GUtil.eachLevel(this.clickedNode,0,config.levelsToShow,function(n){if(config.multitree&&!('$orn'in n.data)&&GUtil.anySubnode(n,function(ch){return ch.exist&&!ch.drawn;})){nodeArray.push(n);}else if(n.drawn&&!GUtil.anySubnode(n,"drawn")){nodeArray.push(n);}});return nodeArray;};return new Class({Implements:Loader,initialize:function(canvas,controller){var innerController={onBeforeCompute:$empty,onAfterCompute:$empty,onCreateLabel:$empty,onPlaceLabel:$empty,onComplete:$empty,onBeforePlotNode:$empty,onAfterPlotNode:$empty,onBeforePlotLine:$empty,onAfterPlotLine:$empty,request:false};var config={orientation:"left",labelContainer:canvas.id+'-label',levelsToShow:2,subtreeOffset:8,siblingOffset:5,levelDistance:30,withLabels:true,clearCanvas:true,align:"center",indent:10,multitree:false,constrained:true,Node:{overridable:false,type:'rectangle',color:'#ccb',lineWidth:1,height:20,width:90,dim:15,align:"center"},Edge:{overridable:false,type:'line',color:'#ccc',dim:15,lineWidth:1},duration:700,fps:25,transition:Trans.Quart.easeInOut};this.controller=this.config=$merge(config,innerController,controller);this.canvas=canvas;this.graphOptions={'complex':true};this.graph=new Graph(this.graphOptions);this.fx=new ST.Plot(this);this.op=new ST.Op(this);this.group=new ST.Group(this);this.geom=new ST.Geom(this);this.clickedNode=null;},plot:function(){this.fx.plot(this.controller);},switchPosition:function(pos,method,onComplete){var Geom=this.geom,Plot=this.fx,that=this;if(!Plot.busy){Plot.busy=true;this.contract({onComplete:function(){Geom.switchOrientation(pos);that.compute('endPos',false);Plot.busy=false;if(method=='animate'){that.onClick(that.clickedNode.id,onComplete);}else if(method=='replot'){that.select(that.clickedNode.id,onComplete);}}},pos);}},switchAlignment:function(align,method,onComplete){this.config.align=align;if(method=='animate'){this.select(this.clickedNode.id,onComplete);}else if(method=='replot'){this.onClick(this.clickedNode.id,onComplete);}},addNodeInPath:function(id){nodesInPath.push(id);this.select((this.clickedNode&&this.clickedNode.id)||this.root);},clearNodesInPath:function(id){nodesInPath.length=0;this.select((this.clickedNode&&this.clickedNode.id)||this.root);},refresh:function(){this.reposition();this.select((this.clickedNode&&this.clickedNode.id)||this.root);},reposition:function(){Graph.Util.computeLevels(this.graph,this.root,0,"ignore");this.geom.setRightLevelToShow(this.clickedNode,this.canvas);Graph.Util.eachNode(this.graph,function(n){if(n.exist)n.drawn=true;});this.compute('endPos');},compute:function(property,computeLevels){var prop=property||'startPos';var node=this.graph.getNode(this.root);$extend(node,{'drawn':true,'exist':true,'selected':true});if(!!computeLevels||!("_depth"in node))
Graph.Util.computeLevels(this.graph,this.root,0,"ignore");this.computePositions(node,prop);},computePositions:function(node,prop){var config=this.config;var multitree=config.multitree;var align=config.align;var indent=align!=='center'&&config.indent;var orn=config.orientation;var orns=multitree?['top','right','bottom','left']:[orn];var that=this;$each(orns,function(orn){design(that.graph,node,prop,that.config,orn);var i=['x','y'][+(orn=="left"||orn=="right")];(function red(node){Graph.Util.eachSubnode(node,function(n){if(n.exist&&(!multitree||('$orn'in n.data)&&n.data.$orn==orn)){n[prop][i]+=node[prop][i];if(indent){n[prop][i]+=align=='left'?indent:-indent;}
red(n);}});})(node);});},requestNodes:function(node,onComplete){var handler=$merge(this.controller,onComplete),lev=this.config.levelsToShow,GUtil=Graph.Util;if(handler.request){var leaves=[],d=node._depth;GUtil.eachLevel(node,0,lev,function(n){if(n.drawn&&!GUtil.anySubnode(n)){leaves.push(n);n._level=lev-(n._depth-d);}});this.group.requestNodes(leaves,handler);}
else
handler.onComplete();},contract:function(onComplete,switched){var orn=this.config.orientation;var Geom=this.geom,Group=this.group;if(switched)Geom.switchOrientation(switched);var nodes=getNodesToHide.call(this);if(switched)Geom.switchOrientation(orn);Group.contract(nodes,$merge(this.controller,onComplete));},move:function(node,onComplete){this.compute('endPos',false);var move=onComplete.Move,offset={'x':move.offsetX,'y':move.offsetY};if(move.enable){this.geom.translate(node.endPos.add(offset).$scale(-1),"endPos");}
this.fx.animate($merge(this.controller,{modes:['linear']},onComplete));},expand:function(node,onComplete){var nodeArray=getNodesToShow.call(this,node);this.group.expand(nodeArray,$merge(this.controller,onComplete));},selectPath:function(node){var GUtil=Graph.Util,that=this;GUtil.eachNode(this.graph,function(n){n.selected=false;});function path(node){if(node==null||node.selected)return;node.selected=true;$each(that.group.getSiblings([node])[node.id],function(n){n.exist=true;n.drawn=true;});var parents=GUtil.getParents(node);parents=(parents.length>0)?parents[0]:null;path(parents);};for(var i=0,ns=[node.id].concat(nodesInPath);i<ns.length;i++){path(this.graph.getNode(ns[i]));}},setRoot:function(id,method,onComplete){var that=this,canvas=this.canvas;var rootNode=this.graph.getNode(this.root);var clickedNode=this.graph.getNode(id);function $setRoot(){if(this.config.multitree&&clickedNode.data.$orn){var orn=clickedNode.data.$orn;var opp={'left':'right','right':'left','top':'bottom','bottom':'top'}[orn];rootNode.data.$orn=opp;(function tag(rootNode){Graph.Util.eachSubnode(rootNode,function(n){if(n.id!=id){n.data.$orn=opp;tag(n);}});})(rootNode);delete clickedNode.data.$orn;}
this.root=id;this.clickedNode=clickedNode;Graph.Util.computeLevels(this.graph,this.root,0,"ignore");}
delete rootNode.data.$orns;if(method=='animate'){this.onClick(id,{onBeforeMove:function(){$setRoot.call(that);that.selectPath(clickedNode);}});}else if(method=='replot'){$setRoot.call(this);this.select(this.root);}},addSubtree:function(subtree,method,onComplete){if(method=='replot'){this.op.sum(subtree,$extend({type:'replot'},onComplete||{}));}else if(method=='animate'){this.op.sum(subtree,$extend({type:'fade:seq'},onComplete||{}));}},removeSubtree:function(id,removeRoot,method,onComplete){var node=this.graph.getNode(id),subids=[];Graph.Util.eachLevel(node,+!removeRoot,false,function(n){subids.push(n.id);});if(method=='replot'){this.op.removeNode(subids,$extend({type:'replot'},onComplete||{}));}else if(method=='animate'){this.op.removeNode(subids,$extend({type:'fade:seq'},onComplete||{}));}},select:function(id,onComplete){var group=this.group,geom=this.geom;var node=this.graph.getNode(id),canvas=this.canvas;var root=this.graph.getNode(this.root);var complete=$merge(this.controller,onComplete);var that=this;complete.onBeforeCompute(node);this.selectPath(node);this.clickedNode=node;this.requestNodes(node,{onComplete:function(){group.hide(group.prepare(getNodesToHide.call(that)),complete);geom.setRightLevelToShow(node,canvas);that.compute("pos");Graph.Util.eachNode(that.graph,function(n){var pos=n.pos.getc(true);n.startPos.setc(pos.x,pos.y);n.endPos.setc(pos.x,pos.y);n.visited=false;});that.geom.translate(node.endPos.scale(-1),["pos","startPos","endPos"]);group.show(getNodesToShow.call(that));that.plot();complete.onAfterCompute(that.clickedNode);complete.onComplete();}});},onClick:function(id,options){var canvas=this.canvas,that=this,Fx=this.fx,Util=Graph.Util,Geom=this.geom;var innerController={Move:{enable:true,offsetX:0,offsetY:0},onBeforeRequest:$empty,onBeforeContract:$empty,onBeforeMove:$empty,onBeforeExpand:$empty};var complete=$merge(this.controller,innerController,options);if(!this.busy){this.busy=true;var node=this.graph.getNode(id);this.selectPath(node,this.clickedNode);this.clickedNode=node;complete.onBeforeCompute(node);complete.onBeforeRequest(node);this.requestNodes(node,{onComplete:function(){complete.onBeforeContract(node);that.contract({onComplete:function(){Geom.setRightLevelToShow(node,canvas);complete.onBeforeMove(node);that.move(node,{Move:complete.Move,onComplete:function(){complete.onBeforeExpand(node);that.expand(node,{onComplete:function(){that.busy=false;complete.onAfterCompute(id);complete.onComplete();}});}});}});}});}}});})();ST.Op=new Class({Implements:Graph.Op,initialize:function(viz){this.viz=viz;}});ST.Group=new Class({initialize:function(viz){this.viz=viz;this.canvas=viz.canvas;this.config=viz.config;this.animation=new Animation;this.nodes=null;},requestNodes:function(nodes,controller){var counter=0,len=nodes.length,nodeSelected={};var complete=function(){controller.onComplete();};var viz=this.viz;if(len==0)complete();for(var i=0;i<len;i++){nodeSelected[nodes[i].id]=nodes[i];controller.request(nodes[i].id,nodes[i]._level,{onComplete:function(nodeId,data){if(data&&data.children){data.id=nodeId;viz.op.sum(data,{type:'nothing'});}
if(++counter==len){Graph.Util.computeLevels(viz.graph,viz.root,0);complete();}}});}},contract:function(nodes,controller){var GUtil=Graph.Util;var viz=this.viz;var that=this;nodes=this.prepare(nodes);this.animation.setOptions($merge(controller,{$animating:false,compute:function(delta){if(delta==1)delta=0.99;that.plotStep(1-delta,controller,this.$animating);this.$animating='contract';},complete:function(){that.hide(nodes,controller);}})).start();},hide:function(nodes,controller){var GUtil=Graph.Util,viz=this.viz;for(var i=0;i<nodes.length;i++){if(true||!controller||!controller.request){GUtil.eachLevel(nodes[i],1,false,function(elem){if(elem.exist){$extend(elem,{'drawn':false,'exist':false});}});}else{var ids=[];GUtil.eachLevel(nodes[i],1,false,function(n){ids.push(n.id);});viz.op.removeNode(ids,{'type':'nothing'});viz.fx.clearLabels();}}
controller.onComplete();},expand:function(nodes,controller){var that=this,GUtil=Graph.Util;this.show(nodes);this.animation.setOptions($merge(controller,{$animating:false,compute:function(delta){that.plotStep(delta,controller,this.$animating);this.$animating='expand';},complete:function(){that.plotStep(undefined,controller,false);controller.onComplete();}})).start();},show:function(nodes){var GUtil=Graph.Util,config=this.config;this.prepare(nodes);$each(nodes,function(n){if(config.multitree&&!('$orn'in n.data)){delete n.data.$orns;var orns=' ';GUtil.eachSubnode(n,function(ch){if(('$orn'in ch.data)&&orns.indexOf(ch.data.$orn)<0&&ch.exist&&!ch.drawn){orns+=ch.data.$orn+' ';}});n.data.$orns=orns;}
GUtil.eachLevel(n,0,config.levelsToShow,function(n){if(n.exist)n.drawn=true;});});},prepare:function(nodes){this.nodes=this.getNodesWithChildren(nodes);return this.nodes;},getNodesWithChildren:function(nodes){var ans=[],GUtil=Graph.Util,config=this.config,root=this.viz.root;nodes.sort(function(a,b){return(a._depth<=b._depth)-(a._depth>=b._depth);});for(var i=0;i<nodes.length;i++){if(GUtil.anySubnode(nodes[i],"exist")){for(var j=i+1,desc=false;!desc&&j<nodes.length;j++){if(!config.multitree||'$orn'in nodes[j].data){desc=desc||GUtil.isDescendantOf(nodes[i],nodes[j].id);}}
if(!desc)ans.push(nodes[i]);}}
return ans;},plotStep:function(delta,controller,animating){var viz=this.viz,config=this.config,canvas=viz.canvas,ctx=canvas.getCtx(),nodes=this.nodes,GUtil=Graph.Util;var i,node;var nds={};for(i=0;i<nodes.length;i++){node=nodes[i];nds[node.id]=[];var root=config.multitree&&!('$orn'in node.data);var orns=root&&node.data.$orns;GUtil.eachSubgraph(node,function(n){if(root&&orns&&orns.indexOf(n.data.$orn)>0&&n.drawn){n.drawn=false;nds[node.id].push(n);}else if((!root||!orns)&&n.drawn){n.drawn=false;nds[node.id].push(n);}});node.drawn=true;}
if(nodes.length>0)viz.fx.plot();for(i in nds){$each(nds[i],function(n){n.drawn=true;});}
for(i=0;i<nodes.length;i++){node=nodes[i];ctx.save();viz.fx.plotSubtree(node,controller,delta,animating);ctx.restore();}},getSiblings:function(nodes){var siblings={},GUtil=Graph.Util;$each(nodes,function(n){var par=GUtil.getParents(n);if(par.length==0){siblings[n.id]=[n];}else{var ans=[];GUtil.eachSubnode(par[0],function(sn){ans.push(sn);});siblings[n.id]=ans;}});return siblings;}});ST.Geom=new Class({initialize:function(viz){this.viz=viz;this.config=viz.config;this.node=viz.config.Node;this.edge=viz.config.Edge;},translate:function(pos,prop){prop=$splat(prop);Graph.Util.eachNode(this.viz.graph,function(elem){$each(prop,function(p){elem[p].$add(pos);});});},switchOrientation:function(orn){this.config.orientation=orn;},dispatch:function(){var args=Array.prototype.slice.call(arguments);var s=args.shift(),len=args.length;var val=function(a){return typeof a=='function'?a():a;};if(len==2){return(s=="top"||s=="bottom")?val(args[0]):val(args[1]);}else if(len==4){switch(s){case"top":return val(args[0]);case"right":return val(args[1]);case"bottom":return val(args[2]);case"left":return val(args[3]);}}
return undefined;},getSize:function(n,invert){var node=this.node,data=n.data,config=this.config;var cond=node.overridable,siblingOffset=config.siblingOffset;var s=(this.config.multitree&&('$orn'in n.data)&&n.data.$orn)||this.config.orientation;var w=(cond&&data.$width||node.width)+siblingOffset;var h=(cond&&data.$height||node.height)+siblingOffset;if(!invert)
return this.dispatch(s,h,w);else
return this.dispatch(s,w,h);},getTreeBaseSize:function(node,level,leaf){var size=this.getSize(node,true),baseHeight=0,that=this;if(leaf(level,node))return size;if(level===0)return 0;Graph.Util.eachSubnode(node,function(elem){baseHeight+=that.getTreeBaseSize(elem,level-1,leaf);});return(size>baseHeight?size:baseHeight)+this.config.subtreeOffset;},getEdge:function(node,type,s){var $C=function(a,b){return function(){return node.pos.add(new Complex(a,b));};};var dim=this.node;var cond=this.node.overridable,data=node.data;var w=cond&&data.$width||dim.width;var h=cond&&data.$height||dim.height;if(type=='begin'){if(dim.align=="center"){return this.dispatch(s,$C(0,h/2),$C(-w/2,0),$C(0,-h/2),$C(w/2,0));}else if(dim.align=="left"){return this.dispatch(s,$C(0,h),$C(0,0),$C(0,0),$C(w,0));}else if(dim.align=="right"){return this.dispatch(s,$C(0,0),$C(-w,0),$C(0,-h),$C(0,0));}else throw"align: not implemented";}else if(type=='end'){if(dim.align=="center"){return this.dispatch(s,$C(0,-h/2),$C(w/2,0),$C(0,h/2),$C(-w/2,0));}else if(dim.align=="left"){return this.dispatch(s,$C(0,0),$C(w,0),$C(0,h),$C(0,0));}else if(dim.align=="right"){return this.dispatch(s,$C(0,-h),$C(0,0),$C(0,0),$C(-w,0));}else throw"align: not implemented";}},getScaledTreePosition:function(node,scale){var dim=this.node;var cond=this.node.overridable,data=node.data;var w=(cond&&data.$width||dim.width);var h=(cond&&data.$height||dim.height);var s=(this.config.multitree&&('$orn'in node.data)&&node.data.$orn)||this.config.orientation;var $C=function(a,b){return function(){return node.pos.add(new Complex(a,b)).$scale(1-scale);};};if(dim.align=="left"){return this.dispatch(s,$C(0,h),$C(0,0),$C(0,0),$C(w,0));}else if(dim.align=="center"){return this.dispatch(s,$C(0,h/2),$C(-w/2,0),$C(0,-h/2),$C(w/2,0));}else if(dim.align=="right"){return this.dispatch(s,$C(0,0),$C(-w,0),$C(0,-h),$C(0,0));}else throw"align: not implemented";},treeFitsInCanvas:function(node,canvas,level){var csize=canvas.getSize(node);var s=(this.config.multitree&&('$orn'in node.data)&&node.data.$orn)||this.config.orientation;var size=this.dispatch(s,csize.width,csize.height);var baseSize=this.getTreeBaseSize(node,level,function(level,node){return level===0||!Graph.Util.anySubnode(node);});return(baseSize<size);},setRightLevelToShow:function(node,canvas){var level=this.getRightLevelToShow(node,canvas),fx=this.viz.fx;Graph.Util.eachLevel(node,0,this.config.levelsToShow,function(n){var d=n._depth-node._depth;if(d>level){n.drawn=false;n.exist=false;fx.hideLabel(n,false);}else{n.exist=true;}});node.drawn=true;},getRightLevelToShow:function(node,canvas){var config=this.config;var level=config.levelsToShow;var constrained=config.constrained;if(!constrained)return level;while(!this.treeFitsInCanvas(node,canvas,level)&&level>1){level--;}
return level;}});ST.Plot=new Class({Implements:Graph.Plot,initialize:function(viz){this.viz=viz;this.config=viz.config;this.node=this.config.Node;this.edge=this.config.Edge;this.animation=new Animation;this.nodeTypes=new ST.Plot.NodeTypes;this.edgeTypes=new ST.Plot.EdgeTypes;},plotSubtree:function(node,opt,scale,animating){var viz=this.viz,canvas=viz.canvas;scale=Math.min(Math.max(0.001,scale),1);if(scale>=0){node.drawn=false;var ctx=canvas.getCtx();var diff=viz.geom.getScaledTreePosition(node,scale);ctx.translate(diff.x,diff.y);ctx.scale(scale,scale);}
this.plotTree(node,!scale,opt,animating);if(scale>=0)node.drawn=true;},plotTree:function(node,plotLabel,opt,animating){var that=this,viz=this.viz,canvas=viz.canvas,config=this.config,ctx=canvas.getCtx();var root=config.multitree&&!('$orn'in node.data);var orns=root&&node.data.$orns;Graph.Util.eachSubnode(node,function(elem){if((!root||orns.indexOf(elem.data.$orn)>0)&&elem.exist&&elem.drawn){var adj=node.getAdjacency(elem.id);!animating&&opt.onBeforePlotLine(adj);ctx.globalAlpha=Math.min(node.alpha,elem.alpha);that.plotLine(adj,canvas,animating);!animating&&opt.onAfterPlotLine(adj);that.plotTree(elem,plotLabel,opt,animating);}});if(node.drawn){ctx.globalAlpha=node.alpha;!animating&&opt.onBeforePlotNode(node);this.plotNode(node,canvas,animating);!animating&&opt.onAfterPlotNode(node);if(plotLabel&&ctx.globalAlpha>=0.95)
this.plotLabel(canvas,node,opt);else
this.hideLabel(node,false);}else{this.hideLabel(node,true);}},placeLabel:function(tag,node,controller){var pos=node.pos.getc(true),dim=this.node,canvas=this.viz.canvas;var w=dim.overridable&&node.data.$width||dim.width;var h=dim.overridable&&node.data.$height||dim.height;var radius=canvas.getSize();var labelPos,orn;if(dim.align=="center"){labelPos={x:Math.round(pos.x-w/2+radius.width/2),y:Math.round(pos.y-h/2+radius.height/2)};}else if(dim.align=="left"){orn=this.config.orientation;if(orn=="bottom"||orn=="top"){labelPos={x:Math.round(pos.x-w/2+radius.width/2),y:Math.round(pos.y+radius.height/2)};}else{labelPos={x:Math.round(pos.x+radius.width/2),y:Math.round(pos.y-h/2+radius.height/2)};}}else if(dim.align=="right"){orn=this.config.orientation;if(orn=="bottom"||orn=="top"){labelPos={x:Math.round(pos.x-w/2+radius.width/2),y:Math.round(pos.y-h+radius.height/2)};}else{labelPos={x:Math.round(pos.x-w+radius.width/2),y:Math.round(pos.y-h/2+radius.height/2)};}}else throw"align: not implemented";var style=tag.style;style.left=labelPos.x+'px';style.top=labelPos.y+'px';style.display=this.fitsInCanvas(labelPos,canvas)?'':'none';controller.onPlaceLabel(tag,node);},getAlignedPos:function(pos,width,height){var nconfig=this.node;var square,orn;if(nconfig.align=="center"){square={x:pos.x-width/2,y:pos.y-height/2};}else if(nconfig.align=="left"){orn=this.config.orientation;if(orn=="bottom"||orn=="top"){square={x:pos.x-width/2,y:pos.y};}else{square={x:pos.x,y:pos.y-height/2};}}else if(nconfig.align=="right"){orn=this.config.orientation;if(orn=="bottom"||orn=="top"){square={x:pos.x-width/2,y:pos.y-height};}else{square={x:pos.x-width,y:pos.y-height/2};}}else throw"align: not implemented";return square;},getOrientation:function(adj){var config=this.config;var orn=config.orientation;if(config.multitree){var nodeFrom=adj.nodeFrom;var nodeTo=adj.nodeTo;orn=(('$orn'in nodeFrom.data)&&nodeFrom.data.$orn)||(('$orn'in nodeTo.data)&&nodeTo.data.$orn);}
return orn;}});ST.Plot.NodeTypes=new Class({'none':function(){},'circle':function(node,canvas){var pos=node.pos.getc(true),nconfig=this.node,data=node.data;var cond=nconfig.overridable&&data;var dim=cond&&data.$dim||nconfig.dim;var algnPos=this.getAlignedPos(pos,dim*2,dim*2);canvas.path('fill',function(context){context.arc(algnPos.x+dim,algnPos.y+dim,dim,0,Math.PI*2,true);});},'square':function(node,canvas){var pos=node.pos.getc(true),nconfig=this.node,data=node.data;var cond=nconfig.overridable&&data;var dim=cond&&data.$dim||nconfig.dim;var algnPos=this.getAlignedPos(pos,dim,dim);canvas.getCtx().fillRect(algnPos.x,algnPos.y,dim,dim);},'ellipse':function(node,canvas){var pos=node.pos.getc(true),nconfig=this.node,data=node.data;var cond=nconfig.overridable&&data;var width=(cond&&data.$width||nconfig.width)/2;var height=(cond&&data.$height||nconfig.height)/2;var algnPos=this.getAlignedPos(pos,width*2,height*2);var ctx=canvas.getCtx();ctx.save();ctx.scale(width/height,height/width);canvas.path('fill',function(context){context.arc((algnPos.x+width)*(height/width),(algnPos.y+height)*(width/height),height,0,Math.PI*2,true);});ctx.restore();},'rectangle':function(node,canvas){var pos=node.pos.getc(true),nconfig=this.node,data=node.data;var cond=nconfig.overridable&&data;var width=cond&&data.$width||nconfig.width;var height=cond&&data.$height||nconfig.height;var algnPos=this.getAlignedPos(pos,width,height);canvas.getCtx().fillRect(algnPos.x,algnPos.y,width,height);}});ST.Plot.EdgeTypes=new Class({'none':function(){},'line':function(adj,canvas){var orn=this.getOrientation(adj);var nodeFrom=adj.nodeFrom,nodeTo=adj.nodeTo;var begin=this.viz.geom.getEdge(nodeFrom._depth<nodeTo._depth?nodeFrom:nodeTo,'begin',orn);var end=this.viz.geom.getEdge(nodeFrom._depth<nodeTo._depth?nodeTo:nodeFrom,'end',orn);canvas.path('stroke',function(ctx){ctx.moveTo(begin.x,begin.y);ctx.lineTo(end.x,end.y);});},'quadratic:begin':function(adj,canvas){var orn=this.getOrientation(adj);var data=adj.data,econfig=this.edge;var nodeFrom=adj.nodeFrom,nodeTo=adj.nodeTo;var begin=this.viz.geom.getEdge(nodeFrom._depth<nodeTo._depth?nodeFrom:nodeTo,'begin',orn);var end=this.viz.geom.getEdge(nodeFrom._depth<nodeTo._depth?nodeTo:nodeFrom,'end',orn);var cond=econfig.overridable&&data;var dim=cond&&data.$dim||econfig.dim;switch(orn){case"left":canvas.path('stroke',function(ctx){ctx.moveTo(begin.x,begin.y);ctx.quadraticCurveTo(begin.x+dim,begin.y,end.x,end.y);});break;case"right":canvas.path('stroke',function(ctx){ctx.moveTo(begin.x,begin.y);ctx.quadraticCurveTo(begin.x-dim,begin.y,end.x,end.y);});break;case"top":canvas.path('stroke',function(ctx){ctx.moveTo(begin.x,begin.y);ctx.quadraticCurveTo(begin.x,begin.y+dim,end.x,end.y);});break;case"bottom":canvas.path('stroke',function(ctx){ctx.moveTo(begin.x,begin.y);ctx.quadraticCurveTo(begin.x,begin.y-dim,end.x,end.y);});break;}},'quadratic:end':function(adj,canvas){var orn=this.getOrientation(adj);var data=adj.data,econfig=this.edge;var nodeFrom=adj.nodeFrom,nodeTo=adj.nodeTo;var begin=this.viz.geom.getEdge(nodeFrom._depth<nodeTo._depth?nodeFrom:nodeTo,'begin',orn);var end=this.viz.geom.getEdge(nodeFrom._depth<nodeTo._depth?nodeTo:nodeFrom,'end',orn);var cond=econfig.overridable&&data;var dim=cond&&data.$dim||econfig.dim;switch(orn){case"left":canvas.path('stroke',function(ctx){ctx.moveTo(begin.x,begin.y);ctx.quadraticCurveTo(end.x-dim,end.y,end.x,end.y);});break;case"right":canvas.path('stroke',function(ctx){ctx.moveTo(begin.x,begin.y);ctx.quadraticCurveTo(end.x+dim,end.y,end.x,end.y);});break;case"top":canvas.path('stroke',function(ctx){ctx.moveTo(begin.x,begin.y);ctx.quadraticCurveTo(end.x,end.y-dim,end.x,end.y);});break;case"bottom":canvas.path('stroke',function(ctx){ctx.moveTo(begin.x,begin.y);ctx.quadraticCurveTo(end.x,end.y+dim,end.x,end.y);});break;}},'bezier':function(adj,canvas){var data=adj.data,econfig=this.edge;var orn=this.getOrientation(adj);var nodeFrom=adj.nodeFrom,nodeTo=adj.nodeTo;var begin=this.viz.geom.getEdge(nodeFrom._depth<nodeTo._depth?nodeFrom:nodeTo,'begin',orn);var end=this.viz.geom.getEdge(nodeFrom._depth<nodeTo._depth?nodeTo:nodeFrom,'end',orn);var cond=econfig.overridable&&data;var dim=cond&&data.$dim||econfig.dim;switch(orn){case"left":canvas.path('stroke',function(ctx){ctx.moveTo(begin.x,begin.y);ctx.bezierCurveTo(begin.x+dim,begin.y,end.x-dim,end.y,end.x,end.y);});break;case"right":canvas.path('stroke',function(ctx){ctx.moveTo(begin.x,begin.y);ctx.bezierCurveTo(begin.x-dim,begin.y,end.x+dim,end.y,end.x,end.y);});break;case"top":canvas.path('stroke',function(ctx){ctx.moveTo(begin.x,begin.y);ctx.bezierCurveTo(begin.x,begin.y+dim,end.x,end.y-dim,end.x,end.y);});break;case"bottom":canvas.path('stroke',function(ctx){ctx.moveTo(begin.x,begin.y);ctx.bezierCurveTo(begin.x,begin.y-dim,end.x,end.y+dim,end.x,end.y);});break;}},'arrow':function(adj,canvas){var orn=this.getOrientation(adj);var node=adj.nodeFrom,child=adj.nodeTo;var data=adj.data,econfig=this.edge;var cond=econfig.overridable&&data;var edgeDim=cond&&data.$dim||econfig.dim;if(cond&&data.$direction&&data.$direction.length>1){var nodeHash={};nodeHash[node.id]=node;nodeHash[child.id]=child;var sense=data.$direction;node=nodeHash[sense[0]];child=nodeHash[sense[1]];}
var posFrom=this.viz.geom.getEdge(node,'begin',orn);var posTo=this.viz.geom.getEdge(child,'end',orn);var vect=new Complex(posTo.x-posFrom.x,posTo.y-posFrom.y);vect.$scale(edgeDim/vect.norm());var intermediatePoint=new Complex(posTo.x-vect.x,posTo.y-vect.y);var normal=new Complex(-vect.y/2,vect.x/2);var v1=intermediatePoint.add(normal),v2=intermediatePoint.$add(normal.$scale(-1));canvas.path('stroke',function(context){context.moveTo(posFrom.x,posFrom.y);context.lineTo(posTo.x,posTo.y);});canvas.path('fill',function(context){context.moveTo(v1.x,v1.y);context.lineTo(v2.x,v2.y);context.lineTo(posTo.x,posTo.y);});}});})();var AngularWidth={setAngularWidthForNodes:function(){var config=this.config.Node;var overridable=config.overridable;var dim=config.dim;Graph.Util.eachBFS(this.graph,this.root,function(elem,i){var diamValue=(overridable&&elem.data&&elem.data.$aw)||dim;elem._angularWidth=diamValue/i;},"ignore");},setSubtreesAngularWidth:function(){var that=this;Graph.Util.eachNode(this.graph,function(elem){that.setSubtreeAngularWidth(elem);},"ignore");},setSubtreeAngularWidth:function(elem){var that=this,nodeAW=elem._angularWidth,sumAW=0;Graph.Util.eachSubnode(elem,function(child){that.setSubtreeAngularWidth(child);sumAW+=child._treeAngularWidth;},"ignore");elem._treeAngularWidth=Math.max(nodeAW,sumAW);},computeAngularWidths:function(){this.setAngularWidthForNodes();this.setSubtreesAngularWidth();}};this.RGraph=new Class({Implements:[Loader,AngularWidth],initialize:function(canvas,controller){var config={labelContainer:canvas.id+'-label',interpolation:'linear',levelDistance:100,withLabels:true,Node:{overridable:false,type:'circle',dim:3,color:'#ccb',width:5,height:5,lineWidth:1},Edge:{overridable:false,type:'line',color:'#ccb',lineWidth:1},fps:40,duration:2500,transition:Trans.Quart.easeInOut,clearCanvas:true};var innerController={onBeforeCompute:$empty,onAfterCompute:$empty,onCreateLabel:$empty,onPlaceLabel:$empty,onComplete:$empty,onBeforePlotLine:$empty,onAfterPlotLine:$empty,onBeforePlotNode:$empty,onAfterPlotNode:$empty};this.controller=this.config=$merge(config,innerController,controller);this.graphOptions={'complex':false,'Node':{'selected':false,'exist':true,'drawn':true}};this.graph=new Graph(this.graphOptions);this.fx=new RGraph.Plot(this);this.op=new RGraph.Op(this);this.json=null;this.canvas=canvas;this.root=null;this.busy=false;this.parent=false;},refresh:function(){this.compute();this.plot();},reposition:function(){this.compute('endPos');},plot:function(){this.fx.plot();},compute:function(property){var prop=property||['pos','startPos','endPos'];var node=this.graph.getNode(this.root);node._depth=0;Graph.Util.computeLevels(this.graph,this.root,0,"ignore");this.computeAngularWidths();this.computePositions(prop);},computePositions:function(property){var propArray=$splat(property);var aGraph=this.graph;var GUtil=Graph.Util;var root=this.graph.getNode(this.root);var parent=this.parent;var config=this.config;for(var i=0;i<propArray.length;i++)
root[propArray[i]]=$P(0,0);root.angleSpan={begin:0,end:2*Math.PI};root._rel=1;GUtil.eachBFS(this.graph,this.root,function(elem){var angleSpan=elem.angleSpan.end-elem.angleSpan.begin;var rho=(elem._depth+1)*config.levelDistance;var angleInit=elem.angleSpan.begin;var totalAngularWidths=0,subnodes=[];GUtil.eachSubnode(elem,function(sib){totalAngularWidths+=sib._treeAngularWidth;subnodes.push(sib);},"ignore");if(parent&&parent.id==elem.id&&subnodes.length>0&&subnodes[0].dist){subnodes.sort(function(a,b){return(a.dist>=b.dist)-(a.dist<=b.dist);});}
for(var k=0;k<subnodes.length;k++){var child=subnodes[k];if(!child._flag){child._rel=child._treeAngularWidth/totalAngularWidths;var angleProportion=child._rel*angleSpan;var theta=angleInit+angleProportion/2;for(var i=0;i<propArray.length;i++)
child[propArray[i]]=$P(theta,rho);child.angleSpan={begin:angleInit,end:angleInit+angleProportion};angleInit+=angleProportion;}}},"ignore");},getNodeAndParentAngle:function(id){var theta=false;var n=this.graph.getNode(id);var ps=Graph.Util.getParents(n);var p=(ps.length>0)?ps[0]:false;if(p){var posParent=p.pos.getc(),posChild=n.pos.getc();var newPos=posParent.add(posChild.scale(-1));theta=Math.atan2(newPos.y,newPos.x);if(theta<0)theta+=2*Math.PI;}
return{parent:p,theta:theta};},tagChildren:function(par,id){if(par.angleSpan){var adjs=[];Graph.Util.eachAdjacency(par,function(elem){adjs.push(elem.nodeTo);},"ignore");var len=adjs.length;for(var i=0;i<len&&id!=adjs[i].id;i++);for(var j=(i+1)%len,k=0;id!=adjs[j].id;j=(j+1)%len){adjs[j].dist=k++;}}},onClick:function(id,opt){if(this.root!=id&&!this.busy){this.busy=true;this.root=id;that=this;this.controller.onBeforeCompute(this.graph.getNode(id));var obj=this.getNodeAndParentAngle(id);this.tagChildren(obj.parent,id);this.parent=obj.parent;this.compute('endPos');var thetaDiff=obj.theta-obj.parent.endPos.theta;Graph.Util.eachNode(this.graph,function(elem){elem.endPos.set(elem.endPos.getp().add($P(thetaDiff,0)));});var mode=this.config.interpolation;opt=$merge({onComplete:$empty},opt||{});this.fx.animate($merge({hideLabels:true,modes:[mode]},opt,{onComplete:function(){that.busy=false;opt.onComplete();}}));}}});RGraph.Op=new Class({Implements:Graph.Op,initialize:function(viz){this.viz=viz;}});RGraph.Plot=new Class({Implements:Graph.Plot,initialize:function(viz){this.viz=viz;this.config=viz.config;this.node=viz.config.Node;this.edge=viz.config.Edge;this.animation=new Animation;this.nodeTypes=new RGraph.Plot.NodeTypes;this.edgeTypes=new RGraph.Plot.EdgeTypes;},placeLabel:function(tag,node,controller){var pos=node.pos.getc(true),canvas=this.viz.canvas;var radius=canvas.getSize();var labelPos={x:Math.round(pos.x+radius.width/2),y:Math.round(pos.y+radius.height/2)};var style=tag.style;style.left=labelPos.x+'px';style.top=labelPos.y+'px';style.display=this.fitsInCanvas(labelPos,canvas)?'':'none';controller.onPlaceLabel(tag,node);}});RGraph.Plot.NodeTypes=new Class({'none':function(){},'circle':function(node,canvas){var pos=node.pos.getc(true),nconfig=this.node,data=node.data;var nodeDim=nconfig.overridable&&data&&data.$dim||nconfig.dim;canvas.path('fill',function(context){context.arc(pos.x,pos.y,nodeDim,0,Math.PI*2,true);});},'square':function(node,canvas){var pos=node.pos.getc(true),nconfig=this.node,data=node.data;var nodeDim=nconfig.overridable&&data&&data.$dim||nconfig.dim;var nodeDim2=2*nodeDim;canvas.getCtx().fillRect(pos.x-nodeDim,pos.y-nodeDim,nodeDim2,nodeDim2);},'rectangle':function(node,canvas){var pos=node.pos.getc(true),nconfig=this.node,data=node.data;var width=nconfig.overridable&&data&&data.$width||nconfig.width;var height=nconfig.overridable&&data&&data.$height||nconfig.height;canvas.getCtx().fillRect(pos.x-width/2,pos.y-height/2,width,height);},'triangle':function(node,canvas){var pos=node.pos.getc(true),nconfig=this.node,data=node.data;var nodeDim=nconfig.overridable&&data&&data.$dim||nconfig.dim;var c1x=pos.x,c1y=pos.y-nodeDim,c2x=c1x-nodeDim,c2y=pos.y+nodeDim,c3x=c1x+nodeDim,c3y=c2y;canvas.path('fill',function(ctx){ctx.moveTo(c1x,c1y);ctx.lineTo(c2x,c2y);ctx.lineTo(c3x,c3y);});},'star':function(node,canvas){var pos=node.pos.getc(true),nconfig=this.node,data=node.data;var nodeDim=nconfig.overridable&&data&&data.$dim||nconfig.dim;var ctx=canvas.getCtx(),pi5=Math.PI/5;ctx.save();ctx.translate(pos.x,pos.y);ctx.beginPath();ctx.moveTo(nodeDim,0);for(var i=0;i<9;i++){ctx.rotate(pi5);if(i%2==0){ctx.lineTo((nodeDim/0.525731)*0.200811,0);}else{ctx.lineTo(nodeDim,0);}}
ctx.closePath();ctx.fill();ctx.restore();}});RGraph.Plot.EdgeTypes=new Class({'none':function(){},'line':function(adj,canvas){var pos=adj.nodeFrom.pos.getc(true);var posChild=adj.nodeTo.pos.getc(true);canvas.path('stroke',function(context){context.moveTo(pos.x,pos.y);context.lineTo(posChild.x,posChild.y);});},'arrow':function(adj,canvas){var node=adj.nodeFrom,child=adj.nodeTo;var data=adj.data,econfig=this.edge;var cond=econfig.overridable&&data;var edgeDim=cond&&data.$dim||14;if(cond&&data.$direction&&data.$direction.length>1){var nodeHash={};nodeHash[node.id]=node;nodeHash[child.id]=child;var sense=data.$direction;node=nodeHash[sense[0]];child=nodeHash[sense[1]];}
var posFrom=node.pos.getc(true),posTo=child.pos.getc(true);var vect=new Complex(posTo.x-posFrom.x,posTo.y-posFrom.y);vect.$scale(edgeDim/vect.norm());var intermediatePoint=new Complex(posTo.x-vect.x,posTo.y-vect.y);var normal=new Complex(-vect.y/2,vect.x/2);var v1=intermediatePoint.add(normal),v2=intermediatePoint.$add(normal.$scale(-1));canvas.path('stroke',function(context){context.moveTo(posFrom.x,posFrom.y);context.lineTo(posTo.x,posTo.y);});canvas.path('fill',function(context){context.moveTo(v1.x,v1.y);context.lineTo(v2.x,v2.y);context.lineTo(posTo.x,posTo.y);});}});Complex.prototype.moebiusTransformation=function(c){var num=this.add(c);var den=c.$conjugate().$prod(this);den.x++;return num.$div(den);};Graph.Util.getClosestNodeToOrigin=function(graph,prop,flags){return this.getClosestNodeToPos(graph,Polar.KER,prop,flags);};Graph.Util.getClosestNodeToPos=function(graph,pos,prop,flags){var node=null;prop=prop||'pos';pos=pos&&pos.getc(true)||Complex.KER;var distance=function(a,b){var d1=a.x-b.x,d2=a.y-b.y;return d1*d1+d2*d2;};this.eachNode(graph,function(elem){node=(node==null||distance(elem[prop].getc(true),pos)<distance(node[prop].getc(true),pos))?elem:node;},flags);return node;};Graph.Util.moebiusTransformation=function(graph,pos,prop,startPos,flags){this.eachNode(graph,function(elem){for(var i=0;i<prop.length;i++){var p=pos[i].scale(-1),property=startPos?startPos:prop[i];elem[prop[i]].set(elem[property].getc().moebiusTransformation(p));}},flags);};this.Hypertree=new Class({Implements:[Loader,AngularWidth],initialize:function(canvas,controller){var config={labelContainer:canvas.id+'-label',withLabels:true,Node:{overridable:false,type:'circle',dim:7,color:'#ccb',width:5,height:5,lineWidth:1,transform:true},Edge:{overridable:false,type:'hyperline',color:'#ccb',lineWidth:1},clearCanvas:true,fps:40,duration:1500,transition:Trans.Quart.easeInOut};var innerController={onBeforeCompute:$empty,onAfterCompute:$empty,onCreateLabel:$empty,onPlaceLabel:$empty,onComplete:$empty,onBeforePlotLine:$empty,onAfterPlotLine:$empty,onBeforePlotNode:$empty,onAfterPlotNode:$empty};this.controller=this.config=$merge(config,innerController,controller);this.graphOptions={'complex':false,'Node':{'selected':false,'exist':true,'drawn':true}};this.graph=new Graph(this.graphOptions);this.fx=new Hypertree.Plot(this);this.op=new Hypertree.Op(this);this.json=null;this.canvas=canvas;this.root=null;this.busy=false;},refresh:function(reposition){if(reposition){this.reposition();Graph.Util.eachNode(this.graph,function(node){node.startPos.rho=node.pos.rho=node.endPos.rho;node.startPos.theta=node.pos.theta=node.endPos.theta;});}else{this.compute();}
this.plot();},reposition:function(){this.compute('endPos');var vector=this.graph.getNode(this.root).pos.getc().scale(-1);Graph.Util.moebiusTransformation(this.graph,[vector],['endPos'],'endPos',"ignore");Graph.Util.eachNode(this.graph,function(node){if(node.ignore){node.endPos.rho=node.pos.rho;node.endPos.theta=node.pos.theta;}});},plot:function(){this.fx.plot();},compute:function(property){var prop=property||['pos','startPos'];var node=this.graph.getNode(this.root);node._depth=0;Graph.Util.computeLevels(this.graph,this.root,0,"ignore");this.computeAngularWidths();this.computePositions(prop);},computePositions:function(property){var propArray=$splat(property);var aGraph=this.graph,GUtil=Graph.Util;var root=this.graph.getNode(this.root),that=this,config=this.config;var size=this.canvas.getSize();var scale=Math.min(size.width,size.height)/2;for(var i=0;i<propArray.length;i++)
root[propArray[i]]=$P(0,0);root.angleSpan={begin:0,end:2*Math.PI};root._rel=1;var edgeLength=(function(){var depth=0;GUtil.eachNode(aGraph,function(node){depth=(node._depth>depth)?node._depth:depth;node._scale=scale;},"ignore");for(var i=0.51;i<=1;i+=0.01){var valSeries=(function(a,n){return(1-Math.pow(a,n))/(1-a);})(i,depth+1);if(valSeries>=2)return i-0.01;}
return 0.5;})();GUtil.eachBFS(this.graph,this.root,function(elem){var angleSpan=elem.angleSpan.end-elem.angleSpan.begin;var angleInit=elem.angleSpan.begin;var totalAngularWidths=(function(element){var total=0;GUtil.eachSubnode(element,function(sib){total+=sib._treeAngularWidth;},"ignore");return total;})(elem);for(var i=1,rho=0,lenAcum=edgeLength,depth=elem._depth;i<=depth+1;i++){rho+=lenAcum;lenAcum*=edgeLength;}
GUtil.eachSubnode(elem,function(child){if(!child._flag){child._rel=child._treeAngularWidth/totalAngularWidths;var angleProportion=child._rel*angleSpan;var theta=angleInit+angleProportion/2;for(var i=0;i<propArray.length;i++)
child[propArray[i]]=$P(theta,rho);child.angleSpan={begin:angleInit,end:angleInit+angleProportion};angleInit+=angleProportion;}},"ignore");},"ignore");},onClick:function(id,opt){var pos=this.graph.getNode(id).pos.getc(true);this.move(pos,opt);},move:function(pos,opt){var versor=$C(pos.x,pos.y);if(this.busy===false&&versor.norm()<1){var GUtil=Graph.Util;this.busy=true;var root=GUtil.getClosestNodeToPos(this.graph,versor),that=this;GUtil.computeLevels(this.graph,root.id,0);this.controller.onBeforeCompute(root);if(versor.norm()<1){opt=$merge({onComplete:$empty},opt||{});this.fx.animate($merge({modes:['moebius'],hideLabels:true},opt,{onComplete:function(){that.busy=false;opt.onComplete();}}),versor);}}}});Hypertree.Op=new Class({Implements:Graph.Op,initialize:function(viz){this.viz=viz;}});Hypertree.Plot=new Class({Implements:Graph.Plot,initialize:function(viz){this.viz=viz;this.config=viz.config;this.node=this.config.Node;this.edge=this.config.Edge;this.animation=new Animation;this.nodeTypes=new Hypertree.Plot.NodeTypes;this.edgeTypes=new Hypertree.Plot.EdgeTypes;},hyperline:function(adj,canvas){var node=adj.nodeFrom,child=adj.nodeTo,data=adj.data;var pos=node.pos.getc(),posChild=child.pos.getc();var centerOfCircle=this.computeArcThroughTwoPoints(pos,posChild);var size=canvas.getSize();var scale=Math.min(size.width,size.height)/2;if(centerOfCircle.a>1000||centerOfCircle.b>1000||centerOfCircle.ratio>1000){canvas.path('stroke',function(ctx){ctx.moveTo(pos.x*scale,pos.y*scale);ctx.lineTo(posChild.x*scale,posChild.y*scale);});}else{var angleBegin=Math.atan2(posChild.y-centerOfCircle.y,posChild.x-centerOfCircle.x);var angleEnd=Math.atan2(pos.y-centerOfCircle.y,pos.x-centerOfCircle.x);var sense=this.sense(angleBegin,angleEnd);var context=canvas.getCtx();canvas.path('stroke',function(ctx){ctx.arc(centerOfCircle.x*scale,centerOfCircle.y*scale,centerOfCircle.ratio*scale,angleBegin,angleEnd,sense);});}},computeArcThroughTwoPoints:function(p1,p2){var aDen=(p1.x*p2.y-p1.y*p2.x),bDen=aDen;var sq1=p1.squaredNorm(),sq2=p2.squaredNorm();if(aDen==0)return{x:0,y:0,ratio:1001};var a=(p1.y*sq2-p2.y*sq1+p1.y-p2.y)/aDen;var b=(p2.x*sq1-p1.x*sq2+p2.x-p1.x)/bDen;var x=-a/2;var y=-b/2;var squaredRatio=(a*a+b*b)/4-1;if(squaredRatio<0)return{x:0,y:0,ratio:1001};var ratio=Math.sqrt(squaredRatio);var out={x:x,y:y,ratio:ratio,a:a,b:b};return out;},sense:function(angleBegin,angleEnd){return(angleBegin<angleEnd)?((angleBegin+Math.PI>angleEnd)?false:true):((angleEnd+Math.PI>angleBegin)?true:false);},placeLabel:function(tag,node,controller){var pos=node.pos.getc(true),canvas=this.viz.canvas;var radius=canvas.getSize();var scale=node._scale;var labelPos={x:Math.round(pos.x*scale+radius.width/2),y:Math.round(pos.y*scale+radius.height/2)};var style=tag.style;style.left=labelPos.x+'px';style.top=labelPos.y+'px';style.display='';controller.onPlaceLabel(tag,node);}});Hypertree.Plot.NodeTypes=new Class({'none':function(){},'circle':function(node,canvas){var nconfig=this.node,data=node.data;var nodeDim=nconfig.overridable&&data&&data.$dim||nconfig.dim;var p=node.pos.getc(),pos=p.scale(node._scale);var prod=nconfig.transform?nodeDim*(1-p.squaredNorm()):nodeDim;if(prod>=nodeDim/4){canvas.path('fill',function(context){context.arc(pos.x,pos.y,prod,0,Math.PI*2,true);});}},'square':function(node,canvas){var nconfig=this.node,data=node.data;var nodeDim=nconfig.overridable&&data&&data.$dim||nconfig.dim;var p=node.pos.getc(),pos=p.scale(node._scale);var prod=nconfig.transform?nodeDim*(1-p.squaredNorm()):nodeDim;var nodeDim2=2*prod;if(prod>=nodeDim/4){canvas.getCtx().fillRect(pos.x-prod,pos.y-prod,nodeDim2,nodeDim2);}},'rectangle':function(node,canvas){var nconfig=this.node,data=node.data;var width=nconfig.overridable&&data&&data.$width||nconfig.width;var height=nconfig.overridable&&data&&data.$height||nconfig.height;var p=node.pos.getc(),pos=p.scale(node._scale);var prod=1-p.squaredNorm();width=nconfig.transform?width*prod:width;height=nconfig.transform?height*prod:height;if(prod>=0.25){canvas.getCtx().fillRect(pos.x-width/2,pos.y-height/2,width,height);}},'triangle':function(node,canvas){var nconfig=this.node,data=node.data;var nodeDim=nconfig.overridable&&data&&data.$dim||nconfig.dim;var p=node.pos.getc(),pos=p.scale(node._scale);var prod=nconfig.transform?nodeDim*(1-p.squaredNorm()):nodeDim;if(prod>=nodeDim/4){var c1x=pos.x,c1y=pos.y-prod,c2x=c1x-prod,c2y=pos.y+prod,c3x=c1x+prod,c3y=c2y;canvas.path('fill',function(ctx){ctx.moveTo(c1x,c1y);ctx.lineTo(c2x,c2y);ctx.lineTo(c3x,c3y);});}},'star':function(node,canvas){var nconfig=this.node,data=node.data;var nodeDim=nconfig.overridable&&data&&data.$dim||nconfig.dim;var p=node.pos.getc(),pos=p.scale(node._scale);var prod=nconfig.transform?nodeDim*(1-p.squaredNorm()):nodeDim;if(prod>=nodeDim/4){var ctx=canvas.getCtx(),pi5=Math.PI/5;ctx.save();ctx.translate(pos.x,pos.y);ctx.beginPath();ctx.moveTo(nodeDim,0);for(var i=0;i<9;i++){ctx.rotate(pi5);if(i%2==0){ctx.lineTo((prod/0.525731)*0.200811,0);}
else{ctx.lineTo(prod,0);}}
ctx.closePath();ctx.fill();ctx.restore();}}});Hypertree.Plot.EdgeTypes=new Class({'none':function(){},'line':function(adj,canvas){var s=adj.nodeFrom._scale;var pos=adj.nodeFrom.pos.getc(true);var posChild=adj.nodeTo.pos.getc(true);canvas.path('stroke',function(context){context.moveTo(pos.x*s,pos.y*s);context.lineTo(posChild.x*s,posChild.y*s);});},'hyperline':function(adj,canvas){this.hyperline(adj,canvas);}});this.TM={layout:{orientation:"h",vertical:function(){return this.orientation=="v";},horizontal:function(){return this.orientation=="h";},change:function(){this.orientation=this.vertical()?"h":"v";}},innerController:{onBeforeCompute:$empty,onAfterCompute:$empty,onComplete:$empty,onCreateElement:$empty,onDestroyElement:$empty,request:false},config:{orientation:"h",titleHeight:13,rootId:'infovis',offset:4,levelsToShow:3,addLeftClickHandler:false,addRightClickHandler:false,selectPathOnHover:false,Color:{allow:false,minValue:-100,maxValue:100,minColorValue:[255,0,50],maxColorValue:[0,255,50]},Tips:{allow:false,offsetX:20,offsetY:20,onShow:$empty}},initialize:function(controller){this.tree=null;this.shownTree=null;this.controller=this.config=$merge(this.config,this.innerController,controller);this.rootId=this.config.rootId;this.layout.orientation=this.config.orientation;if(this.config.Tips.allow&&document.body){var tip=document.getElementById('_tooltip')||document.createElement('div');tip.id='_tooltip';tip.className='tip';var style=tip.style;style.position='absolute';style.display='none';style.zIndex=13000;document.body.appendChild(tip);this.tip=tip;}
var that=this;var fn=function(){that.empty();if(window.CollectGarbage)window.CollectGarbage();delete fn;};if(window.addEventListener){window.addEventListener('unload',fn,false);}else{window.attachEvent('onunload',fn);}},each:function(f){(function rec(elem){if(!elem)return;var ch=elem.childNodes,len=ch.length;if(len>0){f.apply(this,[elem,len===1,ch[0],ch[1]]);}
if(len>1){for(var chi=ch[1].childNodes,i=0;i<chi.length;i++){rec(chi[i]);}}})($get(this.rootId).firstChild);},toStyle:function(obj){var ans="";for(var s in obj)ans+=s+":"+obj[s]+";";return ans;},leaf:function(tree){return tree.children==0;},createBox:function(json,coord,html){var box;if(!this.leaf(json)){box=this.headBox(json,coord)+this.bodyBox(html,coord);}else{box=this.leafBox(json,coord);}
return this.contentBox(json,coord,box);},plot:function(json){var coord=json.coord,html="";if(this.leaf(json))
return this.createBox(json,coord,null);for(var i=0,ch=json.children;i<ch.length;i++){var chi=ch[i],chcoord=chi.coord;if(chcoord.width*chcoord.height>1){html+=this.plot(chi);}}
return this.createBox(json,coord,html);},headBox:function(json,coord){var config=this.config,offst=config.offset;var c={'height':config.titleHeight+"px",'width':(coord.width-offst)+"px",'left':offst/2+"px"};return"<div class=\"head\" style=\""+this.toStyle(c)+"\">"
+json.name+"</div>";},bodyBox:function(html,coord){var config=this.config,th=config.titleHeight,offst=config.offset;var c={'width':(coord.width-offst)+"px",'height':(coord.height-offst-th)+"px",'top':(th+offst/2)+"px",'left':(offst/2)+"px"};return"<div class=\"body\" style=\""
+this.toStyle(c)+"\">"+html+"</div>";},contentBox:function(json,coord,html){var c={};for(var i in coord)c[i]=coord[i]+"px";return"<div class=\"content\" style=\""+this.toStyle(c)
+"\" id=\""+json.id+"\">"+html+"</div>";},leafBox:function(json,coord){var config=this.config;var backgroundColor=config.Color.allow&&this.setColor(json),offst=config.offset,width=coord.width-offst,height=coord.height-offst;var c={'top':(offst/2)+"px",'height':height+"px",'width':width+"px",'left':(offst/2)+"px"};if(backgroundColor)c['background-color']=backgroundColor;return"<div class=\"leaf\" style=\""+this.toStyle(c)+"\">"
+json.name+"</div>";},setColor:function(json){var c=this.config.Color,maxcv=c.maxColorValue,mincv=c.minColorValue,maxv=c.maxValue,minv=c.minValue,diff=maxv-minv,x=(json.data.$color-0);var comp=function(i,x){return Math.round((((maxcv[i]-mincv[i])/diff)*(x-minv)+mincv[i]));};return $rgbToHex([comp(0,x),comp(1,x),comp(2,x)]);},enter:function(elem){this.view(elem.parentNode.id);},onLeftClick:function(elem){this.enter(elem);},out:function(){var parent=TreeUtil.getParent(this.tree,this.shownTree.id);if(parent){if(this.controller.request)
TreeUtil.prune(parent,this.config.levelsToShow);this.view(parent.id);}},onRightClick:function(){this.out();},view:function(id){var config=this.config,that=this;var post={onComplete:function(){that.loadTree(id);$get(config.rootId).focus();}};if(this.controller.request){var TUtil=TreeUtil;TUtil.loadSubtrees(TUtil.getSubtree(this.tree,id),$merge(this.controller,post));}else{post.onComplete();}},resetPath:function(tree){var root=this.rootId,previous=this.resetPath.previous;this.resetPath.previous=tree||false;function getParent(c){var p=c.parentNode;return p&&(p.id!=root)&&p;};function toggleInPath(elem,remove){if(elem){var container=$get(elem.id);if(container){var parent=getParent(container);while(parent){elem=parent.childNodes[0];if($hasClass(elem,'in-path')){if(remove==undefined||!!remove)$removeClass(elem,'in-path');}else{if(!remove)$addClass(elem,'in-path');}
parent=getParent(parent);}}}};toggleInPath(previous,true);toggleInPath(tree,false);},initializeElements:function(){var cont=this.controller,that=this;var ff=$lambda(false),tipsAllow=cont.Tips.allow;this.each(function(content,isLeaf,elem1,elem2){var tree=TreeUtil.getSubtree(that.tree,content.id);cont.onCreateElement(content,tree,isLeaf,elem1,elem2);if(cont.addRightClickHandler)elem1.oncontextmenu=ff;if(cont.addLeftClickHandler||cont.addRightClickHandler){$addEvent(elem1,'mouseup',function(e){var rightClick=(e.which==3||e.button==2);if(rightClick){if(cont.addRightClickHandler)that.onRightClick();}
else{if(cont.addLeftClickHandler)that.onLeftClick(elem1);}
if(e.preventDefault)
e.preventDefault();else
e.returnValue=false;});}
if(cont.selectPathOnHover||tipsAllow){$addEvent(elem1,'mouseover',function(e){if(cont.selectPathOnHover){if(isLeaf){$addClass(elem1,'over-leaf');}
else{$addClass(elem1,'over-head');$addClass(content,'over-content');}
if(content.id)
that.resetPath(tree);}
if(tipsAllow)
cont.Tips.onShow(that.tip,tree,isLeaf,elem1);});$addEvent(elem1,'mouseout',function(e){if(cont.selectPathOnHover){if(isLeaf){$removeClass(elem1,'over-leaf');}
else{$removeClass(elem1,'over-head');$removeClass(content,'over-content');}
that.resetPath();}
if(tipsAllow)
that.tip.style.display='none';});if(tipsAllow){$addEvent(elem1,'mousemove',function(e,win){var tip=that.tip;win=win||window;e=e||win.event;var doc=win.document;doc=doc.html||doc.body;var page={x:e.pageX||e.clientX+doc.scrollLeft,y:e.pageY||e.clientY+doc.scrollTop};tip.style.display='';win={'height':document.body.clientHeight,'width':document.body.clientWidth};var obj={'width':tip.offsetWidth,'height':tip.offsetHeight};var style=tip.style,x=cont.Tips.offsetX,y=cont.Tips.offsetY;style.top=((page.y+y+obj.height>win.height)?(page.y-obj.height-y):page.y+y)+'px';style.left=((page.x+obj.width+x>win.width)?(page.x-obj.width-x):page.x+x)+'px';});}}});},destroyElements:function(){if(this.controller.onDestroyElement!=$empty){var cont=this.controller,that=this;this.each(function(content,isLeaf,elem1,elem2){cont.onDestroyElement(content,TreeUtil.getSubtree(that.tree,content.id),isLeaf,elem1,elem2);});}},empty:function(){this.destroyElements();$clean($get(this.rootId));},loadTree:function(id){this.empty();this.loadJSON(TreeUtil.getSubtree(this.tree,id));}};TM.SliceAndDice=new Class({Implements:TM,loadJSON:function(json){this.controller.onBeforeCompute(json);var container=$get(this.rootId),config=this.config,width=container.offsetWidth,height=container.offsetHeight;var p={'coord':{'top':0,'left':0,'width':width,'height':height+config.titleHeight+config.offset}};if(this.tree==null)this.tree=json;this.shownTree=json;this.compute(p,json,this.layout.orientation);container.innerHTML=this.plot(json);this.initializeElements();this.controller.onAfterCompute(json);},compute:function(par,json,orientation){var config=this.config,coord=par.coord,offst=config.offset,width=coord.width-offst,height=coord.height-offst-config.titleHeight,pdata=par.data,fact=(pdata&&("$area"in pdata))?json.data.$area/pdata.$area:1;var otherSize,size,dim,pos,pos2;var horizontal=(orientation=="h");if(horizontal){orientation='v';otherSize=height;size=Math.round(width*fact);dim='height';pos='top';pos2='left';}else{orientation='h';otherSize=Math.round(height*fact);size=width;dim='width';pos='left';pos2='top';}
json.coord={'width':size,'height':otherSize,'top':0,'left':0};var offsetSize=0,tm=this;$each(json.children,function(elem){tm.compute(json,elem,orientation);elem.coord[pos]=offsetSize;elem.coord[pos2]=0;offsetSize+=Math.floor(elem.coord[dim]);});}});TM.Area=new Class({loadJSON:function(json){this.controller.onBeforeCompute(json);var container=$get(this.rootId),width=container.offsetWidth,height=container.offsetHeight,offst=this.config.offset,offwdth=width-offst,offhght=height-offst-this.config.titleHeight;json.coord={'height':height,'width':width,'top':0,'left':0};var coord=$merge(json.coord,{'width':offwdth,'height':offhght});this.compute(json,coord);container.innerHTML=this.plot(json);if(this.tree==null)this.tree=json;this.shownTree=json;this.initializeElements();this.controller.onAfterCompute(json);},computeDim:function(tail,initElem,w,coord,comp){if(tail.length+initElem.length==1){var l=(tail.length==1)?tail:initElem;this.layoutLast(l,w,coord);return;}
if(tail.length>=2&&initElem.length==0){initElem=[tail[0]];tail=tail.slice(1);}
if(tail.length==0){if(initElem.length>0)this.layoutRow(initElem,w,coord);return;}
var c=tail[0];if(comp(initElem,w)>=comp([c].concat(initElem),w)){this.computeDim(tail.slice(1),initElem.concat([c]),w,coord,comp);}else{var newCoords=this.layoutRow(initElem,w,coord);this.computeDim(tail,[],newCoords.dim,newCoords,comp);}},worstAspectRatio:function(ch,w){if(!ch||ch.length==0)return Number.MAX_VALUE;var areaSum=0,maxArea=0,minArea=Number.MAX_VALUE;for(var i=0;i<ch.length;i++){var area=ch[i]._area;areaSum+=area;minArea=(minArea<area)?minArea:area;maxArea=(maxArea>area)?maxArea:area;}
var sqw=w*w,sqAreaSum=areaSum*areaSum;return Math.max(sqw*maxArea/sqAreaSum,sqAreaSum/(sqw*minArea));},avgAspectRatio:function(ch,w){if(!ch||ch.length==0)return Number.MAX_VALUE;var arSum=0;for(var i=0;i<ch.length;i++){var area=ch[i]._area;var h=area/w;arSum+=(w>h)?w/h:h/w;}
return arSum/ch.length;},layoutLast:function(ch,w,coord){ch[0].coord=coord;}});TM.Squarified=new Class({Implements:[TM,TM.Area],compute:function(json,coord){if(!(coord.width>=coord.height&&this.layout.horizontal()))
this.layout.change();var ch=json.children,config=this.config;if(ch.length>0){this.processChildrenLayout(json,ch,coord);for(var i=0;i<ch.length;i++){var chcoord=ch[i].coord,offst=config.offset,height=chcoord.height-(config.titleHeight+offst),width=chcoord.width-offst;coord={'width':width,'height':height,'top':0,'left':0};this.compute(ch[i],coord);}}},processChildrenLayout:function(par,ch,coord){var parentArea=coord.width*coord.height;var i,totalChArea=0,chArea=[];for(i=0;i<ch.length;i++){chArea[i]=parseFloat(ch[i].data.$area);totalChArea+=chArea[i];}
for(i=0;i<chArea.length;i++){ch[i]._area=parentArea*chArea[i]/totalChArea;}
var minimumSideValue=(this.layout.horizontal())?coord.height:coord.width;ch.sort(function(a,b){return(a._area<=b._area)-(a._area>=b._area);});var initElem=[ch[0]];var tail=ch.slice(1);this.squarify(tail,initElem,minimumSideValue,coord);},squarify:function(tail,initElem,w,coord){this.computeDim(tail,initElem,w,coord,this.worstAspectRatio);},layoutRow:function(ch,w,coord){if(this.layout.horizontal()){return this.layoutV(ch,w,coord);}else{return this.layoutH(ch,w,coord);}},layoutV:function(ch,w,coord){var totalArea=0,rnd=Math.round;$each(ch,function(elem){totalArea+=elem._area;});var width=rnd(totalArea/w),top=0;for(var i=0;i<ch.length;i++){var h=rnd(ch[i]._area/width);ch[i].coord={'height':h,'width':width,'top':coord.top+top,'left':coord.left};top+=h;}
var ans={'height':coord.height,'width':coord.width-width,'top':coord.top,'left':coord.left+width};ans.dim=Math.min(ans.width,ans.height);if(ans.dim!=ans.height)this.layout.change();return ans;},layoutH:function(ch,w,coord){var totalArea=0,rnd=Math.round;$each(ch,function(elem){totalArea+=elem._area;});var height=rnd(totalArea/w),top=coord.top,left=0;for(var i=0;i<ch.length;i++){ch[i].coord={'height':height,'width':rnd(ch[i]._area/height),'top':top,'left':coord.left+left};left+=ch[i].coord.width;}
var ans={'height':coord.height-height,'width':coord.width,'top':coord.top+height,'left':coord.left};ans.dim=Math.min(ans.width,ans.height);if(ans.dim!=ans.width)this.layout.change();return ans;}});TM.Strip=new Class({Implements:[TM,TM.Area],compute:function(json,coord){var ch=json.children,config=this.config;if(ch.length>0){this.processChildrenLayout(json,ch,coord);for(var i=0;i<ch.length;i++){var chcoord=ch[i].coord,offst=config.offset,height=chcoord.height-(config.titleHeight+offst),width=chcoord.width-offst;coord={'width':width,'height':height,'top':0,'left':0};this.compute(ch[i],coord);}}},processChildrenLayout:function(par,ch,coord){var area=coord.width*coord.height;var dataValue=parseFloat(par.data.$area);$each(ch,function(elem){elem._area=area*parseFloat(elem.data.$area)/dataValue;});var side=(this.layout.horizontal())?coord.width:coord.height;var initElem=[ch[0]];var tail=ch.slice(1);this.stripify(tail,initElem,side,coord);},stripify:function(tail,initElem,w,coord){this.computeDim(tail,initElem,w,coord,this.avgAspectRatio);},layoutRow:function(ch,w,coord){if(this.layout.horizontal()){return this.layoutH(ch,w,coord);}else{return this.layoutV(ch,w,coord);}},layoutV:function(ch,w,coord){var totalArea=0,rnd=function(x){return x;};$each(ch,function(elem){totalArea+=elem._area;});var width=rnd(totalArea/w),top=0;for(var i=0;i<ch.length;i++){var h=rnd(ch[i]._area/width);ch[i].coord={'height':h,'width':width,'top':coord.top+(w-h-top),'left':coord.left};top+=h;}
var ans={'height':coord.height,'width':coord.width-width,'top':coord.top,'left':coord.left+width,'dim':w};return ans;},layoutH:function(ch,w,coord){var totalArea=0,rnd=function(x){return x;};$each(ch,function(elem){totalArea+=elem._area;});var height=rnd(totalArea/w),top=coord.height-height,left=0;for(var i=0;i<ch.length;i++){ch[i].coord={'height':height,'width':rnd(ch[i]._area/height),'top':top,'left':coord.left+left};left+=ch[i].coord.width;}
var ans={'height':coord.height-height,'width':coord.width,'top':coord.top,'left':coord.left,'dim':w};return ans;}});})();var showMessageDrawer=function(message,type){var color={"info":"#d9ffd9","error":"#ffcccc"}[type];var timeout={"info":2000,"error":3000}[type];var drawer=$("#drawer");drawer.html("<h2>"+message+"</h2>");drawer.slideDown(function(){drawer.css("backgroundColor",color);setTimeout(function(){drawer.css("backgroundColor","#fff");setTimeout(function(){drawer.slideUp()},timeout);},1000);});return false;}
submitFeedback=function(){var dataStr="feedbackText="+$("#feedbackText").val();$.ajax({type:"POST",url:"/feedback/",data:dataStr,success:function(){}});$("#feedbackFormControls").hide();$("#feedbackFormSpinner").show();window.setTimeout(function(){$("#feedbackFormDiv").hide();$("#feedbackThanksDiv").show();},2000);return false;}
resetFeedbackDialog=function(){$("#feedbackFormDiv").show();$("#feedbackFormControls").show();$("#feedbackFormSpinner").hide();$("#feedbackThanksDiv").hide();}
doSearch=function(){$.getJSON("/search/videos.json?q="+$("#connectVideoQuery").val(),function(json,status){if(status=="success"){var ul=$("#searchResults");ul.empty();$.each(json,function(i,item){if(item.meta!=$("#currentVideo").val()){var id="r"+i;var img=$("<img />").attr("src",item.thumbnail).attr("width","40").attr("height","30");var radio=$("<input />").attr("type","radio").attr("name","vid").attr("id",id).attr("class",item.meta);var li=$("<li />");var label=$("<label />").attr("for",id);label.append(img);label.append("&nbsp;"+item.title+" &ndash; "+item.uploader);li.append(radio);li.append("&nbsp;");li.append(label);li.appendTo(ul);}});$("#r0").attr("checked","true");$("#wizardNext").attr("disabled","")}});return false;}
resetConnectDialog=function(){$("#connectVidTwo").hide();$("#connectVidThree").hide();$("#connectVidOne").show();$("#wizardPrev").attr("disabled","true");$("#wizardNext").attr("value","Next");$("#wizardPrev").show();$("#wizardNext").show();}
generate_uid=function(){var chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";var len=32;var uid="";for(var i=0;i<len;i++){var rnum=Math.floor(Math.random()*chars.length);uid+=chars.substring(rnum,rnum+1);}
return uid;}
var showDetailsLayer=function(){$("#playRecordedVideoOverlayDiv1").hide();$("#playRecordedVideoOverlayDiv2").show();}
var simplePublish=function(){$("#newVideoSpinner2").show();$("#newVideoPublishControls2").hide();$.post("/video/publish",{n:"aj9"},function(uid,status){$.post("/video/add_details",{uid:uid,title:$("#newVideoTitle").val(),descr:$("#newVideoDetails").val()},function(resp,status){window.location.href="http://vidiowiki.com/watch/"+uid;},"text");},"text");return false;}
var showLinkToNewVideo=function(){$("#playRecordedVideoOverlayDiv1").hide();$("#newVideoSpinner").show();$("#newVideoPublishControls").hide();$.post("/video/publish",{n:"aj9"},function(uid,status){$.post("/video/add_details",{uid:uid,title:$("#newVideoTitle").val(),descr:$("#newVideoDetails").val()},function(resp,status){$("#newVideoSpinner").hide();$("#newVideoPublishControls").show();$("#playRecordedVideoOverlayDiv2").hide();$("#newVideoLink").html("http://vidiowiki.com/watch/"+uid);$("#newVideoLink").attr("href","http://vidiowiki.com/watch/"+uid);$("#playRecordedVideoOverlayDiv3").show();},"text");},"text");}
var initMindmap=function(json){var ld=100;if((window.location.href.indexOf("dnr")!=-1)||(window.location.href.indexOf("fp7etg7")!=-1)){ld=130;}
var canvas=new Canvas('mindmapCanvas',{'injectInto':'mindmap','width':720,'height':500});window.ht=new RGraph(canvas,{interpolation:'linear',levelDistance:ld,Node:{color:'#2784C3',dim:5,overridable:true},Edge:{color:'#aaa',lineWidth:2,overridable:true},duration:1000,clearCanvas:true,withLabels:true,onCreateLabel:function(domElement,node){domElement.innerHTML=node.name;domElement.onclick=function(){$("#blankSlateMindmapSidebar").hide();$("#infoBoxMindmapSidebar").show();if(window.video_info!==undefined&&video_info[node.id]!==undefined){var info=video_info[node.id];$("#mindmapThumbnail").attr("src",info["thumbnail_url"]);$("#mindmapThumbnailA").attr("href",info["video_page_url"]);$("#mindmapVideoA").attr("href",info["video_page_url"]);$("#mindmapVideoA").html(info["video_title"]);$("#mindmapAuthorA").attr("href",info["author_page_url"]);$("#mindmapAuthorA").html(info["author_name"]);if(node.id!==VW.globals.lastNodeClicked){if(info["connections"][VW.globals.lastNodeClicked]!==undefined){var html="";$.each(info["connections"][VW.globals.lastNodeClicked],function(i,keyword){html+="<span class='kwhl'>"+keyword+"</span>";if(i<info["connections"][VW.globals.lastNodeClicked].length-1){html+=", ";}else{}});$("#mindmapConnectionsKeywords").html(html);$("#mindmapConnectionsTitle").html(video_info[VW.globals.lastNodeClicked]["video_title"]);$("#mindmapConnections").show();}else{$("#mindmapConnections").hide();}
VW.globals.lastNodeClicked=node.id;}}
if(node.id!=json.id){var MAX_HISTORY_SIZE=5;if($("#history > ul > li").length==MAX_HISTORY_SIZE){$("#history > ul > li:first").remove();$("#history > ul").append("<li><a href='#__"+node.id+"'>"+node.name+"</a> &rarr; </li>");}
else{$("#history > ul").append("<li><a href='#__"+node.id+"'>"+node.name+"</a> &rarr; </li>");}
$.address.value("_"+node.id);$("#playVideo1").attr("href","#_"+node.id);$("#playVideo2").attr("href","#_"+node.id);}
ht.onClick(node.id);};},onBeforePlotLine:function(adj){if(adj.nodeTo.data["connection"]=="false"){adj.data.$color="#ffffff";}},onPlaceLabel:function(domElement,node){var style=domElement.style;style.display='';style.cursor='pointer';if(node._depth<=1){}else if(node._depth==2){}else{style.display='none';}
if(node==Graph.Util.getClosestNodeToOrigin(window.ht.graph,"pos")){style.color="#2784C3";style.zIndex="1";}
var left=parseInt(style.left);var w=domElement.offsetWidth;style.left=(left-w/2)+'px';},onAfterCompute:function(){$("#playVideo1").css("display","inline");$("#playVideo2").css("display","inline");}});window.ht.loadJSON(json);window.ht.refresh();if($.address.value()!="/"){if($.address.value().indexOf("comment")==-1){var nodeId=$.address.value();if(nodeId[0]=="/"){nodeId=nodeId.substring(2,nodeId.length);}
else{nodeId=nodeId.substring(1,nodeId.length);}
playVideo(Graph.Util.getNode(window.ht.graph,nodeId),false);ht.onClick(nodeId);}}
var node=Graph.Util.getClosestNodeToOrigin(window.ht.graph,"pos");var extra="&lt;p style=\"font-size: 80%;\"&gt;&lt;a href=\"http://vidiowiki.com/watch/"+node.id+"&gt;"+node.name+"&lt;/a&gt; on &lt;a href=\"http://vidiowiki.com\"&gt;Vidiowiki&lt;/a&gt;&lt;/p&gt;";var str=window.embedCode+extra;$("#embedCodeT").attr("innerHTML",str);}
playVideo=function(node,autoPlay){if(autoPlay){if((navigator.userAgent.match(/iPhone/i))||(navigator.userAgent.match(/iPod/i))||(navigator.userAgent.match(/iPad/i))){location.href="/media/video/"+node.id+".mp4";}
else{window.player.setClip("/media/video/"+node.id+".flv");window.player.play();}}else{recreatePlayer(node.id);}
scroll(0,0);$('#playVideo1').css('display','none');$('#playVideo2').css('display','none');$("#videoTitle").html(node.name);$.get("/manage/supporting_materials_for_video/"+node.id,function(data){if(data=="none"){$("#supportingMaterialsInline").html("There aren't any yet.");$("#blankGif").attr("height","12");}else{$("#supportingMaterialsInline").html(data);var h=($("#supportingMaterialsInline").children().length*24);$("#blankGif").attr("height",h);}});var extra="&lt;p style=\"font-size: 80%;\"&gt;&lt;a href=\"http://vidiowiki.com/watch/"+node.id+"&gt;"+node.name+"&lt;/a&gt; on &lt;a href=\"http://vidiowiki.com\"&gt;Vidiowiki&lt;/a&gt;&lt;/p&gt;";var str=window.embedCode.replace(window.embedCodeCentralUid,node.id)+extra;$("#embedCodeT").attr("innerHTML",str);}
playSelectedVideo=function(){var node=Graph.Util.getClosestNodeToOrigin(window.ht.graph,"pos");playVideo(node,true);}
recreatePlayer=function(videoUid){window.player=$f("player",{src:"/resources/flowplayer/flowplayer.commercial-3.1.1.swf",wmode:"opaque"},{key:"$25eea04ec9ff0a8dd2e",clip:{url:"/media/video/"+videoUid+".flv",autoPlay:false,autoBuffering:true,scaling:"scale"},logo:{url:"/resources/images/vw_drops50.png",top:5,right:5,opacity:0.7,displayTime:0,fadeSpeed:5000,fullscreenOnly:false},plugins:{controls:{all:false,play:true,scrubber:true,time:true,mute:true,volume:true,fullscreen:true,bufferColor:'#333333',progressColor:'#5DA8DC',buttonColor:'#5DA8DC',buttonOverColor:'#7DC8FC',tooltipColor:'#cc0000',height:30,autoHide:'never',width:'98%',bottom:0,left:'50%',borderRadius:15}}});window.embedCode=$f().embed().getEmbedCode();window.embedCodeCentralUid=videoUid+"";}
$(document).ready(function(){var opts={api:true,effect:"default",speed:1,finish:{top:10,left:"center"},expose:{color:"#6f6f6f",loadSpeed:1,closeSpeed:"fast"},close:".closeOverlay"};var elts=$("a[rel]");window.overlayApis={};elts.each(function(i,elt){var api_id=elt.rel;var api=$("a[rel|="+elt.rel+"]").overlay(opts);window.overlayApis[api_id]=api;});window.api1=$("#playRecordedVideoOverlay").overlay({api:true,effect:"default",speed:1,finish:{top:10,left:"center"},expose:{color:"#6f6f6f",loadSpeed:1,closeSpeed:"fast"},close:".closeOverlay",onLoad:function(){$("#playRecordedVideoOverlayDiv1").show();$("#playRecordedVideoOverlayDiv2").hide();$("#playRecordedVideoOverlayDiv3").hide();$("#newVideoSpinner").hide();$("#newVideoPublishControls").show();$("#id_simple_q").focus();$("#recorderContainer").hide();$("#recorderContainerPlaceholder").show();setTimeout(function(){$("#oneMomentSpinner").hide();window.player.load();},3000);},onClose:function(){$f(0).unload();$("#recorderContainerPlaceholder").hide();$("#recorderContainer").show();}});$("#publishButton1").click(showDetailsLayer);$("#publishButton2").click(showLinkToNewVideo);$("#publishButton3").click(simplePublish);$("button[rel]").overlay({expose:'#6f6f6f',finish:{top:10,left:"center"},close:".closeOverlay",onLoad:function(){$("#feedbackText").focus();},onClose:resetFeedbackDialog});$("#submitFeedback").click(submitFeedback);if($("#connectVideoLink").length!=0){$("#connectVideoLink").overlay({effect:"default",speed:1,expose:{color:'#6f6f6f',loadSpeed:1,closeSpeed:"fast"},finish:{top:5,left:"center"},close:".closeOverlay",onLoad:function(){$("#connectVideoQuery").focus();},onClose:resetConnectDialog});}else{}
if(!location.href.toLowerCase().match(/feature/)){$("ul.tabs").tabs("div.panes > div");$("#wizardPrev").attr("disabled","true");$("#wizardNext").attr("disabled","true");$("#wizardNext").click(function(){if($("#connectVidTwo").css("display")=="none"){$("#searchResults>li>input").each(function(i){if($(this).attr("checked")==true){$.vwConnectTarget=$(this).attr("class");}});$("#connectVidOne").hide();$("#connectVidTwo").show();$("#wizardNext").attr("value","Connect");$("#wizardPrev").attr("disabled","");$("#connectVidKeywords").focus();}
else{if($.trim($("#connectVidKeywords").val())!=""){$("#connectVidTwo").hide();$("#connectVidThree").show();$("#wizardPrev").hide();$("#wizardNext").hide();data={v1:$("#currentVideo").val(),v2:$.vwConnectTarget,kws:$("#connectVidKeywords").val()},$.post("/video/connect_videos",data);$.getJSON("/video/connections/"+$("#currentVideo").val(),function(json_data,status){window.ht.loadJSON(json_data);window.ht.refresh();});}
else{alert("Please enter keywords.");}}});$("#wizardPrev").click(function(){$("#connectVidOne").show();$("#connectVidTwo").hide();$("#wizardPrev").attr("disabled","true");$("#wizardNext").attr("value","Next");$("#connectVideoQuery").focus();});$("#submitSearch").click(doSearch);}
if(location.href.toLowerCase().match(/feature/)){loadMindmapWithJson();}
$("ul.dropdown li").hover(function(){$(this).addClass("hover");$('> .dir',this).addClass("open");$('ul:first',this).css('visibility','visible');},function(){$(this).removeClass("hover");$('.open',this).removeClass("open");$('ul:first',this).css('visibility','hidden');});});(function(a){a.address=(function(){var c=function(i){a(this).trigger(a.extend(a.Event(i),(function(){var ah={value:this.value(),path:this.path(),pathNames:this.pathNames(),parameterNames:this.parameterNames(),parameters:{},queryString:this.queryString()};for(var ag=0,p=ah.parameterNames.length;ag<p;ag++){ah.parameters[ah.parameterNames[ag]]=this.parameter(ah.parameterNames[ag])}return ah}).call(this)))};var V=function(){c.call(a.address,"init")};var o=function(){c.call(a.address,"change")};var P=function(){var i=U.href.indexOf("#");return i!=-1?ae(q(U.href.substr(i+1))):""};var h=function(){try{return top.document!=undefined?top:window}catch(i){return window}};var F=function(p,i){if(C.strict){p=i?(p.substr(0,1)!="/"?"/"+p:p):(p==""?"/":p)}return p};var r=function(i,p){return(j&&U.protocol=="file:")?(p?Q.replace(/\?/,"%3F"):Q.replace(/%253F/,"?")):i};var af=function(ai){for(var ag=0,p=ai.childNodes.length,ah;ag<p;ag++){if(ai.childNodes[ag].src){l=String(ai.childNodes[ag].src)}if(ah=af(ai.childNodes[ag])){return ah}}};var X=function(){if(!t){var p=P();var i=!(Q==p);if(u&&s<523){if(E!=Y.length){E=Y.length;if(typeof z[E-1]!=G){Q=z[E-1]}T(false)}}else{if(j&&s<7&&i){U.reload()}else{if(i){Q=p;T(false)}}}}};var T=function(i){o();if(i){c.call(a.address,"internalChange")}else{c.call(a.address,"externalChange")}n(w,10)};var w=function(){var p=(U.pathname+(/\/$/.test(U.pathname)?"":"/")+D.value()).replace(/\/\//,"/").replace(/^\/$/,"");var i=window[C.tracker];if(typeof i==g){i(p)}else{if(typeof pageTracker!=G&&typeof pageTracker._trackPageview==g){pageTracker._trackPageview(p)}else{if(typeof urchinTracker==g){urchinTracker(p)}}}};var e=function(){var i=f.contentWindow.document;i.open();i.write("<html><head><title>"+ac.title+"</title><script>var "+x+' = "'+P()+'";<\/script></head></html>');i.close()};var N=function(){if(!S){S=B;if(j&&s<8){var i=ac.getElementsByTagName("frameset")[0];f=ac.createElement((i?"":"i")+"frame");if(i){i.insertAdjacentElement("beforeEnd",f);i[i.cols?"cols":"rows"]+=",0";f.src="javascript:false";f.noResize=true;f.frameBorder=f.frameSpacing=0}else{f.src="javascript:false";f.style.display="none";ac.body.insertAdjacentElement("afterBegin",f)}n(function(){a(f).bind("load",function(){var p=f.contentWindow;var ag=p.location.href;Q=(typeof p[x]!=G?p[x]:"");if(Q!=P()){T(false);U.hash=r(Q,B)}});if(typeof f.contentWindow[x]==G){e()}},50)}else{if(u){if(s<418){a(ac.body).append('<form id="'+x+'" style="position:absolute;top:-9999px;" method="get"></form>');J=ac.getElementById(x)}if(typeof U[x]==G){U[x]={}}if(typeof U[x][U.pathname]!=G){z=U[x][U.pathname].split(",")}}}n(function(){V();T(false)},1);if(j&&s>=8){ac.body.onhashchange=X}else{v(X,50)}a("a[rel*=address:]").address()}};var D={baseURL:function(){var i=U.href;if(i.indexOf("#")!=-1){i=i.substr(0,i.indexOf("#"))}if(i.substr(i.length-1)=="/"){i=i.substr(0,i.length-1)}return i},strict:function(){return C.strict},history:function(){return C.history},tracker:function(){return C.tracker},title:function(){return ac.title},value:function(){if(!ab){return null}return q(F(r(Q,Z),Z))},path:function(){var i=this.value();return(i.indexOf("?")!=-1)?i.split("?")[0]:i},pathNames:function(){var p=this.path();var i=p.split("/");if(p.substr(0,1)=="/"||p.length==0){i.splice(0,1)}if(p.substr(p.length-1,1)=="/"){i.splice(i.length-1,1)}return i},queryString:function(){var p=this.value();var i=p.indexOf("?");if(i!=-1&&i<p.length){return p.substr(i+1)}},parameter:function(am){var aj=this.value();var ag=aj.indexOf("?");if(ag!=-1){aj=aj.substr(ag+1);var al=aj.split("&");var ak,ah=al.length,ai=[];while(ah--){ak=al[ah].split("=");if(ak[0]==am){ai.push(ak[1])}}if(ai.length!=0){return ai.length!=1?ai:ai[0]}}},parameterNames:function(){var ah=this.value();var p=ah.indexOf("?");var ai=[];if(p!=-1){ah=ah.substr(p+1);if(ah!=""&&ah.indexOf("=")!=-1){var aj=ah.split("&");var ag=0;while(ag<aj.length){ai.push(aj[ag].split("=")[0]);ag++}}}return ai}};var H={strict:function(i){C.strict=i},history:function(i){C.history=i},tracker:function(i){C.tracker=i},title:function(i){i=q(i);n(function(){I=ac.title=i;if(K&&f&&f.contentWindow&&f.contentWindow.document){f.contentWindow.document.title=i;K=Z}if(!M&&aa){U.replace(U.href.indexOf("#")!=-1?U.href:U.href+"#")}M=Z},50)},value:function(ag){ag=ae(q(F(ag,B)));if(ag=="/"){ag=""}if(Q==ag){return}M=B;Q=ag;t=B;T(true);z[Y.length]=Q;if(u){if(C.history){U[x][U.pathname]=z.toString();E=Y.length+1;if(s<418){if(U.search==""){J.action="#"+Q;J.submit()}}else{if(s<523||Q==""){var i=ac.createEvent("MouseEvents");i.initEvent("click",B,B);var p=ac.createElement("a");p.href="#"+Q;p.dispatchEvent(i)}else{U.hash="#"+Q}}}else{U.replace("#"+Q)}}else{if(Q!=P()){if(C.history){U.hash="#"+r(Q,B)}else{U.replace("#"+Q)}}}if((j&&s<8)&&C.history){n(e,50)}if(u){n(function(){t=Z},1)}else{t=Z}}};var x="jQueryAddress",g="function",G="undefined",B=true,Z=false,A=a.browser,s=parseFloat(a.browser.version),aa=A.mozilla,j=A.msie,L=A.opera,u=A.safari,ab=Z,O=h(),ac=O.document,Y=O.history,U=O.location,v=setInterval,n=setTimeout,q=decodeURI,ae=encodeURI,ad=navigator.userAgent,f,J,l,I=ac.title,E=Y.length,t=Z,S=Z,M=B,K=B,z=[],y={},Q=P(),k={},C={history:B,strict:B};if(j){s=parseFloat(ad.substr(ad.indexOf("MSIE")+4));if(ac.documentMode&&ac.documentMode!=s){s=ac.documentMode!=8?7:8}}ab=(aa&&s>=1)||(j&&s>=6)||(L&&s>=9.5)||(u&&s>=312);if(ab){for(var W=1;W<E;W++){z.push("")}z.push(P());if(j&&U.hash!=P()){U.hash="#"+r(P(),B)}if(L){history.navigationMode="compatible"}af(document);var b=l.indexOf("?");if(l&&b>-1){var m,d=l.substr(b+1).split("&");for(var W=0,R;R=d[W];W++){m=R.split("=");if(/^(history|strict)$/.test(m[0])){C[m[0]]=(isNaN(m[1])?/^(true|yes)$/i.test(m[1]):(parseInt(m[1])!=0))}if(/^tracker$/.test(m[0])){C[m[0]]=m[1]}}}a(N)}else{if((!ab&&U.href.indexOf("#")!=-1)||(u&&s<418&&U.href.indexOf("#")!=-1&&U.search!="")){ac.open();ac.write('<html><head><meta http-equiv="refresh" content="0;url='+U.href.substr(0,U.href.indexOf("#"))+'" /></head></html>');ac.close()}else{w()}}a.each(("init,change,internalChange,externalChange").split(","),function(ag,p){k[p]=function(ah,i){a(a.address).bind(p,i||ah,i&&ah);return this}});a.each(("strict,history,tracker,title,value").split(","),function(ag,p){k[p]=function(i){if(typeof i!="undefined"){if(ab){H[p](i)}return a.address}else{return D[p]()}}});a.each(("baseURL,path,pathNames,queryString,parameter,parameterNames").split(","),function(ag,p){k[p]=function(i){return D[p](i)}});return k})();a.fn.address=function(b){a(this).click(function(){var c=b?b.call(this):/address:/.test(a(this).attr("rel"))?a(this).attr("rel").split("address:")[1].split(" ")[0]:a(this).attr("href").replace(/^#/,"");a.address.value(c);return false})}}(jQuery));eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(6($){$.2O.2P=6(7,2f){4 2g={1R:m,1o:"2Q 2H 31",2i:"1Y 2X 2Y",D:{},2h:"1Y 2G 2I 2J 35",Z:"1a",N:"1a",1y:"1a",2B:"q",15:m,2E:"",1e:m,1V:1,1C:2V,2t:G,2d:m,1I:m,20:G,R:6(){},1B:6(1q){},2w:6(1q){},1P:6(1q){1q.36()},1M:m,18:6(h){K h},2z:6(7){K 7},2u:6(7){},2m:6(){}};4 3=$.2q(2g,2f);4 14="26";4 12=0;5(2b 7=="h"){14="h";4 2C=7}s{4 2F=7;O(k 1E 7)5(7.1F(k))12++}5((14=="26"&&12>0)||14=="h"){K d.2W(6(x){5(!3.1R){x=x+""+29.2U(29.2Z()*30);4 1U="c-l-"+x}s{x=3.1R;4 1U=x}3.R.v(d);4 l=$(d);l.1X("34","33").F("c-l").1X("L",1U).b(3.1o);4 C=m;l.25(\'<1g A="c-1W" L="c-1W-\'+x+\'"></1g>\').25(\'<f A="c-1O" L="c-1O-\'+x+\'"></f>\');4 n=$("#c-1W-"+x);4 J=$("#c-1O-"+x);4 j=$(\'<1Z A="c-22" L="c-22-\'+x+\'"></1Z>\').E();4 I=$(\'<1g A="c-2L"></1g>\');4 p=$(\'<l 2S="2M" A="c-2c" 1z="2N\'+x+\'" L="c-2c-\'+x+\'" />\');4 u="";5(2b 3.D=="h"){4 1f=3.D.1t(",");O(4 i=0;i<1f.o;i++){4 1L={};1L[3.N]=1f[i];5(1f[i]!=""){17(1L,"27"+i)}}u=3.D}s{u="";4 1d=0;O(k 1E 3.D)5(3.D.1F(k))1d++;5(1d>0){O(4 i=0;i<1d;i++){4 16=3.D[i][3.N];5(16==37){16=""}u=u+16+",";5(16!=""){17(3.D[i],"27"+i)}}}}5(u!=""){l.b("");4 2e=u.3o(u.o-1);5(2e!=","){u=u+","}p.b(","+u);$("f.c-Q-z",n).F("1i").B("M")}l.28(p);n.1b(6(){C=G;l.1p()}).1v(6(){C=m}).28(j);4 P=3t;4 t="";4 3u=0;4 19=m;l.1p(6(){5($(d).b()==3.1o&&p.b()==""){$(d).b("")}s 5(C){$("f.c-Q-z",n).B("1i");5($(d).b()!=""){I.2k("2l",n.2x());j.1H()}}C=G;K G}).1i(6(){5($(d).b()==""&&p.b()==""&&u==""){$(d).b(3.1o)}s 5(C){$("f.c-Q-z",n).F("1i").B("M");j.E()}}).3m(6(e){1k=e.2a;3d=m;3e(e.2a){T 38:e.1m();1A("3n");V;T 3b:e.1m();1A("1T");V;T 8:5(l.b()==""){4 S=p.b().1t(",");S=S[S.o-2];n.2y().39(J.t()).B("M");5(J.t().3a("M")){p.b(p.b().1c(","+S+",",","));3.1P.v(d,J.t())}s{3.1B.v(d,J.t());J.t().F("M")}}5(l.b().o==1){j.E();t=""}5($(":2D",j).o>0){5(P){21(P)}P=23(6(){1D()},3.1C)}V;T 9:T 3f:19=G;4 U=l.b().1c(/(,)/g,"");5(U!=""&&p.b().1x(","+U+",")<0&&U.o>=3.1V){e.1m();4 1n={};1n[3.Z]=U;1n[3.N]=U;4 W=$("f",n).o;17(1n,"3l"+(W+1));l.b("")}T 13:19=m;4 r=$("f.r:24",j);5(r.o>0){r.1b();j.E()}5(3.2d||r.o>0){e.1m()}V;3k:5(3.20){5(3.1I&&$("f.c-Q-z",n).o>=3.1I){I.10(\'<f A="c-2j">\'+3.2h+\'</f>\');j.1H()}s{5(P){21(P)}P=23(6(){1D()},3.1C)}}V}});6 1D(){5(1k==3h||(1k>8&&1k<32)){K j.E()}4 h=l.b().1c(/[\\\\]+|[\\/]+/g,"");5(h==t)K;t=h;5(h.o>=3.1V){n.F("1N");5(14=="h"){4 1j="";5(3.15){1j="&1j="+2A(3.15)}5(3.18){h=3.18.v(d,h)}$.3i(2C+"?"+3.2B+"="+2A(h)+1j+3.2E,6(7){12=0;4 1l=3.2z.v(d,7);O(k 1E 1l)5(1l.1F(k))12++;1J(1l,h)})}s{5(3.18){h=3.18.v(d,h)}1J(2F,h)}}s{n.B("1N");j.E()}}4 1S=0;6 1J(7,Y){5(!3.1e){Y=Y.2o()}4 1r=0;j.10(I.10("")).E();O(4 i=0;i<12;i++){4 w=i;1S++;4 1w=m;5(3.1y=="1a"){4 H=7[w].1a}s{4 H="";4 1u=3.1y.1t(",");O(4 y=0;y<1u.o;y++){4 1z=$.3c(1u[y]);H=H+7[w][1z]+" "}}5(H){5(!3.1e){H=H.2o()}5(H.1x(Y)!=-1&&p.b().1x(","+7[w][3.N]+",")==-1){1w=G}}5(1w){4 11=$(\'<f A="c-2p-z" L="c-2p-z-\'+w+\'"></f>\').1b(6(){4 1h=$(d).7("7");4 1G=1h.w;5($("#c-Q-"+1G,n).o<=0&&!19){4 7=1h.2s;l.b("").1p();t="";17(7,1G);3.2u.v(d,1h);j.E()}19=m}).1v(6(){C=m}).3r(6(){$("f",I).B("r");$(d).F("r")}).7("7",{2s:7[w],w:1S});4 X=$.2q({},7[w]);5(!3.1e){4 1Q=2r 2n("(?![^&;]+;)(?!<[^<>]*)("+Y+")(?![^<>]*>)(?![^&;]+;)","3w")}s{4 1Q=2r 2n("(?![^&;]+;)(?!<[^<>]*)("+Y+")(?![^<>]*>)(?![^&;]+;)","g")}5(3.2t){X[3.Z]=X[3.Z].1c(1Q,"<2v>$1</2v>")}5(!3.1M){11=11.10(X[3.Z])}s{11=3.1M.v(d,X,11)}I.2K(11);2R X;1r++;5(3.15&&3.15==1r){V}}}n.B("1N");5(1r<=0){I.10(\'<f A="c-2j">\'+3.2i+\'</f>\')}I.2k("2l",n.2x());j.1H();3.2m.v(d)}6 17(7,w){p.b(p.b()+7[3.N]+",");4 z=$(\'<f A="c-Q-z" L="c-Q-\'+w+\'"></f>\').1b(6(){3.1B.v(d,$(d));n.2y().B("M");$(d).F("M")}).1v(6(){C=m});4 1s=$(\'<a A="c-1s">&2T;</a>\').1b(6(){p.b(p.b().1c(","+7[3.N]+",",","));3.1P.v(d,z);C=G;l.1p();K m});J.3q(z.10(7[3.Z]).3v(1s));3.2w.v(d,J.t())}6 1A(1K){5($(":2D",j).o>0){4 W=$("f",j);5(1K=="1T"){4 R=W.3s(0)}s{4 R=W.3j(":S")}4 r=$("f.r:24",j);5(r.o>0){5(1K=="1T"){R=r.3p()}s{R=r.t()}}W.B("r");R.F("r")}}})}}})(3g);',62,219,'|||opts|var|if|function|data||||val|as|this||li||string||results_holder||input|false|selections_holder|length|values_input||active|else|prev|prefill_value|call|num|||item|class|removeClass|input_focus|preFill|hide|addClass|true|str|results_ul|org_li|return|id|selected|selectedValuesProp|for|timeout|selection|start|last|case|i_input|break|lis|this_data|query|selectedItemProp|html|formatted|d_count||d_type|retrieveLimit|new_v|add_selected_item|beforeRetrieve|tab_press|value|click|replace|prefill_count|matchCase|vals|ul|raw_data|blur|limit|lastKeyPressCode|new_data|preventDefault|n_data|startText|focus|elem|matchCount|close|split|names|mousedown|forward|search|searchObjProps|name|moveSelection|selectionClick|keyDelay|keyChange|in|hasOwnProperty|number|show|selectionLimit|processData|direction|v_data|formatList|loading|original|selectionRemoved|regx|asHtmlID|num_count|down|x_id|minChars|selections|attr|No|div|showResultList|clearTimeout|results|setTimeout|first|wrap|object|000|after|Math|keyCode|typeof|values|neverSubmit|lastChar|options|defaults|limitText|emptyText|message|css|width|resultsComplete|RegExp|toLowerCase|result|extend|new|attributes|resultsHighlight|resultClick|em|selectionAdded|outerWidth|children|retrieveComplete|encodeURIComponent|queryParam|req_string|visible|extraParams|org_data|More|Name|Selections|Are|append|list|hidden|as_values_|fn|autoSuggest|Enter|delete|type|times|floor|400|each|Results|Found|random|100|Here||off|autocomplete|Allowed|remove|undefined||not|hasClass|40|trim|first_focus|switch|188|jQuery|46|getJSON|filter|default|00|keydown|up|substring|next|before|mouseover|eq|null|totalSelections|prepend|gi'.split('|'),0,{}))
var VW={};VW.globals=function(){return{lastNodeClicked:"",currentVideo:"",ht:null}}();VW.defaultOverlaySettings={api:true,effect:"default",speed:1,finish:{top:10,left:"center"},expose:{color:"#6f6f6f",loadSpeed:1,closeSpeed:"fast"},close:".closeOverlay"};VW.overlayApis={};VW.setupOverlayApis=function(){$("a[rel]").each(function(i,elt){var apiId=elt.rel;var api=$("a[rel|="+elt.rel+"]").overlay(VW.defaultOverlaySettings);VW.overlayApis[apiId]=api;});}
VW.private={};VW.private.connectVideos={};VW.private.connectVideos.search=function(query,targetUlSelector){$.getJSON("/search/videos.json?q="+query,function(json,status){if(status=="success"){var ul=$(targetUlSelector);ul.empty();$.each(json,function(i,item){var id="r"+i;var img=$("<img />").attr("src",item.thumbnail).attr("width","40").attr("height","30");var radio=$("<input />").attr("type","radio").attr("name","vid").attr("id",id).attr("class",item.meta);var li=$("<li />");var label=$("<label />").attr("for",id);label.append(img);label.append("&nbsp;"+item.title+" &ndash; "+item.uploader);li.append(radio);li.append("&nbsp;");li.append(label);li.appendTo(ul);$("#r"+i).data("title",item.title);});$("#r0").attr("checked","true");}});};VW.features={};VW.features.togglePublic=function(featureUid){$("#toggleStatusContainer").hide();$("#toggleStatusSpinner").show();$.post("/feature/toggle_status/"+featureUid+"/",{"a":"b"},function(data,status){if(status=="success"){showMessageDrawer("Done.","info");if(data=="True"){$("#toggleStatusContainer").html('<img src="/resources/images/icons/user.png" height="16" width="16" alt="locked" title="locked" /> Your feature page is public. &rarr; <a href="#" id="flipPrivateStatus">make private</a>');}else{$("#toggleStatusContainer").html('<img src="/resources/images/private.png" height="16" width="16" alt="locked" title="locked" /> Your feature page is currently locked. &rarr; <a href="#" id="flipPrivateStatus">make public</a>');}}else{showMessageDrawer("Something went wrong. Please try again.","error");}
$("#toggleStatusContainer").show();$("#toggleStatusSpinner").hide();$("#flipPrivateStatus").click(function(){VW.features.togglePublic(featureUid);});});};VW.connectVideos=function(onFinish){$("ul.tabs").tabs("div.panes > div");VW.overlayApis["#connectVideoDialog"].bind("onLoad",function(){$("#connectVideoQuery").focus();});VW.overlayApis["#connectVideoDialog"].bind("onClose",function(){$("#connectVideoDialog_2").hide();$("#connectVideoDialog_1").show();$("#wizardPrev").attr("disabled","true");$("#wizardNext").attr("value","Next");$("#wizardPrev").show();$("#wizardNext").show();});wizPrev=$("#wizardPrev");wizNext=$("#wizardNext");wizPrev.attr("disabled","true");wizNext.attr("disabled","true");wizNext.click(function(){if($("#connectVideoDialog_2").css("display")=="none"){$("#searchResults>li>input").each(function(i){if($(this).attr("checked")==true){$.vwConnectTarget=$(this).attr("class");$.vwVideoTitle=$(this).data("title");}});$("#connectVideoDialog_1").hide();$("#connectVideoDialog_2").show();wizNext.attr("value","Connect");wizPrev.attr("disabled","");$("#connectVidKeywords").focus();}else{if($.trim($("#connectVidKeywords").val())!=""){$("#wizardPrev").hide();$("#wizardNext").hide();onFinish($.vwConnectTarget,$("#connectVidKeywords").val(),{"title":$.vwVideoTitle});VW.overlayApis["#connectVideoDialog"].close();}else{alert("Please enter keywords.");}}});wizPrev.click(function(){$("#connectVideoDialog_1").show();$("#connectVideoDialog_2").hide();wizPrev.attr("disabled","true");wizNext.attr("value","Next");$("#connectVideoQuery").focus();});$("#searchVideosForm").submit(function(evt){evt.preventDefault();VW.private.connectVideos.search($("#connectVideoQuery").val(),"#searchResults");$("#wizardNext").attr("disabled","");return false;});};VW.findVideo=function(onFinish){VW.overlayApis["#addVideoOverlay"].bind("onLoad",function(){$("#addVideoQuery").focus();});$("#addVideoButton").attr("disabled","true");$("#addVideo_searchForm").submit(function(evt){evt.preventDefault();VW.private.connectVideos.search($("#addVideoQuery").val(),"#addVideo_searchResults");$("#addVideoButton").attr("disabled","");return false;});$("#addVideoButton").click(function(){$("#addVideo_searchResults>li>input").each(function(i){if($(this).attr("checked")==true){var videoUid=$(this).attr("class");onFinish(videoUid);VW.overlayApis["#addVideoOverlay"].close();}});});}
VW.Util={}
VW.Util.generateUid=function(){var uid="";for(var i=0;i<32;i++){uid+=Math.floor(Math.random()*16).toString(16);}
return uid;}
$(document).ready(function(){VW.setupOverlayApis();});