
var GANALYTICSID='UA-11749597-5';
var a,Prototype={Version:"1.6.1",Browser:function(){var b=navigator.userAgent,c=Object.prototype.toString.call(window.opera)=="[object Opera]";return{IE:!!window.attachEvent&&!c,Opera:c,WebKit:b.indexOf("AppleWebKit/")>-1,Gecko:b.indexOf("Gecko")>-1&&b.indexOf("KHTML")===-1,MobileSafari:/Apple.*Mobile.*Safari/.test(b)}}(),BrowserFeatures:{XPath:!!document.evaluate,SelectorsAPI:!!document.querySelector,ElementExtensions:function(){var b=window.Element||window.HTMLElement;return!!(b&&b.prototype)}(),
SpecificElementExtensions:function(){if(typeof window.HTMLDivElement!=="undefined")return true;var b=document.createElement("div"),c=document.createElement("form"),e=false;if(b.__proto__&&b.__proto__!==c.__proto__)e=true;return e}()},ScriptFragment:"<script[^>]*>([\\S\\s]*?)<\/script>",JSONFilter:/^\/\*-secure-([\s\S]*)\*\/\s*$/,emptyFunction:function(){},K:function(b){return b}};if(Prototype.Browser.MobileSafari)Prototype.BrowserFeatures.SpecificElementExtensions=false;
var Abstract={},Try={these:function(){for(var b,c=0,e=arguments.length;c<e;c++){var f=arguments[c];try{b=f();break}catch(g){}}return b}},Class=function(){function b(){}function c(){function f(){this.initialize.apply(this,arguments)}var g=null,j=$A(arguments);if(Object.isFunction(j[0]))g=j.shift();Object.extend(f,Class.Methods);f.superclass=g;f.subclasses=[];if(g){b.prototype=g.prototype;f.prototype=new b;g.subclasses.push(f)}for(g=0;g<j.length;g++)f.addMethods(j[g]);if(!f.prototype.initialize)f.prototype.initialize=
Prototype.emptyFunction;return f.prototype.constructor=f}function e(f){var g=this.superclass&&this.superclass.prototype,j=Object.keys(f);if(!Object.keys({toString:true}).length){f.toString!=Object.prototype.toString&&j.push("toString");f.valueOf!=Object.prototype.valueOf&&j.push("valueOf")}for(var k=0,l=j.length;k<l;k++){var n=j[k],p=f[n];if(g&&Object.isFunction(p)&&p.argumentNames().first()=="$super"){var q=p;p=function(u){return function(){return g[u].apply(this,arguments)}}(n).wrap(q);p.valueOf=
q.valueOf.bind(q);p.toString=q.toString.bind(q)}this.prototype[n]=p}return this}return{create:c,Methods:{addMethods:e}}}();
(function(){function b(r,v){for(var E in v)r[E]=v[E];return r}function c(r){try{if(A(r))return"undefined";if(r===null)return"null";return r.inspect?r.inspect():String(r)}catch(v){if(v instanceof RangeError)return"...";throw v;}}function e(r){switch(typeof r){case "undefined":case "function":case "unknown":return;case "boolean":return r.toString()}if(r===null)return"null";if(r.toJSON)return r.toJSON();if(!n(r)){var v=[];for(var E in r){var I=e(r[E]);A(I)||v.push(E.toJSON()+": "+I)}return"{"+v.join(", ")+
"}"}}function f(r){return $H(r).toQueryString()}function g(r){return r&&r.toHTML?r.toHTML():String.interpret(r)}function j(r){var v=[];for(var E in r)v.push(E);return v}function k(r){var v=[];for(var E in r)v.push(r[E]);return v}function l(r){return b({},r)}function n(r){return!!(r&&r.nodeType==1)}function p(r){return M.call(r)=="[object Array]"}function q(r){return r instanceof Hash}function u(r){return typeof r==="function"}function x(r){return M.call(r)=="[object String]"}function H(r){return M.call(r)==
"[object Number]"}function A(r){return typeof r==="undefined"}var M=Object.prototype.toString;b(Object,{extend:b,inspect:c,toJSON:e,toQueryString:f,toHTML:g,keys:j,values:k,clone:l,isElement:n,isArray:p,isHash:q,isFunction:u,isString:x,isNumber:H,isUndefined:A})})();
Object.extend(Function.prototype,function(){function b(u,x){for(var H=u.length,A=x.length;A--;)u[H+A]=x[A];return u}function c(u,x){u=q.call(u,0);return b(u,x)}function e(){var u=this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1].replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g,"").replace(/\s+/g,"").split(",");return u.length==1&&!u[0]?[]:u}function f(u){if(arguments.length<2&&Object.isUndefined(arguments[0]))return this;var x=this,H=q.call(arguments,1);return function(){var A=c(H,arguments);
return x.apply(u,A)}}function g(u){var x=this,H=q.call(arguments,1);return function(A){A=b([A||window.event],H);return x.apply(u,A)}}function j(){if(!arguments.length)return this;var u=this,x=q.call(arguments,0);return function(){var H=c(x,arguments);return u.apply(this,H)}}function k(u){var x=this,H=q.call(arguments,1);u*=1E3;return window.setTimeout(function(){return x.apply(x,H)},u)}function l(){return this.delay.apply(this,b([0.01],arguments))}function n(u){var x=this;return function(){var H=
b([x.bind(this)],arguments);return u.apply(this,H)}}function p(){if(this._methodized)return this._methodized;var u=this;return this._methodized=function(){var x=b([this],arguments);return u.apply(null,x)}}var q=Array.prototype.slice;return{argumentNames:e,bind:f,bindAsEventListener:g,curry:j,delay:k,defer:l,wrap:n,methodize:p}}());
Date.prototype.toJSON=function(){return'"'+this.getUTCFullYear()+"-"+(this.getUTCMonth()+1).toPaddedString(2)+"-"+this.getUTCDate().toPaddedString(2)+"T"+this.getUTCHours().toPaddedString(2)+":"+this.getUTCMinutes().toPaddedString(2)+":"+this.getUTCSeconds().toPaddedString(2)+'Z"'};RegExp.prototype.match=RegExp.prototype.test;RegExp.escape=function(b){return String(b).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")};
var PeriodicalExecuter=Class.create({initialize:function(b,c){this.callback=b;this.frequency=c;this.currentlyExecuting=false;this.registerCallback()},registerCallback:function(){this.timer=setInterval(this.onTimerEvent.bind(this),this.frequency*1E3)},execute:function(){this.callback(this)},stop:function(){if(this.timer){clearInterval(this.timer);this.timer=null}},onTimerEvent:function(){if(!this.currentlyExecuting)try{this.currentlyExecuting=true;this.execute();this.currentlyExecuting=false}catch(b){this.currentlyExecuting=
false;throw b;}}});Object.extend(String,{interpret:function(b){return b==null?"":String(b)},specialChar:{"\u0008":"\\b","\t":"\\t","\n":"\\n","\u000c":"\\f","\r":"\\r","\\":"\\\\"}});
Object.extend(String.prototype,function(){function b(w){if(Object.isFunction(w))return w;var B=new Template(w);return function(F){return B.evaluate(F)}}function c(w,B){var F="",G=this,N;B=b(B);if(Object.isString(w))w=RegExp.escape(w);if(!(w.length||w.source)){B=B("");return B+G.split("").join(B)+B}for(;G.length>0;)if(N=G.match(w)){F+=G.slice(0,N.index);F+=String.interpret(B(N));G=G.slice(N.index+N[0].length)}else{F+=G;G=""}return F}function e(w,B,F){B=b(B);F=Object.isUndefined(F)?1:F;return this.gsub(w,
function(G){if(--F<0)return G[0];return B(G)})}function f(w,B){this.gsub(w,B);return String(this)}function g(w,B){w=w||30;B=Object.isUndefined(B)?"...":B;return this.length>w?this.slice(0,w-B.length)+B:String(this)}function j(){return this.replace(/^\s+/,"").replace(/\s+$/,"")}function k(){return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi,"")}function l(){return this.replace(new RegExp(Prototype.ScriptFragment,"img"),"")}function n(){var w=new RegExp(Prototype.ScriptFragment,"img"),
B=new RegExp(Prototype.ScriptFragment,"im");return(this.match(w)||[]).map(function(F){return(F.match(B)||["",""])[1]})}function p(){return this.extractScripts().map(function(w){return eval(w)})}function q(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function u(){return this.stripTags().replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&")}function x(w){var B=this.strip().match(/([^?#]*)(#.*)?$/);if(!B)return{};return B[1].split(w||"&").inject({},function(F,
G){if((G=G.split("="))[0]){var N=decodeURIComponent(G.shift());G=G.length>1?G.join("="):G[0];if(G!=undefined)G=decodeURIComponent(G);if(N in F){Object.isArray(F[N])||(F[N]=[F[N]]);F[N].push(G)}else F[N]=G}return F})}function H(){return this.split("")}function A(){return this.slice(0,this.length-1)+String.fromCharCode(this.charCodeAt(this.length-1)+1)}function M(w){return w<1?"":(new Array(w+1)).join(this)}function r(){var w=this.split("-"),B=w.length;if(B==1)return w[0];for(var F=this.charAt(0)==
"-"?w[0].charAt(0).toUpperCase()+w[0].substring(1):w[0],G=1;G<B;G++)F+=w[G].charAt(0).toUpperCase()+w[G].substring(1);return F}function v(){return this.charAt(0).toUpperCase()+this.substring(1).toLowerCase()}function E(){return this.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/-/g,"_").toLowerCase()}function I(){return this.replace(/_/g,"-")}function C(w){var B=this.replace(/[\x00-\x1f\\]/g,function(F){if(F in String.specialChar)return String.specialChar[F];
return"\\u00"+F.charCodeAt().toPaddedString(2,16)});if(w)return'"'+B.replace(/"/g,'\\"')+'"';return"'"+B.replace(/'/g,"\\'")+"'"}function y(){return this.inspect(true)}function t(w){return this.replace(w||Prototype.JSONFilter,"$1")}function m(){var w=this;if(w.blank())return false;w=this.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,"");return/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/.test(w)}function o(w){var B=this.unfilterJSON();try{if(!w||B.isJSON())return eval("("+B+")")}catch(F){}throw new SyntaxError("Badly formed JSON string: "+
this.inspect());}function s(w){return this.indexOf(w)>-1}function z(w){return this.indexOf(w)===0}function D(w){var B=this.length-w.length;return B>=0&&this.lastIndexOf(w)===B}function J(){return this==""}function K(){return/^\s*$/.test(this)}function L(w,B){return(new Template(this,B)).evaluate(w)}return{gsub:c,sub:e,scan:f,truncate:g,strip:String.prototype.trim?String.prototype.trim:j,stripTags:k,stripScripts:l,extractScripts:n,evalScripts:p,escapeHTML:q,unescapeHTML:u,toQueryParams:x,parseQuery:x,
toArray:H,succ:A,times:M,camelize:r,capitalize:v,underscore:E,dasherize:I,inspect:C,toJSON:y,unfilterJSON:t,isJSON:m,evalJSON:o,include:s,startsWith:z,endsWith:D,empty:J,blank:K,interpolate:L}}());
var Template=Class.create({initialize:function(b,c){this.template=b.toString();this.pattern=c||Template.Pattern},evaluate:function(b){if(b&&Object.isFunction(b.toTemplateReplacements))b=b.toTemplateReplacements();return this.template.gsub(this.pattern,function(c){if(b==null)return c[1]+"";var e=c[1]||"";if(e=="\\")return c[2];var f=b,g=c[3],j=/^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;c=j.exec(g);if(c==null)return e;for(;c!=null;){var k=c[1].startsWith("[")?c[2].replace(/\\\\]/g,"]"):c[1];f=f[k];if(null==
f||""==c[3])break;g=g.substring("["==c[3]?c[1].length:c[0].length);c=j.exec(g)}return e+String.interpret(f)})}});Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;
var $break={},Enumerable=function(){function b(t,m){var o=0;try{this._each(function(z){t.call(m,z,o++)})}catch(s){if(s!=$break)throw s;}return this}function c(t,m,o){var s=-t,z=[],D=this.toArray();if(t<1)return D;for(;(s+=t)<D.length;)z.push(D.slice(s,s+t));return z.collect(m,o)}function e(t,m){t=t||Prototype.K;var o=true;this.each(function(s,z){o=o&&!!t.call(m,s,z);if(!o)throw $break;});return o}function f(t,m){t=t||Prototype.K;var o=false;this.each(function(s,z){if(o=!!t.call(m,s,z))throw $break;
});return o}function g(t,m){t=t||Prototype.K;var o=[];this.each(function(s,z){o.push(t.call(m,s,z))});return o}function j(t,m){var o;this.each(function(s,z){if(t.call(m,s,z)){o=s;throw $break;}});return o}function k(t,m){var o=[];this.each(function(s,z){t.call(m,s,z)&&o.push(s)});return o}function l(t,m,o){m=m||Prototype.K;var s=[];if(Object.isString(t))t=new RegExp(RegExp.escape(t));this.each(function(z,D){t.match(z)&&s.push(m.call(o,z,D))});return s}function n(t){if(Object.isFunction(this.indexOf))if(this.indexOf(t)!=
-1)return true;var m=false;this.each(function(o){if(o==t){m=true;throw $break;}});return m}function p(t,m){m=Object.isUndefined(m)?null:m;return this.eachSlice(t,function(o){for(;o.length<t;)o.push(m);return o})}function q(t,m,o){this.each(function(s,z){t=m.call(o,t,s,z)});return t}function u(t){var m=$A(arguments).slice(1);return this.map(function(o){return o[t].apply(o,m)})}function x(t,m){t=t||Prototype.K;var o;this.each(function(s,z){s=t.call(m,s,z);if(o==null||s>=o)o=s});return o}function H(t,
m){t=t||Prototype.K;var o;this.each(function(s,z){s=t.call(m,s,z);if(o==null||s<o)o=s});return o}function A(t,m){t=t||Prototype.K;var o=[],s=[];this.each(function(z,D){(t.call(m,z,D)?o:s).push(z)});return[o,s]}function M(t){var m=[];this.each(function(o){m.push(o[t])});return m}function r(t,m){var o=[];this.each(function(s,z){t.call(m,s,z)||o.push(s)});return o}function v(t,m){return this.map(function(o,s){return{value:o,criteria:t.call(m,o,s)}}).sort(function(o,s){o=o.criteria;s=s.criteria;return o<
s?-1:o>s?1:0}).pluck("value")}function E(){return this.map()}function I(){var t=Prototype.K,m=$A(arguments);if(Object.isFunction(m.last()))t=m.pop();var o=[this].concat(m).map($A);return this.map(function(s,z){return t(o.pluck(z))})}function C(){return this.toArray().length}function y(){return"#<Enumerable:"+this.toArray().inspect()+">"}return{each:b,eachSlice:c,all:e,every:e,any:f,some:f,collect:g,map:g,detect:j,findAll:k,select:k,filter:k,grep:l,include:n,member:n,inGroupsOf:p,inject:q,invoke:u,
max:x,min:H,partition:A,pluck:M,reject:r,sortBy:v,toArray:E,entries:E,zip:I,size:C,inspect:y,find:j}}();function $A(b){if(!b)return[];if("toArray"in Object(b))return b.toArray();for(var c=b.length||0,e=new Array(c);c--;)e[c]=b[c];return e}function $w(b){if(!Object.isString(b))return[];return(b=b.strip())?b.split(/\s+/):[]}Array.from=$A;
(function(){function b(C){for(var y=0,t=this.length;y<t;y++)C(this[y])}function c(){this.length=0;return this}function e(){return this[0]}function f(){return this[this.length-1]}function g(){return this.select(function(C){return C!=null})}function j(){return this.inject([],function(C,y){if(Object.isArray(y))return C.concat(y.flatten());C.push(y);return C})}function k(){var C=E.call(arguments,0);return this.select(function(y){return!C.include(y)})}function l(C){return(C!==false?this:this.toArray())._reverse()}
function n(C){return this.inject([],function(y,t,m){if(0==m||(C?y.last()!=t:!y.include(t)))y.push(t);return y})}function p(C){return this.uniq().findAll(function(y){return C.detect(function(t){return y===t})})}function q(){return E.call(this,0)}function u(){return this.length}function x(){return"["+this.map(Object.inspect).join(", ")+"]"}function H(){var C=[];this.each(function(y){y=Object.toJSON(y);Object.isUndefined(y)||C.push(y)});return"["+C.join(", ")+"]"}function A(C,y){y||(y=0);var t=this.length;
if(y<0)y=t+y;for(;y<t;y++)if(this[y]===C)return y;return-1}function M(C,y){y=isNaN(y)?this.length:(y<0?this.length+y:y)+1;C=this.slice(0,y).reverse().indexOf(C);return C<0?C:y-C-1}function r(){for(var C=E.call(this,0),y,t=0,m=arguments.length;t<m;t++){y=arguments[t];if(Object.isArray(y)&&!("callee"in y))for(var o=0,s=y.length;o<s;o++)C.push(y[o]);else C.push(y)}return C}var v=Array.prototype,E=v.slice,I=v.forEach;I||(I=b);Object.extend(v,Enumerable);if(!v._reverse)v._reverse=v.reverse;Object.extend(v,
{_each:I,clear:c,first:e,last:f,compact:g,flatten:j,without:k,reverse:l,uniq:n,intersect:p,clone:q,toArray:q,size:u,inspect:x,toJSON:H});if(function(){return[].concat(arguments)[0][0]!==1}(1,2))v.concat=r;if(!v.indexOf)v.indexOf=A;if(!v.lastIndexOf)v.lastIndexOf=M})();function $H(b){return new Hash(b)}
var Hash=Class.create(Enumerable,function(){function b(r){this._object=Object.isHash(r)?r.toObject():Object.clone(r)}function c(r){for(var v in this._object){var E=this._object[v],I=[v,E];I.key=v;I.value=E;r(I)}}function e(r,v){return this._object[r]=v}function f(r){if(this._object[r]!==Object.prototype[r])return this._object[r]}function g(r){var v=this._object[r];delete this._object[r];return v}function j(){return Object.clone(this._object)}function k(){return this.pluck("key")}function l(){return this.pluck("value")}
function n(r){var v=this.detect(function(E){return E.value===r});return v&&v.key}function p(r){return this.clone().update(r)}function q(r){return(new Hash(r)).inject(this,function(v,E){v.set(E.key,E.value);return v})}function u(r,v){if(Object.isUndefined(v))return r;return r+"="+encodeURIComponent(String.interpret(v))}function x(){return this.inject([],function(r,v){var E=encodeURIComponent(v.key);if((v=v.value)&&typeof v=="object"){if(Object.isArray(v))return r.concat(v.map(u.curry(E)))}else r.push(u(E,
v));return r}).join("&")}function H(){return"#<Hash:{"+this.map(function(r){return r.map(Object.inspect).join(": ")}).join(", ")+"}>"}function A(){return Object.toJSON(this.toObject())}function M(){return new Hash(this)}return{initialize:b,_each:c,set:e,get:f,unset:g,toObject:j,toTemplateReplacements:j,keys:k,values:l,index:n,merge:p,update:q,toQueryString:x,inspect:H,toJSON:A,clone:M}}());Hash.from=$H;
Object.extend(Number.prototype,function(){function b(){return this.toPaddedString(2,16)}function c(){return this+1}function e(p,q){$R(0,this,true).each(p,q);return this}function f(p,q){q=this.toString(q||10);return"0".times(p-q.length)+q}function g(){return isFinite(this)?this.toString():"null"}function j(){return Math.abs(this)}function k(){return Math.round(this)}function l(){return Math.ceil(this)}function n(){return Math.floor(this)}return{toColorPart:b,succ:c,times:e,toPaddedString:f,toJSON:g,
abs:j,round:k,ceil:l,floor:n}}());function $R(b,c,e){return new ObjectRange(b,c,e)}
var ObjectRange=Class.create(Enumerable,function(){function b(f,g,j){this.start=f;this.end=g;this.exclusive=j}function c(f){for(var g=this.start;this.include(g);){f(g);g=g.succ()}}function e(f){if(f<this.start)return false;if(this.exclusive)return f<this.end;return f<=this.end}return{initialize:b,_each:c,include:e}}()),Ajax={getTransport:function(){return Try.these(function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")})||
false},activeRequestCount:0};Ajax.Responders={responders:[],_each:function(b){this.responders._each(b)},register:function(b){this.include(b)||this.responders.push(b)},unregister:function(b){this.responders=this.responders.without(b)},dispatch:function(b,c,e,f){this.each(function(g){if(Object.isFunction(g[b]))try{g[b].apply(g,[c,e,f])}catch(j){}})}};Object.extend(Ajax.Responders,Enumerable);Ajax.Responders.register({onCreate:function(){Ajax.activeRequestCount++},onComplete:function(){Ajax.activeRequestCount--}});
Ajax.Base=Class.create({initialize:function(b){this.options={method:"post",asynchronous:true,contentType:"application/x-www-form-urlencoded",encoding:"UTF-8",parameters:"",evalJSON:true,evalJS:true};Object.extend(this.options,b||{});this.options.method=this.options.method.toLowerCase();if(Object.isString(this.options.parameters))this.options.parameters=this.options.parameters.toQueryParams();else if(Object.isHash(this.options.parameters))this.options.parameters=this.options.parameters.toObject()}});
Ajax.Request=Class.create(Ajax.Base,{_complete:false,initialize:function($super,c,e){$super(e);this.transport=Ajax.getTransport();this.request(c)},request:function(b){this.url=b;this.method=this.options.method;b=Object.clone(this.options.parameters);if(!["get","post"].include(this.method)){b._method=this.method;this.method="post"}this.parameters=b;if(b=Object.toQueryString(b))if(this.method=="get")this.url+=(this.url.include("?")?"&":"?")+b;else if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))b+=
"&_=";try{var c=new Ajax.Response(this);this.options.onCreate&&this.options.onCreate(c);Ajax.Responders.dispatch("onCreate",this,c);this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);this.options.asynchronous&&this.respondToReadyState.bind(this).defer(1);this.transport.onreadystatechange=this.onStateChange.bind(this);this.setRequestHeaders();this.body=this.method=="post"?this.options.postBody||b:null;this.transport.send(this.body);!this.options.asynchronous&&this.transport.overrideMimeType&&
this.onStateChange()}catch(e){this.dispatchException(e)}},onStateChange:function(){var b=this.transport.readyState;b>1&&!(b==4&&this._complete)&&this.respondToReadyState(this.transport.readyState)},setRequestHeaders:function(){var b={"X-Requested-With":"XMLHttpRequest","X-Prototype-Version":Prototype.Version,Accept:"text/javascript, text/html, application/xml, text/xml, */*"};if(this.method=="post"){b["Content-type"]=this.options.contentType+(this.options.encoding?"; charset="+this.options.encoding:
"");if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005)b.Connection="close"}if(typeof this.options.requestHeaders=="object"){var c=this.options.requestHeaders;if(Object.isFunction(c.push))for(var e=0,f=c.length;e<f;e+=2)b[c[e]]=c[e+1];else $H(c).each(function(j){b[j.key]=j.value})}for(var g in b)this.transport.setRequestHeader(g,b[g])},success:function(){var b=this.getStatus();return!b||b>=200&&b<300},getStatus:function(){try{return this.transport.status||
0}catch(b){return 0}},respondToReadyState:function(b){b=Ajax.Request.Events[b];var c=new Ajax.Response(this);if(b=="Complete"){try{this._complete=true;(this.options["on"+c.status]||this.options["on"+(this.success()?"Success":"Failure")]||Prototype.emptyFunction)(c,c.headerJSON)}catch(e){this.dispatchException(e)}var f=c.getHeader("Content-type");if(this.options.evalJS=="force"||this.options.evalJS&&this.isSameOrigin()&&f&&f.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))this.evalResponse()}try{(this.options["on"+
b]||Prototype.emptyFunction)(c,c.headerJSON);Ajax.Responders.dispatch("on"+b,this,c,c.headerJSON)}catch(g){this.dispatchException(g)}if(b=="Complete")this.transport.onreadystatechange=Prototype.emptyFunction},isSameOrigin:function(){var b=this.url.match(/^\s*https?:\/\/[^\/]*/);return!b||b[0]=="#{protocol}//#{domain}#{port}".interpolate({protocol:location.protocol,domain:document.domain,port:location.port?":"+location.port:""})},getHeader:function(b){try{return this.transport.getResponseHeader(b)||
null}catch(c){return null}},evalResponse:function(){try{return eval((this.transport.responseText||"").unfilterJSON())}catch(b){this.dispatchException(b)}},dispatchException:function(b){(this.options.onException||Prototype.emptyFunction)(this,b);Ajax.Responders.dispatch("onException",this,b)}});Ajax.Request.Events=["Uninitialized","Loading","Loaded","Interactive","Complete"];
Ajax.Response=Class.create({initialize:function(b){this.request=b;b=this.transport=b.transport;var c=this.readyState=b.readyState;if(c>2&&!Prototype.Browser.IE||c==4){this.status=this.getStatus();this.statusText=this.getStatusText();this.responseText=String.interpret(b.responseText);this.headerJSON=this._getHeaderJSON()}if(c==4){b=b.responseXML;this.responseXML=Object.isUndefined(b)?null:b;this.responseJSON=this._getResponseJSON()}},status:0,statusText:"",getStatus:Ajax.Request.prototype.getStatus,
getStatusText:function(){try{return this.transport.statusText||""}catch(b){return""}},getHeader:Ajax.Request.prototype.getHeader,getAllHeaders:function(){try{return this.getAllResponseHeaders()}catch(b){return null}},getResponseHeader:function(b){return this.transport.getResponseHeader(b)},getAllResponseHeaders:function(){return this.transport.getAllResponseHeaders()},_getHeaderJSON:function(){var b=this.getHeader("X-JSON");if(!b)return null;b=decodeURIComponent(escape(b));try{return b.evalJSON(this.request.options.sanitizeJSON||
!this.request.isSameOrigin())}catch(c){this.request.dispatchException(c)}},_getResponseJSON:function(){var b=this.request.options;if(!b.evalJSON||b.evalJSON!="force"&&!(this.getHeader("Content-type")||"").include("application/json")||this.responseText.blank())return null;try{return this.responseText.evalJSON(b.sanitizeJSON||!this.request.isSameOrigin())}catch(c){this.request.dispatchException(c)}}});
Ajax.Updater=Class.create(Ajax.Request,{initialize:function($super,c,e,f){this.container={success:c.success||c,failure:c.failure||(c.success?null:c)};f=Object.clone(f);var g=f.onComplete;f.onComplete=function(j,k){this.updateContent(j.responseText);Object.isFunction(g)&&g(j,k)}.bind(this);$super(e,f)},updateContent:function(b){var c=this.container[this.success()?"success":"failure"],e=this.options;e.evalScripts||(b=b.stripScripts());if(c=$(c))if(e.insertion)if(Object.isString(e.insertion)){var f=
{};f[e.insertion]=b;c.insert(f)}else e.insertion(c,b);else c.update(b)}});
Ajax.PeriodicalUpdater=Class.create(Ajax.Base,{initialize:function($super,c,e,f){$super(f);this.onComplete=this.options.onComplete;this.frequency=this.options.frequency||2;this.decay=this.options.decay||1;this.updater={};this.container=c;this.url=e;this.start()},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent()},stop:function(){this.updater.options.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments)},
updateComplete:function(b){if(this.options.decay){this.decay=b.responseText==this.lastText?this.decay*this.options.decay:1;this.lastText=b.responseText}this.timer=this.onTimerEvent.bind(this).delay(this.decay*this.frequency)},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options)}});
function $(b){if(arguments.length>1){for(var c=0,e=[],f=arguments.length;c<f;c++)e.push($(arguments[c]));return e}if(Object.isString(b))b=document.getElementById(b);return Element.extend(b)}if(Prototype.BrowserFeatures.XPath)document._getElementsByXPath=function(b,c){var e=[];b=document.evaluate(b,$(c)||document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);c=0;for(var f=b.snapshotLength;c<f;c++)e.push(Element.extend(b.snapshotItem(c)));return e};if(!window.Node)var Node={};
Node.ELEMENT_NODE||Object.extend(Node,{ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12});
(function(b){var c=function(){var f=document.createElement("form"),g=document.createElement("input"),j=document.documentElement;g.setAttribute("name","test");f.appendChild(g);j.appendChild(f);g=f.elements?typeof f.elements.test=="undefined":null;j.removeChild(f);return g}(),e=b.Element;b.Element=function(f,g){g=g||{};f=f.toLowerCase();var j=Element.cache;if(c&&g.name){f="<"+f+' name="'+g.name+'">';delete g.name;return Element.writeAttribute(document.createElement(f),g)}j[f]||(j[f]=Element.extend(document.createElement(f)));
return Element.writeAttribute(j[f].cloneNode(false),g)};Object.extend(b.Element,e||{});if(e)b.Element.prototype=e.prototype})(this);Element.cache={};Element.idCounter=1;
Element.Methods={visible:function(b){return $(b).style.display!="none"},toggle:function(b){b=$(b);Element[Element.visible(b)?"hide":"show"](b);return b},hide:function(b){b=$(b);b.style.display="none";return b},show:function(b){b=$(b);b.style.display="";return b},remove:function(b){b=$(b);b.parentNode.removeChild(b);return b},update:function(){function b(g,j){g=$(g);if(j&&j.toElement)j=j.toElement();if(Object.isElement(j))return g.update().insert(j);j=Object.toHTML(j);var k=g.tagName.toUpperCase();
if(k==="SCRIPT"&&f){g.text=j;return g}if(c||e)if(k in Element._insertionTranslations.tags){for(;g.firstChild;)g.removeChild(g.firstChild);Element._getContentFromAnonymousElement(k,j.stripScripts()).each(function(l){g.appendChild(l)})}else g.innerHTML=j.stripScripts();else g.innerHTML=j.stripScripts();j.evalScripts.bind(j).defer();return g}var c=function(){var g=document.createElement("select"),j=true;g.innerHTML='<option value="test">test</option>';if(g.options&&g.options[0])j=g.options[0].nodeName.toUpperCase()!==
"OPTION";return j}(),e=function(){try{var g=document.createElement("table");if(g&&g.tBodies){g.innerHTML="<tbody><tr><td>test</td></tr></tbody>";return typeof g.tBodies[0]=="undefined"}}catch(j){return true}}(),f=function(){var g=document.createElement("script"),j=false;try{g.appendChild(document.createTextNode(""));j=!g.firstChild||g.firstChild&&g.firstChild.nodeType!==3}catch(k){j=true}return j}();return b}(),replace:function(b,c){b=$(b);if(c&&c.toElement)c=c.toElement();else if(!Object.isElement(c)){c=
Object.toHTML(c);var e=b.ownerDocument.createRange();e.selectNode(b);c.evalScripts.bind(c).defer();c=e.createContextualFragment(c.stripScripts())}b.parentNode.replaceChild(c,b);return b},insert:function(b,c){b=$(b);if(Object.isString(c)||Object.isNumber(c)||Object.isElement(c)||c&&(c.toElement||c.toHTML))c={bottom:c};var e,f,g;for(var j in c){e=c[j];j=j.toLowerCase();f=Element._insertionTranslations[j];if(e&&e.toElement)e=e.toElement();if(Object.isElement(e))f(b,e);else{e=Object.toHTML(e);g=(j=="before"||
j=="after"?b.parentNode:b).tagName.toUpperCase();g=Element._getContentFromAnonymousElement(g,e.stripScripts());if(j=="top"||j=="after")g.reverse();g.each(f.curry(b));e.evalScripts.bind(e).defer()}}return b},wrap:function(b,c,e){b=$(b);if(Object.isElement(c))$(c).writeAttribute(e||{});else c=Object.isString(c)?new Element(c,e):new Element("div",c);b.parentNode&&b.parentNode.replaceChild(c,b);c.appendChild(b);return c},inspect:function(b){b=$(b);var c="<"+b.tagName.toLowerCase();$H({id:"id",className:"class"}).each(function(e){var f=
e.first();e=e.last();if(f=(b[f]||"").toString())c+=" "+e+"="+f.inspect(true)});return c+">"},recursivelyCollect:function(b,c){b=$(b);for(var e=[];b=b[c];)b.nodeType==1&&e.push(Element.extend(b));return e},ancestors:function(b){return Element.recursivelyCollect(b,"parentNode")},descendants:function(b){return Element.select(b,"*")},firstDescendant:function(b){for(b=$(b).firstChild;b&&b.nodeType!=1;)b=b.nextSibling;return $(b)},immediateDescendants:function(b){if(!(b=$(b).firstChild))return[];for(;b&&
b.nodeType!=1;)b=b.nextSibling;if(b)return[b].concat($(b).nextSiblings());return[]},previousSiblings:function(b){return Element.recursivelyCollect(b,"previousSibling")},nextSiblings:function(b){return Element.recursivelyCollect(b,"nextSibling")},siblings:function(b){b=$(b);return Element.previousSiblings(b).reverse().concat(Element.nextSiblings(b))},match:function(b,c){if(Object.isString(c))c=new Selector(c);return c.match($(b))},up:function(b,c,e){b=$(b);if(arguments.length==1)return $(b.parentNode);
var f=Element.ancestors(b);return Object.isNumber(c)?f[c]:Selector.findElement(f,c,e)},down:function(b,c,e){b=$(b);if(arguments.length==1)return Element.firstDescendant(b);return Object.isNumber(c)?Element.descendants(b)[c]:Element.select(b,c)[e||0]},previous:function(b,c,e){b=$(b);if(arguments.length==1)return $(Selector.handlers.previousElementSibling(b));var f=Element.previousSiblings(b);return Object.isNumber(c)?f[c]:Selector.findElement(f,c,e)},next:function(b,c,e){b=$(b);if(arguments.length==
1)return $(Selector.handlers.nextElementSibling(b));var f=Element.nextSiblings(b);return Object.isNumber(c)?f[c]:Selector.findElement(f,c,e)},select:function(b){var c=Array.prototype.slice.call(arguments,1);return Selector.findChildElements(b,c)},adjacent:function(b){var c=Array.prototype.slice.call(arguments,1);return Selector.findChildElements(b.parentNode,c).without(b)},identify:function(b){b=$(b);var c=Element.readAttribute(b,"id");if(c)return c;do c="anonymous_element_"+Element.idCounter++;while($(c));
Element.writeAttribute(b,"id",c);return c},readAttribute:function(b,c){b=$(b);if(Prototype.Browser.IE){var e=Element._attributeTranslations.read;if(e.values[c])return e.values[c](b,c);if(e.names[c])c=e.names[c];if(c.include(":"))return!b.attributes||!b.attributes[c]?null:b.attributes[c].value}return b.getAttribute(c)},writeAttribute:function(b,c,e){b=$(b);var f={},g=Element._attributeTranslations.write;if(typeof c=="object")f=c;else f[c]=Object.isUndefined(e)?true:e;for(var j in f){c=g.names[j]||
j;e=f[j];if(g.values[j])c=g.values[j](b,e);if(e===false||e===null)b.removeAttribute(c);else e===true?b.setAttribute(c,c):b.setAttribute(c,e)}return b},getHeight:function(b){return Element.getDimensions(b).height},getWidth:function(b){return Element.getDimensions(b).width},classNames:function(b){return new Element.ClassNames(b)},hasClassName:function(b,c){if(b=$(b)){b=b.className;return b.length>0&&(b==c||(new RegExp("(^|\\s)"+c+"(\\s|$)")).test(b))}},addClassName:function(b,c){if(b=$(b)){Element.hasClassName(b,
c)||(b.className+=(b.className?" ":"")+c);return b}},removeClassName:function(b,c){if(b=$(b)){b.className=b.className.replace(new RegExp("(^|\\s+)"+c+"(\\s+|$)")," ").strip();return b}},toggleClassName:function(b,c){if(b=$(b))return Element[Element.hasClassName(b,c)?"removeClassName":"addClassName"](b,c)},cleanWhitespace:function(b){b=$(b);for(var c=b.firstChild;c;){var e=c.nextSibling;c.nodeType==3&&!/\S/.test(c.nodeValue)&&b.removeChild(c);c=e}return b},empty:function(b){return $(b).innerHTML.blank()},
descendantOf:function(b,c){b=$(b);c=$(c);if(b.compareDocumentPosition)return(b.compareDocumentPosition(c)&8)===8;if(c.contains)return c.contains(b)&&c!==b;for(;b=b.parentNode;)if(b==c)return true;return false},scrollTo:function(b){b=$(b);var c=Element.cumulativeOffset(b);window.scrollTo(c[0],c[1]);return b},getStyle:function(b,c){b=$(b);c=c=="float"?"cssFloat":c.camelize();var e=b.style[c];if(!e||e=="auto")e=(b=document.defaultView.getComputedStyle(b,null))?b[c]:null;if(c=="opacity")return e?parseFloat(e):
1;return e=="auto"?null:e},getOpacity:function(b){return $(b).getStyle("opacity")},setStyle:function(b,c){b=$(b);var e=b.style;if(Object.isString(c)){b.style.cssText+=";"+c;return c.include("opacity")?b.setOpacity(c.match(/opacity:\s*(\d?\.?\d*)/)[1]):b}for(var f in c)if(f=="opacity")b.setOpacity(c[f]);else e[f=="float"||f=="cssFloat"?Object.isUndefined(e.styleFloat)?"cssFloat":"styleFloat":f]=c[f];return b},setOpacity:function(b,c){b=$(b);b.style.opacity=c==1||c===""?"":c<1.0E-5?0:c;return b},getDimensions:function(b){b=
$(b);var c=Element.getStyle(b,"display");if(c!="none"&&c!=null)return{width:b.offsetWidth,height:b.offsetHeight};c=b.style;var e=c.visibility,f=c.position,g=c.display;c.visibility="hidden";if(f!="fixed")c.position="absolute";c.display="block";var j=b.clientWidth;b=b.clientHeight;c.display=g;c.position=f;c.visibility=e;return{width:j,height:b}},makePositioned:function(b){b=$(b);var c=Element.getStyle(b,"position");if(c=="static"||!c){b._madePositioned=true;b.style.position="relative";if(Prototype.Browser.Opera){b.style.top=
0;b.style.left=0}}return b},undoPositioned:function(b){b=$(b);if(b._madePositioned){b._madePositioned=undefined;b.style.position=b.style.top=b.style.left=b.style.bottom=b.style.right=""}return b},makeClipping:function(b){b=$(b);if(b._overflow)return b;b._overflow=Element.getStyle(b,"overflow")||"auto";if(b._overflow!=="hidden")b.style.overflow="hidden";return b},undoClipping:function(b){b=$(b);if(!b._overflow)return b;b.style.overflow=b._overflow=="auto"?"":b._overflow;b._overflow=null;return b},
cumulativeOffset:function(b){var c=0,e=0;do{c+=b.offsetTop||0;e+=b.offsetLeft||0;b=b.offsetParent}while(b);return Element._returnOffset(e,c)},positionedOffset:function(b){var c=0,e=0;do{c+=b.offsetTop||0;e+=b.offsetLeft||0;if(b=b.offsetParent){if(b.tagName.toUpperCase()=="BODY")break;if(Element.getStyle(b,"position")!=="static")break}}while(b);return Element._returnOffset(e,c)},absolutize:function(b){b=$(b);if(Element.getStyle(b,"position")=="absolute")return b;var c=Element.positionedOffset(b),e=
c[1];c=c[0];var f=b.clientWidth,g=b.clientHeight;b._originalLeft=c-parseFloat(b.style.left||0);b._originalTop=e-parseFloat(b.style.top||0);b._originalWidth=b.style.width;b._originalHeight=b.style.height;b.style.position="absolute";b.style.top=e+"px";b.style.left=c+"px";b.style.width=f+"px";b.style.height=g+"px";return b},relativize:function(b){b=$(b);if(Element.getStyle(b,"position")=="relative")return b;b.style.position="relative";var c=parseFloat(b.style.top||0)-(b._originalTop||0),e=parseFloat(b.style.left||
0)-(b._originalLeft||0);b.style.top=c+"px";b.style.left=e+"px";b.style.height=b._originalHeight;b.style.width=b._originalWidth;return b},cumulativeScrollOffset:function(b){var c=0,e=0;do{c+=b.scrollTop||0;e+=b.scrollLeft||0;b=b.parentNode}while(b);return Element._returnOffset(e,c)},getOffsetParent:function(b){if(b.offsetParent)return $(b.offsetParent);if(b==document.body)return $(b);for(;(b=b.parentNode)&&b!=document.body;)if(Element.getStyle(b,"position")!="static")return $(b);return $(document.body)},
viewportOffset:function(b){var c=0,e=0,f=b;do{c+=f.offsetTop||0;e+=f.offsetLeft||0;if(f.offsetParent==document.body&&Element.getStyle(f,"position")=="absolute")break}while(f=f.offsetParent);f=b;do if(!Prototype.Browser.Opera||f.tagName&&f.tagName.toUpperCase()=="BODY"){c-=f.scrollTop||0;e-=f.scrollLeft||0}while(f=f.parentNode);return Element._returnOffset(e,c)},clonePosition:function(b,c,e){e=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},e||{});c=$(c);
var f=Element.viewportOffset(c);b=$(b);var g=[0,0],j=null;if(Element.getStyle(b,"position")=="absolute"){j=Element.getOffsetParent(b);g=Element.viewportOffset(j)}if(j==document.body){g[0]-=document.body.offsetLeft;g[1]-=document.body.offsetTop}if(e.setLeft)b.style.left=f[0]-g[0]+e.offsetLeft+"px";if(e.setTop)b.style.top=f[1]-g[1]+e.offsetTop+"px";if(e.setWidth)b.style.width=c.offsetWidth+"px";if(e.setHeight)b.style.height=c.offsetHeight+"px";return b}};
Object.extend(Element.Methods,{getElementsBySelector:Element.Methods.select,childElements:Element.Methods.immediateDescendants});Element._attributeTranslations={write:{names:{className:"class",htmlFor:"for"},values:{}}};
if(Prototype.Browser.Opera){Element.Methods.getStyle=Element.Methods.getStyle.wrap(function(b,c,e){switch(e){case "left":case "top":case "right":case "bottom":if(b(c,"position")==="static")return null;case "height":case "width":if(!Element.visible(c))return null;var f=parseInt(b(c,e),10);if(f!==c["offset"+e.capitalize()])return f+"px";return(e==="height"?["border-top-width","padding-top","padding-bottom","border-bottom-width"]:["border-left-width","padding-left","padding-right","border-right-width"]).inject(f,
function(g,j){j=b(c,j);return j===null?g:g-parseInt(j,10)})+"px";default:return b(c,e)}});Element.Methods.readAttribute=Element.Methods.readAttribute.wrap(function(b,c,e){if(e==="title")return c.title;return b(c,e)})}else if(Prototype.Browser.IE){Element.Methods.getOffsetParent=Element.Methods.getOffsetParent.wrap(function(b,c){c=$(c);var e=c.getStyle("position");if(e!=="static")return b(c);c.setStyle({position:"relative"});b=b(c);c.setStyle({position:e});return b});$w("positionedOffset viewportOffset").each(function(b){Element.Methods[b]=
Element.Methods[b].wrap(function(c,e){e=$(e);var f=e.getStyle("position");if(f!=="static")return c(e);var g=e.getOffsetParent();g&&g.getStyle("position")==="fixed"&&g.setStyle({zoom:1});e.setStyle({position:"relative"});c=c(e);e.setStyle({position:f});return c})});Element.Methods.cumulativeOffset=Element.Methods.cumulativeOffset.wrap(function(b,c){return b(c)});Element.Methods.getStyle=function(b,c){b=$(b);c=c=="float"||c=="cssFloat"?"styleFloat":c.camelize();var e=b.style[c];if(!e&&b.currentStyle)e=
b.currentStyle[c];if(c=="opacity"){if(e=(b.getStyle("filter")||"").match(/alpha\(opacity=(.*)\)/))if(e[1])return parseFloat(e[1])/100;return 1}if(e=="auto"){if((c=="width"||c=="height")&&b.getStyle("display")!="none")return b["offset"+c.capitalize()]+"px";return null}return e};Element.Methods.setOpacity=function(b,c){function e(j){return j.replace(/alpha\([^\)]*\)/gi,"")}b=$(b);var f=b.currentStyle;if(f&&!f.hasLayout||!f&&b.style.zoom=="normal")b.style.zoom=1;f=b.getStyle("filter");var g=b.style;
if(c==1||c===""){(f=e(f))?(g.filter=f):g.removeAttribute("filter");return b}else if(c<1.0E-5)c=0;g.filter=e(f)+"alpha(opacity="+c*100+")";return b};Element._attributeTranslations=function(){var b="className",c="for",e=document.createElement("div");e.setAttribute(b,"x");if(e.className!=="x"){e.setAttribute("class","x");if(e.className==="x")b="class"}e=null;e=document.createElement("label");e.setAttribute(c,"x");if(e.htmlFor!=="x"){e.setAttribute("htmlFor","x");if(e.htmlFor==="x")c="htmlFor"}e=null;
return{read:{names:{"class":b,className:b,"for":c,htmlFor:c},values:{_getAttr:function(f,g){return f.getAttribute(g)},_getAttr2:function(f,g){return f.getAttribute(g,2)},_getAttrNode:function(f,g){return(f=f.getAttributeNode(g))?f.value:""},_getEv:function(){var f=document.createElement("div");f.onclick=Prototype.emptyFunction;f=f.getAttribute("onclick");var g;if(String(f).indexOf("{")>-1)g=function(j,k){k=j.getAttribute(k);if(!k)return null;k=k.toString();k=k.split("{")[1];k=k.split("}")[0];return k.strip()};
else if(f==="")g=function(j,k){k=j.getAttribute(k);if(!k)return null;return k.strip()};f=null;return g}(),_flag:function(f,g){return $(f).hasAttribute(g)?g:null},style:function(f){return f.style.cssText.toLowerCase()},title:function(f){return f.title}}}}}();Element._attributeTranslations.write={names:Object.extend({cellpadding:"cellPadding",cellspacing:"cellSpacing"},Element._attributeTranslations.read.names),values:{checked:function(b,c){b.checked=!!c},style:function(b,c){b.style.cssText=c?c:""}}};
Element._attributeTranslations.has={};$w("colSpan rowSpan vAlign dateTime accessKey tabIndex encType maxLength readOnly longDesc frameBorder").each(function(b){Element._attributeTranslations.write.names[b.toLowerCase()]=b;Element._attributeTranslations.has[b.toLowerCase()]=b});(function(b){Object.extend(b,{href:b._getAttr2,src:b._getAttr2,type:b._getAttr,action:b._getAttrNode,disabled:b._flag,checked:b._flag,readonly:b._flag,multiple:b._flag,onload:b._getEv,onunload:b._getEv,onclick:b._getEv,ondblclick:b._getEv,
onmousedown:b._getEv,onmouseup:b._getEv,onmouseover:b._getEv,onmousemove:b._getEv,onmouseout:b._getEv,onfocus:b._getEv,onblur:b._getEv,onkeypress:b._getEv,onkeydown:b._getEv,onkeyup:b._getEv,onsubmit:b._getEv,onreset:b._getEv,onselect:b._getEv,onchange:b._getEv})})(Element._attributeTranslations.read.values);Prototype.BrowserFeatures.ElementExtensions&&function(){function b(c){c=c.getElementsByTagName("*");for(var e=[],f=0,g;g=c[f];f++)g.tagName!=="!"&&e.push(g);return e}Element.Methods.down=function(c,
e,f){c=$(c);if(arguments.length==1)return c.firstDescendant();return Object.isNumber(e)?b(c)[e]:Element.select(c,e)[f||0]}}()}else if(Prototype.Browser.Gecko&&/rv:1\.8\.0/.test(navigator.userAgent))Element.Methods.setOpacity=function(b,c){b=$(b);b.style.opacity=c==1?0.999999:c===""?"":c<1.0E-5?0:c;return b};else if(Prototype.Browser.WebKit){Element.Methods.setOpacity=function(b,c){b=$(b);b.style.opacity=c==1||c===""?"":c<1.0E-5?0:c;if(c==1)if(b.tagName.toUpperCase()=="IMG"&&b.width){b.width++;b.width--}else try{var e=
document.createTextNode(" ");b.appendChild(e);b.removeChild(e)}catch(f){}return b};Element.Methods.cumulativeOffset=function(b){var c=0,e=0;do{c+=b.offsetTop||0;e+=b.offsetLeft||0;if(b.offsetParent==document.body)if(Element.getStyle(b,"position")=="absolute")break;b=b.offsetParent}while(b);return Element._returnOffset(e,c)}}
if("outerHTML"in document.documentElement)Element.Methods.replace=function(b,c){b=$(b);if(c&&c.toElement)c=c.toElement();if(Object.isElement(c)){b.parentNode.replaceChild(c,b);return b}c=Object.toHTML(c);var e=b.parentNode,f=e.tagName.toUpperCase();if(Element._insertionTranslations.tags[f]){var g=b.next();f=Element._getContentFromAnonymousElement(f,c.stripScripts());e.removeChild(b);g?f.each(function(j){e.insertBefore(j,g)}):f.each(function(j){e.appendChild(j)})}else b.outerHTML=c.stripScripts();
c.evalScripts.bind(c).defer();return b};Element._returnOffset=function(b,c){var e=[b,c];e.left=b;e.top=c;return e};Element._getContentFromAnonymousElement=function(b,c){var e=new Element("div");if(b=Element._insertionTranslations.tags[b]){e.innerHTML=b[0]+c+b[1];b[2].times(function(){e=e.firstChild})}else e.innerHTML=c;return $A(e.childNodes)};
Element._insertionTranslations={before:function(b,c){b.parentNode.insertBefore(c,b)},top:function(b,c){b.insertBefore(c,b.firstChild)},bottom:function(b,c){b.appendChild(c)},after:function(b,c){b.parentNode.insertBefore(c,b.nextSibling)},tags:{TABLE:["<table>","</table>",1],TBODY:["<table><tbody>","</tbody></table>",2],TR:["<table><tbody><tr>","</tr></tbody></table>",3],TD:["<table><tbody><tr><td>","</td></tr></tbody></table>",4],SELECT:["<select>","</select>",1]}};
(function(){var b=Element._insertionTranslations.tags;Object.extend(b,{THEAD:b.TBODY,TFOOT:b.TBODY,TH:b.TD})})();Element.Methods.Simulated={hasAttribute:function(b,c){c=Element._attributeTranslations.has[c]||c;b=$(b).getAttributeNode(c);return!!(b&&b.specified)}};Element.Methods.ByTag={};Object.extend(Element,Element.Methods);
(function(b){if(!Prototype.BrowserFeatures.ElementExtensions&&b.__proto__){window.HTMLElement={};window.HTMLElement.prototype=b.__proto__;Prototype.BrowserFeatures.ElementExtensions=true}})(document.createElement("div"));
Element.extend=function(){function b(j){if(typeof window.Element!="undefined"){var k=window.Element.prototype;if(k){var l="_"+(Math.random()+"").slice(2);j=document.createElement(j);k[l]="x";j=j[l]!=="x";delete k[l];return j}}return false}function c(j,k){for(var l in k){var n=k[l];if(Object.isFunction(n)&&!(l in j))j[l]=n.methodize()}}var e=b("object");if(Prototype.BrowserFeatures.SpecificElementExtensions){if(e)return function(j){if(j&&typeof j._extendedByPrototype=="undefined"){var k=j.tagName;
if(k&&/^(?:object|applet|embed)$/i.test(k)){c(j,Element.Methods);c(j,Element.Methods.Simulated);c(j,Element.Methods.ByTag[k.toUpperCase()])}}return j};return Prototype.K}var f={},g=Element.Methods.ByTag;e=Object.extend(function(j){if(!j||typeof j._extendedByPrototype!="undefined"||j.nodeType!=1||j==window)return j;var k=Object.clone(f),l=j.tagName.toUpperCase();g[l]&&Object.extend(k,g[l]);c(j,k);j._extendedByPrototype=Prototype.emptyFunction;return j},{refresh:function(){if(!Prototype.BrowserFeatures.ElementExtensions){Object.extend(f,
Element.Methods);Object.extend(f,Element.Methods.Simulated)}}});e.refresh();return e}();Element.hasAttribute=function(b,c){if(b.hasAttribute)return b.hasAttribute(c);return Element.Methods.Simulated.hasAttribute(b,c)};
Element.addMethods=function(b){function c(n){n=n.toUpperCase();Element.Methods.ByTag[n]||(Element.Methods.ByTag[n]={});Object.extend(Element.Methods.ByTag[n],b)}function e(n,p,q){q=q||false;for(var u in n){var x=n[u];if(Object.isFunction(x))if(!q||!(u in p))p[u]=x.methodize()}}function f(n){var p,q={OPTGROUP:"OptGroup",TEXTAREA:"TextArea",P:"Paragraph",FIELDSET:"FieldSet",UL:"UList",OL:"OList",DL:"DList",DIR:"Directory",H1:"Heading",H2:"Heading",H3:"Heading",H4:"Heading",H5:"Heading",H6:"Heading",
Q:"Quote",INS:"Mod",DEL:"Mod",A:"Anchor",IMG:"Image",CAPTION:"TableCaption",COL:"TableCol",COLGROUP:"TableCol",THEAD:"TableSection",TFOOT:"TableSection",TBODY:"TableSection",TR:"TableRow",TH:"TableCell",TD:"TableCell",FRAMESET:"FrameSet",IFRAME:"IFrame"};if(q[n])p="HTML"+q[n]+"Element";if(window[p])return window[p];p="HTML"+n+"Element";if(window[p])return window[p];p="HTML"+n.capitalize()+"Element";if(window[p])return window[p];n=document.createElement(n);return n.__proto__||n.constructor.prototype}
var g=Prototype.BrowserFeatures,j=Element.Methods.ByTag;if(!b){Object.extend(Form,Form.Methods);Object.extend(Form.Element,Form.Element.Methods);Object.extend(Element.Methods.ByTag,{FORM:Object.clone(Form.Methods),INPUT:Object.clone(Form.Element.Methods),SELECT:Object.clone(Form.Element.Methods),TEXTAREA:Object.clone(Form.Element.Methods)})}if(arguments.length==2){var k=b;b=arguments[1]}if(k)Object.isArray(k)?k.each(c):c(k);else Object.extend(Element.Methods,b||{});k=window.HTMLElement?HTMLElement.prototype:
Element.prototype;if(g.ElementExtensions){e(Element.Methods,k);e(Element.Methods.Simulated,k,true)}if(g.SpecificElementExtensions)for(var l in Element.Methods.ByTag){g=f(l);Object.isUndefined(g)||e(j[l],g.prototype)}Object.extend(Element,Element.Methods);delete Element.ByTag;Element.extend.refresh&&Element.extend.refresh();Element.cache={}};
document.viewport={getDimensions:function(){return{width:this.getWidth(),height:this.getHeight()}},getScrollOffsets:function(){return Element._returnOffset(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop)}};
(function(b){function c(){if(f.WebKit&&!g.evaluate)return document;if(f.Opera&&window.parseFloat(window.opera.version())<9.5)return document.body;return document.documentElement}function e(l){j||(j=c());k[l]="client"+l;b["get"+l]=function(){return j[k[l]]};return b["get"+l]()}var f=Prototype.Browser,g=document,j,k={};b.getWidth=e.curry("Width");b.getHeight=e.curry("Height")})(document.viewport);Element.Storage={UID:1};
Element.addMethods({getStorage:function(b){if(b=$(b)){if(b===window)b=0;else{if(typeof b._prototypeUID==="undefined")b._prototypeUID=[Element.Storage.UID++];b=b._prototypeUID[0]}Element.Storage[b]||(Element.Storage[b]=$H());return Element.Storage[b]}},store:function(b,c,e){if(b=$(b)){arguments.length===2?Element.getStorage(b).update(c):Element.getStorage(b).set(c,e);return b}},retrieve:function(b,c,e){if(b=$(b)){b=Element.getStorage(b);var f=b.get(c);if(Object.isUndefined(f)){b.set(c,e);f=e}return f}},
clone:function(b,c){if(b=$(b)){b=b.cloneNode(c);b._prototypeUID=void 0;if(c){c=Element.select(b,"*");for(var e=c.length;e--;)c[e]._prototypeUID=void 0}return Element.extend(b)}}});
var Selector=Class.create({initialize:function(b){this.expression=b.strip();if(this.shouldUseSelectorsAPI())this.mode="selectorsAPI";else if(this.shouldUseXPath()){this.mode="xpath";this.compileXPathMatcher()}else{this.mode="normal";this.compileMatcher()}},shouldUseXPath:function(){var b=function(){var c=false;if(document.evaluate&&window.XPathResult){c=document.createElement("div");c.innerHTML="<ul><li></li></ul><div><ul><li></li></ul></div>";c=document.evaluate(".//*[local-name()='ul' or local-name()='UL']//*[local-name()='li' or local-name()='LI']",
c,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null).snapshotLength!==2}return c}();return function(){if(!Prototype.BrowserFeatures.XPath)return false;var c=this.expression;if(Prototype.Browser.WebKit&&(c.include("-of-type")||c.include(":empty")))return false;if(/(\[[\w-]*?:|:checked)/.test(c))return false;if(b)return false;return true}}(),shouldUseSelectorsAPI:function(){if(!Prototype.BrowserFeatures.SelectorsAPI)return false;if(Selector.CASE_INSENSITIVE_CLASS_NAMES)return false;if(!Selector._div)Selector._div=
new Element("div");try{Selector._div.querySelector(this.expression)}catch(b){return false}return true},compileMatcher:function(){var b=this.expression,c=Selector.patterns,e=Selector.criteria,f,g,j=c.length,k;if(Selector._cache[b])this.matcher=Selector._cache[b];else{for(this.matcher=["this.matcher = function(root) {","var r = root, h = Selector.handlers, c = false, n;"];b&&f!=b&&/\S/.test(b);){f=b;for(var l=0;l<j;l++){g=c[l].re;k=c[l].name;if(g=b.match(g)){this.matcher.push(Object.isFunction(e[k])?
e[k](g):(new Template(e[k])).evaluate(g));b=b.replace(g[0],"");break}}}this.matcher.push("return h.unique(n);\n}");eval(this.matcher.join("\n"));Selector._cache[this.expression]=this.matcher}},compileXPathMatcher:function(){var b=this.expression,c=Selector.patterns,e=Selector.xpath,f,g,j=c.length,k;if(Selector._cache[b])this.xpath=Selector._cache[b];else{for(this.matcher=[".//*"];b&&f!=b&&/\S/.test(b);){f=b;for(var l=0;l<j;l++){k=c[l].name;if(g=b.match(c[l].re)){this.matcher.push(Object.isFunction(e[k])?
e[k](g):(new Template(e[k])).evaluate(g));b=b.replace(g[0],"");break}}}this.xpath=this.matcher.join("");Selector._cache[this.expression]=this.xpath}},findElements:function(b){b=b||document;var c=this.expression;switch(this.mode){case "selectorsAPI":if(b!==document){var e=b.id,f=$(b).identify();f=f.replace(/([\.:])/g,"\\$1");c="#"+f+" "+c}c=$A(b.querySelectorAll(c)).map(Element.extend);b.id=e;return c;case "xpath":return document._getElementsByXPath(this.xpath,b);default:return this.matcher(b)}},match:function(b){this.tokens=
[];for(var c=this.expression,e=Selector.patterns,f=Selector.assertions,g,j,k=e.length,l;c&&g!==c&&/\S/.test(c);){g=c;for(var n=0;n<k;n++){j=e[n].re;l=e[n].name;if(j=c.match(j))if(f[l]){this.tokens.push([l,Object.clone(j)]);c=c.replace(j[0],"")}else return this.findElements(document).include(b)}}c=true;for(n=0;e=this.tokens[n];n++){l=e[0];e=e[1];if(!Selector.assertions[l](b,e)){c=false;break}}return c},toString:function(){return this.expression},inspect:function(){return"#<Selector:"+this.expression.inspect()+
">"}});if(Prototype.BrowserFeatures.SelectorsAPI&&document.compatMode==="BackCompat")Selector.CASE_INSENSITIVE_CLASS_NAMES=function(){var b=document.createElement("div"),c=document.createElement("span");b.id="prototype_test_id";c.className="Test";b.appendChild(c);return b.querySelector("#prototype_test_id .test")!==null}();
Object.extend(Selector,{_cache:{},xpath:{descendant:"//*",child:"/*",adjacent:"/following-sibling::*[1]",laterSibling:"/following-sibling::*",tagName:function(b){if(b[1]=="*")return"";return"[local-name()='"+b[1].toLowerCase()+"' or local-name()='"+b[1].toUpperCase()+"']"},className:"[contains(concat(' ', @class, ' '), ' #{1} ')]",id:"[@id='#{1}']",attrPresence:function(b){b[1]=b[1].toLowerCase();return(new Template("[@#{1}]")).evaluate(b)},attr:function(b){b[1]=b[1].toLowerCase();b[3]=b[5]||b[6];
return(new Template(Selector.xpath.operators[b[2]])).evaluate(b)},pseudo:function(b){var c=Selector.xpath.pseudos[b[1]];if(!c)return"";if(Object.isFunction(c))return c(b);return(new Template(Selector.xpath.pseudos[b[1]])).evaluate(b)},operators:{"=":"[@#{1}='#{3}']","!=":"[@#{1}!='#{3}']","^=":"[starts-with(@#{1}, '#{3}')]","$=":"[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']","*=":"[contains(@#{1}, '#{3}')]","~=":"[contains(concat(' ', @#{1}, ' '), ' #{3} ')]","|=":"[contains(concat('-', @#{1}, '-'), '-#{3}-')]"},
pseudos:{"first-child":"[not(preceding-sibling::*)]","last-child":"[not(following-sibling::*)]","only-child":"[not(preceding-sibling::* or following-sibling::*)]",empty:"[count(*) = 0 and (count(text()) = 0)]",checked:"[@checked]",disabled:"[(@disabled) and (@type!='hidden')]",enabled:"[not(@disabled) and (@type!='hidden')]",not:function(b){for(var c=b[6],e=Selector.patterns,f=Selector.xpath,g,j,k=e.length,l=[];c&&g!=c&&/\S/.test(c);){g=c;for(var n=0;n<k;n++){j=e[n].name;if(b=c.match(e[n].re)){j=
Object.isFunction(f[j])?f[j](b):(new Template(f[j])).evaluate(b);l.push("("+j.substring(1,j.length-1)+")");c=c.replace(b[0],"");break}}}return"[not("+l.join(" and ")+")]"},"nth-child":function(b){return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ",b)},"nth-last-child":function(b){return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ",b)},"nth-of-type":function(b){return Selector.xpath.pseudos.nth("position() ",b)},"nth-last-of-type":function(b){return Selector.xpath.pseudos.nth("(last() + 1 - position()) ",
b)},"first-of-type":function(b){b[6]="1";return Selector.xpath.pseudos["nth-of-type"](b)},"last-of-type":function(b){b[6]="1";return Selector.xpath.pseudos["nth-last-of-type"](b)},"only-of-type":function(b){var c=Selector.xpath.pseudos;return c["first-of-type"](b)+c["last-of-type"](b)},nth:function(b,c){var e=c[6];if(e=="even")e="2n+0";if(e=="odd")e="2n+1";if(c=e.match(/^(\d+)$/))return"["+b+"= "+c[1]+"]";if(c=e.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(c[1]=="-")c[1]=-1;e=c[1]?Number(c[1]):1;c=c[2]?
Number(c[2]):0;return(new Template("[((#{fragment} - #{b}) mod #{a} = 0) and ((#{fragment} - #{b}) div #{a} >= 0)]")).evaluate({fragment:b,a:e,b:c})}}}},criteria:{tagName:'n = h.tagName(n, r, "#{1}", c);      c = false;',className:'n = h.className(n, r, "#{1}", c);    c = false;',id:'n = h.id(n, r, "#{1}", c);           c = false;',attrPresence:'n = h.attrPresence(n, r, "#{1}", c); c = false;',attr:function(b){b[3]=b[5]||b[6];return(new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;')).evaluate(b)},
pseudo:function(b){if(b[6])b[6]=b[6].replace(/"/g,'\\"');return(new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;')).evaluate(b)},descendant:'c = "descendant";',child:'c = "child";',adjacent:'c = "adjacent";',laterSibling:'c = "laterSibling";'},patterns:[{name:"laterSibling",re:/^\s*~\s*/},{name:"child",re:/^\s*>\s*/},{name:"adjacent",re:/^\s*\+\s*/},{name:"descendant",re:/^\s/},{name:"tagName",re:/^\s*(\*|[\w\-]+)(\b|$)?/},{name:"id",re:/^#([\w\-\*]+)(\b|$)/},{name:"className",re:/^\.([\w\-\*]+)(\b|$)/},
{name:"pseudo",re:/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/},{name:"attrPresence",re:/^\[((?:[\w-]+:)?[\w-]+)\]/},{name:"attr",re:/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/}],assertions:{tagName:function(b,c){return c[1].toUpperCase()==b.tagName.toUpperCase()},className:function(b,c){return Element.hasClassName(b,c[1])},id:function(b,c){return b.id===c[1]},attrPresence:function(b,c){return Element.hasAttribute(b,
c[1])},attr:function(b,c){return(b=Element.readAttribute(b,c[1]))&&Selector.operators[c[2]](b,c[5]||c[6])}},handlers:{concat:function(b,c){for(var e=0,f;f=c[e];e++)b.push(f);return b},mark:function(b){for(var c=Prototype.emptyFunction,e=0,f;f=b[e];e++)f._countedByPrototype=c;return b},unmark:function(){return function(){var b=document.createElement("div"),c=false;b._countedByPrototype="x";return c=b.getAttribute("_countedByPrototype")==="x"}()?function(b){for(var c=0,e;e=b[c];c++)e.removeAttribute("_countedByPrototype");
return b}:function(b){for(var c=0,e;e=b[c];c++)e._countedByPrototype=void 0;return b}}(),index:function(b,c,e){b._countedByPrototype=Prototype.emptyFunction;if(c){b=b.childNodes;c=b.length-1;for(var f=1;c>=0;c--){var g=b[c];if(g.nodeType==1&&(!e||g._countedByPrototype))g.nodeIndex=f++}}else{c=0;f=1;for(b=b.childNodes;g=b[c];c++)if(g.nodeType==1&&(!e||g._countedByPrototype))g.nodeIndex=f++}},unique:function(b){if(b.length==0)return b;for(var c=[],e,f=0,g=b.length;f<g;f++)if(typeof(e=b[f])._countedByPrototype==
"undefined"){e._countedByPrototype=Prototype.emptyFunction;c.push(Element.extend(e))}return Selector.handlers.unmark(c)},descendant:function(b){for(var c=Selector.handlers,e=0,f=[],g;g=b[e];e++)c.concat(f,g.getElementsByTagName("*"));return f},child:function(b){for(var c=0,e=[],f;f=b[c];c++)for(var g=0,j;j=f.childNodes[g];g++)j.nodeType==1&&j.tagName!="!"&&e.push(j);return e},adjacent:function(b){for(var c=0,e=[],f;f=b[c];c++)(f=this.nextElementSibling(f))&&e.push(f);return e},laterSibling:function(b){for(var c=
Selector.handlers,e=0,f=[],g;g=b[e];e++)c.concat(f,Element.nextSiblings(g));return f},nextElementSibling:function(b){for(;b=b.nextSibling;)if(b.nodeType==1)return b;return null},previousElementSibling:function(b){for(;b=b.previousSibling;)if(b.nodeType==1)return b;return null},tagName:function(b,c,e,f){var g=e.toUpperCase(),j=[],k=Selector.handlers;if(b){if(f){if(f=="descendant"){for(c=0;f=b[c];c++)k.concat(j,f.getElementsByTagName(e));return j}else b=this[f](b);if(e=="*")return b}for(c=0;f=b[c];c++)f.tagName.toUpperCase()===
g&&j.push(f);return j}else return c.getElementsByTagName(e)},id:function(b,c,e,f){var g=$(e),j=Selector.handlers;if(c==document){if(!g)return[];if(!b)return[g]}else if(!c.sourceIndex||c.sourceIndex<1){b=c.getElementsByTagName("*");for(var k=0,l;l=b[k];k++)if(l.id===e)return[l]}if(b){if(f)if(f=="child")for(c=0;l=b[c];c++){if(g.parentNode==l)return[g]}else if(f=="descendant")for(c=0;l=b[c];c++){if(Element.descendantOf(g,l))return[g]}else if(f=="adjacent")for(c=0;l=b[c];c++){if(Selector.handlers.previousElementSibling(g)==
l)return[g]}else b=j[f](b);for(c=0;l=b[c];c++)if(l==g)return[g];return[]}return g&&Element.descendantOf(g,c)?[g]:[]},className:function(b,c,e,f){if(b&&f)b=this[f](b);return Selector.handlers.byClassName(b,c,e)},byClassName:function(b,c,e){b||(b=Selector.handlers.descendant([c]));c=" "+e+" ";for(var f=0,g=[],j,k;j=b[f];f++){k=j.className;if(k.length!=0)if(k==e||(" "+k+" ").include(c))g.push(j)}return g},attrPresence:function(b,c,e,f){b||(b=c.getElementsByTagName("*"));if(b&&f)b=this[f](b);c=[];f=0;
for(var g;g=b[f];f++)Element.hasAttribute(g,e)&&c.push(g);return c},attr:function(b,c,e,f,g,j){b||(b=c.getElementsByTagName("*"));if(b&&j)b=this[j](b);c=Selector.operators[g];g=[];j=0;for(var k;k=b[j];j++){var l=Element.readAttribute(k,e);l!==null&&c(l,f)&&g.push(k)}return g},pseudo:function(b,c,e,f,g){if(b&&g)b=this[g](b);b||(b=f.getElementsByTagName("*"));return Selector.pseudos[c](b,e,f)}},pseudos:{"first-child":function(b){for(var c=0,e=[],f;f=b[c];c++)Selector.handlers.previousElementSibling(f)||
e.push(f);return e},"last-child":function(b){for(var c=0,e=[],f;f=b[c];c++)Selector.handlers.nextElementSibling(f)||e.push(f);return e},"only-child":function(b){for(var c=Selector.handlers,e=0,f=[],g;g=b[e];e++)!c.previousElementSibling(g)&&!c.nextElementSibling(g)&&f.push(g);return f},"nth-child":function(b,c,e){return Selector.pseudos.nth(b,c,e)},"nth-last-child":function(b,c,e){return Selector.pseudos.nth(b,c,e,true)},"nth-of-type":function(b,c,e){return Selector.pseudos.nth(b,c,e,false,true)},
"nth-last-of-type":function(b,c,e){return Selector.pseudos.nth(b,c,e,true,true)},"first-of-type":function(b,c,e){return Selector.pseudos.nth(b,"1",e,false,true)},"last-of-type":function(b,c,e){return Selector.pseudos.nth(b,"1",e,true,true)},"only-of-type":function(b,c,e){var f=Selector.pseudos;return f["last-of-type"](f["first-of-type"](b,c,e),c,e)},getIndices:function(b,c,e){if(b==0)return c>0?[c]:[];return $R(1,e).inject([],function(f,g){0==(g-c)%b&&(g-c)/b>=0&&f.push(g);return f})},nth:function(b,
c,e,f,g){if(b.length==0)return[];if(c=="even")c="2n+0";if(c=="odd")c="2n+1";e=Selector.handlers;var j=[],k=[],l;e.mark(b);for(var n=0;l=b[n];n++)if(!l.parentNode._countedByPrototype){e.index(l.parentNode,f,g);k.push(l.parentNode)}if(c.match(/^\d+$/)){c=Number(c);for(n=0;l=b[n];n++)l.nodeIndex==c&&j.push(l)}else if(l=c.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(l[1]=="-")l[1]=-1;n=l[1]?Number(l[1]):1;l=l[2]?Number(l[2]):0;c=Selector.pseudos.getIndices(n,l,b.length);n=0;for(f=c.length;l=b[n];n++)for(g=0;g<
f;g++)l.nodeIndex==c[g]&&j.push(l)}e.unmark(b);e.unmark(k);return j},empty:function(b){for(var c=0,e=[],f;f=b[c];c++)f.tagName=="!"||f.firstChild||e.push(f);return e},not:function(b,c,e){var f=Selector.handlers;c=(new Selector(c)).findElements(e);f.mark(c);e=0;for(var g=[],j;j=b[e];e++)j._countedByPrototype||g.push(j);f.unmark(c);return g},enabled:function(b){for(var c=0,e=[],f;f=b[c];c++)if(!f.disabled&&(!f.type||f.type!=="hidden"))e.push(f);return e},disabled:function(b){for(var c=0,e=[],f;f=b[c];c++)f.disabled&&
e.push(f);return e},checked:function(b){for(var c=0,e=[],f;f=b[c];c++)f.checked&&e.push(f);return e}},operators:{"=":function(b,c){return b==c},"!=":function(b,c){return b!=c},"^=":function(b,c){return b==c||b&&b.startsWith(c)},"$=":function(b,c){return b==c||b&&b.endsWith(c)},"*=":function(b,c){return b==c||b&&b.include(c)},"~=":function(b,c){return(" "+b+" ").include(" "+c+" ")},"|=":function(b,c){return("-"+(b||"").toUpperCase()+"-").include("-"+(c||"").toUpperCase()+"-")}},split:function(b){var c=
[];b.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,function(e){c.push(e[1].strip())});return c},matchElements:function(b,c){c=$$(c);var e=Selector.handlers;e.mark(c);for(var f=0,g=[],j;j=b[f];f++)j._countedByPrototype&&g.push(j);e.unmark(c);return g},findElement:function(b,c,e){if(Object.isNumber(c)){e=c;c=false}return Selector.matchElements(b,c||"*")[e||0]},findChildElements:function(b,c){c=Selector.split(c.join(","));for(var e=[],f=Selector.handlers,g=0,j=c.length,k;g<j;g++){k=new Selector(c[g].strip());
f.concat(e,k.findElements(b))}return j>1?f.unique(e):e}});Prototype.Browser.IE&&Object.extend(Selector.handlers,{concat:function(b,c){for(var e=0,f;f=c[e];e++)f.tagName!=="!"&&b.push(f);return b}});function $$(){return Selector.findChildElements(document,$A(arguments))}
var Form={reset:function(b){b=$(b);b.reset();return b},serializeElements:function(b,c){if(typeof c!="object")c={hash:!!c};else if(Object.isUndefined(c.hash))c.hash=true;var e,f,g=false,j=c.submit;b=b.inject({},function(k,l){if(!l.disabled&&l.name){e=l.name;f=$(l).getValue();if(f!=null&&l.type!="file"&&(l.type!="submit"||!g&&j!==false&&(!j||e==j)&&(g=true)))if(e in k){Object.isArray(k[e])||(k[e]=[k[e]]);k[e].push(f)}else k[e]=f}return k});return c.hash?b:Object.toQueryString(b)}};
Form.Methods={serialize:function(b,c){return Form.serializeElements(Form.getElements(b),c)},getElements:function(b){b=$(b).getElementsByTagName("*");for(var c,e=[],f=Form.Element.Serializers,g=0;c=b[g];g++)e.push(c);return e.inject([],function(j,k){f[k.tagName.toLowerCase()]&&j.push(Element.extend(k));return j})},getInputs:function(b,c,e){b=$(b);b=b.getElementsByTagName("input");if(!c&&!e)return $A(b).map(Element.extend);for(var f=0,g=[],j=b.length;f<j;f++){var k=b[f];c&&k.type!=c||e&&k.name!=e||
g.push(Element.extend(k))}return g},disable:function(b){b=$(b);Form.getElements(b).invoke("disable");return b},enable:function(b){b=$(b);Form.getElements(b).invoke("enable");return b},findFirstElement:function(b){b=$(b).getElements().findAll(function(e){return"hidden"!=e.type&&!e.disabled});var c=b.findAll(function(e){return e.hasAttribute("tabIndex")&&e.tabIndex>=0}).sortBy(function(e){return e.tabIndex}).first();return c?c:b.find(function(e){return/^(?:input|select|textarea)$/i.test(e.tagName)})},
focusFirstElement:function(b){b=$(b);b.findFirstElement().activate();return b},request:function(b,c){b=$(b);c=Object.clone(c||{});var e=c.parameters,f=b.readAttribute("action")||"";if(f.blank())f=window.location.href;c.parameters=b.serialize(true);if(e){if(Object.isString(e))e=e.toQueryParams();Object.extend(c.parameters,e)}if(b.hasAttribute("method")&&!c.method)c.method=b.method;return new Ajax.Request(f,c)}};
Form.Element={focus:function(b){$(b).focus();return b},select:function(b){$(b).select();return b}};
Form.Element.Methods={serialize:function(b){b=$(b);if(!b.disabled&&b.name){var c=b.getValue();if(c!=undefined){var e={};e[b.name]=c;return Object.toQueryString(e)}}return""},getValue:function(b){b=$(b);var c=b.tagName.toLowerCase();return Form.Element.Serializers[c](b)},setValue:function(b,c){b=$(b);var e=b.tagName.toLowerCase();Form.Element.Serializers[e](b,c);return b},clear:function(b){$(b).value="";return b},present:function(b){return $(b).value!=""},activate:function(b){b=$(b);try{b.focus();
if(b.select&&(b.tagName.toLowerCase()!="input"||!/^(?:button|reset|submit)$/i.test(b.type)))b.select()}catch(c){}return b},disable:function(b){b=$(b);b.disabled=true;return b},enable:function(b){b=$(b);b.disabled=false;return b}};var Field=Form.Element,$F=Form.Element.Methods.getValue;
Form.Element.Serializers={input:function(b,c){switch(b.type.toLowerCase()){case "checkbox":case "radio":return Form.Element.Serializers.inputSelector(b,c);default:return Form.Element.Serializers.textarea(b,c)}},inputSelector:function(b,c){if(Object.isUndefined(c))return b.checked?b.value:null;else b.checked=!!c},textarea:function(b,c){if(Object.isUndefined(c))return b.value;else b.value=c},select:function(b,c){if(Object.isUndefined(c))return this[b.type=="select-one"?"selectOne":"selectMany"](b);
else for(var e,f,g=!Object.isArray(c),j=0,k=b.length;j<k;j++){e=b.options[j];f=this.optionValue(e);if(g){if(f==c){e.selected=true;return}}else e.selected=c.include(f)}},selectOne:function(b){var c=b.selectedIndex;return c>=0?this.optionValue(b.options[c]):null},selectMany:function(b){var c,e=b.length;if(!e)return null;var f=0;for(c=[];f<e;f++){var g=b.options[f];g.selected&&c.push(this.optionValue(g))}return c},optionValue:function(b){return Element.extend(b).hasAttribute("value")?b.value:b.text}};
Abstract.TimedObserver=Class.create(PeriodicalExecuter,{initialize:function($super,c,e,f){$super(f,e);this.element=$(c);this.lastValue=this.getValue()},execute:function(){var b=this.getValue();if(Object.isString(this.lastValue)&&Object.isString(b)?this.lastValue!=b:String(this.lastValue)!=String(b)){this.callback(this.element,b);this.lastValue=b}}});Form.Element.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.Element.getValue(this.element)}});
Form.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.serialize(this.element)}});
Abstract.EventObserver=Class.create({initialize:function(b,c){this.element=$(b);this.callback=c;this.lastValue=this.getValue();this.element.tagName.toLowerCase()=="form"?this.registerFormCallbacks():this.registerCallback(this.element)},onElementEvent:function(){var b=this.getValue();if(this.lastValue!=b){this.callback(this.element,b);this.lastValue=b}},registerFormCallbacks:function(){Form.getElements(this.element).each(this.registerCallback,this)},registerCallback:function(b){if(b.type)switch(b.type.toLowerCase()){case "checkbox":case "radio":Event.observe(b,
"click",this.onElementEvent.bind(this));break;default:Event.observe(b,"change",this.onElementEvent.bind(this));break}}});Form.Element.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){return Form.Element.getValue(this.element)}});Form.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){return Form.serialize(this.element)}});
(function(){function b(m){return v(m,0)}function c(m){return v(m,1)}function e(m){return v(m,2)}function f(m){m=A.extend(m);var o=m.target,s=m.type;if((m=m.currentTarget)&&m.tagName)if(s==="load"||s==="error"||s==="click"&&m.tagName.toLowerCase()==="input"&&m.type==="radio")o=m;if(o.nodeType==Node.TEXT_NODE)o=o.parentNode;return Element.extend(o)}function g(m,o){m=A.element(m);if(!o)return m;m=[m].concat(m.ancestors());return Selector.findElement(m,o,0)}function j(m){return{x:k(m),y:l(m)}}function k(m){var o=
document.documentElement,s=document.body||{scrollLeft:0};return m.pageX||m.clientX+(o.scrollLeft||s.scrollLeft)-(o.clientLeft||0)}function l(m){var o=document.documentElement,s=document.body||{scrollTop:0};return m.pageY||m.clientY+(o.scrollTop||s.scrollTop)-(o.clientTop||0)}function n(m){A.extend(m);m.preventDefault();m.stopPropagation();m.stopped=true}function p(m,o,s){var z=Element.retrieve(m,"prototype_event_registry");if(Object.isUndefined(z)){y.push(m);z=Element.retrieve(m,"prototype_event_registry",
$H())}var D=z.get(o);if(Object.isUndefined(D)){D=[];z.set(o,D)}if(D.pluck("handler").include(s))return false;var J;if(o.include(":"))J=function(K){if(Object.isUndefined(K.eventName))return false;if(K.eventName!==o)return false;A.extend(K,m);s.call(m,K)};else if(!r&&(o==="mouseenter"||o==="mouseleave")){if(o==="mouseenter"||o==="mouseleave")J=function(K){A.extend(K,m);for(var L=K.relatedTarget;L&&L!==m;)try{L=L.parentNode}catch(w){L=m}L!==m&&s.call(m,K)}}else J=function(K){A.extend(K,m);s.call(m,K)};
J.handler=s;D.push(J);return J}function q(){for(var m=0,o=y.length;m<o;m++){A.stopObserving(y[m]);y[m]=null}}function u(m,o,s){m=$(m);s=p(m,o,s);if(!s)return m;if(o.include(":"))if(m.addEventListener)m.addEventListener("dataavailable",s,false);else{m.attachEvent("ondataavailable",s);m.attachEvent("onfilterchange",s)}else{o=t(o);m.addEventListener?m.addEventListener(o,s,false):m.attachEvent("on"+o,s)}return m}function x(m,o,s){m=$(m);var z=Element.retrieve(m,"prototype_event_registry");if(Object.isUndefined(z))return m;
if(o&&!s){var D=z.get(o);if(Object.isUndefined(D))return m;D.each(function(L){Element.stopObserving(m,o,L.handler)});return m}else if(!o){z.each(function(L){var w=L.key;L.value.each(function(B){Element.stopObserving(m,w,B.handler)})});return m}if(D=z.get(o)){var J=D.find(function(L){return L.handler===s});if(!J)return m;var K=t(o);if(o.include(":"))if(m.removeEventListener)m.removeEventListener("dataavailable",J,false);else{m.detachEvent("ondataavailable",J);m.detachEvent("onfilterchange",J)}else m.removeEventListener?
m.removeEventListener(K,J,false):m.detachEvent("on"+K,J);z.set(o,D.without(J));return m}}function H(m,o,s,z){m=$(m);if(Object.isUndefined(z))z=true;if(m==document&&document.createEvent&&!m.dispatchEvent)m=document.documentElement;var D;if(document.createEvent){D=document.createEvent("HTMLEvents");D.initEvent("dataavailable",true,true)}else{D=document.createEventObject();D.eventType=z?"ondataavailable":"onfilterchange"}D.eventName=o;D.memo=s||{};document.createEvent?m.dispatchEvent(D):m.fireEvent(D.eventType,
D);return A.extend(D)}var A={KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,KEY_HOME:36,KEY_END:35,KEY_PAGEUP:33,KEY_PAGEDOWN:34,KEY_INSERT:45,cache:{}},M=document.documentElement,r="onmouseenter"in M&&"onmouseleave"in M,v;if(Prototype.Browser.IE){var E={0:1,1:4,2:2};v=function(m,o){return m.button===E[o]}}else v=Prototype.Browser.WebKit?function(m,o){switch(o){case 0:return m.which==1&&!m.metaKey;case 1:return m.which==1&&m.metaKey;
default:return false}}:function(m,o){return m.which?m.which===o+1:m.button===o};A.Methods={isLeftClick:b,isMiddleClick:c,isRightClick:e,element:f,findElement:g,pointer:j,pointerX:k,pointerY:l,stop:n};var I=Object.keys(A.Methods).inject({},function(m,o){m[o]=A.Methods[o].methodize();return m});if(Prototype.Browser.IE){function C(m){switch(m.type){case "mouseover":m=m.fromElement;break;case "mouseout":m=m.toElement;break;default:return null}return Element.extend(m)}Object.extend(I,{stopPropagation:function(){this.cancelBubble=
true},preventDefault:function(){this.returnValue=false},inspect:function(){return"[object Event]"}});A.extend=function(m,o){if(!m)return false;if(m._extendedByPrototype)return m;m._extendedByPrototype=Prototype.emptyFunction;var s=A.pointer(m);Object.extend(m,{target:m.srcElement||o,relatedTarget:C(m),pageX:s.x,pageY:s.y});return Object.extend(m,I)}}else{A.prototype=window.Event.prototype||document.createEvent("HTMLEvents").__proto__;Object.extend(A.prototype,I);A.extend=Prototype.K}var y=[];Prototype.Browser.IE&&
window.attachEvent("onunload",q);Prototype.Browser.WebKit&&window.addEventListener("unload",Prototype.emptyFunction,false);var t=Prototype.K;r||(t=function(m){var o={mouseenter:"mouseover",mouseleave:"mouseout"};return m in o?o[m]:m});Object.extend(A,A.Methods);Object.extend(A,{fire:H,observe:u,stopObserving:x});Element.addMethods({fire:H,observe:u,stopObserving:x});Object.extend(document,{fire:H.methodize(),observe:u.methodize(),stopObserving:x.methodize(),loaded:false});if(window.Event)Object.extend(window.Event,
A);else window.Event=A})();
(function(){function b(){if(!document.loaded){f&&window.clearTimeout(f);document.loaded=true;document.fire("dom:loaded")}}function c(){if(document.readyState==="complete"){document.stopObserving("readystatechange",c);b()}}function e(){try{document.documentElement.doScroll("left")}catch(g){f=e.defer();return}b()}var f;if(document.addEventListener)document.addEventListener("DOMContentLoaded",b,false);else{document.observe("readystatechange",c);if(window==top)f=e.defer()}Event.observe(window,"load",
b)})();Element.addMethods();Hash.toQueryString=Object.toQueryString;var Toggle={display:Element.toggle};Element.Methods.childOf=Element.Methods.descendantOf;
var Insertion={Before:function(b,c){return Element.insert(b,{before:c})},Top:function(b,c){return Element.insert(b,{top:c})},Bottom:function(b,c){return Element.insert(b,{bottom:c})},After:function(b,c){return Element.insert(b,{after:c})}},$continue=new Error('"throw $continue" is deprecated, use "return" instead'),Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||
document.documentElement.scrollTop||document.body.scrollTop||0},within:function(b,c,e){if(this.includeScrollOffsets)return this.withinIncludingScrolloffsets(b,c,e);this.xcomp=c;this.ycomp=e;this.offset=Element.cumulativeOffset(b);return e>=this.offset[1]&&e<this.offset[1]+b.offsetHeight&&c>=this.offset[0]&&c<this.offset[0]+b.offsetWidth},withinIncludingScrolloffsets:function(b,c,e){var f=Element.cumulativeScrollOffset(b);this.xcomp=c+f[0]-this.deltaX;this.ycomp=e+f[1]-this.deltaY;this.offset=Element.cumulativeOffset(b);
return this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+b.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+b.offsetWidth},overlap:function(b,c){if(!b)return 0;if(b=="vertical")return(this.offset[1]+c.offsetHeight-this.ycomp)/c.offsetHeight;if(b=="horizontal")return(this.offset[0]+c.offsetWidth-this.xcomp)/c.offsetWidth},cumulativeOffset:Element.Methods.cumulativeOffset,positionedOffset:Element.Methods.positionedOffset,absolutize:function(b){Position.prepare();return Element.absolutize(b)},
relativize:function(b){Position.prepare();return Element.relativize(b)},realOffset:Element.Methods.cumulativeScrollOffset,offsetParent:Element.Methods.getOffsetParent,page:Element.Methods.viewportOffset,clone:function(b,c,e){e=e||{};return Element.clonePosition(c,b,e)}};
if(!document.getElementsByClassName)document.getElementsByClassName=function(b){function c(e){return e.blank()?null:"[contains(concat(' ', @class, ' '), ' "+e+" ')]"}b.getElementsByClassName=Prototype.BrowserFeatures.XPath?function(e,f){f=f.toString().strip();return(f=/\s/.test(f)?$w(f).map(c).join(""):c(f))?document._getElementsByXPath(".//*"+f,e):[]}:function(e,f){f=f.toString().strip();var g=[],j=/\s/.test(f)?$w(f):null;if(!j&&!f)return g;e=$(e).getElementsByTagName("*");f=" "+f+" ";for(var k=
0,l,n;l=e[k];k++)if(l.className&&(n=" "+l.className+" ")&&(n.include(f)||j&&j.all(function(p){return!p.toString().blank()&&n.include(" "+p+" ")})))g.push(Element.extend(l));return g};return function(e,f){return $(f||document.body).getElementsByClassName(e)}}(Element.Methods);Element.ClassNames=Class.create();
Element.ClassNames.prototype={initialize:function(b){this.element=$(b)},_each:function(b){this.element.className.split(/\s+/).select(function(c){return c.length>0})._each(b)},set:function(b){this.element.className=b},add:function(b){this.include(b)||this.set($A(this).concat(b).join(" "))},remove:function(b){this.include(b)&&this.set($A(this).without(b).join(" "))},toString:function(){return $A(this).join(" ")}};Object.extend(Element.ClassNames.prototype,Enumerable);
if(typeof Control=="undefined")Control={};var $proc=function(b){return typeof b=="function"?b:function(){return b}},$value=function(b){return typeof b=="function"?b():b};
Object.Event={extend:function(b){b._objectEventSetup=function(c){this._observers=this._observers||{};this._observers[c]=this._observers[c]||[]};b.observe=function(c,e){if(typeof c=="string"&&typeof e!="undefined"){this._objectEventSetup(c);this._observers[c].include(e)||this._observers[c].push(e)}else for(var f in c)this.observe(f,c[f])};b.stopObserving=function(c,e){this._objectEventSetup(c);if(c&&e)this._observers[c]=this._observers[c].without(e);else if(c)this._observers[c]=[];else this._observers=
{}};b.observeOnce=function(c,e){var f=function(){e.apply(this,arguments);this.stopObserving(c,f)}.bind(this);this._objectEventSetup(c);this._observers[c].push(f)};b.notify=function(c){this._objectEventSetup(c);var e=[],f=$A(arguments).slice(1);try{for(var g=0;g<this._observers[c].length;++g)e.push(this._observers[c][g].apply(this._observers[c][g],f)||null)}catch(j){if(j==$break)return false;else throw j;}return e};if(b.prototype){b.prototype._objectEventSetup=b._objectEventSetup;b.prototype.observe=
b.observe;b.prototype.stopObserving=b.stopObserving;b.prototype.observeOnce=b.observeOnce;b.prototype.notify=function(c){if(b.notify){var e=$A(arguments).slice(1);e.unshift(this);e.unshift(c);b.notify.apply(b,e)}this._objectEventSetup(c);e=$A(arguments).slice(1);var f=[];try{if(this.options&&this.options[c]&&typeof this.options[c]=="function")f.push(this.options[c].apply(this,e)||null);for(var g=0;g<this._observers[c].length;++g)f.push(this._observers[c][g].apply(this._observers[c][g],e)||null)}catch(j){if(j==
$break)return false;else throw j;}return f}}}};Element.addMethods({observeOnce:function(b,c,e){var f=function(){e.apply(this,arguments);Element.stopObserving(b,c,f)};Element.observe(b,c,f)}});
(function(){function b(c){var e,f;if(c.wheelDelta)e=c.wheelDelta/120;else if(c.detail)e=-c.detail/3;if(e){f=Event.extend(c).target;f=Element.extend(f.nodeType===Node.TEXT_NODE?f.parentNode:f);if(f.fire("mouse:wheel",{delta:e}).stopped){Event.stop(c);return false}}}document.observe("mousewheel",b);document.observe("DOMMouseScroll",b)})();
var IframeShim=Class.create({initialize:function(){this.element=new Element("iframe",{style:"position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);display:none",src:"javascript:void(0);",frameborder:0});$(document.body).insert(this.element)},hide:function(){this.element.hide();return this},show:function(){this.element.show();return this},positionUnder:function(b){b=$(b);var c=b.cumulativeOffset(),e=b.getDimensions();this.element.setStyle({left:c[0]+"px",top:c[1]+"px",width:e.width+
"px",height:e.height+"px",zIndex:b.getStyle("zIndex")-1}).show();return this},setBounds:function(b){for(prop in b)b[prop]+="px";this.element.setStyle(b);return this},destroy:function(){this.element&&this.element.remove();return this}}),Scriptaculous={Version:"1.8.3",require:function(b){try{document.write('<script type="text/javascript" src="'+b+'"><\/script>')}catch(c){var e=document.createElement("script");e.type="text/javascript";e.src=b;document.getElementsByTagName("head")[0].appendChild(e)}},
REQUIRED_PROTOTYPE:"1.6.0.3",load:function(){function b(e){var f=e.replace(/_.*|\./g,"");f=parseInt(f+"0".times(4-f.length));return e.indexOf("_")>-1?f-1:f}if(typeof Prototype=="undefined"||typeof Element=="undefined"||typeof Element.Methods=="undefined"||b(Prototype.Version)<b(Scriptaculous.REQUIRED_PROTOTYPE))throw"script.aculo.us requires the Prototype JavaScript framework >= "+Scriptaculous.REQUIRED_PROTOTYPE;var c=/scriptaculous\.js(\?.*)?$/;$$("head script[src]").findAll(function(e){return e.src.match(c)}).each(function(e){var f=
e.src.replace(c,"");e=e.src.match(/\?.*load=([a-z,]*)/);(e?e[1]:"builder,effects,dragdrop,controls,slider,sound").split(",").each(function(g){Scriptaculous.require(f+g+".js")})})}};Scriptaculous.load();
String.prototype.parseColor=function(b){var c="#";if(this.slice(0,4)=="rgb("){var e=this.slice(4,this.length-1).split(","),f=0;do c+=parseInt(e[f]).toColorPart();while(++f<3)}else if(this.slice(0,1)=="#"){if(this.length==4)for(f=1;f<4;f++)c+=(this.charAt(f)+this.charAt(f)).toLowerCase();if(this.length==7)c=this.toLowerCase()}return c.length==7?c:b||this};
Element.collectTextNodes=function(b){return $A($(b).childNodes).collect(function(c){return c.nodeType==3?c.nodeValue:c.hasChildNodes()?Element.collectTextNodes(c):""}).flatten().join("")};Element.collectTextNodesIgnoreClass=function(b,c){return $A($(b).childNodes).collect(function(e){return e.nodeType==3?e.nodeValue:e.hasChildNodes()&&!Element.hasClassName(e,c)?Element.collectTextNodesIgnoreClass(e,c):""}).flatten().join("")};
Element.setContentZoom=function(b,c){b=$(b);b.setStyle({fontSize:c/100+"em"});Prototype.Browser.WebKit&&window.scrollBy(0,0);return b};Element.getInlineOpacity=function(b){return $(b).style.opacity||""};Element.forceRerendering=function(b){try{b=$(b);var c=document.createTextNode(" ");b.appendChild(c);b.removeChild(c)}catch(e){}};
var Effect={_elementDoesNotExistError:{name:"ElementDoesNotExistError",message:"The specified DOM element does not exist, but is required for this effect to operate"},Transitions:{linear:Prototype.K,sinoidal:function(b){return-Math.cos(b*Math.PI)/2+0.5},reverse:function(b){return 1-b},flicker:function(b){b=-Math.cos(b*Math.PI)/4+0.75+Math.random()/4;return b>1?1:b},wobble:function(b){return-Math.cos(b*Math.PI*9*b)/2+0.5},pulse:function(b,c){return-Math.cos(b*((c||5)-0.5)*2*Math.PI)/2+0.5},spring:function(b){return 1-
Math.cos(b*4.5*Math.PI)*Math.exp(-b*6)},none:function(){return 0},full:function(){return 1}},DefaultOptions:{duration:1,fps:100,sync:false,from:0,to:1,delay:0,queue:"parallel"},tagifyText:function(b){var c="position:relative";if(Prototype.Browser.IE)c+=";zoom:1";b=$(b);$A(b.childNodes).each(function(e){if(e.nodeType==3){e.nodeValue.toArray().each(function(f){b.insertBefore((new Element("span",{style:c})).update(f==" "?String.fromCharCode(160):f),e)});Element.remove(e)}})},multiple:function(b,c,e){b=
(typeof b=="object"||Object.isFunction(b))&&b.length?b:$(b).childNodes;var f=Object.extend({speed:0.1,delay:0},e||{}),g=f.delay;$A(b).each(function(j,k){new c(j,Object.extend(f,{delay:k*f.speed+g}))})},PAIRS:{slide:["SlideDown","SlideUp"],blind:["BlindDown","BlindUp"],appear:["Appear","Fade"]},toggle:function(b,c,e){b=$(b);c=(c||"appear").toLowerCase();return Effect[Effect.PAIRS[c][b.visible()?1:0]](b,Object.extend({queue:{position:"end",scope:b.id||"global",limit:1}},e||{}))}};
Effect.DefaultOptions.transition=Effect.Transitions.sinoidal;
Effect.ScopedQueue=Class.create(Enumerable,{initialize:function(){this.effects=[];this.interval=null},_each:function(b){this.effects._each(b)},add:function(b){var c=(new Date).getTime();switch(Object.isString(b.options.queue)?b.options.queue:b.options.queue.position){case "front":this.effects.findAll(function(e){return e.state=="idle"}).each(function(e){e.startOn+=b.finishOn;e.finishOn+=b.finishOn});break;case "with-last":c=this.effects.pluck("startOn").max()||c;break;case "end":c=this.effects.pluck("finishOn").max()||
c;break}b.startOn+=c;b.finishOn+=c;if(!b.options.queue.limit||this.effects.length<b.options.queue.limit)this.effects.push(b);if(!this.interval)this.interval=setInterval(this.loop.bind(this),15)},remove:function(b){this.effects=this.effects.reject(function(c){return c==b});if(this.effects.length==0){clearInterval(this.interval);this.interval=null}},loop:function(){for(var b=(new Date).getTime(),c=0,e=this.effects.length;c<e;c++)this.effects[c]&&this.effects[c].loop(b)}});
Effect.Queues={instances:$H(),get:function(b){if(!Object.isString(b))return b;return this.instances.get(b)||this.instances.set(b,new Effect.ScopedQueue)}};Effect.Queue=Effect.Queues.get("global");
Effect.Base=Class.create({position:null,start:function(b){if(b&&b.transition===false)b.transition=Effect.Transitions.linear;this.options=Object.extend(Object.extend({},Effect.DefaultOptions),b||{});this.currentFrame=0;this.state="idle";this.startOn=this.options.delay*1E3;this.finishOn=this.startOn+this.options.duration*1E3;this.fromToDelta=this.options.to-this.options.from;this.totalTime=this.finishOn-this.startOn;this.totalFrames=this.options.fps*this.options.duration;this.render=function(){function c(e,
f){e.options[f+"Internal"]&&e.options[f+"Internal"](e);e.options[f]&&e.options[f](e)}return function(e){if(this.state==="idle"){this.state="running";c(this,"beforeSetup");this.setup&&this.setup();c(this,"afterSetup")}if(this.state==="running"){this.position=e=this.options.transition(e)*this.fromToDelta+this.options.from;c(this,"beforeUpdate");this.update&&this.update(e);c(this,"afterUpdate")}}}();this.event("beforeStart");this.options.sync||Effect.Queues.get(Object.isString(this.options.queue)?"global":
this.options.queue.scope).add(this)},loop:function(b){if(b>=this.startOn)if(b>=this.finishOn){this.render(1);this.cancel();this.event("beforeFinish");this.finish&&this.finish();this.event("afterFinish")}else{b=(b-this.startOn)/this.totalTime;var c=(b*this.totalFrames).round();if(c>this.currentFrame){this.render(b);this.currentFrame=c}}},cancel:function(){this.options.sync||Effect.Queues.get(Object.isString(this.options.queue)?"global":this.options.queue.scope).remove(this);this.state="finished"},
event:function(b){this.options[b+"Internal"]&&this.options[b+"Internal"](this);this.options[b]&&this.options[b](this)},inspect:function(){var b=$H();for(property in this)Object.isFunction(this[property])||b.set(property,this[property]);return"#<Effect:"+b.inspect()+",options:"+$H(this.options).inspect()+">"}});
Effect.Parallel=Class.create(Effect.Base,{initialize:function(b,c){this.effects=b||[];this.start(c)},update:function(b){this.effects.invoke("render",b)},finish:function(b){this.effects.each(function(c){c.render(1);c.cancel();c.event("beforeFinish");c.finish&&c.finish(b);c.event("afterFinish")})}});
Effect.Tween=Class.create(Effect.Base,{initialize:function(b,c,e){b=Object.isString(b)?$(b):b;var f=$A(arguments),g=f.last();f=f.length==5?f[3]:null;this.method=Object.isFunction(g)?g.bind(b):Object.isFunction(b[g])?b[g].bind(b):function(j){b[g]=j};this.start(Object.extend({from:c,to:e},f||{}))},update:function(b){this.method(b)}});Effect.Event=Class.create(Effect.Base,{initialize:function(b){this.start(Object.extend({duration:0},b||{}))},update:Prototype.emptyFunction});
Effect.Opacity=Class.create(Effect.Base,{initialize:function(b,c){this.element=$(b);if(!this.element)throw Effect._elementDoesNotExistError;Prototype.Browser.IE&&!this.element.currentStyle.hasLayout&&this.element.setStyle({zoom:1});this.start(Object.extend({from:this.element.getOpacity()||0,to:1},c||{}))},update:function(b){this.element.setOpacity(b)}});
Effect.Move=Class.create(Effect.Base,{initialize:function(b,c){this.element=$(b);if(!this.element)throw Effect._elementDoesNotExistError;this.start(Object.extend({x:0,y:0,mode:"relative"},c||{}))},setup:function(){this.element.makePositioned();this.originalLeft=parseFloat(this.element.getStyle("left")||"0");this.originalTop=parseFloat(this.element.getStyle("top")||"0");if(this.options.mode=="absolute"){this.options.x-=this.originalLeft;this.options.y-=this.originalTop}},update:function(b){this.element.setStyle({left:(this.options.x*
b+this.originalLeft).round()+"px",top:(this.options.y*b+this.originalTop).round()+"px"})}});Effect.MoveBy=function(b,c,e,f){return new Effect.Move(b,Object.extend({x:e,y:c},f||{}))};
Effect.Scale=Class.create(Effect.Base,{initialize:function(b,c,e){this.element=$(b);if(!this.element)throw Effect._elementDoesNotExistError;this.start(Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:c},e||{}))},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle("position");this.originalStyle={};["top","left","width","height","fontSize"].each(function(c){this.originalStyle[c]=
this.element.style[c]}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var b=this.element.getStyle("font-size")||"100%";["em","px","%","pt"].each(function(c){if(b.indexOf(c)>0){this.fontSize=parseFloat(b);this.fontSizeType=c}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=="box")this.dims=[this.element.offsetHeight,this.element.offsetWidth];if(/^content/.test(this.options.scaleMode))this.dims=
[this.element.scrollHeight,this.element.scrollWidth];if(!this.dims)this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth]},update:function(b){b=this.options.scaleFrom/100+this.factor*b;this.options.scaleContent&&this.fontSize&&this.element.setStyle({fontSize:this.fontSize*b+this.fontSizeType});this.setDimensions(this.dims[0]*b,this.dims[1]*b)},finish:function(){this.restoreAfterFinish&&this.element.setStyle(this.originalStyle)},setDimensions:function(b,c){var e={};
if(this.options.scaleX)e.width=c.round()+"px";if(this.options.scaleY)e.height=b.round()+"px";if(this.options.scaleFromCenter){b=(b-this.dims[0])/2;c=(c-this.dims[1])/2;if(this.elementPositioning=="absolute"){if(this.options.scaleY)e.top=this.originalTop-b+"px";if(this.options.scaleX)e.left=this.originalLeft-c+"px"}else{if(this.options.scaleY)e.top=-b+"px";if(this.options.scaleX)e.left=-c+"px"}}this.element.setStyle(e)}});
Effect.Highlight=Class.create(Effect.Base,{initialize:function(b,c){this.element=$(b);if(!this.element)throw Effect._elementDoesNotExistError;this.start(Object.extend({startcolor:"#ffff99"},c||{}))},setup:function(){if(this.element.getStyle("display")=="none")this.cancel();else{this.oldStyle={};if(!this.options.keepBackgroundImage){this.oldStyle.backgroundImage=this.element.getStyle("background-image");this.element.setStyle({backgroundImage:"none"})}if(!this.options.endcolor)this.options.endcolor=
this.element.getStyle("background-color").parseColor("#ffffff");if(!this.options.restorecolor)this.options.restorecolor=this.element.getStyle("background-color");this._base=$R(0,2).map(function(b){return parseInt(this.options.startcolor.slice(b*2+1,b*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(b){return parseInt(this.options.endcolor.slice(b*2+1,b*2+3),16)-this._base[b]}.bind(this))}},update:function(b){this.element.setStyle({backgroundColor:$R(0,2).inject("#",function(c,e,f){return c+
(this._base[f]+this._delta[f]*b).round().toColorPart()}.bind(this))})},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}))}});Effect.ScrollTo=function(b,c){c=c||{};var e=document.viewport.getScrollOffsets();b=$(b).cumulativeOffset();if(c.offset)b[1]+=c.offset;return new Effect.Tween(null,e.top,b[1],c,function(f){scrollTo(e.left,f.round())})};
Effect.Fade=function(b,c){b=$(b);var e=b.getInlineOpacity();c=Object.extend({from:b.getOpacity()||1,to:0,afterFinishInternal:function(f){f.options.to==0&&f.element.hide().setStyle({opacity:e})}},c||{});return new Effect.Opacity(b,c)};
Effect.Appear=function(b,c){b=$(b);c=Object.extend({from:b.getStyle("display")=="none"?0:b.getOpacity()||0,to:1,afterFinishInternal:function(e){e.element.forceRerendering()},beforeSetup:function(e){e.element.setOpacity(e.options.from).show()}},c||{});return new Effect.Opacity(b,c)};
Effect.Puff=function(b,c){b=$(b);var e={opacity:b.getInlineOpacity(),position:b.getStyle("position"),top:b.style.top,left:b.style.left,width:b.style.width,height:b.style.height};return new Effect.Parallel([new Effect.Scale(b,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(b,{sync:true,to:0})],Object.extend({duration:1,beforeSetupInternal:function(f){Position.absolutize(f.effects[0].element)},afterFinishInternal:function(f){f.effects[0].element.hide().setStyle(e)}},
c||{}))};
Effect.SuperPuff=function(b,c){b=$(b);var e={opacity:b.getInlineOpacity(),position:b.getStyle("position"),top:b.style.top,left:b.style.left,width:b.style.width,height:b.style.height,display:b.style.display};return new Effect.Parallel([new Effect.Scale(b,4E3,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(b,{sync:true,to:0})],Object.extend({duration:1,beforeSetupInternal:function(f){Position.absolutize(f.effects[0].element)},afterFinishInternal:function(f){f.effects[0].element.hide().setStyle(e)}},c||
{}))};Effect.BlindUp=function(b,c){b=$(b);b.makeClipping();return new Effect.Scale(b,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(e){e.element.hide().undoClipping()}},c||{}))};
Effect.BlindDown=function(b,c){b=$(b);var e=b.getDimensions();return new Effect.Scale(b,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:e.height,originalWidth:e.width},restoreAfterFinish:true,afterSetup:function(f){f.element.makeClipping().setStyle({height:"0px"}).show()},afterFinishInternal:function(f){f.element.undoClipping()}},c||{}))};
Effect.SwitchOff=function(b,c){b=$(b);var e=b.getInlineOpacity();return new Effect.Appear(b,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(f){new Effect.Scale(f.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(g){g.element.makePositioned().makeClipping()},afterFinishInternal:function(g){g.element.hide().undoClipping().undoPositioned().setStyle({opacity:e})}})}},c||{}))};
Effect.DropOut=function(b,c){b=$(b);var e={top:b.getStyle("top"),left:b.getStyle("left"),opacity:b.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(b,{x:0,y:100,sync:true}),new Effect.Opacity(b,{sync:true,to:0})],Object.extend({duration:0.5,beforeSetup:function(f){f.effects[0].element.makePositioned()},afterFinishInternal:function(f){f.effects[0].element.hide().undoPositioned().setStyle(e)}},c||{}))};
Effect.Shake=function(b,c){b=$(b);c=Object.extend({distance:20,duration:0.5},c||{});var e=parseFloat(c.distance),f=parseFloat(c.duration)/10,g={top:b.getStyle("top"),left:b.getStyle("left")};return new Effect.Move(b,{x:e,y:0,duration:f,afterFinishInternal:function(j){new Effect.Move(j.element,{x:-e*2,y:0,duration:f*2,afterFinishInternal:function(k){new Effect.Move(k.element,{x:e*2,y:0,duration:f*2,afterFinishInternal:function(l){new Effect.Move(l.element,{x:-e*2,y:0,duration:f*2,afterFinishInternal:function(n){new Effect.Move(n.element,
{x:e*2,y:0,duration:f*2,afterFinishInternal:function(p){new Effect.Move(p.element,{x:-e,y:0,duration:f,afterFinishInternal:function(q){q.element.undoPositioned().setStyle(g)}})}})}})}})}})}})};
Effect.SlideDown=function(b,c){b=$(b).cleanWhitespace();var e=b.down().getStyle("bottom"),f=b.getDimensions();return new Effect.Scale(b,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:f.height,originalWidth:f.width},restoreAfterFinish:true,afterSetup:function(g){g.element.makePositioned();g.element.down().makePositioned();window.opera&&g.element.setStyle({top:""});g.element.makeClipping().setStyle({height:"0px"}).show()},afterUpdateInternal:function(g){g.element.down().setStyle({bottom:g.dims[0]-
g.element.clientHeight+"px"})},afterFinishInternal:function(g){g.element.undoClipping().undoPositioned();g.element.down().undoPositioned().setStyle({bottom:e})}},c||{}))};
Effect.SlideUp=function(b,c){b=$(b).cleanWhitespace();var e=b.down().getStyle("bottom"),f=b.getDimensions();return new Effect.Scale(b,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,scaleMode:{originalHeight:f.height,originalWidth:f.width},restoreAfterFinish:true,afterSetup:function(g){g.element.makePositioned();g.element.down().makePositioned();window.opera&&g.element.setStyle({top:""});g.element.makeClipping().show()},afterUpdateInternal:function(g){g.element.down().setStyle({bottom:g.dims[0]-
g.element.clientHeight+"px"})},afterFinishInternal:function(g){g.element.hide().undoClipping().undoPositioned();g.element.down().undoPositioned().setStyle({bottom:e})}},c||{}))};Effect.Squish=function(b){return new Effect.Scale(b,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(c){c.element.makeClipping()},afterFinishInternal:function(c){c.element.hide().undoClipping()}})};
Effect.Grow=function(b,c){b=$(b);var e=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},c||{}),f={top:b.style.top,left:b.style.left,height:b.style.height,width:b.style.width,opacity:b.getInlineOpacity()},g=b.getDimensions(),j,k,l,n;switch(e.direction){case "top-left":j=k=l=n=0;break;case "top-right":j=g.width;k=n=0;l=-g.width;break;case "bottom-left":j=l=0;k=g.height;n=-g.height;break;
case "bottom-right":j=g.width;k=g.height;l=-g.width;n=-g.height;break;case "center":j=g.width/2;k=g.height/2;l=-g.width/2;n=-g.height/2;break}return new Effect.Move(b,{x:j,y:k,duration:0.01,beforeSetup:function(p){p.element.hide().makeClipping().makePositioned()},afterFinishInternal:function(p){new Effect.Parallel([new Effect.Opacity(p.element,{sync:true,to:1,from:0,transition:e.opacityTransition}),new Effect.Move(p.element,{x:l,y:n,sync:true,transition:e.moveTransition}),new Effect.Scale(p.element,
100,{scaleMode:{originalHeight:g.height,originalWidth:g.width},sync:true,scaleFrom:window.opera?1:0,transition:e.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(q){q.effects[0].element.setStyle({height:"0px"}).show()},afterFinishInternal:function(q){q.effects[0].element.undoClipping().undoPositioned().setStyle(f)}},e))}})};
Effect.Shrink=function(b,c){b=$(b);c=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},c||{});var e={top:b.style.top,left:b.style.left,height:b.style.height,width:b.style.width,opacity:b.getInlineOpacity()},f=b.getDimensions(),g,j;switch(c.direction){case "top-left":g=j=0;break;case "top-right":g=f.width;j=0;break;case "bottom-left":g=0;j=f.height;break;case "bottom-right":g=f.width;j=
f.height;break;case "center":g=f.width/2;j=f.height/2;break}return new Effect.Parallel([new Effect.Opacity(b,{sync:true,to:0,from:1,transition:c.opacityTransition}),new Effect.Scale(b,window.opera?1:0,{sync:true,transition:c.scaleTransition,restoreAfterFinish:true}),new Effect.Move(b,{x:g,y:j,sync:true,transition:c.moveTransition})],Object.extend({beforeStartInternal:function(k){k.effects[0].element.makePositioned().makeClipping()},afterFinishInternal:function(k){k.effects[0].element.hide().undoClipping().undoPositioned().setStyle(e)}},
c))};Effect.Pulsate=function(b,c){b=$(b);var e=c||{},f=b.getInlineOpacity(),g=e.transition||Effect.Transitions.linear;return new Effect.Opacity(b,Object.extend(Object.extend({duration:2,from:0,afterFinishInternal:function(j){j.element.setStyle({opacity:f})}},e),{transition:function(j){return 1-g(-Math.cos(j*(e.pulses||5)*2*Math.PI)/2+0.5)}}))};
Effect.Fold=function(b,c){b=$(b);var e={top:b.style.top,left:b.style.left,width:b.style.width,height:b.style.height};b.makeClipping();return new Effect.Scale(b,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(){new Effect.Scale(b,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(f){f.element.hide().undoClipping().setStyle(e)}})}},c||{}))};
Effect.Morph=Class.create(Effect.Base,{initialize:function(b,c){this.element=$(b);if(!this.element)throw Effect._elementDoesNotExistError;b=Object.extend({style:{}},c||{});if(Object.isString(b.style))if(b.style.include(":"))this.style=b.style.parseStyle();else{this.element.addClassName(b.style);this.style=$H(this.element.getStyles());this.element.removeClassName(b.style);var e=this.element.getStyles();this.style=this.style.reject(function(f){return f.value==e[f.key]});b.afterFinishInternal=function(f){f.element.addClassName(f.options.style);
f.transforms.each(function(g){f.element.style[g.style]=""})}}else this.style=$H(b.style);this.start(b)},setup:function(){function b(c){if(!c||["rgba(0, 0, 0, 0)","transparent"].include(c))c="#ffffff";c=c.parseColor();return $R(0,2).map(function(e){return parseInt(c.slice(e*2+1,e*2+3),16)})}this.transforms=this.style.map(function(c){var e=c[0];c=c[1];var f=null;if(c.parseColor("#zzzzzz")!="#zzzzzz"){c=c.parseColor();f="color"}else if(e=="opacity"){c=parseFloat(c);Prototype.Browser.IE&&!this.element.currentStyle.hasLayout&&
this.element.setStyle({zoom:1})}else if(Element.CSS_LENGTH.test(c)){f=c.match(/^([\+\-]?[0-9\.]+)(.*)$/);c=parseFloat(f[1]);f=f.length==3?f[2]:null}var g=this.element.getStyle(e);return{style:e.camelize(),originalValue:f=="color"?b(g):parseFloat(g||0),targetValue:f=="color"?b(c):c,unit:f}}.bind(this)).reject(function(c){return c.originalValue==c.targetValue||c.unit!="color"&&(isNaN(c.originalValue)||isNaN(c.targetValue))})},update:function(b){for(var c={},e,f=this.transforms.length;f--;)c[(e=this.transforms[f]).style]=
e.unit=="color"?"#"+Math.round(e.originalValue[0]+(e.targetValue[0]-e.originalValue[0])*b).toColorPart()+Math.round(e.originalValue[1]+(e.targetValue[1]-e.originalValue[1])*b).toColorPart()+Math.round(e.originalValue[2]+(e.targetValue[2]-e.originalValue[2])*b).toColorPart():(e.originalValue+(e.targetValue-e.originalValue)*b).toFixed(3)+(e.unit===null?"":e.unit);this.element.setStyle(c,true)}});
Effect.Transform=Class.create({initialize:function(b,c){this.tracks=[];this.options=c||{};this.addTracks(b)},addTracks:function(b){b.each(function(c){c=$H(c);var e=c.values().first();this.tracks.push($H({ids:c.keys().first(),effect:Effect.Morph,options:{style:e}}))}.bind(this));return this},play:function(){return new Effect.Parallel(this.tracks.map(function(b){var c=b.get("ids"),e=b.get("effect"),f=b.get("options");return[$(c)||$$(c)].flatten().map(function(g){return new e(g,Object.extend({sync:true},
f))})}).flatten(),this.options)}});Element.CSS_PROPERTIES=$w("backgroundColor backgroundPosition borderBottomColor borderBottomStyle borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth borderRightColor borderRightStyle borderRightWidth borderSpacing borderTopColor borderTopStyle borderTopWidth bottom clip color fontSize fontWeight height left letterSpacing lineHeight marginBottom marginLeft marginRight marginTop markerOffset maxHeight maxWidth minHeight minWidth opacity outlineColor outlineOffset outlineWidth paddingBottom paddingLeft paddingRight paddingTop right textIndent top width wordSpacing zIndex");
Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;String.__parseStyleElement=document.createElement("div");
String.prototype.parseStyle=function(){var b,c=$H();if(Prototype.Browser.WebKit)b=(new Element("div",{style:this})).style;else{String.__parseStyleElement.innerHTML='<div style="'+this+'"></div>';b=String.__parseStyleElement.childNodes[0].style}Element.CSS_PROPERTIES.each(function(e){b[e]&&c.set(e,b[e])});Prototype.Browser.IE&&this.include("opacity")&&c.set("opacity",this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);return c};
Element.getStyles=document.defaultView&&document.defaultView.getComputedStyle?function(b){var c=document.defaultView.getComputedStyle($(b),null);return Element.CSS_PROPERTIES.inject({},function(e,f){e[f]=c[f];return e})}:function(b){b=$(b);var c=b.currentStyle,e;e=Element.CSS_PROPERTIES.inject({},function(f,g){f[g]=c[g];return f});if(!e.opacity)e.opacity=b.getOpacity();return e};
Effect.Methods={morph:function(b,c,e){b=$(b);new Effect.Morph(b,Object.extend({style:c},e||{}));return b},visualEffect:function(b,c,e){b=$(b);c=c.dasherize().camelize();c=c.charAt(0).toUpperCase()+c.substring(1);new Effect[c](b,e);return b},highlight:function(b,c){b=$(b);new Effect.Highlight(b,c);return b}};
$w("fade appear grow shrink fold blindUp blindDown slideUp slideDown pulsate shake puff squish switchOff dropOut").each(function(b){Effect.Methods[b]=function(c,e){c=$(c);Effect[b.charAt(0).toUpperCase()+b.substring(1)](c,e);return c}});$w("getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles").each(function(b){Effect.Methods[b]=Element[b]});Element.addMethods(Effect.Methods);
Proj4js={defaultDatum:"WGS84",transform:function(b,c,e){if(!b.readyToUse||!c.readyToUse){this.reportError("Proj4js initialization for "+b.srsCode+" not yet complete");return e}if(b.srsProjNumber=="900913"&&c.datumCode!="WGS84"||c.srsProjNumber=="900913"&&b.datumCode!="WGS84"){var f=Proj4js.WGS84;this.transform(b,f,e);b=f}if(b.projName=="longlat"){e.x*=Proj4js.common.D2R;e.y*=Proj4js.common.D2R}else{if(b.to_meter){e.x*=b.to_meter;e.y*=b.to_meter}b.inverse(e)}if(b.from_greenwich)e.x+=b.from_greenwich;
e=this.datum_transform(b.datum,c.datum,e);if(c.from_greenwich)e.x-=c.from_greenwich;if(c.projName=="longlat"){e.x*=Proj4js.common.R2D;e.y*=Proj4js.common.R2D}else{c.forward(e);if(c.to_meter){e.x/=c.to_meter;e.y/=c.to_meter}}return e},datum_transform:function(b,c,e){if(b.compare_datums(c))return e;if(b.datum_type==Proj4js.common.PJD_NODATUM||c.datum_type==Proj4js.common.PJD_NODATUM)return e;b.datum_type==Proj4js.common.PJD_GRIDSHIFT&&alert("ERROR: Grid shift transformations are not implemented yet.");
c.datum_type==Proj4js.common.PJD_GRIDSHIFT&&alert("ERROR: Grid shift transformations are not implemented yet.");if(b.es!=c.es||b.a!=c.a||b.datum_type==Proj4js.common.PJD_3PARAM||b.datum_type==Proj4js.common.PJD_7PARAM||c.datum_type==Proj4js.common.PJD_3PARAM||c.datum_type==Proj4js.common.PJD_7PARAM){b.geodetic_to_geocentric(e);if(b.datum_type==Proj4js.common.PJD_3PARAM||b.datum_type==Proj4js.common.PJD_7PARAM)b.geocentric_to_wgs84(e);if(c.datum_type==Proj4js.common.PJD_3PARAM||c.datum_type==Proj4js.common.PJD_7PARAM)c.geocentric_from_wgs84(e);
c.geocentric_to_geodetic(e)}c.datum_type==Proj4js.common.PJD_GRIDSHIFT&&alert("ERROR: Grid shift transformations are not implemented yet.");return e},reportError:function(){},extend:function(b,c){b=b||{};if(c)for(var e in c){var f=c[e];if(f!==undefined)b[e]=f}return b},Class:function(){for(var b=function(){this.initialize.apply(this,arguments)},c={},e,f=0;f<arguments.length;++f){e=typeof arguments[f]=="function"?arguments[f].prototype:arguments[f];Proj4js.extend(c,e)}b.prototype=c;return b},bind:function(b,
c){var e=Array.prototype.slice.apply(arguments,[2]);return function(){var f=e.concat(Array.prototype.slice.apply(arguments,[0]));return b.apply(c,f)}},scriptName:"proj4js.js",defsLookupService:"http://spatialreference.org/ref",libPath:null,getScriptLocation:function(){if(this.libPath)return this.libPath;for(var b=this.scriptName,c=b.length,e=document.getElementsByTagName("script"),f=0;f<e.length;f++){var g=e[f].getAttribute("src");if(g){var j=g.lastIndexOf(b);if(j>-1&&j+c==g.length){this.libPath=
g.slice(0,-c);break}}}return this.libPath||""},loadScript:function(b,c,e,f){var g=document.createElement("script");g.defer=false;g.type="text/javascript";g.id=b;g.src=b;g.onload=c;g.onerror=e;g.loadCheck=f;if(/MSIE/.test(navigator.userAgent))g.onreadystatechange=this.checkReadyState;document.getElementsByTagName("head")[0].appendChild(g)},checkReadyState:function(){if(this.readyState=="loaded")this.loadCheck()?this.onload():this.onerror()}};
Proj4js.Proj=Proj4js.Class({readyToUse:false,title:null,projName:null,units:null,datum:null,x0:0,y0:0,initialize:function(b){this.srsCodeInput=b;if(b.indexOf("urn:")==0){var c=b.split(":");if((c[1]=="ogc"||c[1]=="x-ogc")&&c[2]=="def"&&c[3]=="crs")b=c[4]+":"+c[c.length-1]}else if(b.indexOf("http://")==0){c=b.split("#");if(c[0].match(/epsg.org/))b="EPSG:"+c[1];else if(c[0].match(/RIG.xml/))b="IGNF:"+c[1]}this.srsCode=b.toUpperCase();if(this.srsCode.indexOf("EPSG")==0){this.srsCode=this.srsCode;this.srsAuth=
"epsg";this.srsProjNumber=this.srsCode.substring(5)}else if(this.srsCode.indexOf("IGNF")==0){this.srsCode=this.srsCode;this.srsAuth="IGNF";this.srsProjNumber=this.srsCode.substring(5)}else if(this.srsCode.indexOf("CRS")==0){this.srsCode=this.srsCode;this.srsAuth="CRS";this.srsProjNumber=this.srsCode.substring(4)}else{this.srsAuth="";this.srsProjNumber=this.srsCode}this.loadProjDefinition()},loadProjDefinition:function(){if(Proj4js.defs[this.srsCode])this.defsLoaded();else{var b=Proj4js.getScriptLocation()+
"defs/"+this.srsAuth.toUpperCase()+this.srsProjNumber+".js";Proj4js.loadScript(b,Proj4js.bind(this.defsLoaded,this),Proj4js.bind(this.loadFromService,this),Proj4js.bind(this.checkDefsLoaded,this))}},loadFromService:function(){Proj4js.loadScript(Proj4js.defsLookupService+"/"+this.srsAuth+"/"+this.srsProjNumber+"/proj4js/",Proj4js.bind(this.defsLoaded,this),Proj4js.bind(this.defsFailed,this),Proj4js.bind(this.checkDefsLoaded,this))},defsLoaded:function(){this.parseDefs();this.loadProjCode(this.projName)},
checkDefsLoaded:function(){return Proj4js.defs[this.srsCode]?true:false},defsFailed:function(){Proj4js.reportError("failed to load projection definition for: "+this.srsCode);Proj4js.defs[this.srsCode]=Proj4js.defs.WGS84;this.defsLoaded()},loadProjCode:function(b){if(Proj4js.Proj[b])this.initTransforms();else{var c=Proj4js.getScriptLocation()+"projCode/"+b+".js";Proj4js.loadScript(c,Proj4js.bind(this.loadProjCodeSuccess,this,b),Proj4js.bind(this.loadProjCodeFailure,this,b),Proj4js.bind(this.checkCodeLoaded,
this,b))}},loadProjCodeSuccess:function(b){Proj4js.Proj[b].dependsOn?this.loadProjCode(Proj4js.Proj[b].dependsOn):this.initTransforms()},loadProjCodeFailure:function(b){Proj4js.reportError("failed to find projection file for: "+b)},checkCodeLoaded:function(b){return Proj4js.Proj[b]?true:false},initTransforms:function(){Proj4js.extend(this,Proj4js.Proj[this.projName]);this.init();this.readyToUse=true},parseDefs:function(){this.defData=Proj4js.defs[this.srsCode];var b,c;if(this.defData){for(var e=this.defData.split("+"),
f=0;f<e.length;f++){c=e[f].split("=");b=c[0].toLowerCase();c=c[1];switch(b.replace(/\s/gi,"")){case "":break;case "title":this.title=c;break;case "proj":this.projName=c.replace(/\s/gi,"");break;case "units":this.units=c.replace(/\s/gi,"");break;case "datum":this.datumCode=c.replace(/\s/gi,"");break;case "nadgrids":this.nagrids=c.replace(/\s/gi,"");break;case "ellps":this.ellps=c.replace(/\s/gi,"");break;case "a":this.a=parseFloat(c);break;case "b":this.b=parseFloat(c);break;case "rf":this.rf=parseFloat(c);
break;case "lat_0":this.lat0=c*Proj4js.common.D2R;break;case "lat_1":this.lat1=c*Proj4js.common.D2R;break;case "lat_2":this.lat2=c*Proj4js.common.D2R;break;case "lat_ts":this.lat_ts=c*Proj4js.common.D2R;break;case "lon_0":this.long0=c*Proj4js.common.D2R;break;case "alpha":this.alpha=parseFloat(c)*Proj4js.common.D2R;break;case "lonc":this.longc=c*Proj4js.common.D2R;break;case "x_0":this.x0=parseFloat(c);break;case "y_0":this.y0=parseFloat(c);break;case "k_0":this.k0=parseFloat(c);break;case "k":this.k0=
parseFloat(c);break;case "r_a":this.R_A=true;break;case "zone":this.zone=parseInt(c);break;case "south":this.utmSouth=true;break;case "towgs84":this.datum_params=c.split(",");break;case "to_meter":this.to_meter=parseFloat(c);break;case "from_greenwich":this.from_greenwich=c*Proj4js.common.D2R;break;case "pm":c=c.replace(/\s/gi,"");this.from_greenwich=Proj4js.PrimeMeridian[c]?Proj4js.PrimeMeridian[c]:parseFloat(c);this.from_greenwich*=Proj4js.common.D2R;break;case "no_defs":break;default:}}this.deriveConstants()}},
deriveConstants:function(){if(this.nagrids=="@null")this.datumCode="none";if(this.datumCode&&this.datumCode!="none"){var b=Proj4js.Datum[this.datumCode];if(b){this.datum_params=b.towgs84?b.towgs84.split(","):null;this.ellps=b.ellipse;this.datumName=b.datumName?b.datumName:this.datumCode}}this.a||Proj4js.extend(this,Proj4js.Ellipsoid[this.ellps]?Proj4js.Ellipsoid[this.ellps]:Proj4js.Ellipsoid.WGS84);if(this.rf&&!this.b)this.b=(1-1/this.rf)*this.a;if(Math.abs(this.a-this.b)<Proj4js.common.EPSLN){this.sphere=
true;this.b=this.a}this.a2=this.a*this.a;this.b2=this.b*this.b;this.es=(this.a2-this.b2)/this.a2;this.e=Math.sqrt(this.es);if(this.R_A){this.a*=1-this.es*(Proj4js.common.SIXTH+this.es*(Proj4js.common.RA4+this.es*Proj4js.common.RA6));this.a2=this.a*this.a;this.b2=this.b*this.b;this.es=0}this.ep2=(this.a2-this.b2)/this.b2;if(!this.k0)this.k0=1;this.datum=new Proj4js.datum(this)}});Proj4js.Proj.longlat={init:function(){},forward:function(b){return b},inverse:function(b){return b}};
Proj4js.defs={WGS84:"+title=long/lat:WGS84 +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees","EPSG:4326":"+title=long/lat:WGS84 +proj=longlat +a=6378137.0 +b=6356752.31424518 +ellps=WGS84 +datum=WGS84 +units=degrees","EPSG:4269":"+title=long/lat:NAD83 +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees","EPSG:3785":"+title= Google Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs"};
Proj4js.defs.GOOGLE=Proj4js.defs["EPSG:3785"];Proj4js.defs["EPSG:900913"]=Proj4js.defs["EPSG:3785"];Proj4js.defs["EPSG:102113"]=Proj4js.defs["EPSG:3785"];
Proj4js.common={PI:3.141592653589793,HALF_PI:1.5707963267948966,TWO_PI:6.283185307179586,FORTPI:0.7853981633974483,R2D:57.29577951308232,D2R:0.017453292519943295,SEC_TO_RAD:4.84813681109536E-6,EPSLN:1.0E-10,MAX_ITER:20,COS_67P5:0.3826834323650898,AD_C:1.0026,PJD_UNKNOWN:0,PJD_3PARAM:1,PJD_7PARAM:2,PJD_GRIDSHIFT:3,PJD_WGS84:4,PJD_NODATUM:5,SRS_WGS84_SEMIMAJOR:6378137,SIXTH:0.16666666666666666,RA4:0.04722222222222222,RA6:0.022156084656084655,RV4:0.06944444444444445,RV6:0.04243827160493827,msfnz:function(b,
c,e){b=b*c;return e/Math.sqrt(1-b*b)},tsfnz:function(b,c,e){e=b*e;e=Math.pow((1-e)/(1+e),0.5*b);return Math.tan(0.5*(this.HALF_PI-c))/e},phi2z:function(b,c){var e=0.5*b,f,g=this.HALF_PI-2*Math.atan(c);for(i=0;i<=15;i++){f=b*Math.sin(g);f=this.HALF_PI-2*Math.atan(c*Math.pow((1-f)/(1+f),e))-g;g+=f;if(Math.abs(f)<=1.0E-10)return g}alert("phi2z has NoConvergence");return-9999},qsfnz:function(b,c){var e;if(b>1.0E-7){e=b*c;return(1-b*b)*(c/(1-e*e)-0.5/b*Math.log((1-e)/(1+e)))}else return 2*c},asinz:function(b){if(Math.abs(b)>
1)b=b>1?1:-1;return Math.asin(b)},e0fn:function(b){return 1-0.25*b*(1+b/16*(3+1.25*b))},e1fn:function(b){return 0.375*b*(1+0.25*b*(1+0.46875*b))},e2fn:function(b){return 0.05859375*b*b*(1+0.75*b)},e3fn:function(b){return b*b*b*(35/3072)},mlfn:function(b,c,e,f,g){return b*g-c*Math.sin(2*g)+e*Math.sin(4*g)-f*Math.sin(6*g)},srat:function(b,c){return Math.pow((1-b)/(1+b),c)},sign:function(b){return b<0?-1:1},adjust_lon:function(b){return b=Math.abs(b)<this.PI?b:b-this.sign(b)*this.TWO_PI},adjust_lat:function(b){return b=
Math.abs(b)<this.HALF_PI?b:b-this.sign(b)*this.PI},latiso:function(b,c,e){if(Math.abs(c)>this.HALF_PI)return+Number.NaN;if(c==this.HALF_PI)return Number.POSITIVE_INFINITY;if(c==-1*this.HALF_PI)return-1*Number.POSITIVE_INFINITY;e=b*e;return Math.log(Math.tan((this.HALF_PI+c)/2))+b*Math.log((1-e)/(1+e))/2},fL:function(b,c){return 2*Math.atan(b*Math.exp(c))-this.HALF_PI},invlatiso:function(b,c){var e=this.fL(1,c),f=0,g=0;do{f=e;g=b*Math.sin(f);e=this.fL(Math.exp(b*Math.log((1+g)/(1-g))/2),c)}while(Math.abs(e-
f)>1.0E-12);return e},sinh:function(b){b=Math.exp(b);return b=(b-1/b)/2},cosh:function(b){b=Math.exp(b);return b=(b+1/b)/2},tanh:function(b){b=Math.exp(b);return b=(b-1/b)/(b+1/b)},asinh:function(b){return(b>=0?1:-1)*Math.log(Math.abs(b)+Math.sqrt(b*b+1))},acosh:function(b){return 2*Math.log(Math.sqrt((b+1)/2)+Math.sqrt((b-1)/2))},atanh:function(b){return Math.log((b-1)/(b+1))/2},gN:function(b,c,e){c=c*e;return b/Math.sqrt(1-c*c)}};
Proj4js.datum=Proj4js.Class({initialize:function(b){this.datum_type=Proj4js.common.PJD_WGS84;if(b.datumCode&&b.datumCode=="none")this.datum_type=Proj4js.common.PJD_NODATUM;if(b&&b.datum_params){for(var c=0;c<b.datum_params.length;c++)b.datum_params[c]=parseFloat(b.datum_params[c]);if(b.datum_params[0]!=0||b.datum_params[1]!=0||b.datum_params[2]!=0)this.datum_type=Proj4js.common.PJD_3PARAM;if(b.datum_params.length>3)if(b.datum_params[3]!=0||b.datum_params[4]!=0||b.datum_params[5]!=0||b.datum_params[6]!=
0){this.datum_type=Proj4js.common.PJD_7PARAM;b.datum_params[3]*=Proj4js.common.SEC_TO_RAD;b.datum_params[4]*=Proj4js.common.SEC_TO_RAD;b.datum_params[5]*=Proj4js.common.SEC_TO_RAD;b.datum_params[6]=b.datum_params[6]/1E6+1}}if(b){this.a=b.a;this.b=b.b;this.es=b.es;this.ep2=b.ep2;this.datum_params=b.datum_params}},compare_datums:function(b){return this.datum_type!=b.datum_type?false:this.a!=b.a||Math.abs(this.es-b.es)>5.0E-11?false:this.datum_type==Proj4js.common.PJD_3PARAM?this.datum_params[0]==b.datum_params[0]&&
this.datum_params[1]==b.datum_params[1]&&this.datum_params[2]==b.datum_params[2]:this.datum_type==Proj4js.common.PJD_7PARAM?this.datum_params[0]==b.datum_params[0]&&this.datum_params[1]==b.datum_params[1]&&this.datum_params[2]==b.datum_params[2]&&this.datum_params[3]==b.datum_params[3]&&this.datum_params[4]==b.datum_params[4]&&this.datum_params[5]==b.datum_params[5]&&this.datum_params[6]==b.datum_params[6]:this.datum_type==Proj4js.common.PJD_GRIDSHIFT?strcmp(pj_param(this.params,"snadgrids").s,pj_param(b.params,
"snadgrids").s)==0:true},geodetic_to_geocentric:function(b){var c=b.x,e=b.y,f=b.z?b.z:0,g,j,k;if(e<-Proj4js.common.HALF_PI&&e>-1.001*Proj4js.common.HALF_PI)e=-Proj4js.common.HALF_PI;else if(e>Proj4js.common.HALF_PI&&e<1.001*Proj4js.common.HALF_PI)e=Proj4js.common.HALF_PI;else if(e<-Proj4js.common.HALF_PI||e>Proj4js.common.HALF_PI){Proj4js.reportError("geocent:lat out of range:"+e);return null}if(c>Proj4js.common.PI)c-=2*Proj4js.common.PI;j=Math.sin(e);k=Math.cos(e);g=this.a/Math.sqrt(1-this.es*j*
j);e=(g+f)*k*Math.cos(c);c=(g+f)*k*Math.sin(c);f=(g*(1-this.es)+f)*j;b.x=e;b.y=c;b.z=f;return 0},geocentric_to_geodetic:function(b){var c,e,f,g,j,k,l,n,p,q,u=b.x;f=b.y;var x=b.z?b.z:0;c=Math.sqrt(u*u+f*f);e=Math.sqrt(u*u+f*f+x*x);if(c/this.a<1.0E-12){u=0;if(e/this.a<1.0E-12)return}else u=Math.atan2(f,u);f=x/e;g=c/e;j=1/Math.sqrt(1-this.es*(2-this.es)*g*g);l=g*(1-this.es)*j;n=f*j;q=0;do{q++;k=this.a/Math.sqrt(1-this.es*n*n);e=c*l+x*n-k*(1-this.es*n*n);k=this.es*k/(k+e);j=1/Math.sqrt(1-k*(2-k)*g*g);
k=g*(1-k)*j;j=f*j;p=j*l-k*n;l=k;n=j}while(p*p>1.0E-24&&q<30);c=Math.atan(j/Math.abs(k));b.x=u;b.y=c;b.z=e;return b},geocentric_to_geodetic_noniter:function(b){var c=b.x,e=b.y,f=b.z?b.z:0,g,j,k,l,n;c=parseFloat(c);e=parseFloat(e);f=parseFloat(f);n=false;if(c!=0)g=Math.atan2(e,c);else if(e>0)g=Proj4js.common.HALF_PI;else if(e<0)g=-Proj4js.common.HALF_PI;else{n=true;g=0;if(f>0)j=Proj4js.common.HALF_PI;else if(f<0)j=-Proj4js.common.HALF_PI;else return}k=c*c+e*e;c=Math.sqrt(k);e=f*Proj4js.common.AD_C;
k=Math.sqrt(e*e+k);e=e/k;k=c/k;e=f+this.b*this.ep2*e*e*e;l=c-this.a*this.es*k*k*k;k=Math.sqrt(e*e+l*l);e=e/k;k=l/k;l=this.a/Math.sqrt(1-this.es*e*e);f=k>=Proj4js.common.COS_67P5?c/k-l:k<=-Proj4js.common.COS_67P5?c/-k-l:f/e+l*(this.es-1);if(n==false)j=Math.atan(e/k);b.x=g;b.y=j;b.z=f;return b},geocentric_to_wgs84:function(b){if(this.datum_type==Proj4js.common.PJD_3PARAM){b.x+=this.datum_params[0];b.y+=this.datum_params[1];b.z+=this.datum_params[2]}else if(this.datum_type==Proj4js.common.PJD_7PARAM){var c=
this.datum_params[3],e=this.datum_params[4],f=this.datum_params[5],g=this.datum_params[6],j=g*(f*b.x+b.y-c*b.z)+this.datum_params[1];c=g*(-e*b.x+c*b.y+b.z)+this.datum_params[2];b.x=g*(b.x-f*b.y+e*b.z)+this.datum_params[0];b.y=j;b.z=c}},geocentric_from_wgs84:function(b){if(this.datum_type==Proj4js.common.PJD_3PARAM){b.x-=this.datum_params[0];b.y-=this.datum_params[1];b.z-=this.datum_params[2]}else if(this.datum_type==Proj4js.common.PJD_7PARAM){var c=this.datum_params[3],e=this.datum_params[4],f=this.datum_params[5],
g=this.datum_params[6],j=(b.x-this.datum_params[0])/g,k=(b.y-this.datum_params[1])/g;g=(b.z-this.datum_params[2])/g;b.x=j+f*k-e*g;b.y=-f*j+k+c*g;b.z=e*j-c*k+g}}});
Proj4js.Point=Proj4js.Class({initialize:function(b,c,e){if(typeof b=="object"){this.x=b[0];this.y=b[1];this.z=b[2]||0}else if(typeof b=="string"){b=b.split(",");this.x=parseFloat(b[0]);this.y=parseFloat(b[1]);this.z=parseFloat(b[2])||0}else{this.x=b;this.y=c;this.z=e||0}},clone:function(){return new Proj4js.Point(this.x,this.y,this.z)},toString:function(){return"x="+this.x+",y="+this.y},toShortString:function(){return this.x+", "+this.y}});
Proj4js.PrimeMeridian={greenwich:0,lisbon:-9.131906111111,paris:2.337229166667,bogota:-74.080916666667,madrid:-3.687938888889,rome:12.452333333333,bern:7.439583333333,jakarta:106.807719444444,ferro:-17.666666666667,brussels:4.367975,stockholm:18.058277777778,athens:23.7163375,oslo:10.722916666667};
Proj4js.Ellipsoid={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563.396,b:6356256.91,ellipseName:"Airy 1830"},"APL4.":{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340.189,b:6356034.446,ellipseName:"Modified Airy"},
andrae:{a:6377104.43,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397.155,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483.865,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:6378206.4,b:6356583.8,ellipseName:"Clarke 1866"},clrk80:{a:6378249.145,rf:293.4663,ellipseName:"Clarke 1880 mod."},CPM:{a:6375738.7,rf:334.29,
ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:6378136.05,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276.345,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304.063,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301.243,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295.664,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298.556,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},
fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},
new_intl:{a:6378157.5,b:6356772.2,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:6356773.3205,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:6355834.8467,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS72:{a:6378135,rf:298.26,ellipseName:"WGS 72"},WGS84:{a:6378137,rf:298.257223563,ellipseName:"WGS 84"},
sphere:{a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}};
Proj4js.Datum={WGS84:{towgs84:"0,0,0",ellipse:"WGS84",datumName:"WGS84"},GGRS87:{towgs84:"-199.87,74.79,246.62",ellipse:"GRS80",datumName:"Greek_Geodetic_Reference_System_1987"},NAD83:{towgs84:"0,0,0",ellipse:"GRS80",datumName:"North_American_Datum_1983"},NAD27:{nadgrids:"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",ellipse:"clrk66",datumName:"North_American_Datum_1927"},potsdam:{towgs84:"606.0,23.0,413.0",ellipse:"bessel",datumName:"Potsdam Rauenberg 1950 DHDN"},carthage:{towgs84:"-263.0,6.0,431.0",
ellipse:"clark80",datumName:"Carthage 1934 Tunisia"},hermannskogel:{towgs84:"653.0,-212.0,449.0",ellipse:"bessel",datumName:"Hermannskogel"},ire65:{towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"mod_airy",datumName:"Ireland 1965"},nzgd49:{towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",ellipse:"intl",datumName:"New Zealand Geodetic Datum 1949"},OSGB36:{towgs84:"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",ellipse:"airy",datumName:"Airy 1830"}};
Proj4js.WGS84=new Proj4js.Proj("WGS84");Proj4js.Datum.OSB36=Proj4js.Datum.OSGB36;function includeJS(b){try{document.write('<script type="text/javascript" src="'+b+'"><\/script>')}catch(c){var e=document.createElement("script");e.type="text/javascript";e.src=b;document.getElementsByTagName("head")[0].appendChild(e)}}
function includeJSON(b,c,e,f){var g=createXHR();g.open("GET",b,true);g.onreadystatechange=function(){if(g.readyState==4)if(g.status!=404)try{var j=eval("("+g.responseText+")");f!=undefined?c[e](j,f):c[e](j)}catch(k){alert("includeJSON");alert(g.responseText);alert(k)}};g.send(null)}
function includeCSS(b){try{document.write('<link rel="stylesheet" type="text/css" href="'+b+'"/>')}catch(c){var e=document.createElement("link");e.type="text/css";e.rel="stylesheet";e.href=b;e.media="screen";document.getElementsByTagName("head")[0].appendChild(e)}}function getCurrentTime(){d=new Date;return d.getTime()}function computeDistance(b,c){return Math.abs(b-c)}function computeAngleDistance(b,c){b=Math.abs(b-c);return Math.min(b,360-b)}
function randomUUID(){for(var b=[],c=0;c<36;c++)b[c]=Math.floor(Math.random()*16);b[14]=4;b[19]=b[19]&3|8;for(c=0;c<36;c++)b[c]="0123456789ABCDEF"[b[c]];b[8]=b[13]=b[18]=b[23]="-";return b.join("")}function getEvent(b){if(b==undefined)return window.event;return b}function handleEvent(b,c){return function(e){e=e||window.event;b[c]!=undefined&&b[c](e,this)}}function stopEventPropagation(b){if(!b)b=window.event;b.cancelBubble=true;b.stopPropagation&&b.stopPropagation()}
function touchHandler(b){var c=b.changedTouches[0],e="";switch(b.type){case "touchstart":e="mousedown";break;case "touchmove":e="mousemove";break;case "touchend":e="mouseup";break;default:return}b=document.createEvent("MouseEvent");b.initMouseEvent(e,true,false,window,1,c.screenX,c.screenY,c.clientX,c.clientY,false,false,false,false,0,null);c.target.dispatchEvent(b)}function touchAndStopHandler(b){touchHandler(b);b.preventDefault();b.returnValue=false}
function addSupportForMobilePhoneEvents(b){try{b.addEventListener("touchstart",touchAndStopHandler,false);b.addEventListener("touchmove",touchAndStopHandler,false);b.addEventListener("touchend",touchAndStopHandler,false);b.addEventListener("touchcancel",touchAndStopHandler,false)}catch(c){}}function createXHR(){var b=false;try{b=new ActiveXObject("Msxml2.XMLHTTP")}catch(c){try{b=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){try{b=new XMLHttpRequest}catch(f){b=false}}}return b}
function setCookie(b,c){document.cookie=b+"="+escape(c)}function readCookie(b){b=b+"=";for(var c=document.cookie.split(";"),e=0;e<c.length;e++){for(var f=c[e];f.charAt(0)==" ";)f=f.substring(1,f.length);if(f.indexOf(b)==0)return f.substring(b.length,f.length)}return null}function switchid(b){hideallids();showdiv(b)}function hideallids(){for(var b=0;b<ids.length;b++)hidediv(ids[b])}
function hidediv(b){if(document.getElementById)document.getElementById(b).style.display="none";else if(document.layers)document.id.display="none";else document.all.id.style.display="none"}function showdiv(b){if(document.getElementById)document.getElementById(b).style.display="block";else if(document.layers)document.id.display="block";else document.all.id.style.display="block"}
function disableSelection(b){if(typeof b.onselectstart!="undefined")b.onselectstart=function(){return false};else if(typeof b.style.MozUserSelect!="undefined")b.style.MozUserSelect="none";else b.onmousedown=function(){return false};b.style.cursor="default"}function hideAddressBar(){window.scrollTo(0,1)}
function utf8_decode(b){var c=[],e=0,f=0,g=0,j=0,k=0;for(b+="";e<b.length;){g=b.charCodeAt(e);if(g<128){c[f++]=String.fromCharCode(g);e++}else if(g>191&&g<224){j=b.charCodeAt(e+1);c[f++]=String.fromCharCode((g&31)<<6|j&63);e+=2}else{j=b.charCodeAt(e+1);k=b.charCodeAt(e+2);c[f++]=String.fromCharCode((g&15)<<12|(j&63)<<6|k&63);e+=3}}return c.join("")}
var Behaviour={list:[],register:function(b){Behaviour.list.push(b)},start:function(){Behaviour.addLoadEvent(function(){Behaviour.apply()})},apply:function(){for(h=0;sheet=Behaviour.list[h];h++)for(selector in sheet)if(list=document.getElementsBySelector(selector))for(i=0;element=list[i];i++)sheet[selector](element)},addLoadEvent:function(b){var c=window.onload;window.onload=typeof window.onload!="function"?b:function(){c();b()}}};Behaviour.start();
function getAllChildren(b){return b.all?b.all:b.getElementsByTagName("*")}
document.getElementsBySelector=function(b){if(!document.getElementsByTagName)return[];b=b.split(" ");for(var c=new Array(document),e=0;e<b.length;e++){token=b[e].replace(/^\s+/,"").replace(/\s+$/,"");if(token.indexOf("#")>-1){var f=token.split("#"),g=f[0];c=document.getElementById(f[1]);if(g&&c.nodeName.toLowerCase()!=g)return[];c=new Array(c)}else if(token.indexOf(".")>-1){f=token.split(".");g=f[0];var j=f[1];g||(g="*");f=[];for(var k=0,l=0;l<c.length;l++){var n;n=g=="*"?getAllChildren(c[l]):c[l].getElementsByTagName(g);
for(var p=0;p<n.length;p++)f[k++]=n[p]}c=[];for(k=g=0;k<f.length;k++)if(f[k].className&&f[k].className.match(new RegExp("\\b"+j+"\\b")))c[g++]=f[k]}else if(token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)){g=RegExp.$1;var q=RegExp.$2;j=RegExp.$3;var u=RegExp.$4;g||(g="*");f=[];for(l=k=0;l<c.length;l++){n=g=="*"?getAllChildren(c[l]):c[l].getElementsByTagName(g);for(p=0;p<n.length;p++)f[k++]=n[p]}c=[];g=0;switch(j){case "=":j=function(x){return x.getAttribute(q)==u};break;case "~":j=function(x){return x.getAttribute(q).match(new RegExp("\\b"+
u+"\\b"))};break;case "|":j=function(x){return x.getAttribute(q).match(new RegExp("^"+u+"-?"))};break;case "^":j=function(x){return x.getAttribute(q).indexOf(u)==0};break;case "$":j=function(x){return x.getAttribute(q).lastIndexOf(u)==x.getAttribute(q).length-u.length};break;case "*":j=function(x){return x.getAttribute(q).indexOf(u)>-1};break;default:j=function(x){return x.getAttribute(q)}}c=[];for(k=g=0;k<f.length;k++)if(j(f[k]))c[g++]=f[k]}else{if(!c[0])return;g=token;f=[];for(l=k=0;l<c.length;l++){n=
c[l].getElementsByTagName(g);for(p=0;p<n.length;p++)f[k++]=n[p]}c=f}}return c};
var BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS"},searchString:function(b){for(var c=0;c<b.length;c++){var e=b[c].string,f=b[c].prop;this.versionSearchString=b[c].versionSearch||b[c].identity;if(e){if(e.indexOf(b[c].subString)!=-1)return b[c].identity}else if(f)return b[c].identity}},
searchVersion:function(b){var c=b.indexOf(this.versionSearchString);if(c!=-1)return parseFloat(b.substring(c+this.versionSearchString.length+1))},dataBrowser:[{string:navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",identity:"Safari",versionSearch:"Version"},{prop:window.opera,identity:"Opera"},{string:navigator.vendor,subString:"iCab",identity:"iCab"},{string:navigator.vendor,
subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],
dataOS:[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.userAgent,subString:"iPhone",identity:"iPhone/iPod"},{string:navigator.userAgent,subString:"Android",identity:"Android"},{string:navigator.platform,subString:"Linux",identity:"Linux"}]};BrowserDetect.init();function getBrowser(){return BrowserDetect.browser}function getBrowserVersion(){return BrowserDetect.version}
function getOS(){return BrowserDetect.OS}function isE6(){return getBrowser()=="Explorer"&&getBrowserVersion()==6}function arPoint(b,c,e){this.x=parseFloat(b);this.y=parseFloat(c);this.projection=e}arPoint.prototype.getX=function(){return this.x};arPoint.prototype.getY=function(){return this.y};arPoint.prototype.getProjection=function(){return this.projection};var apiDir="api_semtcar/";includeCSS(apiDir+"interface_styles.css");includeJS(apiDir+"lib/raphael/raphael-min.js");
var posterSubDomains=["data/"],gaJsHost="https:"==document.location.protocol?"https://ssl.":"http://www.";document.write(unescape("%3Cscript src='"+gaJsHost+"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));function getPosterName(b,c,e,f){return b.xmlRadical+b.inclinations[e]+"_"+f+"_level"+(b.resolutions.length-1-c)}function getPosterUrl(b,c,e){return b.posterBaseUrl+b.posterRadical+b.inclinations[c]+"_"+e}
function world2map(b,c,e,f,g,j){new Ajax.Request(c+"world2screen.php?ville="+e+"&x="+b.x+"&y="+b.y+"&epsg="+b.projection+"&debug=0",{method:"get",timeout:30,onCreate:function(){},onSuccess:function(k){var l=k.responseText.evalJSON();if(typeof l.x=="undefined")alert(l.msg);else{k=l.x;l=l.y;j!=undefined?f[g](new arPoint(parseFloat(k),parseFloat(l)),j):f[g](new arPoint(parseFloat(k),parseFloat(l)))}},onFailure:function(){},onComplete:function(){}})}
function map2world(b,c,e,f,g,j,k,l){var n=b.projection;new Ajax.Request(f+"translateWorld.php?ville="+g+"&x="+b.x+"&y="+b.y+"&tpx="+c+"&tpy="+e+"&epsg="+n+"&debug=0",{method:"get",timeout:30,onCreate:function(){},onSuccess:function(p){var q=p.responseText.evalJSON();if(typeof q.x=="undefined")alert(q.msg);else{p=q.x;q=q.y;l!=undefined?j[k](new arPoint(parseFloat(p),parseFloat(q),n),l):j[k](new arPoint(parseFloat(p),parseFloat(q),n))}},onFailure:function(){},onComplete:function(){}})}
function includeProjection(b){includeJS(apiDir+"lib/proj4js/defs/EPSG"+b+".js")}
function arMap(b,c,e){this.posterNav=b;this.imageViewer=$(c);for(b=this.imageViewer.firstChild;b;b=b.nextSibling)if(b.className=="surface"){this.imageViewer.activeSurface=b;b.imageViewer=this.imageViewer}else if(b.className=="well"){this.imageViewer.tileWell=b;b.imageViewer=this.imageViewer}for(;this.imageViewer.activeSurface.childNodes[0];)this.imageViewer.activeSurface.removeChild(activeSurface.childNodes[0]);this.enableMouse();this.markerCollection=[];this.polylineCollection=[];this.effectArray=
undefined;this.totalNumTiles=this.numTilesToLoad=0;this.click=this.overlayClick=this.moveend=this.move=this.onloaded=this.oncreated=undefined;this.eventTracker=e}a=arMap.prototype;a.enableMouse=function(){this.mouseEnabled=true;this.imageViewer.activeSurface.onmouseup=handleEvent(this,"releaseViewer");this.imageViewer.activeSurface.onmouseout=handleEvent(this,"releaseViewer");this.imageViewer.activeSurface.onmousedown=handleEvent(this,"pressViewer")};
a.disableMouse=function(){this.mouseEnabled=false;this.imageViewer.activeSurface.onmouseup=null;this.imageViewer.activeSurface.onmouseout=null;this.imageViewer.activeSurface.onmousedown=null};a.setSlowMode=function(){this.slowMode=true};
a.prepareViewerAtPos=function(b,c,e,f,g){var j=this.imageViewer.getWidth(),k=this.imageViewer.getHeight(),l=c*Math.pow(2,e),n=new arPoint((l-j)/-2,(l-k)/-2);imageCenterAtZoomLevel=new arPoint(l/2,l/2);wantedDeltaFromCenter=new arPoint(imageCenterAtZoomLevel.x-f,g-imageCenterAtZoomLevel.y);n.x+=wantedDeltaFromCenter.x;n.y+=wantedDeltaFromCenter.y;g=f=0;for(l=this.imageViewer;l;l=l.offsetParent){f+=l.offsetTop;g+=l.offsetLeft}this.imageViewer.dimensions={width:j,height:k,top:f,left:g,tileDir:b,tileSize:c,
zoomLevel:e,x:n.x,y:n.y};this.imageViewer.start=new arPoint(0,0);this.imageViewer.pressed=false;this.prepareTiles()};a.getSize=function(){return{width:this.imageViewer.dimensions.width,height:this.imageViewer.dimensions.height}};
a.setSize=function(b,c){var e=this.getPos();this.imageViewer.style.height=c+"px";this.imageViewer.style.width=b+"px";this.prepareViewerAtPos(this.imageViewer.dimensions.tileDir,this.imageViewer.dimensions.tileSize,this.imageViewer.dimensions.zoomLevel,e.x,e.y);this.positionOverlays(false,new arPoint(0,0));this.showMarkers()};
a.checkResize=function(){var b=this.getPos();this.prepareViewerAtPos(this.imageViewer.dimensions.tileDir,this.imageViewer.dimensions.tileSize,this.imageViewer.dimensions.zoomLevel,b.x,b.y);this.positionOverlays(false,new arPoint(0,0));this.showMarkers()};a.getPos=function(){var b=this.imageViewer.dimensions,c=this.imageViewer.getWidth(),e=this.imageViewer.getHeight(),f=b.tileSize*Math.pow(2,b.zoomLevel),g={x:f/2,y:f/2};c={x:(f-c)/-2,y:(f-e)/-2};return new arPoint(c.x-b.x+g.x,b.y-c.y+g.y)};
a.imagePosToImageViewerPos=function(b,c){var e=this.imageViewer.dimensions,f=this.imageViewer.getWidth(),g=this.imageViewer.getHeight();e=e.tileSize*Math.pow(2,e.zoomLevel);new arPoint(e/2,e/2);e=this.getPos();f=new arPoint(f/2,g/2);b=parseFloat(b)+parseFloat(f.x)-parseFloat(e.x);c=parseFloat(f.y)+parseFloat(e.y)-parseFloat(c);return new arPoint(b,c)};
a.prepareTiles=function(){for(var b=this.imageViewer.tileWell,c=this.imageViewer.dimensions;b.childNodes[0];)b.removeChild(b.childNodes[0]);this.imageViewer.tiles=[];var e=Math.ceil(c.height/c.tileSize)+1,f=Math.ceil(c.width/c.tileSize)+1;this.totalNumTiles=e*f;for(var g=0;g<f;g+=1){for(var j=[],k=0;k<e;k+=1){var l={c:g,r:k,img:document.createElement("img"),imageViewer:this.imageViewer};l.img.className="tile";l.img.style.width=c.tileSize+"px";l.img.style.height=c.tileSize+"px";l.img.onload=handleEvent(this,
"tileLoaded");try{l.img.addEventListener("touchstart",touchAndStopHandler,false);l.img.addEventListener("touchmove",touchAndStopHandler,false);l.img.addEventListener("touchend",touchAndStopHandler,false);l.img.addEventListener("touchcancel",touchAndStopHandler,false)}catch(n){}disableSelection(l.img);this.setTileImage(l,true);b.appendChild(l.img);j.push(l)}this.imageViewer.tiles.push(j)}this.oncreated!=undefined&&this.oncreated();this.positionTiles({x:0,y:0})};
a.tileLoaded=function(){this.numTilesToLoad-=1;this.numTilesToLoad==0&&this.onloaded!=undefined&&this.onloaded()};
a.positionTiles=function(b){var c=this.imageViewer.tiles,e=this.imageViewer.dimensions,f=this.imageViewer.start;this.numTilesToLoad=this.totalNumTiles;for(var g=0;g<c.length;g+=1)for(var j=0;j<c[g].length;j+=1){var k=c[g][j],l=false;k.x=k.c*e.tileSize+e.x+(b.x-f.x);k.y=k.r*e.tileSize+e.y+(b.y-f.y);if(k.x>e.width){do{k.c-=c.length;k.x=k.c*e.tileSize+e.x+(b.x-f.x);l=true}while(k.x>e.width)}else for(;k.x<-1*e.tileSize;){k.c+=c.length;k.x=k.c*e.tileSize+e.x+(b.x-f.x);l=true}if(k.y>e.height){do{k.r-=c[g].length;
k.y=k.r*e.tileSize+e.y+(b.y-f.y);l=true}while(k.y>e.height)}else for(;k.y<-1*e.tileSize;){k.r+=c[g].length;k.y=k.r*e.tileSize+e.y+(b.y-f.y);l=true}this.setTileImage(k,l);this.setTileImage(k,false);k.img.style.top=k.y+"px";k.img.style.left=k.x+"px"}};a.positionMarker=function(b,c,e){var f=this.imageViewer.start;if(c==false){c=this.imagePosToImageViewerPos(b.px,b.py);b.setWindowPosition(new arPoint(c.x+e.x-f.x,c.y+e.y-f.y))}else b.shift(e.x-f.x,e.y-f.y)};
a.positionPolyline=function(b,c,e){var f=this.imageViewer.start;if(c==false){c=b.getPixelBounds();c=this.imagePosToImageViewerPos(c.ll.x,c.ur.y);b.setWindowPosition(new arPoint(c.x+e.x-f.x,c.y+e.y-f.y))}else b.shift(e.x-f.x,e.y-f.y)};a.positionMarkers=function(b,c){for(var e=0;e<this.markerCollection.length;e+=1)this.positionMarker(this.markerCollection[e],b,c)};a.positionPolylines=function(b,c){for(var e=0;e<this.polylineCollection.length;e+=1)this.positionPolyline(this.polylineCollection[e],b,c)};
a.positionOverlays=function(b,c){this.positionMarkers(b,c);this.positionPolylines(b,c)};a.getTileDir=function(b,c){return posterSubDomains[(b+c)%posterSubDomains.length]+"/"+this.imageViewer.dimensions.tileDir};
a.setTileImage=function(b,c){var e=b.imageViewer.dimensions;e=this.getTileDir(b.c,b.r)+"/tile-"+e.zoomLevel+"-"+b.c+"-"+b.r+".jpg";var f=b.c<0,g=b.r<0,j=b.c>=Math.pow(2,b.imageViewer.dimensions.zoomLevel),k=b.r>=Math.pow(2,b.imageViewer.dimensions.zoomLevel),l=g||f||k||j;if(c)e=apiDir+"images/null/none.png";else if(l)e=apiDir+"images/null/none.png";else if(g&&f)e=apiDir+"images/null/top-left.png";else if(k&&f)e=apiDir+"images/null/bottom-left.png";else if(g&&j)e=apiDir+"images/null/top-right.png";
else if(k&&j)e=apiDir+"images/null/bottom-right.png";else if(g)e=apiDir+"images/null/top.png";else if(j)e=apiDir+"images/null/right.png";else if(k)e=apiDir+"images/null/bottom.png";else if(f)e=apiDir+"images/null/left.png";b.img.src=e};
a.scale=function(b){var c=this.imageViewer.tiles,e=this.imageViewer.dimensions.tileSize,f=e*b/100,g=Math.pow(2,this.imageViewer.dimensions.zoomLevel)*e,j=this.getPos(),k=j.x+this.imageViewer.dimensions.x,l=g-j.y+this.imageViewer.dimensions.y;j=g=undefined;for(var n=0;n<c.length;n+=1)for(var p=0;p<c[n].length;p+=1){var q=c[n][p],u=q.y<l&&q.y>l-e;if(q.x<k&&q.x>k-e&&u){g=q.c;j=q.r}}k=[];e=f-e;for(n=0;n<c.length;n+=1)for(p=0;p<c[n].length;p+=1){q=c[n][p];f=(q.c-g)*e;l=(q.r-j)*e;q=new Effect.Parallel([new Effect.Scale(q.img,
b,{sync:true,scaleMode:"box",scaleFromCenter:true}),new Effect.Move(q.img,{sync:true,x:f,y:l,mode:"relative"})],{duration:1});k.push(q)}this.effectArray=k};a.panTo=function(b){this.slowMode?this.panToSlow(b):this.panToFast(b)};a.panBy=function(b,c){var e=this.getPos();this.panTo(new arPoint(e.x+b,e.y+c))};
a.whenPanDone=function(){if(this.effectArray!=undefined){this.cancelAllEffects();this.imageViewer.tileWell.setStyle({left:"0px",top:"0px"});this.positionTiles(new arPoint(this.delta.x,this.delta.y));this.positionOverlays(false,new arPoint(this.delta.x,this.delta.y));this.imageViewer.dimensions.x+=this.delta.x;this.imageViewer.dimensions.y+=this.delta.y;this.moveend!=undefined&&this.moveend()}};
a.panToFast=function(b){var c=this.getPos();this.delta=new arPoint(c.x-b.x,b.y-c.y);if(this.delta.x!=0&&this.delta.y!=0){this.imageViewer.start={x:0,y:0,time:getCurrentTime()};getMoveEffect=function(g,j){return new Effect.Move(j,{x:g.delta.x,y:g.delta.y,mode:"relative",duration:0.5,afterFinish:handleEvent(g,"whenPanDone")})};c=this.imageViewer.tiles;b=[];for(var e=0;e<c.length;e+=1)for(var f=0;f<c[e].length;f+=1)b.push(getMoveEffect(this,c[e][f].img));for(c=0;c<this.markerCollection.length;c+=1){e=
this.markerCollection[c];if(e.addedToMap){b.push(getMoveEffect(this,e.div));b.push(getMoveEffect(this,e.labelpopupdiv))}}for(c=0;c<this.polylineCollection.length;c+=1){e=this.polylineCollection[c];e.addedToMap&&b.push(getMoveEffect(this,e.div))}this.effectArray=b}};
a.panToSlow=function(b){var c=this.getPos();this.delta=new arPoint(c.x-b.x,b.y-c.y);if(this.delta.x!=0&&this.delta.y!=0){this.imageViewer.start={x:0,y:0,time:getCurrentTime()};getMoveEffect=function(f,g){return new Effect.Move(g,{x:f.delta.x,y:f.delta.y,mode:"relative",duration:0.5,afterFinish:handleEvent(f,"whenPanDone")})};b=[];b.push(getMoveEffect(this,this.imageViewer.tileWell));for(c=0;c<this.markerCollection.length;c+=1){var e=this.markerCollection[c];b.push(getMoveEffect(this,e.div));b.push(getMoveEffect(this,
e.labelpopupdiv))}for(c=0;c<this.polylineCollection.length;c+=1){e=this.polylineCollection[c];e.addedToMap&&b.push(getMoveEffect(this,e.div))}this.effectArray=b}};a.localizeCoordinates=function(b){b=new arPoint(b.x,b.y);for(var c=this.imageViewer;c;c=c.offsetParent){b.x-=c.offsetLeft;b.y-=c.offsetTop}return b};
a.pressViewer=function(b){hideAddressBar();b=getEvent(b);b=this.localizeCoordinates(new arPoint(b.clientX,b.clientY));this.imageViewer.tileWell.style.cursor=this.imageViewer.activeSurface.style.cursor="move";this.imageViewer.start={x:b.x,y:b.y,time:getCurrentTime()};if(this.mouseEnabled)this.imageViewer.activeSurface.onmousemove=handleEvent(this,"moveViewer");this.imageViewer.pressed=true};
a.moveViewer=function(b){if(this.imageViewer.pressed){b=getEvent(b);b=this.localizeCoordinates(new arPoint(b.clientX,b.clientY));var c=getCurrentTime();if(this.lastTime==undefined||c-this.lastTime>100){this.lastTime=c;this.positionTiles(new arPoint(b.x,b.y));this.positionOverlays(true,new arPoint(b.x,b.y))}this.move!=undefined&&this.move()}};
a.releaseViewer=function(b){b=getEvent(b);var c=this.localizeCoordinates(new arPoint(b.clientX,b.clientY));b=this.imageViewer.dimensions;if(this.imageViewer.pressed){if(getCurrentTime()-this.imageViewer.start.time<300){this.deselectMarkers();this.click!=undefined&&this.click()}this.imageViewer.activeSurface.onmousemove=null;this.imageViewer.tileWell.style.cursor=this.imageViewer.activeSurface.style.cursor="default";this.imageViewer.pressed=false;this.positionTiles(new arPoint(c.x,c.y));this.positionOverlays(false,
c);var e=c.x-this.imageViewer.start.x;c=c.y-this.imageViewer.start.y;b.x+=e;b.y+=c;this.imageViewer.pressed=false;this.imageViewer.start={x:0,y:0};e!=0&&c!=0&&this.moveend!=undefined&&this.moveend()}};a.hasMarker=function(b){for(var c=0;c<this.markerCollection.length;c+=1)if(this.markerCollection[c]==b)return true;return false};a.addMarker=function(b){b.setMap(this);this.markerCollection.push(b)};a.addPolyline=function(b){b.setMap(this);this.polylineCollection.push(b)};
a.removePolyline=function(b){for(var c=[],e=0;e<this.polylineCollection.length;e+=1)this.polylineCollection[e]!=b&&c.push(tmpmarker);this.polylineCollection=c;b.unsetMap()};a.getMarkerList=function(){return this.markerCollection};a.removeMarker=function(b){for(var c=[],e=0;e<this.markerCollection.length;e+=1){var f=this.markerCollection[e];f!=b&&c.push(f)}this.markerCollection=c;b.unsetMap()};
a.removeAllMarkers=function(){for(var b=0;b<this.markerCollection.length;b+=1)this.markerCollection[b].removeFromMap();this.markerCollection=[]};a.showMarkers=function(){for(var b=0;b<this.markerCollection.length;b+=1)this.markerCollection[b].setVisibility(true)};a.hideMarkers=function(){for(var b=0;b<this.markerCollection.length;b+=1){var c=this.markerCollection[b];c.deselect();c.setVisibility(false)}};a.deselectMarkers=function(){for(var b=0;b<this.markerCollection.length;b+=1)this.markerCollection[b].deselect()};
a.cancelAllEffects=function(){if(this.effectArray!=undefined){for(var b=0;b<this.effectArray.length;b+=1)this.effectArray[b].cancel();this.effectArray=undefined}};
function arPosterNav(b){this.posterElementID=b;this.posterElement=$(this.posterElementID);this.gui=new arPosterNavGui(this,this.posterElement);this.gui.buildGui();this.mapdbManager=new mapDBManager(bigMapDB);this.map=new arMap(this,this.posterElementID);this.mapCreated=false;this.map.moveend=handleEvent(this,"onMapMoveEnd");this.zoomFactor=2;this.orientationInc=22.5;this.inclinationInc=15;this.start=1;this.currentMapStart=undefined;this.villeName=this.previousTiledPosterUrl=this.tiledPosterUrl="";
this.doingSomething=false;this.onLoaded=this.mapZoomEnd=this.mapMoveEnd=this.mapMove=undefined;this.map.onloaded=handleEvent(this,"onMapLoaded");this.overlayClick=undefined;this.map.overlayClick=handleEvent(this,"overlayClick");this.map.click=handleEvent(this,"click");this.gui.logoClick=handleEvent(this,"onLogoClick");this.logoClick=undefined;if(typeof GANALYTICSID!="undefined"){this.eventTracker=_gat._getTracker(GANALYTICSID);this.eventTracker._trackPageview()}}a=arPosterNav.prototype;
a.disableControls=function(){this.gui.disableControls()};a.enableMouse=function(){this.map.enableMouse()};a.disableMouse=function(){this.map.disableMouse()};a.hasMarker=function(b){return this.map.hasMarker(b)};a.addMarker=function(b){this.map.addMarker(b);this.mapCreated&&world2map(b.getWorldPosition(),this.currentMapInfo.xmlBaseUrl,this.posterName,b,"setMapPosition")};
a.addPolyline=function(b){this.map.addPolyline(b);if(this.mapCreated)for(var c=0;c<b.getVertexCount();c+=1)world2map(b.getVertex(c),this.currentMapInfo.xmlBaseUrl,this.posterName,b,"setMapPosition",c)};a.removePolyline=function(b){this.map.removePolyline(b)};a.getMarkerList=function(){return this.map.getMarkerList()};a.removeMarker=function(b){this.map.removeMarker(b)};a.removeAllMarkers=function(){this.map.removeAllMarkers()};a.checkResize=function(){this.doingSomething||this.map.checkResize()};
a.setSize=function(b,c){this.map.setSize(b,c)};a.getCurrentMapInfo=function(){return this.currentMapInfo};a.getCurrentPosterName=function(){return this.posterName};a.getCurrentMapResolution=function(){return this.currentResolution};a.getCurrentMapOrientation=function(){return this.currentOrientation};a.getCurrentMapInclination=function(){return this.currentInclination};
a.getCurrentMapBounds=function(){var b=this.getCurrentMapInfo();new Proj4js.Proj("EPSG:"+this.currentMapEPSG);var c=new Proj4js.Proj("EPSG:"+b.epsg),e=new Proj4js.Point(b.xmin,b.ymin);b=new Proj4js.Point(b.xmax,b.ymax);e=Proj4js.transform(c,pointProj,e);c=Proj4js.transform(c,pointProj,b);return[e.x,e.y,c.x,c.y]};a.getCurrentMapEPSG=function(){return this.currentMapEPSG};
a.getCurrentMapCenter=function(b,c,e){var f=this.currentMapStartPx,g=this.currentMapStartPy,j=this.map.getPos();f=j.x-f;g=j.y-g;if(f==0&&g==0)e!=undefined?b[c](this.currentMapStart,e):b[c](this.currentMapStart);else map2world(this.currentMapStart,f,g,this.getCurrentMapInfo().xmlBaseUrl,this.getCurrentPosterName(),b,c,e)};
a.setCurrentMapCenter=function(b){options={resolution:this.getCurrentMapResolution(),orientation:this.getCurrentMapOrientation(),inclination:this.getCurrentMapInclination()};this.goTo(b,options)};a.setCurrentMapPixelCenter=function(b,c){this.currentMapStartPx=b.x;this.currentMapStartPy=b.y;this.map.cancelAllEffects();this.map.prepareViewerAtPos(c.tiledPosterUrl,c.mapInfo.tileSize,c.zoomLevel,this.currentMapStartPx,this.currentMapStartPy);this.doingSomething=false;this.printInfo("done.")};
a.handleButtonDisplay=function(){this.printInfo("Modifying Button Display");this.gui.setCompassOrientation(this.currentOrientation)};a.setStatusBarElement=function(b){this.statusBarElement=b};a.printInfo=function(b){if(this.statusBarElement!=undefined)this.statusBarElement.innerHTML=b};
a.goAtOrientation=function(b){if(!this.doingSomething){this.printInfo("goAtOrientation : "+b);trackEvent(this.eventTracker,"Action","orient");options={resolution:this.getCurrentMapResolution(),orientation:b,inclination:this.getCurrentMapInclination()};this.getCurrentMapCenter(this,"goTo",options)}};a.orientLeft=function(){if(!this.doingSomething){trackEvent(this.eventTracker,"ButtonClick","orientLeft");this.goAtOrientation(this.getCurrentMapOrientation()-this.orientationInc)}};
a.orientRight=function(){if(!this.doingSomething){trackEvent(this.eventTracker,"ButtonClick","orientRight");this.goAtOrientation(this.getCurrentMapOrientation()+this.orientationInc)}};a.zoomAtResolution=function(b){if(!this.doingSomething){this.printInfo("zoomAtResolution : "+b);trackEvent(this.eventTracker,"Action","zoom");options={resolution:b,orientation:this.getCurrentMapOrientation(),inclination:this.getCurrentMapInclination()};this.getCurrentMapCenter(this,"goTo",options);this.onMapZoomEnd()}};
a.zoomIn=function(){if(!this.doingSomething){trackEvent(this.eventTracker,"ButtonClick","zoomIn");this.zoomAtResolution(this.getCurrentMapResolution()/this.zoomFactor)}};a.zoomInDoubleClick=function(){if(!this.doingSomething){this.printInfo("zoomInDoubleClick");trackEvent(this.eventTracker,"ButtonClick","zoomInDoubleClick");this.zoomIn()}};a.zoomOut=function(){if(!this.doingSomething){trackEvent(this.eventTracker,"ButtonClick","zoomOut");this.zoomAtResolution(this.getCurrentMapResolution()*this.zoomFactor)}};
a.goAtInclination=function(b){if(!this.doingSomething){this.printInfo("goAtInclination : "+b);trackEvent(this.eventTracker,"Action","incline");options={resolution:this.getCurrentMapResolution(),orientation:this.getCurrentMapOrientation(),inclination:b};this.getCurrentMapCenter(this,"goTo",options)}};a.inclineUp=function(){if(!this.doingSomething){trackEvent(this.eventTracker,"ButtonClick","inclineUp");this.goAtInclination(this.getCurrentMapInclination()+this.inclinationInc)}};
a.inclineDown=function(){if(!this.doingSomething){trackEvent(this.eventTracker,"ButtonClick","inclineDown");this.goAtInclination(this.getCurrentMapInclination()-this.inclinationInc)}};
a.goTo=function(b,c){c=this.mapdbManager.getClosestMapInfo(b,typeof c!="undefined"&&typeof c.resolution!="undefined"?c.resolution:1,typeof c!="undefined"&&typeof c.orientation!="undefined"?c.orientation:0,typeof c!="undefined"&&typeof c.inclination!="undefined"?c.inclination:45,this.dbname);c==undefined?alert("ERROR: no map available for given parameters !"):this.initNewMapAtWorldPosition(b,c.mapInfo,c.closestResolutionIndex,c.closestInclinationIndex,c.closestOrientationIndex)};
a.panTo=function(b){world2map(b,this.currentMapInfo.xmlBaseUrl,this.posterName,this.map,"panTo")};a.panBy=function(b,c){this.map.panBy(b,c)};a.forceDbName=function(b){this.dbname=b};
a.onMapCreated=function(){this.mapCreated=true;this.handleButtonDisplay();for(var b=0;b<this.map.markerCollection.length;b+=1){var c=this.map.markerCollection[b];c.unsetMapPosition();world2map(c.getWorldPosition(),this.currentMapInfo.xmlBaseUrl,this.posterName,c,"setMapPosition")}for(b=0;b<this.map.polylineCollection.length;b+=1){c=this.map.polylineCollection[b];c.unsetMapPosition();for(var e=0;e<c.getVertexCount();e+=1)world2map(c.getVertex(e),this.currentMapInfo.xmlBaseUrl,this.posterName,c,"setMapPosition",
e)}this.map.oncreated=undefined};a.onMapMove=function(){this.mapMove!=undefined&&this.mapMove()};a.onMapMoveEnd=function(){this.mapMoveEnd!=undefined&&this.mapMoveEnd()};a.onMapZoomEnd=function(){this.mapZoomEnd!=undefined&&this.mapZoomEnd();this.onMapMoveEnd()};a.onLogoClick=function(){this.logoClick!=undefined?this.logoClick():window.open("http://www.archivideo.com/")};a.onMapLoaded=function(){this.onLoaded!=undefined&&this.onLoaded()};
a.initNewMapAtWorldPosition=function(b,c,e,f,g){this.doingSomething=true;this.currentMapInfo=c;this.currentOrientation=c.orientations[g];this.currentResolution=c.resolutions[e];this.currentInclination=c.inclinations[f];this.posterName=getPosterName(c,e,f,g);trackEvent(this.eventTracker,"zoom",String(this.currentResolution));trackEvent(this.eventTracker,"orientation",String(this.currentOrientation));trackEvent(this.eventTracker,"inclination",String(this.currentInclination));trackEvent(this.eventTracker,
"poster",this.posterName);this.map.oncreated=handleEvent(this,"onMapCreated");c={mapInfo:this.currentMapInfo,tiledPosterUrl:getPosterUrl(c,f,g),zoomLevel:c.resolutions.length-1-e};this.currentMapStart=b;world2map(b,this.currentMapInfo.xmlBaseUrl,this.posterName,this,"setCurrentMapPixelCenter",c)};function arPosterNavGui(b,c){this.posterNav=b;this.posterElement=c;this.imageBaseUrl=apiDir+"/images/"}a=arPosterNavGui.prototype;
a.buildGui=function(){disableSelection(this.posterElement);addSupportForMobilePhoneEvents(this.posterElement);this.tilewell=$(document.createElement("div"));this.tilewell.className="well";this.tilewell.style.cursor="default";this.posterElement.appendChild(this.tilewell);this.surface=$(document.createElement("div"));this.surface.className="surface";this.surface.style.cursor="default";this.posterElement.appendChild(this.surface);this.buttonBar=$(document.createElement("div"));this.buttonBar.className=
"buttonBar";this.posterElement.appendChild(this.buttonBar);this.logo=$(document.createElement("img"));this.logo.className="logo png";this.logo.src=this.imageBaseUrl+"bt_logo.png";this.logo.style.border="0";this.logo.style.cursor="pointer";this.logo.onmouseup=handleEvent(this,"onLogoClick");this.logoClick=undefined;this.posterElement.appendChild(this.logo);this.compass=$(document.createElement("img"));this.compass.className="compass png";this.compass.src=this.imageBaseUrl+"bt_boussole00.png";this.compass.style.border=
"0";this.posterElement.appendChild(this.compass);this.buttons=$(document.createElement("p"));this.buttons.className="buttons";this.zoomInButton=this.makeButton("zoomIn",this.imageBaseUrl+"bt_plus.png",handleEvent(this,"zoomInClick"));this.buttons.appendChild(this.zoomInButton);this.zoomOutButton=this.makeButton("zoomOut",this.imageBaseUrl+"bt_minus.png",handleEvent(this,"zoomOutClick"));this.buttons.appendChild(this.zoomOutButton);this.inclineUpButton=this.makeButton("inclineUp",this.imageBaseUrl+
"bt_up.png",handleEvent(this,"inclineUpClick"));this.buttons.appendChild(this.inclineUpButton);this.inclineDownButton=this.makeButton("inclineDown",this.imageBaseUrl+"bt_down.png",handleEvent(this,"inclineDownClick"));this.buttons.appendChild(this.inclineDownButton);this.orientLeftButton=this.makeButton("orientLeft",this.imageBaseUrl+"bt_left.png",handleEvent(this,"orientLeftClick"));this.buttons.appendChild(this.orientLeftButton);this.orientRightButton=this.makeButton("orientRight",this.imageBaseUrl+
"bt_right.png",handleEvent(this,"orientRightClick"));this.buttons.appendChild(this.orientRightButton);this.posterElement.appendChild(this.buttons)};a.disableControls=function(){this.buttonBar.style.display="none";this.buttons.style.display="none";this.logo.style.display="none";this.compass.style.display="none"};
a.makeButton=function(b,c,e){var f=$(document.createElement("a"));f.className=b;f.onmouseup=e;b=$(document.createElement("img"));b.className="png";b.src=c;b.style.border="0";addSupportForMobilePhoneEvents(b);f.appendChild(b);return f};
a.setCompassOrientation=function(b){b=Math.round(b/22.5);var c=b.toString();if(b<10)c="0"+c;this.posterElement.removeChild(this.compass);this.compass=$(document.createElement("img"));this.compass.className="compass png";this.compass.src=this.imageBaseUrl+"bt_boussole"+c+".png";this.compass.style.border="0";this.posterElement.appendChild(this.compass)};a.zoomInClick=function(){performButtonEffect(this.zoomInButton.firstChild,handleEvent(this.posterNav,"handleButtonDisplay"));this.posterNav.zoomIn()};
a.zoomOutClick=function(){performButtonEffect(this.zoomOutButton.firstChild,handleEvent(this.posterNav,"handleButtonDisplay"));this.posterNav.zoomOut()};a.inclineUpClick=function(){performButtonEffect(this.inclineUpButton.firstChild,handleEvent(this.posterNav,"handleButtonDisplay"));this.posterNav.inclineUp()};a.inclineDownClick=function(){performButtonEffect(this.inclineDownButton.firstChild,handleEvent(this.posterNav,"handleButtonDisplay"));this.posterNav.inclineDown()};
a.orientLeftClick=function(){performButtonEffect(this.orientLeftButton.firstChild,handleEvent(this.posterNav,"handleButtonDisplay"));this.posterNav.orientLeft()};a.orientRightClick=function(){performButtonEffect(this.orientRightButton.firstChild,handleEvent(this.posterNav,"handleButtonDisplay"));this.posterNav.orientRight()};a.onLogoClick=function(){this.logoClick!=undefined&&this.logoClick()};
function performButtonEffect(b,c){new Effect.Parallel([new Effect.Scale(b,200,{sync:true,scaleMode:"box",scaleFromCenter:false}),new Effect.Move(b,{sync:true,x:-12,y:-12,mode:"relative"})],{duration:0.1,afterFinish:function(){new Effect.Parallel([new Effect.Scale(b,50,{sync:true,scaleMode:"box",scaleFromCenter:false}),new Effect.Move(b,{sync:true,x:12,y:12,mode:"relative"})],{duration:0.1,afterFinish:c})}})}
var defaultZoomLevel=15,zoomToResDict={"0":200880.00566077,"1":100440.002830385,"2":50220.0014151925,"3":25110.0007075963,"4":12555.0003537981,"5":6277.5001768991,"6":3138.7500884495,"7":1569.3750442248,"8":784.6875221124,"9":392.3437610562,"10":196.1718805281,"11":98.085940264,"12":49.092970132,"13":24.521485066,"14":12.260742533,"15":6.1303712665,"16":3.0651856332,"17":1.5325928166,"18":0.7662964083,"19":0.3831482042};
function getResForZoomLevel(b){if(b!=undefined)if(zoomToResDict[b]!=undefined)return zoomToResDict[b];return zoomToResDict[defaultZoomLevel]}function getZoomLevelForRes(b){if(b!=undefined){var c={};for(zoomLevel in zoomToResDict)c[zoomLevel]=computeDistance(zoomToResDict[zoomLevel],b);b=defaultZoomLevel;var e=Number.MAX_VALUE;for(zoomLevel in c){var f=c[zoomLevel];if(f<e){e=f;b=zoomLevel}}return b}return defaultZoomLevel}
function GMap2(b){this.posterNav=new arPosterNav(b.id);this.start=1;this.zoomLevel=defaultZoomLevel;this.overlayCollection=[];this.posterNav.click=handleEvent(this,"click");this.posterNav.overlayClick=handleEvent(this,"overlayClick");this.posterNav.mapMove=handleEvent(this,"move");this.posterNav.mapMoveEnd=handleEvent(this,"moveend")}Object.Event.extend(GMap2);a=GMap2.prototype;a.click=function(){this.notify("click")};a.overlayClick=function(b){this.notify("click",this.__getOverlay(b))};a.move=function(){this.notify("move")};
a.moveend=function(){this.notify("moveend")};a.setCenter=function(b,c){c={resolution:getResForZoomLevel(typeof c!="undefined"?c:this.zoomLevel)};if(this.start){c.inclination=90;this.start=0}this.posterNav.goTo(b.__asArPoint(),c)};a.panTo=function(b){this.posterNav.panTo(b.__asArPoint())};a.panBy=function(b){this.posterNav.panBy(b.width,b.height)};a.setZoom=function(b){this.posterNav.zoomAtResolution(getResForZoomLevel(b))};
a.zoomIn=function(b){this.__updateZoomLevel();b!=undefined?this.setCenter(b,this.zoomLevel+1):this.setZoom(this.zoomLevel+1)};a.zoomOut=function(b){this.__updateZoomLevel();b!=undefined?this.setCenter(b,this.zoomLevel-1):this.setZoom(this.zoomLevel-1)};a.__updateZoomLevel=function(){this.zoomLevel=getZoomLevelForRes(this.posterNav.getCurrentMapResolution())};a.checkResize=function(){this.posterNav.checkResize()};a.addOverlay=function(b){this.overlayCollection.push(b);this.posterNav.addMarker(b.subOverlay)};
a.__getOverlay=function(b){for(var c=0;c<this.overlayCollection.length;c+=1){var e=this.overlayCollection[c];if(e.subOverlay==b)return e}};a.removeOverlay=function(b){for(var c=[],e=0;e<this.overlayCollection.length;e+=1){var f=this.overlayCollection[e];f!=b&&c.push(f)}this.overlayCollection=c;this.posterNav.removeMarker(b.subOverlay)};a.clearOverlays=function(){this.removeAllMarkers()};function GLatLng(b,c){this.latValue=b;this.lngValue=c}GLatLng.prototype.lat=function(){return this.latValue};
GLatLng.prototype.lng=function(){return this.lngValue};GLatLng.prototype.__asArPoint=function(){return new arPoint(this.lngValue,this.latValue,"4326")};function GSize(b,c){this.width=b;this.height=c}function GIcon(b,c){if(b)if(b.image){this.image=b.image;this.iconSize=b.iconSize;this.iconAnchor=b.iconAnchor;this.labelAnchor=b.labelAnchor;if(c){this.image=c;b=new Image;b.src=this.image;this.iconSize=new GSize(b.width,b.height)}}}var G_DEFAULT_ICON=new GIcon;G_DEFAULT_ICON.image=apiDir+"/images/default.png";
G_DEFAULT_ICON.iconSize=new GSize(24,24);G_DEFAULT_ICON.iconAnchor=new GSize(12,24);G_DEFAULT_ICON.labelAnchor=new GSize(-140,-40);function GMarker(b,c){var e={};(c=typeof c!="undefined"&&typeof c.icon!="undefined"?c.icon:G_DEFAULT_ICON)||(c=G_DEFAULT_ICON);e.url=c.image;e.width=c.iconSize.width;e.height=c.iconSize.height;e.iconAnchor={x:c.iconAnchor.width,y:c.iconAnchor.height};e.labelAnchor={x:c.labelAnchor.width,y:c.labelAnchor.height};this.subOverlay=new arMarker("",b.__asArPoint(),e)}
GMarker.prototype.getLatLng=function(){var b=this.subOverlay.getWorldPosition();return new GLatLng(b.y,b.x)};function GEventListener(b,c,e){this.source=b;this.event=c;this.handler=e}function GEventType(){}a=GEventType.prototype;a.addListener=function(b,c,e){$(b).observe(c,e);return new GEventListener(b,c,e)};a.addDomListener=function(b,c,e){Event.observe($(b),c,e);return new GEventListener(b,c,e)};a.bind=function(b,c,e,f){e=this.callback(e,f);return this.addListener($(b),c,e)};
a.bindDom=function(b,c,e,f){e=this.callback(e,f);return this.addDomListener(b,c,e)};a.trigger=function(b,c,e){Event.fire($(b),c,e)};a.removeListener=function(b){$(b.source).stopObserving(b.event,b.handler)};a.clearListeners=function(b,c){$(b).stopObserving(c)};a.clearInstanceListeners=function(b){$(b).stopObserving()};a.clearNode=function(b){this.clearInstanceListeners(b);b=$(b).descendants;for(var c=0;c<b.length;c+=1)this.clearInstanceListeners(b[c])};
a.callback=function(b,c){return handleEvent(b,c)};a.callbackArgs=function(b,c,e){return this.callback(b,c)(e)};var GEvent=new GEventType;function arMarkerHandler(b){this.posterNav=b;this.map=this.posterNav.map;this.markerArray=[]}a=arMarkerHandler.prototype;a.getMarkerList=function(){return this.markerArray};a.hasMarker=function(b){for(var c=0;c<this.markerArray.length;c+=1)if(this.markerArray[c]==b)return true;return false};
a.addMarker=function(b){this.markerArray.push(b);this.posterNav.addMarker(b);b.windowPositionSet=handleEvent(this,"handleMarkerWindowPosition")};a.removeMarker=function(b){for(var c=[],e=0;e<this.markerArray.length;e+=1){var f=this.markerArray[e];f!=b&&c.push(f)}this.markerArray=c;this.posterNav.removeMarker(b);b.windowPositionSet=undefined};
a.removeAllMarkers=function(){for(var b=0;b<this.markerArray.length;b+=1){var c=this.markerArray[b];c.windowPositionSet=undefined;this.posterNav.removeMarker(c)}this.markerArray=[]};a.handleMarkerWindowPosition=function(b){var c=b.getWindowPosition(),e=this.map.getSize(),f=e.width;e=e.height;c.x<0||c.y<0||c.x>f||c.y>e?b.removeFromMap():b.addToMap()};
function arPolyline(b,c,e,f,g){this.map=undefined;this.pointArray=b;this.color=c||"#FF0000";this.weight=e||1;this.opacity=f||1;this.dashArray=g||"";this.addedToMap=false;this.visible=true;this.div=$(document.createElement("div"));this.div.className="polyline";this.windowPositionSet=undefined}a=arPolyline.prototype;a.setMap=function(b){this.map=b;this.div.style.display="none";this.addedToMap||this.addToMap()};a.unsetMap=function(){this.removeFromMap();this.map=undefined};
a.addToMap=function(){if(!this.addedToMap)if(this.map!=undefined){this.map.imageViewer.activeSurface.appendChild(this.div);this.addedToMap=true}};a.removeFromMap=function(){if(this.addedToMap)if(this.map!=undefined){this.map.imageViewer.activeSurface.removeChild(this.div);this.addedToMap=false}};a.getVertexCount=function(){return this.pointArray.length};
a.getVertex=function(b,c){if(c){c=new arPoint(this.pointArray[b].x,this.pointArray[b].y,this.pointArray[b].projection);if(this.pointArray[b].mapPosition)c.mapPosition=new arPoint(this.pointArray[b].mapPosition.x,this.pointArray[b].mapPosition.y);return c}else return this.pointArray[b]};a.isMapPositionSet=function(){return this.__allMapPositionSet()};a.__allMapPositionSet=function(){for(var b=true,c=0;b&&c<this.getVertexCount();){this.pointArray[c].mapPosition||(b=false);c++}return b};
a.__resetPolyline=function(){for(var b=0;b<this.getVertexCount();b+=1)this.pointArray[b].mapPosition=undefined};
a.__buildPolyline=function(){var b=this.getPixelBounds(),c=b.ll;b=b.ur;var e=b.x-c.x,f=b.y-c.y;this.div.style.width=e+"px";this.div.style.height=f+"px";if(this.container)this.container.clear();else this.container=new Raphael(this.div,e,f);e="";if(this.getVertexCount()>0){f=new arPoint(this.getVertex(0).mapPosition.x-c.x,b.y-this.getVertex(0).mapPosition.y);e+="M"+f.x+" "+f.y+" ";for(var g=1;g<this.getVertexCount();g+=1){f=new arPoint(this.getVertex(g).mapPosition.x-c.x,b.y-this.getVertex(g).mapPosition.y);
e+="L"+f.x+" "+f.y+" ";e+="M"+f.x+" "+f.y+" "}e+="Z"}c=this.container.path(e);c.attr("stroke",this.color);c.attr("stroke-width",this.weight);c.attr("stroke-opacity",this.opacity);c.attr("stroke-dasharray",this.dashArray);c.attr("stroke-linecap","round");c.attr("stroke-linejoin","round")};
a.setMapPosition=function(b,c){this.pointArray[c].mapPosition=b;if(this.map!=undefined&&this.__allMapPositionSet()){this.__buildPolyline();this.addToMap();this.map.positionPolyline(this,false,{x:0,y:0});if(this.visible)this.div.style.display="block"}};a.unsetMapPosition=function(){this.__resetPolyline();this.removeFromMap()};a.setWindowPosition=function(b){this.wx=b.x;this.wy=b.y;this.div.setStyle({left:this.wx+"px",top:this.wy+"px"});this.windowPositionSet!=undefined&&this.windowPositionSet(this)};
a.shift=function(b,c){this.div.setStyle({left:this.wx+b+"px",top:this.wy+c+"px"})};a.getBounds=function(){if(this.getVertexCount()==0)return[undefined,undefined];for(var b=this.getVertex(0,true),c=this.getVertex(0,true),e=1;e<this.getVertexCount();e+=1){var f=this.getVertex(e);if(f.x<b.x)b.x=f.x;if(f.y<b.y)b.y=f.y;if(f.x>c.x)c.x=f.x;if(f.y>c.y)c.y=f.y}return{ll:b,ur:c}};
a.getPixelBounds=function(){if(this.getVertexCount()==0)return[undefined,undefined];for(var b=this.getVertex(0,true).mapPosition,c=this.getVertex(0,true).mapPosition,e=1;e<this.getVertexCount();e+=1){var f=this.getVertex(e).mapPosition;if(f){if(f.x<b.x)b.x=f.x;if(f.y<b.y)b.y=f.y;if(f.x>c.x)c.x=f.x;if(f.y>c.y)c.y=f.y}}return{ll:b,ur:c}};a.hide=function(){this.visible=false;this.div.style.display="none"};a.show=function(){this.visible=true;this.div.style.display="block"};
function arMarker(b,c,e,f){this.map=undefined;this.name=b;this.x=c.x;this.y=c.y;this.projection=c.projection;this.iconUrl=e.url;this.iconWidth=e.width||32;this.iconHeight=e.height||32;this.iconAnchor=e.iconAnchor||{x:0,y:0};this.labelAnchor=e.labelAnchor||{x:0,y:0};this.zIndex=e.zIndex||98;if(f!=undefined)this.infoWindowUrl=f.infoWindowUrl;this.wy=this.wx=this.py=this.px=undefined;this.selected=this.addedToMap=false;this.visible=true;this.labelVisible=false;this.infoWindowOpen=this.mouseout=this.mouseover=
this.click=this.windowPositionSet=undefined;this.div=$(document.createElement("div"));this.div.className="marker";this.div.style.display="none";this.div.style.width=this.iconWidth+"px";this.div.style.height=this.iconHeight+"px";this.div.style.zIndex=this.zIndex;this.img=$(document.createElement("img"));this.img.className="png";this.img.src=this.iconUrl;this.img.style.width=this.iconWidth+"px";this.img.style.height=this.iconHeight+"px";this.img.style.cursor="pointer";this.img.style.display="none";
this.img.onmousedown=handleEvent(this,"select");this.img.onmouseover=handleEvent(this,"mouseover");this.img.onmouseout=handleEvent(this,"mouseout");this.div.appendChild(this.img);this.labelpopupdiv=$(document.createElement("div"));this.labelpopupdiv.className="markerLabelPopup";this.labelpopupdiv.style.display="none";this.labelpopupdiv.style.zIndex=this.zIndex+1;this.labelpopupwindowdiv=$(document.createElement("div"));this.labelpopupwindowdiv.className="markerLabelPopupWindow";this.labelpopupwindowdiv.style.zIndex=
this.zIndex+1;this.labelpopupdiv.appendChild(this.labelpopupwindowdiv);this.textcontentdiv=$(document.createElement("div"));this.textcontentdiv.className="markerLabelContent";this.textcontentdiv.style.zIndex=this.zIndex+1;if(this.name!=undefined)this.textcontentdiv.innerHTML=this.name;this.labelpopupdiv.appendChild(this.textcontentdiv);this.moreinfoimg=$(document.createElement("img"));this.moreinfoimg.className="markerLabelButton png";this.moreinfoimg.style.zIndex=this.zIndex+2;this.moreinfoimg.src=
apiDir+"/images/Right-arrow-32.png";this.moreinfoimg.style.cursor="pointer";this.moreinfoimg.onmouseup=handleEvent(this,"openInfoWindow");this.labelpopupdiv.appendChild(this.moreinfoimg);this.effect=undefined}a=arMarker.prototype;a.setZIndex=function(b){this.zIndex=b;this.div.style.zIndex=this.zIndex;this.labelpopupdiv.style.zIndex=this.zIndex+1;this.labelpopupwindowdiv.style.zIndex=this.zIndex+1;this.textcontentdiv.style.zIndex=this.zIndex+1;this.moreinfoimg.style.zIndex=this.zIndex+2};
a.setMap=function(b){this.map=b;this.div.style.display="none";this.img.style.display="none";this.addedToMap||this.addToMap()};a.unsetMap=function(){this.removeFromMap();this.map=undefined};a.addToMap=function(){if(!this.addedToMap)if(this.map!=undefined){this.map.imageViewer.activeSurface.appendChild(this.div);this.addedToMap=true}};a.removeFromMap=function(){if(this.addedToMap)if(this.map!=undefined){this.map.imageViewer.activeSurface.removeChild(this.div);this.addedToMap=false}};
a.addLabelDivToMap=function(){if(this.map!=undefined)if(this.labelpopupdiv.parentElement==undefined){this.map.imageViewer.activeSurface.appendChild(this.labelpopupdiv);if(typeof this.labelWidth=="undefined")this.labelWidth=this.labelpopupdiv.getWidth()}};a.removeLabelDivFromMap=function(){this.map!=undefined&&this.labelpopupdiv.parentElement!=undefined&&this.map.imageViewer.activeSurface.removeChild(this.labelpopupdiv)};
a.setMapPosition=function(b){this.px=b.x;this.py=b.y;if(this.map!=undefined){this.map.positionMarker(this,false,{x:0,y:0});this.addToMap();if(this.visible){this.div.style.display="block";this.img.style.display="block"}}};a.unsetMapPosition=function(){this.wy=this.wx=this.py=this.px=undefined;this.removeFromMap()};a.isMapPositionSet=function(){return this.px!=undefined&&this.py!=undefined};
a.setWorldPosition=function(b){this.x=b.x;this.y=b.y;this.projection=b.projection;world2map(b,this.map.posterNav.currentMapInfo.xmlBaseUrl,this.map.posterNav.posterName,this,"setMapPosition")};a.getWorldPosition=function(){return new arPoint(this.x,this.y,this.projection)};a.getWindowPosition=function(){return new arPoint(this.wx,this.wy)};
a.setWindowPosition=function(b){this.wx=b.x;this.wy=b.y;b=this.wx-this.iconAnchor.x;var c=this.wy-this.iconAnchor.y;this.div.setStyle({left:b+"px",top:c+"px"});this.labelpopupdiv.setStyle({position:"absolute",left:b+this.labelAnchor.x+"px",top:c+this.labelAnchor.y+"px"});this.windowPositionSet!=undefined&&this.windowPositionSet(this)};
a.shift=function(b,c){b=this.wx+b-this.iconAnchor.x;c=this.wy+c-this.iconAnchor.y;this.div.setStyle({left:b+"px",top:c+"px"});this.labelpopupdiv.setStyle({position:"absolute",left:b+this.labelAnchor.x+"px",top:c+this.labelAnchor.y+"px"})};a.show=function(){this.visible=true;this.div.style.display="block";this.img.style.display="block"};a.hide=function(){this.visible=false;this.div.style.display="none";this.img.style.display="none";this.hideLabel()};a.isVisible=function(){return this.visible};
a.setVisibility=function(b){(this.visible=b)?this.show():this.hide()};a.showLabel=function(){this.labelVisible=true;if(this.visible){this.addLabelDivToMap();this.labelpopupdiv.style.width="34px";this.labelpopupdiv.style.height="34px";this.labelpopupdiv.style.display="block";this.effect!=undefined&&this.effect.cancel();this.effect=new Effect.Morph(this.labelpopupdiv,{style:"width:"+this.labelWidth+"px;",duration:0.5,afterFinish:function(){this.effect=undefined}})}};
a.hideLabel=function(){var b=this.labelVisible;this.labelVisible=false;if(b){this.effect!=undefined&&this.effect.cancel();this.effect=new Effect.Morph(this.labelpopupdiv,{style:"width:0px; height:0px;",duration:0.5,afterFinish:function(){this.effect=undefined;handleEvent(this,"removeLabelDivFromMap")}})}};
a.openInfoWindow=function(){this.map!=undefined&&trackEvent(this.map.eventTracker,"Marker","openInfoWindow");this.infoWindowUrl!=undefined&&window.open(this.infoWindowUrl);this.infoWindowOpen!=undefined&&this.infoWindowOpen()};
a.select=function(b){stopEventPropagation(b);b=this.selected;this.selected=true;this.map.panTo(new arPoint(this.px,this.py));this.map.overlayClick!=undefined&&this.map.overlayClick(this);if(this.click!=undefined)this.click();else if(!b){this.showLabel();this.map!=undefined&&trackEvent(this.map.eventTracker,"Marker","select")}};a.deselect=function(){this.selected=false;this.hideLabel()};function trackEvent(b,c,e){typeof b!="undefined"&&b._trackEvent(c,e)}includeJS(apiDir+"/lib/proj4js/projCode/lcc.js");
includeProjection("4326");includeProjection("27582");
var bigMapDB=[{name:"Rennes",xmlBaseUrl:"data/",xmlRadical:"tiles",posterBaseUrl:"ortho2/",posterRadical:"tile",tileSize:256,epsg:27582,xmin:294394.049,xmax:306092.353,ymin:2348521.24,ymax:2359436.622,resolutions:[0.36,0.72,1.44,2.88,5.76,11.52,23.04,46.08],inclinations:[15,30,45,60],orientations:[0,22.5,45,67.5,90,112.5,135,157.5,180,202.5,225,247.5,270,292.5,315,337.5]},{name:"Rennes_carto",xmlBaseUrl:"data/",xmlRadical:"tiles",posterBaseUrl:"carto2/",posterRadical:"tile",tileSize:256,epsg:27582,
xmin:294394.049,xmax:306092.353,ymin:2348521.24,ymax:2359436.622,resolutions:[0.36,0.72,1.44,2.88,5.76,11.52,23.04,46.08],inclinations:[15,30,45,60],orientations:[0,22.5,45,67.5,90,112.5,135,157.5,180,202.5,225,247.5,270,292.5,315,337.5]}];function mapDBManager(b){this.mapDB=b}a=mapDBManager.prototype;
a.getClosestMapInfo=function(b,c,e,f,g){var j=b.x,k=b.y;b=new Proj4js.Proj("EPSG:"+b.projection);for(var l=[],n=0;n<this.mapDB.length;n++){var p=this.mapDB[n],q=new Proj4js.Proj("EPSG:"+p.epsg),u=new Proj4js.Point(j,k);q=Proj4js.transform(b,q,u);q.x>=p.xmin&&q.x<=p.xmax&&q.y>=p.ymin&&q.y<=p.ymax&&l.push(p)}if(l.length!=0){if(g!=undefined){n=0;for(p=undefined;n<l.length&&p==undefined;){if(l[n].name==g)p=l[n];n+=1}if(p==undefined)return;l=[p]}g=this.getMapInfoAndClosestResolutionIndex(c,l);if(g!=undefined){p=
g[0];closestResolutionIndex=this.getClosestResolutionIndex(c,p);closestOrientationIndex=this.getClosestOrientationIndex(e,p);closestInclinationIndex=this.getClosestInclinationIndex(f,p);return{mapInfo:p,closestResolutionIndex:closestResolutionIndex,closestOrientationIndex:closestOrientationIndex,closestInclinationIndex:closestInclinationIndex}}}};a.getClosestResolutionIndex=function(b,c){return this.getClosestValueIndex(b,c,"resolutions")};
a.getClosestOrientationIndex=function(b,c){return this.getClosestValueIndex(b,c,"orientations",computeAngleDistance)};a.getClosestInclinationIndex=function(b,c){return this.getClosestValueIndex(b,c,"inclinations",computeAngleDistance)};a.getMapInfoAndClosestResolutionIndex=function(b,c){return this.getMapInfoAndClosestValueIndex(b,c,"resolutions")};
a.getClosestValueIndex=function(b,c,e,f){f=typeof f!="undefined"?f:computeDistance;for(var g=[],j=0;j<c[e].length;j++)g.push(f(c[e][j],b));b=0;c=Number.MAX_VALUE;for(j=0;j<g.length;j++){e=g[j];if(e<c){c=e;b=j}}return b};
a.getMapInfoAndClosestValueIndex=function(b,c,e,f){if(b!=undefined){f=typeof f!="undefined"?f:computeDistance;for(var g=[],j=[],k=0;k<c.length;k++){var l=c[k],n=this.getClosestValueIndex(b,l,e,computeAngleDistance);g.push(n);j.push(f(l[e][n],b))}b=undefined;e=Number.MAX_VALUE;for(k=0;k<j.length;k++){f=j[k];if(f<e){e=f;b=[c[k],g[k]]}}return b}};

