Prototype.X={Version:"0.1.2",Required:{Prototype:"1.6.0.2",Scripty:"1.8.1"},Require:function(){if(typeof Prototype=="undefined"||typeof Element=="undefined"||typeof Element.Methods=="undefined"||this.convertVersionString(Prototype.Version||0)<this.convertVersionString(this.Required.Prototype)){throw ("Prototype.Xtensions require Prototype.js >= "+this.Required.Prototype)}if(typeof Scriptaculous=="undefined"||typeof Effect=="undefined"||this.convertVersionString(Scriptaculous.Version||0)<this.convertVersionString(this.Required.Scripty)){throw ("Prototype.Xtensions require Scriptaculous >= "+this.Required.Scripty)}},convertVersionString:function(A){var B=A.replace(/_.*|\./g,"");B=parseInt(B+"0".times(4-B.length));return A.indexOf("_")>-1?B-1:B}};Prototype.X.Require();Prototype.X.Registry={};(function(){var D=navigator;var C=ua=navigator.userAgent;var B=D.appVersion;var A=parseFloat(B);Prototype.X.Browser={IE:(Prototype.Browser.IE)?parseFloat(B.split("MSIE ")[1])||0:0,Firefox:(Prototype.Browser.Gecko)?parseFloat(ua.split("Firefox/")[1])||0:0,Camino:(Prototype.Browser.Gecko)?parseFloat(ua.split("Camino/")[1])||0:0,Flock:(Prototype.Browser.Gecko)?parseFloat(ua.split("Flock/")[1])||0:0,Opera:(Prototype.Browser.Opera)?A:0,AIR:(ua.indexOf("AdobeAIR")>=0)?1:0,Mozilla:(Prototype.Browser.Gecko||!this.Khtml)?A:0,Khtml:(B.indexOf("Konqueror")>=0&&this.safari)?A:0,Safari:(function(){var E=Math.max(B.indexOf("WebKit"),B.indexOf("Safari"),0);return(E)?(parseFloat(B.split("Version/")[1])||((parseFloat(B.substr(E+7))>=419.3)?3:2)||2):0})()}})();$unixTime=function(A){var B=new Date();B=B.getTime();if(A==true){B=B/1000}return B};Object.extend(String.prototype,{ucfirst:function(){return this.charAt(0).toUpperCase()+this.substring(1)}});Object.extend(Number.prototype,{minute:function(){return this*60},hour:function(){return this*3600},day:function(){return this*86400},week:function(){return this*604800},month:function(){return this*2629743.83},year:function(){return this*31556926},time:function(){return(this.toMs())+$unixTime()},toSeconds:function(){return this*1000},toMs:function(){return this/1000}});Object.extend(Class,{accessors:{createAccessors:function(B,A){var A=(!Object.isArray(A))?Object.keys(A):A;A.each(function(D){var C=(D.camelize()).ucfirst();(function(E,F){F["get"+C]=function(){return B[E]};F["set"+C]=function(G){B[E]=G;return F}})(D,this)},this)},setOptions:function(B,D,C){var A=(Object.isUndefined(C))?false:C;if(!B){B={}}Object.extend(B,D||{});if(C){this.createAccessors(B,B)}}}});var EventManager=Class.create({initialize:function(A){this.scope=A;this.events=new Hash()},addObserver:function(A){return this.events.set(A,new Hash())},observe:function(A,D){var C=this.events.get(A);if(!C){C=this.addObserver(A)}if(!Object.isFunction(D)){throw ("EventManager.observe : callback must be an js function")}var B=this.events.get(A).keys().length;C.set(B,D.bind(this.scope));return this},notify:function(B){var C=this.events.get(B);if(C){var A=$A(arguments).slice(1);C.each(function(D){if(Object.isFunction(D[1])){D[1].apply(this.scope,A)}})}return this}});var Cookie={events:new EventManager(this),isEnabled:function(){this.set("enabled","ok");var A=this.get("enabled");this.unset("enabled");return(A=="ok")?true:false},observe:function(A,B){this.events.observe(A,B);return this},set:function(B,H,J,G){var C="";var D=J||{};var I=(D.path)?"; path="+D.path:"; path=/";var F=(D.domain)?"; domain="+D.domain:"";var A=(D.secure==true)?"; secure":"";var E=new Date();if(Object.isNumber(D)){E.setTime(E.getTime()+(D*1000));C="; expires="+E.toGMTString()}else{if(D.expires){E.setTime(E.getTime()+(D.expires*1000));C="; expires="+E.toGMTString()}}document.cookie=B+"="+H+C+I+F+A;if(!G){this.events.notify("set",B,H,J)}return this},get:function(B){this.events.notify("get",B);var D=B+"=";var A=document.cookie.split(";");for(var C=0;C<A.length;C++){var E=A[C];while(E.charAt(0)==" "){E=E.substring(1,E.length)}if(E.indexOf(D)==0){return E.substring(D.length,E.length)}}return null},unset:function(A){this.events.notify("unset",A);this.set(A,"",-1,true);return this}};var History={__altered:false,__currentHash:null,__previousHash:null,__iframe:false,__title:false,init:function(){var A=this;var B=location.hash.substring(1);this.hash=$H(B.toQueryParams());this.__currentHash=B;this.__previousHash=B;this.__title=document.title;if(Prototype.Browser.IE&&Prototype.X.Browser.IE<8){document.observe("dom:loaded",function(C){if(!$("px-historyframe")){History.__iframe=new Element("iframe",{name:"px-historyframe",id:"px-historyframe",src:"",width:"0",height:"0",style:{visibility:"hidden"}});document.body.appendChild(History.__iframe);History.setHashOnIframe(A.hash.toQueryString())}})}},set:function(B,A){this.__previousHash=this.hash.toQueryString();this.hash.set(B,A);this.apply()},get:function(A){return this.hash.get(A)},unset:function(A){this.hash.unset(A);this.apply()},update:function(){this.__previousHash=this.hash.toQueryString();var B=window.location.hash.substring(1);if(Prototype.Browser.IE&&Prototype.X.Browser.IE<8&&this.__iframe){var A=this.getHashOnIframe();if(A!=B){B=A}}this.hash=$H(B.toQueryParams());this.__currentHash=B},apply:function(){var A=this.hash.toQueryString();window.location.hash=A;if(Prototype.Browser.IE&&Prototype.X.Browser.IE<8&&this.__iframe){if(this.__currentHash!=A){this.setHashOnIframe(A)}else{if(A!=this.getHashOnIframe()){this.setHashOnIframe(A)}}}},isAltered:function(){if(this.__altered==true){return true}this.__altered=false;return(History.__currentHash!=History.__previousHash)},setHashOnIframe:function(C){try{var B=History.__iframe.contentWindow.document;B.open();B.write('<html><body id="history">'+C+"</body></html>");B.close()}catch(A){}},getHashOnIframe:function(){var A=this.__iframe.contentWindow.document;if(A&&A.body.id=="history"){return A.body.innerText}else{return this.hash.toQueryString()}},setTitle:function(A){if(document.title){document.title=A}},getTitle:function(){return this.__title}};History.init();History.Registry={hash:new Hash(),set:function(A){if(typeof (A)!="object"){throw ("History.Registry.set : $config must be an javascript object")}if(!A.id||!Object.isString(A.id)){throw ("History.Registry.set : $config.id must be an string")}if(!A.onStateChange||!Object.isFunction(A.onStateChange)){throw ("History.Registry.set : $config.onStateChange must be an javascript callback function")}if(!A.defaultValue||!Object.isString(A.defaultValue)){A.defaultValue=""}this.hash.set(A.id,A)},get:function(A){return this.hash.get(A)},unset:function(A){this.hash.unset(A)}};History.Observer={delay:0.2,interval:null,started:false,start:function(){if(this.started){return }this.interval=new PeriodicalExecuter(History.Observer.dispatch,this.delay);this.started=true},stop:function(){if(!this.started){return }this.interval.stop();this.started=false},dispatch:function(){History.update();if(History.isAltered()){History.hash.each(function(B){var A=History.Registry.get(B.key);if(A){A.onStateChange.bind(History)(B.value)}})}}};Ajax.History={types:["Request","Updater"],observe:function(D,H,F,C){var B=Ajax.History.Registry.get(H);var A=0;var E=false;if(this.types.indexOf(D)==-1){throw ("Ajax.History.observer() -> type "+D+" is invalid !")}if(B==undefined){A=(C.history.state)?C.history.state:0;var G=new Hash();G.set(A,C);Ajax.History.Registry.set(H,G)}else{A=(C.history.state)?C.history.state:this.getCurrentVersion(H);B.set(A,C)}this.addCallback(D,H);return A},addCallback:function(A,B){History.Observer.start();History.__altered=true;if(!Object.isUndefined(History.Registry.get(B))){return }History.Registry.set({id:B,onStateChange:function(E){var C=Ajax.History.Registry.get(B).get(E.toString());var D=null;if(Object.isUndefined(C)){return }if(C.history.cache==true&&C.history.__request){new Ajax.Cache(C.history.__request)}else{if(A=="Request"){D=new Ajax.Request(C.history.__url,C)}else{if(A=="Updater"){D=new Ajax.Updater(C.container,C.history.__url,C)}}C.history.__request=D}History.__altered=false;if(Object.isFunction(C.history.onStateChange)){C.history.onStateChange(E)}}})},getCurrentVersion:function(B){var A=Ajax.History.Registry.get(B);return Object.isUndefined(A)?0:A.keys().length}};Ajax.History.Registry=new Hash();Ajax.History.Features={id:null,state:false,cache:false,onStateChange:null,__url:null,__request:null};Ajax.History.Request=Class.create({initialize:function(C,A){this.options={};Object.extend(this.options,A);if(this.options.history){var D=Object.clone(Ajax.History.Features);Object.extend(D,this.options.history);this.options.history=D;this.options.history.__url=C;if(Object.isUndefined(A.history.id)){throw ("Ajax.History.Request error : you must define historyId")}else{var E=this.options.history.id}var B=Ajax.History.observe("Request",E,C,this.options);History.set(E,B)}else{return new Ajax.Request(C,this.options)}}});Ajax.History.Updater=Class.create({initialize:function(E,C,A){this.options={};Object.extend(this.options,A);if(this.options.history){var D=Object.clone(Ajax.History.Features);Object.extend(D,this.options.history);this.options.history=D;this.options.history.__url=C;if(Object.isUndefined(A.history.id)){var F=(Object.isString(E))?E:E.id}else{var F=this.options.history.id}this.options.container=E;var B=Ajax.History.observe("Updater",F,C,this.options);History.set(F,B)}else{return new Ajax.Updater(E,C,this.options)}}});Ajax.Cache=Class.create(Ajax.Base,{_complete:false,initialize:function($super,A){$super(A.options);A._complete=false;this.transport=A.transport;this.request(A.url);return this},request:function(B){this.url=B;this.method=this.options.method;var D=Object.clone(this.options.parameters);try{var A=new Ajax.Response(this);if(this.options.onCreate){this.options.onCreate(A)}Ajax.Responders.dispatch("onCreate",this,A);if(this.options.asynchronous){this.respondToReadyState.bind(this).defer(1)}this.onStateChange()}catch(C){this.dispatchException(C)}}});Object.extend(Ajax.Cache.prototype,{respondToReadyState:Ajax.Request.prototype.respondToReadyState,onStateChange:Ajax.Request.prototype.onStateChange,success:Ajax.Request.prototype.getStatus,getStatus:Ajax.Request.prototype.getStatus,isSameOrigin:Ajax.Request.prototype.isSameOrigin,getHeader:Ajax.Request.prototype.getHeader,evalResponse:Ajax.Request.prototype.evalResponse,dispatchException:Ajax.Request.prototype.dispatchException});Ajax.Request=Class.create(Ajax.Request,{initialize:function($super,B,A){$super(B,A);return this}});Ajax.Request.Events=["Uninitialized","Loading","Loaded","Interactive","Complete"];Ajax.Updater=Class.create(Ajax.Updater,{initialize:function($super,A,C,B){$super(A,C,B);return this}});Prototype.X.Registry.Tabs={};var Tabs=Class.create(Class.accessors,{initialize:function(C,A){var D=this;this.items=[];this.options={element:null,elementId:null,tabsId:null,tabsContainer:null,domTabs:{},requests:{},selectEvent:"click",defaultActive:0,currentActive:null,history:true,sortable:false,sortableOptions:{tag:"li",overlap:"horizontal",constraint:"horizontal"},deletable:false},this.setOptions(this.options,A,true);this.setElement(C);this.setElementId(this.getElement().id);this.setTabsId(this.getElementId().camelize());var B=this.getElement().firstDescendant().childElements();this.setDomTabs(B);this.setTabsContainer(this.getElement().firstDescendant());this.__buildItems();this.__selectByDefault()},__buildItems:function(){var C=this;var A=this.getElement().childElements();var B=this.getDomTabs();A.shift();B.each(function(G,F){if(!C.items[F]){var E={};var D=C.options.requests[A[F].id];if(D){E=D}C.items[F]=new TabsItem(C,{item:G,panel:A[F],request:E,effect:C.effect})}})},__selectByDefault:function(){var C=this;if(this.getHistory()){History.Observer.start();History.Registry.set({id:this.getTabsId(),onStateChange:function(E){var D=C.get(E,false);if(D){if(Prototype.Browser.Opera){D.__select()}else{D.select()}}this.setTitle(this.getTitle()+" ("+E.ucfirst()+")")}});var B=History.get(this.getTabsId());var A=this.get(B,false);if(B&&A){A.select()}else{this.get(this.getDefaultActive()).select()}}else{this.get(this.getDefaultActive()).select()}},makeSortable:function(A){if(this.getSortable()){return }var B=Object.extend(this.getSortableOptions(),A||{});Sortable.create(this.getTabsContainer().identify(),B);this.setSortable(true)},show:function(C,B){var A=this.get(C);if(A){A.show(B)}},hide:function(B){var A=this.get(B);if(A){A.hide()}},select:function(B){var A=this.get(B);if(A){A.select()}},selectFirst:function(){this.items.each(function(B,A){if(B.getDisplay()){B.select();throw $break}})},selectLast:function(){this.items.last().select()},unSelectAll:function(A){A=(Object.isUndefined(A))?false:A;this.items.each(function(C,B){if(A){if(C!=A){C.unSelect()}}else{C.unSelect()}})},get:function(B,D){var E=this;var A="Error on Tabs.get() : index "+B+" is undefined ! ";if(Object.isUndefined(D)){D=true}if(Object.isNumber(B)){if(!this.items[B]){if(D){throw (A)}else{return false}}return this.items[B]}else{if(Object.isString(B)){var C=false;var F=null;this.getDomTabs().each(function(H,J){if(E.items[J]){var G=E.items[J];var I=G.getPanel().id;if(I==B){C=true;F=G}}});if(!C){if(D){throw (A)}else{return false}}return F}}if(D){throw (A)}else{return false}}});var TabsItem=Class.create(Class.accessors,{initialize:function(B,A){this.options={tabs:null,item:null,panel:null,display:true,request:null,loaded:false,titleElement:null,selected:false,iframe:null};this.setOptions(this.options,A,true);this.setTabs(B);this.__getTitleElement();this.__setEvents();this.__voidAhref();this.events=new EventManager(this)},__setEvents:function(){var B=this;var A=this.getTabs().getSelectEvent();$(this.getItem()).observe(A,this.select.bindAsEventListener(this))},__getTitleElement:function(){this.setTitleElement(this.getItem().firstDescendant())},__voidAhref:function(){var A=this.getItem().firstDescendant();if(A.hasAttribute("href")){A.href="javascript:void(0)"}},observe:function(A,B){this.events.observe(A,B);return this},getTitle:function(){return this.getTitleElement().innerHTML},setTitle:function(A){this.getTitleElement().update(A)},select:function(){if(this.getTabs().getHistory()){History.set(this.getTabs().getTabsId(),this.getPanel().id);History.setTitle(History.getTitle()+" ("+this.getPanel().id.ucfirst()+")")}this.__select()},__select:function(){if(this.getTabs().getHistory()){History.setTitle(History.getTitle()+" ("+this.getPanel().id.ucfirst()+")")}this.getTabs().unSelectAll(this);this.getItem().className="tab-show";this.getPanel().className="panel-show";this.getPanel().show();this.load();this.events.notify("select",this);this.setSelected(true)},unSelect:function(){this.getItem().className="tab-hide";this.getPanel().className="panel-hide";if(this.getSelected()){this.events.notify("unselect",this)}this.setSelected(false)},show:function(A){if(this.getDisplay()){return }this.events.notify("show",this);this.getItem().show();this.getPanel().show();this.setDisplay(true);if(A===true){this.select()}},hide:function(){if(!this.getDisplay()){return }this.events.notify("hide",this);this.getItem().hide();this.getPanel().hide();this.setDisplay(false);this.getTabs().selectFirst()},toggle:function(A){if(!this.getDisplay()){return this.show(A)}this.hide()},load:function(J){var F=this;var J=Object.extend(J||{},this.getRequest().options||{});if(this.getRequest().url!=null&&!this.getLoaded()){var I=this.getRequest().type;if(I=="ajax"){J=Object.clone(Object.extend({onLoading:function(K,M,L){L.setTitle("Loading...")}},J));var E=J.onCreate;J.onCreate=(function(K){if(Object.isFunction(E)){E(K,F)}}).bind(this);var H=J.onSuccess;J.onSuccess=(function(K,L){F.setLoaded(true);if(Object.isFunction(H)){H(K,L,F)}}).bind(this);var B=J.onFailure;J.onFailure=(function(K,L){if(Object.isFunction(B)){B(K,L,F)}}).bind(this);var C=J.onComplete;J.onComplete=(function(K,L){F.setTitle(F.options.tmpTitle);if(Object.isFunction(C)){C(K,L,F)}}).bind(this);var A=J.onLoading;J.onLoading=(function(K,L){F.options.tmpTitle=F.getTitle();if(Object.isFunction(A)){A(K,L,F)}}).bind(this);var D=J.onLoaded;J.onLoaded=(function(K,L){if(Object.isFunction(D)){D(K,L,F)}}).bind(this);var G=J.onException;J.onException=(function(L,K){if(Object.isFunction(G)){G(L,K,F)}}).bind(this);new Ajax.Updater(this.getPanel(),this.getRequest().url,Object.extend({onLoading:function(K){K.setTitle("Loading...")}},J||{}))}else{if(I=="iframe"){this.iframe=new Element("iframe",{name:this.getRequest().id,id:this.getRequest().id,src:this.getRequest().url});this.getPanel().update(this.iframe);this.setLoaded(true)}}}},reload:function(A){this.setLoaded(false);this.load(A)}});Element.addMethods({tabs:function(C,B){var D=C.id.camelize();if(!Prototype.X.Registry.Tabs[D]){Prototype.X.Registry.Tabs[D]={};var A=new Tabs(C,B);Prototype.X.Registry.Tabs[D].instance=A;return A}var A=Prototype.X.Registry.Tabs[D].instance;A.setOptions(A.options,B,true);return A}});var Prototip={Version:"2.0.5"};var Tips={options:{images:"../images/prototip/",zIndex:6000}};Prototip.Styles={"default":{border:6,borderColor:"#c7c7c7",className:"default",closeButton:false,hideAfter:false,hideOn:"mouseleave",hook:false,radius:6,showOn:"mousemove",stem:{height:12,width:15}},protoblue:{className:"protoblue",border:6,borderColor:"#116497",radius:6,stem:{height:12,width:15}},darkgrey:{className:"darkgrey",border:6,borderColor:"#363636",radius:6,stem:{height:12,width:15}},creamy:{className:"creamy",border:6,borderColor:"#ebe4b4",radius:6,stem:{height:12,width:15}},protogrey:{className:"protogrey",border:6,borderColor:"#606060",radius:6,stem:{height:12,width:15}}};eval(function(E,A,F,B,D,C){D=function(G){return(G<A?"":D(parseInt(G/A)))+((G=G%A)>35?String.fromCharCode(G+29):G.toString(36))};if(!"".replace(/^/,String)){while(F--){C[D(F)]=B[F]||D(F)}B=[function(G){return C[G]}];D=function(){return"\\w+"};F=1}while(F--){if(B[F]){E=E.replace(new RegExp("\\b"+D(F)+"\\b","g"),B[F])}}return E}('P.11(X,{5V:"1.6.0.3",3U:c(){8.3C("25");b(/^(6x?:\\/\\/|\\/)/.6i(e.9.W)){e.W=e.9.W}13{h A=/1P(?:-[\\w\\d.]+)?\\.4G(.*)/;e.W=(($$("4C 4y[2b]").3t(c(B){O B.2b.2k(A)})||{}).2b||"").3j(A,"")+e.9.W}b(25.2r.3e&&!17.3X.v){17.3X.34("v","5L:5y-5r-5k:5d");17.1f("3G:32",c(){17.4P().4I("v\\\\:*","4H: 30(#2Z#4D);")})}e.2p();r.1f(2S,"2R",8.2R)},3C:c(A){b((4v 2S[A]=="4p")||(8.2P(2S[A].4l)<8.2P(8["4i"+A]))){4g("X 6p "+A+" >= "+8["4i"+A]);}},2P:c(A){h B=A.3j(/4c.*|\\./g,"");B=6h(B+"0".6e(4-B.3g));O A.66("4c")>-1?B-1:B},62:$w("43 60"),1U:c(A){b(25.2r.3e){O A}A=A.2s(c(E,D){h B=P.2A(8)?8:8.m,C=D.5J;5E(C&&C!=B){5x{C=C.5t}5q(F){C=B}}b(C==B){O}E(D)});O A},37:c(A){O(A>0)?(-1*A):(A).5g()},2R:c(){e.4j()}});P.11(e,{1D:[],1c:[],2p:c(){8.2G=8.1t},1p:(c(A){O{1k:(A?"29":"1k"),1a:(A?"1S":"1a"),29:(A?"29":"1k"),1S:(A?"1S":"1a")}})(25.2r.3e),3D:{1k:"1k",1a:"1a",29:"1k",1S:"1a"},2f:{k:"31",31:"k",i:"1s",1s:"i",1Y:"1Y",1e:"1h",1h:"1e"},3A:{q:"1e",p:"1h"},2U:c(A){O!!23[1]?8.2f[A]:A},1n:(c(B){h A=s 4x("4w ([\\\\d.]+)").4u(B);O A?(3u(A[1])<7):10})(4n.4m),2N:(25.2r.4k&&!17.6w),34:c(A){8.1D.2L(A)},1J:c(A){h B=8.1D.3t(c(C){O C.m==$(A)});b(B){B.4f();b(B.1b){B.o.1J();b(e.1n){B.1v.1J()}}8.1D=8.1D.4b(B)}A.1P=2a},4j:c(){8.1D.3m(c(A){8.1J(A.m)}.1j(8))},2J:c(C){b(C==8.49){O}b(8.1c.3g===0){8.2G=8.9.1t;3i(h B=0,A=8.1D.3g;B<A;B++){8.1D[B].o.f({1t:8.9.1t})}}C.o.f({1t:8.2G++});b(C.T){C.T.f({1t:8.2G})}8.49=C},47:c(A){8.3f(A);8.1c.2L(A)},3f:c(A){8.1c=8.1c.4b(A)},46:c(){e.1c.1Q("V")},Y:c(B,F){B=$(B),F=$(F);h K=P.11({1g:{x:0,y:0},R:10},23[2]||{});h D=K.1z||F.2t();D.k+=K.1g.x;D.i+=K.1g.y;h C=K.1z?[0,0]:F.3H(),A=17.1E.2D(),G=K.1z?"20":"15";D.k+=(-1*(C[0]-A[0]));D.i+=(-1*(C[1]-A[1]));b(K.1z){h E=[0,0];E.q=0;E.p=0}h I={m:B.21()},J={m:P.2c(D)};I[G]=K.1z?E:F.21();J[G]=P.2c(D);3i(h H 3Q J){3O(K[H]){U"5w":U"5u":J[H].k+=I[H].q;18;U"5s":J[H].k+=(I[H].q/2);18;U"5p":J[H].k+=I[H].q;J[H].i+=(I[H].p/2);18;U"5o":U"5m":J[H].i+=I[H].p;18;U"5l":U"5j":J[H].k+=I[H].q;J[H].i+=I[H].p;18;U"5h":J[H].k+=(I[H].q/2);J[H].i+=I[H].p;18;U"5f":J[H].i+=(I[H].p/2);18}}D.k+=-1*(J.m.k-J[G].k);D.i+=-1*(J.m.i-J[G].i);b(K.R){B.f({k:D.k+"j",i:D.i+"j"})}O D}});e.2p();h 5c=59.3J({2p:c(C,E){8.m=$(C);b(!8.m){4g("X: r 58 56, 55 3J a 1b.");O}e.1J(8.m);h A=(P.2F(E)||P.2A(E)),B=A?23[2]||[]:E;8.1u=A?E:2a;b(B.28){B=P.11(P.2c(X.33[B.28]),B)}8.9=P.11(P.11({1m:10,1i:0,3k:"#4R",1o:0,u:e.9.u,19:e.9.4L,1B:!(B.1d&&B.1d=="1Z")?0.14:10,1C:10,1x:"1S",3B:10,Y:B.Y,1g:B.Y?{x:0,y:0}:{x:16,y:16},1K:(B.Y&&!B.Y.1z)?1l:10,1d:"2q",n:10,28:"2Z",15:8.m,12:10,1E:(B.Y&&!B.Y.1z)?10:1l,q:10},X.33["2Z"]),B);8.15=$(8.9.15);8.1o=8.9.1o;8.1i=(8.1o>8.9.1i)?8.1o:8.9.1i;b(8.9.W){8.W=8.9.W.2Y("://")?8.9.W:e.W+8.9.W}13{8.W=e.W+"4F/"+(8.9.28||"")+"/"}b(!8.W.4E("/")){8.W+="/"}b(P.2F(8.9.n)){8.9.n={R:8.9.n}}b(8.9.n.R){8.9.n=P.11(P.2c(X.33[8.9.28].n)||{},8.9.n);8.9.n.R=[8.9.n.R.2k(/[a-z]+/)[0].2e(),8.9.n.R.2k(/[A-Z][a-z]+/)[0].2e()];8.9.n.1I=["k","31"].3z(8.9.n.R[0])?"1e":"1h";8.1r={1e:10,1h:10}}b(8.9.1m){8.9.1m.9=P.11({2V:25.4B},8.9.1m.9||{})}8.1p=$w("4A 43").3z(8.m.4z.2e())?e.3D:e.1p;b(8.9.Y.1z){h D=8.9.Y.1q.2k(/[a-z]+/)[0].2e();8.20=e.2f[D]+e.2f[8.9.Y.1q.2k(/[A-Z][a-z]+/)[0].2e()].2B()}8.3y=(e.2N&&8.1o);8.3x();e.34(8);8.3w();X.11(8)},3x:c(){8.o=s r("S",{u:"1P"}).f({1t:e.9.1t});b(8.3y){8.o.V=c(){8.f("k:-3v;i:-3v;1O:2o;");O 8};8.o.Q=c(){8.f("1O:1c");O 8};8.o.1c=c(){O(8.2Q("1O")=="1c"&&3u(8.2Q("i").3j("j",""))>-4t)}}8.o.V();b(e.1n){8.1v=s r("4s",{u:"1v",2b:"4r:10;",4q:0}).f({2m:"2i",1t:e.9.1t-1,4o:0})}b(8.9.1m){8.24=8.24.2s(8.2O)}8.1q=s r("S",{u:"1u"});8.12=s r("S",{u:"12"}).V();b(8.9.19||(8.9.1x.m&&8.9.1x.m=="19")){8.19=s r("S",{u:"2j"}).26(8.W+"2j.2l")}},2H:c(){b(17.32){8.3r();8.3s=1l;O 1l}13{b(!8.3s){17.1f("3G:32",8.3r);O 10}}},3r:c(){$(17.2M).N(8.o);b(e.1n){$(17.2M).N(8.1v)}b(8.9.1m){$(17.2M).N(8.T=s r("S",{u:"6v"}).26(8.W+"T.6t").V())}h G="o";b(8.9.n.R){8.n=s r("S",{u:"6r"}).f({p:8.9.n[8.9.n.1I=="1h"?"p":"q"]+"j"});h B=8.9.n.1I=="1e";8[G].N(8.3p=s r("S",{u:"6q 2K"}).N(8.4e=s r("S",{u:"6o 2K"})));8.n.N(8.1T=s r("S",{u:"6n"}).f({p:8.9.n[B?"q":"p"]+"j",q:8.9.n[B?"p":"q"]+"j"}));b(e.1n&&!8.9.n.R[1].4d().2Y("6m")){8.1T.f({2m:"6l"})}G="4e"}b(8.1i){h D=8.1i,F;8[G].N(8.1W=s r("6j",{u:"1W"}).N(8.1V=s r("3n",{u:"1V 3l"}).f("p: "+D+"j").N(s r("S",{u:"2n 6g"}).N(s r("S",{u:"1X"}))).N(F=s r("S",{u:"6f"}).f({p:D+"j"}).N(s r("S",{u:"4a"}).f({1w:"0 "+D+"j",p:D+"j"}))).N(s r("S",{u:"2n 6d"}).N(s r("S",{u:"1X"})))).N(8.2W=s r("3n",{u:"2W 3l"}).N(8.2T=s r("S",{u:"2T"}).f("2I: 0 "+D+"j"))).N(8.48=s r("3n",{u:"48 3l"}).f("p: "+D+"j").N(s r("S",{u:"2n 6c"}).N(s r("S",{u:"1X"}))).N(F.6b(1l)).N(s r("S",{u:"2n 69"}).N(s r("S",{u:"1X"})))));G="2T";h C=8.1W.2X(".1X");$w("68 67 65 63").3m(c(I,H){b(8.1o>0){X.45(C[H],I,{1L:8.9.3k,1i:D,1o:8.9.1o})}13{C[H].2E("44")}C[H].f({q:D+"j",p:D+"j"}).2E("1X"+I.2B())}.1j(8));8.1W.2X(".4a",".2W",".44").1Q("f",{1L:8.9.3k})}8[G].N(8.1b=s r("S",{u:"1b "+8.9.u}).N(8.27=s r("S",{u:"27"}).N(8.12)));b(8.9.q){h E=8.9.q;b(P.61(E)){E+="j"}8.1b.f("q:"+E)}b(8.n){h A={};A[8.9.n.1I=="1e"?"i":"1s"]=8.n;8.o.N(A);8.2g()}8.1b.N(8.1q);b(!8.9.1m){8.3d({12:8.9.12,1u:8.1u})}},3d:c(E){h A=8.o.2Q("1O");8.o.f("p:1M;q:1M;1O:2o").Q();b(8.1i){8.1V.f("p:0");8.1V.f("p:0")}b(E.12){8.12.Q().42(E.12);8.27.Q()}13{b(!8.19){8.12.V();8.27.V()}}b(P.2A(E.1u)){E.1u.Q()}b(P.2F(E.1u)||P.2A(E.1u)){8.1q.42(E.1u)}8.1b.f({q:8.1b.41()+"j"});8.o.f("1O:1c").Q();8.1b.Q();h C=8.1b.21(),B={q:C.q+"j"},D=[8.o];b(e.1n){D.2L(8.1v)}b(8.19){8.12.Q().N({i:8.19});8.27.Q()}b(E.12||8.19){8.27.f("q: 3c%")}B.p=2a;8.o.f({1O:A});8.1q.2E("2K");b(E.12||8.19){8.12.2E("2K")}b(8.1i){8.1V.f("p:"+8.1i+"j");8.1V.f("p:"+8.1i+"j");B="q: "+(C.q+2*8.1i)+"j";D.2L(8.1W)}D.1Q("f",B);b(8.n){8.2g();b(8.9.n.1I=="1e"){8.o.f({q:8.o.41()+8.9.n.p+"j"})}}8.o.V()},3w:c(){8.3b=8.24.1y(8);8.40=8.V.1y(8);b(8.9.1K&&8.9.1d=="2q"){8.9.1d="1k"}b(8.9.1d==8.9.1x){8.1R=8.3Z.1y(8);8.m.1f(8.9.1d,8.1R)}b(8.19){8.19.1f("1k",c(E){E.26(8.W+"5Y.2l")}.1j(8,8.19)).1f("1a",c(E){E.26(8.W+"2j.2l")}.1j(8,8.19))}h C={m:8.1R?[]:[8.m],15:8.1R?[]:[8.15],1q:8.1R?[]:[8.o],19:[],2i:[]},A=8.9.1x.m;8.39=A||(!8.9.1x?"2i":"m");8.1N=C[8.39];b(!8.1N&&A&&P.2F(A)){8.1N=8.1q.2X(A)}h D={29:"1k",1S:"1a"};$w("Q V").3m(c(H){h G=H.2B(),F=(8.9[H+"3Y"].38||8.9[H+"3Y"]);8[H+"3W"]=F;b(["29","1S","1k","1a"].2Y(F)){8[H+"3W"]=(8.1p[F]||F);8["38"+G]=X.1U(8["38"+G])}}.1j(8));b(!8.1R){8.m.1f(8.9.1d,8.3b)}b(8.1N){8.1N.1Q("1f",8.5X,8.40)}b(!8.9.1K&&8.9.1d=="1Z"){8.2u=8.R.1y(8);8.m.1f("2q",8.2u)}8.3V=8.V.2s(c(G,F){h E=F.5P(".2j");b(E){E.5N();F.5M();G(F)}}).1y(8);b(8.19||(8.9.1x&&(8.9.1x.m==".2j"))){8.o.1f("1Z",8.3V)}b(8.9.1d!="1Z"&&(8.39!="m")){8.2C=X.1U(c(){8.1G("Q")}).1y(8);8.m.1f(8.1p.1a,8.2C)}h B=[8.m,8.o];8.36=X.1U(c(){e.2J(8);8.2v()}).1y(8);8.35=X.1U(8.1C).1y(8);B.1Q("1f",8.1p.1k,8.36).1Q("1f",8.1p.1a,8.35);b(8.9.1m&&8.9.1d!="1Z"){8.2z=X.1U(8.3T).1y(8);8.m.1f(8.1p.1a,8.2z)}},4f:c(){b(8.9.1d==8.9.1x){8.m.1A(8.9.1d,8.1R)}13{8.m.1A(8.9.1d,8.3b);b(8.1N){8.1N.1Q("1A")}}b(8.2u){8.m.1A("2q",8.2u)}b(8.2C){8.m.1A("1a",8.2C)}8.o.1A();8.m.1A(8.1p.1k,8.36).1A(8.1p.1a,8.35);b(8.2z){8.m.1A(8.1p.1a,8.2z)}},2O:c(C,B){b(!8.1b){b(!8.2H()){O}}8.R(B);b(8.2y){O}13{b(8.3S){C(B);O}}8.2y=1l;h D={2h:{1F:22.1F(B),1H:22.1H(B)}};h A=P.2c(8.9.1m.9);A.2V=A.2V.2s(c(F,E){8.3d({12:8.9.12,1u:E.5I});8.R(D);(c(){F(E);h G=(8.T&&8.T.1c());b(8.T){8.1G("T");8.T.1J();8.T=2a}b(G){8.Q()}8.3S=1l;8.2y=2a}.1j(8)).1B(0.6)}.1j(8));8.5H=r.Q.1B(8.9.1B,8.T);8.o.V();8.2y=1l;8.T.Q();8.5F=(c(){s 5B.5A(8.9.1m.30,A)}.1j(8)).1B(8.9.1B);O 10},3T:c(){8.1G("T")},24:c(A){b(!8.1b){b(!8.2H()){O}}8.R(A);b(8.o.1c()){O}8.1G("Q");8.5z=8.Q.1j(8).1B(8.9.1B)},1G:c(A){b(8[A+"3N"]){5v(8[A+"3N"])}},Q:c(){b(8.o.1c()){O}b(e.1n){8.1v.Q()}b(8.9.3B){e.46()}e.47(8);8.1b.Q();8.o.Q();b(8.n){8.n.Q()}8.m.3M("1P:5C")},1C:c(A){b(8.9.1m){b(8.T&&8.9.1d!="1Z"){8.T.V()}}b(!8.9.1C){O}8.2v();8.5D=8.V.1j(8).1B(8.9.1C)},2v:c(){b(8.9.1C){8.1G("1C")}},V:c(){8.1G("Q");8.1G("T");b(!8.o.1c()){O}8.3L()},3L:c(){b(e.1n){8.1v.V()}b(8.T){8.T.V()}8.o.V();(8.1W||8.1b).Q();e.3f(8);8.m.3M("1P:2o")},3Z:c(A){b(8.o&&8.o.1c()){8.V(A)}13{8.24(A)}},2g:c(){h C=8.9.n,B=23[0]||8.1r,D=e.2U(C.R[0],B[C.1I]),F=e.2U(C.R[1],B[e.2f[C.1I]]),A=8.1o||0;8.1T.26(8.W+D+F+".2l");b(C.1I=="1e"){h E=(D=="k")?C.p:0;8.3p.f("k: "+E+"j;");8.1T.f({"2w":D});8.n.f({k:0,i:(F=="1s"?"3c%":F=="1Y"?"50%":0),5G:(F=="1s"?-1*C.q:F=="1Y"?-0.5*C.q:0)+(F=="1s"?-1*A:F=="i"?A:0)+"j"})}13{8.3p.f(D=="i"?"1w: 0; 2I: "+C.p+"j 0 0 0;":"2I: 0; 1w: 0 0 "+C.p+"j 0;");8.n.f(D=="i"?"i: 0; 1s: 1M;":"i: 1M; 1s: 0;");8.1T.f({1w:0,"2w":F!="1Y"?F:"2i"});b(F=="1Y"){8.1T.f("1w: 0 1M;")}13{8.1T.f("1w-"+F+": "+A+"j;")}b(e.2N){b(D=="1s"){8.n.f({R:"3P",5n:"5K",i:"1M",1s:"1M","2w":"k",q:"3c%",1w:(-1*C.p)+"j 0 0 0"});8.n.28.2m="3K"}13{8.n.f({R:"3R","2w":"2i",1w:0})}}}8.1r=B},R:c(B){b(!8.1b){b(!8.2H()){O}}e.2J(8);b(e.1n){h A=8.o.21();b(!8.2x||8.2x.p!=A.p||8.2x.q!=A.q){8.1v.f({q:A.q+"j",p:A.p+"j"})}8.2x=A}b(8.9.Y){h J,H;b(8.20){h K=17.1E.2D(),C=B.2h||{};h G,I=2;3O(8.20.4d()){U"5O":U"5i":G={x:0-I,y:0-I};18;U"5Q":G={x:0,y:0-I};18;U"5R":U"5S":G={x:I,y:0-I};18;U"5T":G={x:I,y:0};18;U"5U":U"5e":G={x:I,y:I};18;U"5W":G={x:0,y:I};18;U"5b":U"5a":G={x:0-I,y:I};18;U"5Z":G={x:0-I,y:0};18}G.x+=8.9.1g.x;G.y+=8.9.1g.y;J=P.11({1g:G},{m:8.9.Y.1q,20:8.20,1z:{i:C.1H||22.1H(B)-K.i,k:C.1F||22.1F(B)-K.k}});H=e.Y(8.o,8.15,J);b(8.9.1E){h M=8.3a(H),L=M.1r;H=M.R;H.k+=L.1h?2*X.37(G.x-8.9.1g.x):0;H.i+=L.1h?2*X.37(G.y-8.9.1g.y):0;b(8.n&&(8.1r.1e!=L.1e||8.1r.1h!=L.1h)){8.2g(L)}}H={k:H.k+"j",i:H.i+"j"};8.o.f(H)}13{J=P.11({1g:8.9.1g},{m:8.9.Y.1q,15:8.9.Y.15});H=e.Y(8.o,8.15,P.11({R:1l},J));H={k:H.k+"j",i:H.i+"j"}}b(8.T){h E=e.Y(8.T,8.15,P.11({R:1l},J))}b(e.1n){8.1v.f(H)}}13{h F=8.15.2t(),C=B.2h||{},H={k:((8.9.1K)?F[0]:C.1F||22.1F(B))+8.9.1g.x,i:((8.9.1K)?F[1]:C.1H||22.1H(B))+8.9.1g.y};b(!8.9.1K&&8.m!==8.15){h D=8.m.2t();H.k+=-1*(D[0]-F[0]);H.i+=-1*(D[1]-F[1])}b(!8.9.1K&&8.9.1E){h M=8.3a(H),L=M.1r;H=M.R;b(8.n&&(8.1r.1e!=L.1e||8.1r.1h!=L.1h)){8.2g(L)}}H={k:H.k+"j",i:H.i+"j"};8.o.f(H);b(8.T){8.T.f(H)}b(e.1n){8.1v.f(H)}}},3a:c(C){h E={1e:10,1h:10},D=8.o.21(),B=17.1E.2D(),A=17.1E.21(),G={k:"q",i:"p"};3i(h F 3Q G){b((C[F]+D[G[F]]-B[F])>A[G[F]]){C[F]=C[F]-(D[G[F]]+(2*8.9.1g[F=="k"?"x":"y"]));b(8.n){E[e.3A[G[F]]]=1l}}}O{R:C,1r:E}}});P.11(X,{45:c(G,H){h F=23[2]||8.9,B=F.1o,E=F.1i,D=s r("57",{u:"64"+H.2B(),q:E+"j",p:E+"j"}),A={i:(H.3I(0)=="t"),k:(H.3I(1)=="l")};b(D&&D.3h&&D.3h("2d")){G.N(D);h C=D.3h("2d");C.54=F.1L;C.53((A.k?B:E-B),(A.i?B:E-B),B,0,6a.52*2,1l);C.51();C.3F((A.k?B:0),0,E-B,E);C.3F(0,(A.i?B:0),E,E-B)}13{G.N(s r("S").f({q:E+"j",p:E+"j",1w:0,2I:0,2m:"3K",R:"3P",4Z:"2o"}).N(s r("v:4Y",{4X:F.1L,4W:"4V",4U:F.1L,4T:(B/E*0.5).4S(2)}).f({q:2*E-1+"j",p:2*E-1+"j",R:"3R",k:(A.k?0:(-1*E))+"j",i:(A.i?0:(-1*E))+"j"})))}}});r.6k({26:c(C,B){C=$(C);h A=P.11({3E:"i k",3q:"4Q-3q",3o:"4O",1L:""},23[2]||{});C.f(e.1n?{4N:"4M:6s.4K.6u(2b=\'"+B+"\'\', 3o=\'"+A.3o+"\')"}:{4J:A.1L+" 30("+B+") "+A.3E+" "+A.3q});O C}});X.4h={Q:c(){e.2J(8);8.2v();h D={};b(8.9.Y){D.2h={1F:0,1H:0}}13{h A=8.15.2t(),C=8.15.3H(),B=17.1E.2D();A.k+=(-1*(C[0]-B[0]));A.i+=(-1*(C[1]-B[1]));D.2h={1F:A.k,1H:A.i}}b(8.9.1m){8.2O(D)}13{8.24(D)}8.1C()}};X.11=c(A){A.m.1P={};P.11(A.m.1P,{Q:X.4h.Q.1j(A),V:A.V.1j(A),1J:e.1J.1j(e,A.m)})};X.3U();',62,406,"||||||||this|options||if|function||Tips|setStyle||var|top|px|left||element|stem|wrapper|height|width|Element|new||className|||||||||||||||||||insert|return|Object|show|position|div|loader|case|hide|images|Prototip|hook||false|extend|title|else||target||document|break|closeButton|mouseout|tooltip|visible|showOn|horizontal|observe|offset|vertical|border|bind|mouseover|true|ajax|fixIE|radius|useEvent|tip|stemInverse|bottom|zIndex|content|iframeShim|margin|hideOn|bindAsEventListener|mouse|stopObserving|delay|hideAfter|tips|viewport|pointerX|clearTimer|pointerY|orientation|remove|fixed|backgroundColor|auto|hideTargets|visibility|prototip|invoke|eventToggle|mouseleave|stemImage|capture|borderTop|borderFrame|prototip_Corner|middle|click|mouseHook|getDimensions|Event|arguments|showDelayed|Prototype|setPngBackground|toolbar|style|mouseenter|null|src|clone||toLowerCase|_inverse|positionStem|fakePointer|none|close|match|png|display|prototip_CornerWrapper|hidden|initialize|mousemove|Browser|wrap|cumulativeOffset|eventPosition|cancelHideAfter|float|iframeShimDimensions|ajaxContentLoading|ajaxHideEvent|isElement|capitalize|eventCheckDelay|getScrollOffsets|addClassName|isString|zIndexTop|build|padding|raise|clearfix|push|body|WebKit419|ajaxShow|convertVersionString|getStyle|unload|window|borderCenter|inverseStem|onComplete|borderMiddle|select|include|default|url|right|loaded|Styles|add|activityLeave|activityEnter|toggleInt|event|hideElement|getPositionWithinViewport|eventShow|100|_update|IE|removeVisible|length|getContext|for|replace|borderColor|borderRow|each|li|sizingMethod|stemWrapper|repeat|_build|_isBuilding|find|parseFloat|9500px|activate|setup|fixSafari2|member|_stemTranslation|hideOthers|require|specialEvent|align|fillRect|dom|cumulativeScrollOffset|charAt|create|block|afterHide|fire|Timer|switch|relative|in|absolute|ajaxContentLoaded|ajaxHide|start|buttonEvent|Action|namespaces|On|toggle|eventHide|getWidth|update|input|prototip_Fill|createCorner|hideAll|addVisibile|borderBottom|_highest|prototip_Between|without|_|toUpperCase|stemBox|deactivate|throw|Methods|REQUIRED_|removeAll|WebKit|Version|userAgent|navigator|opacity|undefined|frameBorder|javascript|iframe|9500|exec|typeof|MSIE|RegExp|script|tagName|area|emptyFunction|head|VML|endsWith|styles|js|behavior|addRule|background|Microsoft|closeButtons|progid|filter|scale|createStyleSheet|no|000000|toFixed|arcSize|strokeColor|1px|strokeWeight|fillcolor|roundrect|overflow||fill|PI|arc|fillStyle|cannot|available|canvas|not|Class|LEFTBOTTOM|BOTTOMLEFT|Tip|vml|BOTTOMRIGHT|leftMiddle|abs|bottomMiddle|TOPLEFT|rightBottom|com|bottomRight|leftBottom|clear|bottomLeft|rightMiddle|catch|microsoft|topMiddle|parentNode|rightTop|clearTimeout|topRight|try|schemas|showTimer|Request|Ajax|shown|hideAfterTimer|while|ajaxTimer|marginTop|loaderTimer|responseText|relatedTarget|both|urn|stop|blur|LEFTTOP|findElement|TOPMIDDLE|TOPRIGHT|RIGHTTOP|RIGHTMIDDLE|RIGHTBOTTOM|REQUIRED_Prototype|BOTTOMMIDDLE|hideAction|close_hover|LEFTMIDDLE|textarea|isNumber|_captureTroubleElements|br|cornerCanvas|bl|indexOf|tr|tl|prototip_CornerWrapperBottomRight|Math|cloneNode|prototip_CornerWrapperBottomLeft|prototip_CornerWrapperTopRight|times|prototip_BetweenCorners|prototip_CornerWrapperTopLeft|parseInt|test|ul|addMethods|inline|MIDDLE|prototip_StemImage|prototip_StemBox|requires|prototip_StemWrapper|prototip_Stem|DXImageTransform|gif|AlphaImageLoader|prototipLoader|evaluate|https".split("|"),0,{}));registerNS("com.qualcomm");com.qualcomm.Exception=Class.create({Class:"com.qualcomm.Exception",initialize:function(A,B){this.message=A;this.callingObject=B},toString:function(){var A=this.Class+": "+this.message;if(this.callingObject){A+=" in "+this.callingObject}return A}});registerNS("com.qualcomm");com.qualcomm.cookie={set:function(A,G,H,E,C){var B="";var I="/";var D="";if(H!=undefined){var F=new Date();F.setTime(F.getTime()+(86400000*parseFloat(H)));B="; expires="+F.toGMTString()}if(E!=undefined){I="; path="+escape(E)}if(C!=undefined){D="; domain="+escape(C)}return(document.cookie=escape(A)+"="+escape(G||"")+B+I+D)},get:function(A){var B=document.cookie.match(new RegExp("(^|;)\\s*"+escape(A)+"=([^;\\s]*)"));return(B?unescape(B[2]):null)},erase:function(A){var B=Cookie.get(A)||true;Cookie.set(A,"",-1);return B},accept:function(){if(typeof navigator.cookieEnabled=="boolean"){return navigator.cookieEnabled}Cookie.set("_test","1");return(Cookie.erase("_test")==="1")}};com.qualcomm.cookie.writeCookie=function(D,E,B){var A="";if(B){var C=new Date();C.setTime(C.getTime()+(B*24*60*60*1000));A="; expires="+C.toGMTString()}document.cookie=D+"="+E+A+"; path=/"};com.qualcomm.cookie.readCookie=function(B){var D=B+"=";var A=document.cookie.split(";");for(var C=0;C<A.length;C++){var E=A[C];while(E.charAt(0)==" "){E=E.substring(1,E.length)}if(E.indexOf(D)==0){return E.substring(D.length,E.length)}}return null};com.qualcomm.cookie.Cookie=Class.create({Class:"com.qualcomm.cookie.Cookie",initialize:function(B,A){this._name=B;this.options={cookieInterfaceObj:com.qualcomm.cookie,daysToExpire:7};Object.extend(this.options,A||{});this._cookieInterface=this.options.cookieInterfaceObj;if(!this._cookieInterface.accept()){return false}if(this._cookieInterface.get(this.getName())==null){this._cookieInterface.set(this.getName(),new Hash({createdAt:new Date().toUTCString(),updatedAt:new Date().toUTCString()}).toJSON(),this.getDaysToExpire())}},getName:function(){return this._name},getValue:function(B){var A,C;C=this._getHashOfRawValue();A=C.get(B);if(B=="updatedAt"||B=="createdAt"){A=new Date(Date.parse(A))}return Object.extend(A)},getDaysToExpire:function(){return this.options.daysToExpire},unsetValue:function(A){this._unsetValue(A)},setValue:function(A,B){this._setValue(A,B)},setDaysToExpire:function(A){this.options.daysToExpire=A;this._cookieInterface.set(this.getName(),this._getRawValue(),this.options.daysToExpire)},erase:function(){this._cookieInterface.erase(this.getName())},_getRawValue:function(){if(this._cookieInterface.get(this.getName())!=null){return this._cookieInterface.get(this.getName())}else{return""}},_getHashOfRawValue:function(){if(this._cookieInterface.get(this.getName())!=null){var o=this._getRawValue().evalJSON();var h=Object.keys(o).inject(new Hash(),function(acc,key){acc.set(key,eval("o."+key));return acc});return h}else{return new Hash()}},_setValue:function(A,C){var B=this._getHashOfRawValue();B.set(A,C);B.set("updatedAt",new Date().toUTCString());this._cookieInterface.set(this.getName(),B.toJSON(),this.getDaysToExpire())},_unsetValue:function(A){var B=this._getHashOfRawValue();B.unset(A);B.set("updatedAt",new Date().toUTCString());this._cookieInterface.set(this.getName(),B.toJSON(),this.getDaysToExpire())}});com.qualcomm.cookies=com.qualcomm.cookie;registerNS("com.qualcomm");com.qualcomm.notice={types:{success:1,warning:2,error:3}};com.qualcomm.notice.Base=Class.create({Version:1,Class:"com.qualcomm.notice.Base",initialize:function(B,A){this.message=B;this.options={type:null,afterShow:Prototype.emptyFunction,afterRemove:Prototype.emptyFunction};Object.extend(this.options,A||{})}});com.qualcomm.notice.Dialog=Class.create(com.qualcomm.notice.Base,{Class:"com.qualcomm.notice.Dialog",initialize:function($super,C,A){var B={};$super(C,Object.extend(B,A||{}));this._show()},_show:function(){alert(this._format(this.message));this.options.afterShow.bind(this).defer()},_format:function(A){return A}});com.qualcomm.notice.inlineTargets={_targets:new Array(),add:function(){if(this.find(arguments[0])){return this.find(arguments[0])}else{this._targets.push(new com.qualcomm.notice.InlineTarget(arguments[0],arguments[1]));return this._targets.last()}},remove:function(A){this._targets=this._targets.reject(function(B){return B.id==A})},find:function(A){return this._targets.find(function(B){return B.id==A})}};com.qualcomm.notice.InlineTarget=Class.create({Class:"com.qualcomm.notice.InlineTarget",initialize:function(B,A){this.id=B;this._notices=new Array();this.options={removeAllOnAdd:true,insert:{selector:"body",position:"top"},classNames:{container:"notices"},afterEffectIn:Prototype.emptyFunction,afterEffectOut:Prototype.emptyFunction,effectIn:function(C){Effect.Appear(C,{duration:0.5,afterFinish:function(D){this.options.afterEffectIn.bind(this).defer()}.bind(this)})},effectOut:function(C){Effect.Fade(C,{duration:0.5,queue:"end",afterFinish:function(D){D.element.remove();this.options.afterEffectOut.bind(this).defer()}.bind(this)})}};Object.extend(this.options,A||{})},remove:function(){},addNotice:function(C,A){var D=new com.qualcomm.notice.Inline(this,C,A);if(this.options.removeAllOnAdd){this.removeAllNotices()}this._notices.push(D);if(this.container){if(this._notices.length>0){this.container.down().insert({bottom:this._notices.last().buildNoticeElement()})}}else{var B=$$(this.options.insert.selector).first();this.container=this._buildContainerElement();B.insert(this._getInsertionHash(this.options.insert.position,this.container));this._notices.each(function(E){this.container.down(".inner").insert({bottom:E.buildNoticeElement()})}.bind(this))}this.options.effectIn.bind(this,D.element).defer();if(D.options.duration){this.removeNotice.bind(this,D).delay(D.options.duration)}return D},removeNotice:function(A){if(this._notices.include(A)){this._notices.without(A);this.options.effectOut.bind(this,A.element).defer()}},removeAllNotices:function(){if(this.container){this.container.down().childElements().each(function(A){A.remove()})}this._notices.clear()},_buildContainerElement:function(B){var A=new Element("div",{"class":"inner"});return new Element("div",{id:this.id,"class":this.options.classNames.container}).update(A)},_getInsertionHash:function(A,B){switch(A){case"top":return{top:B};case"bottom":return{bottom:B};case"before":return{before:B};case"after":return{after:B};default:return{top:B}}}});com.qualcomm.notice.Inline=Class.create(com.qualcomm.notice.Base,{Class:"com.qualcomm.notice.Inline",initialize:function($super,D,C,A){this.target=D;var B={duration:null,classNames:{notice:"notice",success:"success",warning:"warning",error:"error"}};$super(C,Object.extend(B,A||{}))},buildNoticeElement:function(){var A;switch(this.options.type){case com.qualcomm.notice.types.success:A=this.options.classNames.success;break;case com.qualcomm.notice.types.warning:A=this.options.classNames.warning;break;case com.qualcomm.notice.types.error:A=this.options.classNames.error;break;default:A=""}var B=new Element("div",{"class":"inner"}).update(this.message);var C=new Element("div",{"class":(this.options.classNames.notice+" "+A),style:"display:none;"}).update(B);this.element=C;return C},_selectorFromClassNames:function(A){var B=A.split(" ");return B.inject("",function(D,C){D+=" ."+C;return D})}});registerNS("com.qualcomm.overlay");if(Object.isUndefined(com.qualcomm.overlay)){com.qualcomm.overlay={}}com.qualcomm.overlay.Base=Class.create({initialize:function(A){this.visible=false;this.options={id:"overlay",className:"overlay",showOnInitialize:true,content:null,beforeLoad:Prototype.emptyFunction,afterShow:Prototype.emptyFunction,onPosition:Prototype.emptyFunction,afterRemove:Prototype.emptyFunction};Object.extend(this.options,A||{});this._load()},show:function(){this.bPosition=this.position.bindAsEventListener(this);this.element=new Element("div",{id:this.options.id,"class":this.options.className});if(this.options.content){this.element.update(this.options.content)}this.containerElem.insert({top:this.element});Event.observe(window,"resize",this.bPosition);Event.observe(window,"scroll",this.bPosition);this.visible=true;this.bPosition.bind(this).defer();this.options.afterShow.bind(this).defer()},remove:function(){if(this.visible){if($(this.options.id)){$(this.options.id).remove()}Event.stopObserving(window,"resize",this.bPosition);Event.stopObserving(window,"scroll",this.bPosition);this.options.afterRemove();this.visible=false}}});com.qualcomm.overlay.Viewport=Class.create(com.qualcomm.overlay.Base,{initialize:function($super,A){$super(A)},_load:function(){this.options.beforeLoad();try{this.containerElem=$$("body").first();if(this.options.showOnInitialize==true){this.show()}}catch(A){}},position:function(){this.options.onPosition();var C=$$("html").first().getHeight();var B=document.viewport.getHeight();var A=C<B?B:C;if(this.element){this.element.setStyle({height:A+"px"})}}});com.qualcomm.overlay.Block=Class.create(com.qualcomm.overlay.Base,{initialize:function($super,B,A){this.element=B;var C={id:"overlayblock",className:"overlayblock"};$super(Object.extend(C,A||{}))},_load:function(){this.options.beforeLoad();try{this.containerElem=$(this.element);if(this.options.showOnInitialize==true){this.show()}}catch(A){}},position:function(){this.options.onPosition();if(this.element){this.element.clonePosition(this.containerElem)}}});registerNS("com.qualcomm");com.qualcomm.Calendar=Class.create({Class:"com.qualcomm.Calendar",MonthNamesAbbrev:new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"),MonthNamesFull:new Array("January","February","March","April","May","June","July","August","September","October","November","December"),initialize:function(A,B){this.initialUpdate=true;this.monthUrlFmt=A;this.currentState;this.options={calendarId:"calendar",hash:"calendar",classNames:{controls:"calendar-controls",previous:"prev-month",next:"next-month"},grid:{},paths:{spinner:"/common/images/spinner.gif"},cookieName:"calendar",maxNextMonths:1200,maxPreviousMonths:1200,beforeUpdate:Prototype.emptyFunction,afterUpdateSuccess:Prototype.emptyFunction,afterUpdateFailure:Prototype.emptyFunction,onAjaxError:Prototype.emptyFunction,onDateRangeError:Prototype.emptyFunction,onStateError:Prototype.emptyFunction};Object.extend(this.options,B||{});this.initDate=new Date();this.cookie=new com.qualcomm.cookie.Cookie(this.options.cookieName);this.element=$(this.options.calendarId);this.element.calendar=this;this.controlsElems=$$("."+this.options.classNames.controls);History.Observer.start();History.Registry.set({id:this.options.hash,onStateChange:function(C){this._update(C)}.bind(this)});this._update(this.options.initialState||this._getInitialState())},prev:function(){if(!com.qualcomm.Calendar.loading){var A,B;if(this.currentMonth-1>0){A=this.currentYear;B=this.currentMonth-1}else{A=this.currentYear-1;B=12}this._update(this.buildState(A,B))}},next:function(){if(!com.qualcomm.Calendar.loading){var A,B;if(this.currentMonth+1<=12){A=this.currentYear;B=this.currentMonth+1}else{A=this.currentYear+1;B=1}this._update(this.buildState(A,B))}},goTo:function(A){if(!com.qualcomm.Calendar.loading){this._update(A)}},buildState:function(A,B){return A+"-"+B},_validateState:function(B){var A=new RegExp(/^\d+-\d+$/);return A.test(B)},_parseState:function(C){var A=C.split("-");if(A.length!=2&&!this._validateState(C)){throw new com.qualcomm.Calendar.StateError('Incorrect format for calendar state. Should be "YYYY-MM".')}var B=A[0];var D=A[1];if(isNaN(B)){throw new com.qualcomm.Calendar.StateError("You entered an invalid year. Try selecting another.")}if(isNaN(D)||D>12||D<1){throw new com.qualcomm.Calendar.StateError("You entered an invalid month. Try selecting another.")}return{year:parseInt(B),month:parseInt(D)}},_setState:function(D){var A=this._parseState(D);var B=A.year;var C=A.month;if(this._compareWithMaxNextMonths(B,C)>0||this._compareWithMaxPreviousMonths(B,C)<0){throw new com.qualcomm.Calendar.DateRangeError("Calendar for "+this.MonthNamesFull[C-1]+", "+B+" is out of range. Try a month closer to today.")}this.currentYear=B;this.currentMonth=C;this.currentState=D;History.set(this.options.hash,D);if(this.cookie){this.cookie.setValue("currentState",D)}},_getInitialState:function(){var C,B,A;C=History.get(this.options.hash);if(this.cookie){B=this.cookie.getValue("currentState")}A=Try.these(function(){return this._parseState(C)}.bind(this),function(){return this._parseState(B)}.bind(this),function(){return{year:new Date().getFullYear(),month:new Date().getMonth()+1}});return this.buildState(A.year,A.month)},_notify:function(C,B){function D(E){switch(E){case"success":return com.qualcomm.notice.types.success;case"warning":return com.qualcomm.notice.types.warning;case"error":return com.qualcomm.notice.types.error;default:return null}}var A={type:D(B),duration:6};return Try.these(function(){var E;try{E=com.qualcomm.notice.inlineTargets.find("notices");return E.addNotice(C,A)}catch(F){E.removeAllNotices();throw F}},function(){return com.qualcomm.notice.Dialog(C,A)},function(){return alert(C)})||false},_update:function(C){if(C!=this.currentState){this.options.beforeUpdate();try{this._setState(C);if(this.initialUpdate&&this.element.down(".month-data")){this.initialUpdate=false}else{this.initialUpdate=false;com.qualcomm.Calendar.loading=true;if(this.element.down()){var A=this.element.down().down("div#calendar-grid");if(A==undefined){A=this.element.down()}this.overlay=new com.qualcomm.overlay.Block(A,{content:new Element("img",{src:this.options.paths.spinner,style:"display:none",alt:" "}),afterShow:function(){if($("overlayblock")){$("overlayblock").select("img").first().show()}}})}new Ajax.Request(this.monthUrlFmt.replace(/#{year_id}/,this.currentYear).replace(/#{month_id}/,this.currentMonth)+"?"+Math.round(Math.random()*100000),{method:"get",onSuccess:function(D){this.placeholderElem=new Element("div",{id:"calendar-placeholder",style:"display:none;"}).update(D.responseText);this.element.insert({before:this.placeholderElem});this._updateGrid.bind(this).defer();this.options.afterUpdateSuccess.bind(this).defer();this._endAjaxUpdate(true);return true}.bind(this),onFailure:function(D){this.options.afterUpdateFailure.bind(this).defer();this._endAjaxUpdate(false);throw new com.qualcomm.Calendar.AjaxError("Unable to load calendar for "+this.MonthNamesFull[this.currentMonth-1]+", "+this.currentYear+". Try a different month.")}.bind(this),onException:function(E,D){if(this.overlay){this.overlay.remove()}if(D instanceof com.qualcomm.Calendar.AjaxError){this._onAjaxError(D)}return false}.bind(this)})}}catch(B){if(this.overlay){this.overlay.remove()}this.options.afterUpdateFailure.bind(this).defer();if(B instanceof com.qualcomm.Calendar.StateError){this._onStateError(B)}else{if(B instanceof com.qualcomm.Calendar.DateRangeError){this._onDateRangeError(B)}else{throw B}}}}else{return false}},_updateGrid:function(){this.element.update(this.placeholderElem.down());this.grid=new com.qualcomm.Calendar.Grid("calendar-grid",this.options.grid);this.placeholderElem.remove()},_showEmptyMonth:function(){this.element.update('<div class="month-data empty"><div class="message"><div class="primary">Unable To Load Calendar</div></div></div>')},_endAjaxUpdate:function(A){com.qualcomm.Calendar.loading=false;this._updateControls()},_updateControls:function(){var A=this._compareWithMaxNextMonths(this.currentYear,this.currentMonth);if(A>=0){this.controlsElems.each(function(B){B.select("."+this.options.classNames.next).each(function(C){C.hide()}.bind(this))}.bind(this))}else{this.controlsElems.each(function(B){B.select("."+this.options.classNames.next).each(function(C){C.show()}.bind(this))}.bind(this))}A=this._compareWithMaxPreviousMonths(this.currentYear,this.currentMonth);if(A<=0){this.controlsElems.each(function(B){B.select("."+this.options.classNames.previous).each(function(C){C.hide()}.bind(this))}.bind(this))}else{this.controlsElems.each(function(B){B.select("."+this.options.classNames.previous).each(function(C){C.show()}.bind(this))}.bind(this))}},_compareWithMaxNextMonths:function(D,E){var C=(this.initDate.getMonth())+this.options.maxNextMonths;var A=this.initDate.getFullYear()+Math.floor(C/12);var G=C%12+1;var F=new Date(A,G-1,1);var B=new Date(D,E-1,1);if(B>F){return 1}else{if(B<F){return -1}else{return 0}}},_compareWithMaxPreviousMonths:function(D,E){var C=(this.initDate.getMonth())-this.options.maxPreviousMonths;var A=this.initDate.getFullYear()+Math.floor(C/12);var G=C%12+1;var F=new Date(A,G-1,1);var B=new Date(D,E-1,1);if(B>F){return 1}else{if(B<F){return -1}else{return 0}}},_onStateError:function(A){this.options.onStateError.bind(this,A);if($$(".month-data").length==0){this._showEmptyMonth()}this._notify(A.message,"error")},_onDateRangeError:function(A){this.options.onDateRangeError.bind(this,A);if($$(".month-data").length==0){this._showEmptyMonth()}this._notify(A.message,"warning")},_onAjaxError:function(A){this.options.onAjaxError.bind(this,A);if($$(".month-data").length==0){this._showEmptyMonth()}this._notify(A.message,"error")}});com.qualcomm.Calendar.loading=false;com.qualcomm.Calendar.Grid=Class.create({Class:"com.qualcomm.Calendar.Grid",initialize:function(B,A){this.options={classNames:{},styles:{spacing:1,cellsInRow:7},row:{cell:{}}};Object.extend(this.options,A||{});if(Prototype.Browser.IE){this.options.spacing+=1}this.element=$(B);this.element.instance=this;this.calendar=this.element.up().up().calendar;this._update()},_update:function(){this.width=this.element.getWidth()-(this.options.styles.spacing*2);var B=com.qualcomm.Calendar;var A=this.options.row;this.element.down().down("tbody").childElements().each(function(D,C){D.grid=this;D.index=C;new B.Row(D,A)}.bind(this));if(this.calendar.overlay){this.calendar.overlay.remove()}}});com.qualcomm.Calendar.Row=Class.create({Class:"com.qualcomm.Calendar.Row",initialize:function(B,A){this.options={};Object.extend(this.options,A||{});this.element=$(B);this.element.instance=this;this.grid=this.element.grid;this.cells=new Array();this.index=this.element.index;this.processed=new Array();var A=this.options.cell;var C=com.qualcomm.Calendar;this.tds=this.element.childElements();this.cellCount=this.tds.length;this.tds.each(function(D){if(!D.hasClassName("empty")){this.cells.push(new C.Cell(D,A))}else{this.cells.push(null)}}.bind(this));this.cells.each(function(D){if(D){D.draw()}})}});com.qualcomm.Calendar.Cell=Class.create({Class:"com.qualcomm.Calendar.Cell",initialize:function(B,A){this.element=$(B);this.element.instance=this;this.row=this.element.up().instance;this.grid=this.row.grid;this.options={classNames:{},styles:{height:100,padding:3,border:1,spacing:1},appt:{styles:{height:20,padding:8,marginTop:2}}};Object.extend(this.options,A||{});if(Prototype.Browser.IE){this.options.spacing+=1}this.styles=this.options.styles;this._slots=$R(0,20).inject(new Array(),function(E,D){E.push(null);return E});this.appointmentCount=0;this.appointments=new Array();this.width=(this.grid.width-(this.styles.spacing*(this.row.cellCount-1)))/this.row.cellCount;var C=com.qualcomm.Calendar;this.element.childElements().each(function(D){if(D.hasClassName("appointment")){this.appointmentCount++;var E=C.Appointment.getIdFromClassNames(D.className);if(!this.row.processed.find(function(F){return F.id==E})){this.appointments.push(new C.Appointment(D,E,this.options.appt));this.row.processed.push({id:E,hasLast:D.hasClassName("last")})}else{if(D.hasClassName("last")){this.row.processed.each(function(F){if(F.id==E){F.hasLast=true}return })}}D.hide()}}.bind(this));this.day=this.element.down(".day");this.dayYOffset=this._dayYOffset();this._setWidth();this._setHeight();this.element.observe("mouseover",function(D){this.instance.addHover()});this.element.observe("mouseout",function(D){this.instance.removeHover()})},draw:function(){this.appointments.each(function(A){A.draw()})},registerSlot:function(B,A){if(!A){A=this.findNextSlot()}this._slots[A]=B;return A},findNextSlot:function(){return this._slots.indexOf(this._slots.find(function(A){return A==null}))},addHover:function(){this.element.addClassName("hover");this.grid.lastCellHover=this.element},removeHover:function(){this.element.removeClassName("hover")},_setWidth:function(){this.element.setStyle({width:(100/this.row.cellCount)+"%"})},_setHeight:function(){if(this.appointmentCount*(this.options.appt.styles.height+this.options.appt.styles.marginTop)+this.dayYOffset>this.styles.height){this.height=this.appointmentCount*(this.options.appt.styles.height+this.options.appt.styles.marginTop)+this.dayYOffset+5}else{this.height=this.styles.height}this.element.setStyle({height:this.height+"px"})},_dayYOffset:function(){if(this.day){return this.day.getHeight()+10}else{return 0}}});com.qualcomm.Calendar.Appointment=Class.create({Class:"com.qualcomm.Calendar.Appointment",initialize:function(B,C,A){this.appointment=$(B);this.cell=this.appointment.up().instance;this.id=C;this.options={classNames:{outer:"appt",inner:"appt-inner"},styles:{padding:8,marginTop:2}};Object.extend(this.options,A||{});this.classNames=new Array();this.span=parseInt(B.readAttribute("appt-span"))},draw:function(){this.context=this._getContext();this.content=this._getContent();this.slot=this.cell.findNextSlot();var B=this.cell.row.cells;var A=this.cell.element.cellIndex;$R(A,A+this.span-1).each(function(E){if(B[E]){B[E].registerSlot(this.id,this.slot)}}.bind(this));this.dimensions=this._getDimensions();this.position=this._getPosition();if(com.qualcomm.Calendar.Appointment.context.start==this.context||com.qualcomm.Calendar.Appointment.context.continued==this.context){this.classNames.push("at-right")}if(com.qualcomm.Calendar.Appointment.context.finish==this.context||com.qualcomm.Calendar.Appointment.context.continued==this.context){this.classNames.push("at-left")}this.classNames=this.classNames.concat($w(this._getClassNamesFromContext()));this.classNames.push("appt-"+this.id);this.classNames.push(this.options.classNames.outer);var C=new Element("div",{"class":this.options.classNames.inner,style:"height:"+this.dimensions.height+"px"});C.update(new Element("div",{"class":"title",style:"display:none;"}).update(this.content?this.content.title:""));if(Prototype.Browser.IE){var D=com.qualcomm.Calendar.Appointment.context;if(this.context==D.start||this.context==D.complete){C.insert({top:'<div class="topLeft"></div><div class="middleLeft"></div><div class="bottomLeft"></div>'})}if(this.context==D.finish||this.context==D.complete){C.insert({bottom:'<div class="topRight"></div><div class="middleRight"></div><div class="bottomRight"></div>'})}}this.element=new Element("div",{"class":this.classNames.join(" ")});this.element.setStyle({width:this.dimensions.width+"px",height:this.dimensions.height+"px",top:this.position.top+"px",left:this.position.left+"px"});this.element.update(C);this.element.instance=this;this.cell.grid.element.insert({bottom:this.element});this._afterInit.bind(this).defer()},addHover:function(){this.element.addClassName("hover")},removeHover:function(){this.element.removeClassName("hover")},_getClassNamesFromContext:function(){var A=com.qualcomm.Calendar.Appointment.context;switch(this.context){case A.complete:return"first last";case A.start:return"first continued";case A.finish:return"last continued";case A.continued:return"continued";default:return""}},_getContext:function(){var A;var B=com.qualcomm.Calendar.Appointment.context;if(this.appointment.hasClassName("continued")){if(this.cell.row.processed.any(function(C){return(C.id==this.id&&C.hasLast)}.bind(this))){A=B.finish}else{A=B.continued}}else{if(this.appointment.hasClassName("first")){if(this.cell.row.processed.any(function(C){return(C.id==this.id&&C.hasLast)}.bind(this))){A=B.complete}else{A=B.start}}else{if(this.appointment.hasClassName("last")){A=B.finish}}}return A},_getContent:function(){var A=this.appointment.down("a");if(!A){return }var B=null;if(this.appointment.hasClassName("first")||this.cell.element.cellIndex==0){B={title:A.cleanWhitespace().innerHTML,href:A.href}}return B},_getPosition:function(){var B=(this.slot*(this.options.styles.height+this.options.styles.marginTop))+this.cell.element.positionedOffset().top+this.cell.dayYOffset;var A=this.cell.grid.options.styles.spacing+(this.cell.element.cellIndex*this.cell.width)+(this.cell.element.cellIndex*this.cell.options.styles.spacing)+this.cell.options.styles.padding;return{top:B,left:A}},_getDimensions:function(){var A=(this.span*this.cell.width)+(this.cell.options.styles.spacing*(this.span-1))-(this.cell.options.styles.padding*2);var B=this.options.styles.height;return{width:A,height:B}},_afterInit:function(){this.titleElem=this.element.down("div.title");this.element.observe("click",function(B){var A=this.instance.content.href;if(A){window.location.href=A}});this.element.observe("mouseover",function(D){var C=this.instance;if(!C.element.tip){var B=$$(".appt-"+C.id+".appointment-popover").first();C.element.tip=new Tip(C.element,B.cloneNode(true),{radius:0,border:1,delay:0.5,width:275,viewport:true});C.element.observe("prototip:shown",function(){this.tip.wrapper.toggle();this.tip.wrapper.appear({duration:0.3})})}var A=C.cell.row.grid.element.select(".appt-"+C.id+"."+C.options.classNames.outer);A.each(function(E){E.instance.addHover()})});this.element.observe("mouseout",function(C){var B=this.instance;var A=B.cell.grid.element.select(".appt-"+B.id+"."+B.options.classNames.outer);A.each(function(D){D.instance.removeHover()})});if(this.content&&this.span<4&&this.titleElem.getWidth()+(this.options.styles.padding*2)>this.element.getWidth()){this.titleElem.update(this._truncateToCellWidth(this.content.title))}this.titleElem.appear.bind(this.titleElem,{duration:0.5}).delay(0.5)},_truncateToCellWidth:function(A){var B=Math.round((this.cell.width-(this.options.styles.padding*2)-(this.cell.options.styles.padding*2))/10*1.75);return A.substr(0,B)+"..."}});com.qualcomm.Calendar.Appointment.getIdFromClassNames=function(A){var B=$w(A).find(function(C){return/appt-\d+/.test(C)});return parseInt(B.split("-")[1])};com.qualcomm.Calendar.Appointment.context={complete:1,start:2,finish:3,continued:4};com.qualcomm.Calendar.DateRangeError=Class.create(com.qualcomm.Exception,{Class:"Calendar.DateRangeError"});com.qualcomm.Calendar.StateError=Class.create(com.qualcomm.Exception,{Class:"Calendar.StateError"});com.qualcomm.Calendar.AjaxError=Class.create(com.qualcomm.Exception,{Class:"Calendar.AjaxError"});com.qualcomm.Page.calendar={_instance:null,init:function(){com.qualcomm.notice.inlineTargets.add("notices",{insert:{position:"before",selector:"#content"}});var A=$("calendar").up("#calendar-tab");if(A.hasClassName("open")){com.qualcomm.Page.calendar._init()}else{new PeriodicalExecuter(function(B){if(A.hasClassName("open")){com.qualcomm.Page.calendar._init();B.stop()}},0.4)}},_init:function(){var A=com.qualcomm.Page.calendar;A._instance=new com.qualcomm.Calendar("/EventsCalendarServlet?year=#{year_id}&month=#{month_id}",{maxNextMonths:12,maxPreviousMonths:12,beforeUpdate:function(){com.qualcomm.notice.inlineTargets.add("notices").removeAllNotices()},afterUpdateSuccess:function(){var B=new com.qualcomm.Sifr.replacement("calendar");A.showHideButtons()},afterUpdateFailure:function(){A.updateJumpTo()}});A.updateJumpTo();$$(".next-month").first().observe("click",function(B){B.stop();A._instance.next()});$$(".previous-month").first().observe("click",function(B){B.stop();A._instance.prev()})},jumpToMonth:function(){var A=$("calendar-month-select");if($F(A)!=""){var B=$F(A).split("-")[0];var C=$F(A).split("-")[1];com.qualcomm.Page.calendar._instance.goTo(com.qualcomm.Page.calendar._instance.buildState(B,C));$(A).selectedIndex=0}},showHideButtons:function(){var B=com.qualcomm.Page.calendar;var E=B._instance;var C=$$(".previous-month").first();var F=$$(".next-month").first();var J=parseInt(E.currentState.split("-")[0]);var H=parseInt(E.currentState.split("-")[1]);var A=new Date();A=new Date(A.getFullYear(),A.getMonth(),1);var I=new Date(J,H-1,1);var G=new Date(A.getFullYear(),A.getMonth(),1);G.setDate(1);G.setMonth(G.getMonth()-12);var D=new Date(A.getFullYear(),A.getMonth(),1);D.setDate(1);D.setMonth(D.getMonth()+12);if(I>=D){F.hide();C.show()}else{if(I<=G){F.show();C.hide()}else{F.show();C.show()}}},updateJumpTo:function(){var C=$("calendar-month-select");var B=new Array();B=$R(-12,12).inject(B,function(G,F){var H=new Date();H.setDate(1);var E=new Date();E.setDate(1);H.setMonth(E.getMonth()+F);G.push(H);return G});var D=B.first().getFullYear();var A=new Element("select",{name:"calendar[month]",id:"calendar-month-select","class":"jump-to"});A.insert({top:new Element("option",{value:""}).update("- Jump to a month -")});B.each(function(F,E){if(B.first()==F||F.getFullYear()!=D){A.insert({bottom:new Element("optgroup",{label:F.getFullYear()})})}A.select("optgroup").last().insert({bottom:new Element("option",{value:F.getFullYear()+"-"+(F.getMonth()+1)}).update(com.qualcomm.Page.calendar._instance.MonthNamesFull[F.getMonth()])});D=F.getFullYear()});C.replace(A);(function(){$("calendar-month-select").observe("change",function(E){E.stop();com.qualcomm.Page.calendar.jumpToMonth()})}).defer()}};com.qualcomm.Page.calendar.detail={map:null,geocoder:null,init:function(){if($("calendar-detail-map")!=null){var B=com.qualcomm.Page.calendar.detail;var A=$("calendar-detail-map").down().innerHTML;B.initMap(A)}},initMap:function(A){var B=com.qualcomm.Page.calendar.detail;if(GBrowserIsCompatible()){B.map=new GMap2($("calendar-detail-map"));var C=B.map;B.geocoder=new GClientGeocoder();B.geocoder.getLatLng(A,function(E){if(!E){var G=C.getContainer();var D="Unable to find address";G.insert(new Element("div",{"class":"message"}).update(D))}else{C.addControl(new GSmallMapControl());C.addControl(new GMapTypeControl());C.setCenter(E,13);var F=new GMarker(E);C.addOverlay(F)}})}}};Event.observe(window,"load",function(){if($("calendar")){Util.runAfterEvent("init-screen-sifr-complete",com.qualcomm.Page.calendar.init)}else{if($("calendar-detail")){Util.runAfterEvent("init-screen-sifr-complete",com.qualcomm.Page.calendar.detail.init)}}});var Builder={NODEMAP:{AREA:"map",CAPTION:"table",COL:"table",COLGROUP:"table",LEGEND:"fieldset",OPTGROUP:"select",OPTION:"select",PARAM:"object",TBODY:"table",TD:"table",TFOOT:"table",TH:"table",THEAD:"table",TR:"table"},node:function(A){A=A.toUpperCase();var F=this.NODEMAP[A]||"div";var B=document.createElement(F);try{B.innerHTML="<"+A+"></"+A+">"}catch(E){}var D=B.firstChild||null;if(D&&(D.tagName.toUpperCase()!=A)){D=D.getElementsByTagName(A)[0]}if(!D){D=document.createElement(A)}if(!D){return }if(arguments[1]){if(this._isStringOrNumber(arguments[1])||(arguments[1] instanceof Array)||arguments[1].tagName){this._children(D,arguments[1])}else{var C=this._attributes(arguments[1]);if(C.length){try{B.innerHTML="<"+A+" "+C+"></"+A+">"}catch(E){}D=B.firstChild||null;if(!D){D=document.createElement(A);for(attr in arguments[1]){D[attr=="class"?"className":attr]=arguments[1][attr]}}if(D.tagName.toUpperCase()!=A){D=B.getElementsByTagName(A)[0]}}}}if(arguments[2]){this._children(D,arguments[2])}return D},_text:function(A){return document.createTextNode(A)},ATTR_MAP:{className:"class",htmlFor:"for"},_attributes:function(A){var B=[];for(attribute in A){B.push((attribute in this.ATTR_MAP?this.ATTR_MAP[attribute]:attribute)+'="'+A[attribute].toString().escapeHTML().gsub(/"/,"&quot;")+'"')}return B.join(" ")},_children:function(B,A){if(A.tagName){B.appendChild(A);return }if(typeof A=="object"){A.flatten().each(function(C){if(typeof C=="object"){B.appendChild(C)}else{if(Builder._isStringOrNumber(C)){B.appendChild(Builder._text(C))}}})}else{if(Builder._isStringOrNumber(A)){B.appendChild(Builder._text(A))}}},_isStringOrNumber:function(A){return(typeof A=="string"||typeof A=="number")},build:function(B){var A=this.node("div");$(A).update(B.strip());return A.down()},dump:function(B){if(typeof B!="object"&&typeof B!="function"){B=window}var A=("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/);A.each(function(C){B[C]=function(){return Builder.node.apply(Builder,[C].concat($A(arguments)))}})}};if(typeof Effect=="undefined"){throw ("controls.js requires including script.aculo.us' effects.js library")}var Autocompleter={};Autocompleter.Base=Class.create({baseInitialize:function(B,C,A){B=$(B);this.element=B;this.update=$(C);this.hasFocus=false;this.changed=false;this.active=false;this.index=0;this.entryCount=0;this.oldElementValue=this.element.value;if(this.setOptions){this.setOptions(A)}else{this.options=A||{}}this.options.paramName=this.options.paramName||this.element.name;this.options.tokens=this.options.tokens||[];this.options.frequency=this.options.frequency||0.4;this.options.minChars=this.options.minChars||1;this.options.onShow=this.options.onShow||function(D,E){if(!E.style.position||E.style.position=="absolute"){E.style.position="absolute";Position.clone(D,E,{setHeight:false,offsetTop:D.offsetHeight})}Effect.Appear(E,{duration:0.15})};this.options.onHide=this.options.onHide||function(D,E){new Effect.Fade(E,{duration:0.15})};if(typeof (this.options.tokens)=="string"){this.options.tokens=new Array(this.options.tokens)}if(!this.options.tokens.include("\n")){this.options.tokens.push("\n")}this.observer=null;this.element.setAttribute("autocomplete","off");Element.hide(this.update);Event.observe(this.element,"blur",this.onBlur.bindAsEventListener(this));Event.observe(this.element,"keydown",this.onKeyPress.bindAsEventListener(this))},show:function(){if(Element.getStyle(this.update,"display")=="none"){this.options.onShow(this.element,this.update)}if(!this.iefix&&(Prototype.Browser.IE)&&(Element.getStyle(this.update,"position")=="absolute")){new Insertion.After(this.update,'<iframe id="'+this.update.id+'_iefix" style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" src="javascript:false;" frameborder="0" scrolling="no"></iframe>');this.iefix=$(this.update.id+"_iefix")}if(this.iefix){setTimeout(this.fixIEOverlapping.bind(this),50)}},fixIEOverlapping:function(){Position.clone(this.update,this.iefix,{setTop:(!this.update.style.height)});this.iefix.style.zIndex=1;this.update.style.zIndex=2;Element.show(this.iefix)},hide:function(){this.stopIndicator();if(Element.getStyle(this.update,"display")!="none"){this.options.onHide(this.element,this.update)}if(this.iefix){Element.hide(this.iefix)}},startIndicator:function(){if(this.options.indicator){Element.show(this.options.indicator)}},stopIndicator:function(){if(this.options.indicator){Element.hide(this.options.indicator)}},onKeyPress:function(A){if(this.active){switch(A.keyCode){case Event.KEY_TAB:case Event.KEY_RETURN:this.selectEntry();Event.stop(A);case Event.KEY_ESC:this.hide();this.active=false;Event.stop(A);return ;case Event.KEY_LEFT:case Event.KEY_RIGHT:return ;case Event.KEY_UP:this.markPrevious();this.render();Event.stop(A);return ;case Event.KEY_DOWN:this.markNext();this.render();Event.stop(A);return }}else{if(A.keyCode==Event.KEY_TAB||A.keyCode==Event.KEY_RETURN||(Prototype.Browser.WebKit>0&&A.keyCode==0)){return }}this.changed=true;this.hasFocus=true;if(this.observer){clearTimeout(this.observer)}this.observer=setTimeout(this.onObserverEvent.bind(this),this.options.frequency*1000)},activate:function(){this.changed=false;this.hasFocus=true;this.getUpdatedChoices()},onHover:function(B){var A=Event.findElement(B,"LI");if(this.index!=A.autocompleteIndex){this.index=A.autocompleteIndex;this.render()}Event.stop(B)},onClick:function(B){var A=Event.findElement(B,"LI");this.index=A.autocompleteIndex;this.selectEntry();this.hide()},onBlur:function(A){setTimeout(this.hide.bind(this),250);this.hasFocus=false;this.active=false},render:function(){if(this.entryCount>0){for(var A=0;A<this.entryCount;A++){this.index==A?Element.addClassName(this.getEntry(A),"selected"):Element.removeClassName(this.getEntry(A),"selected")}if(this.hasFocus){this.show();this.active=true}}else{this.active=false;this.hide()}},markPrevious:function(){if(this.index>0){this.index--}else{this.index=this.entryCount-1}this.getEntry(this.index).scrollIntoView(true)},markNext:function(){if(this.index<this.entryCount-1){this.index++}else{this.index=0}this.getEntry(this.index).scrollIntoView(false)},getEntry:function(A){return this.update.firstChild.childNodes[A]},getCurrentEntry:function(){return this.getEntry(this.index)},selectEntry:function(){this.active=false;this.updateElement(this.getCurrentEntry())},updateElement:function(F){if(this.options.updateElement){this.options.updateElement(F);return }var D="";if(this.options.select){var A=$(F).select("."+this.options.select)||[];if(A.length>0){D=Element.collectTextNodes(A[0],this.options.select)}}else{D=Element.collectTextNodesIgnoreClass(F,"informal")}var C=this.getTokenBounds();if(C[0]!=-1){var E=this.element.value.substr(0,C[0]);var B=this.element.value.substr(C[0]).match(/^\s+/);if(B){E+=B[0]}this.element.value=E+D+this.element.value.substr(C[1])}else{this.element.value=D}this.oldElementValue=this.element.value;this.element.focus();if(this.options.afterUpdateElement){this.options.afterUpdateElement(this.element,F)}},updateChoices:function(C){if(!this.changed&&this.hasFocus){this.update.innerHTML=C;Element.cleanWhitespace(this.update);Element.cleanWhitespace(this.update.down());if(this.update.firstChild&&this.update.down().childNodes){this.entryCount=this.update.down().childNodes.length;for(var A=0;A<this.entryCount;A++){var B=this.getEntry(A);B.autocompleteIndex=A;this.addObservers(B)}}else{this.entryCount=0}this.stopIndicator();this.index=0;if(this.entryCount==1&&this.options.autoSelect){this.selectEntry();this.hide()}else{this.render()}}},addObservers:function(A){Event.observe(A,"mouseover",this.onHover.bindAsEventListener(this));Event.observe(A,"click",this.onClick.bindAsEventListener(this))},onObserverEvent:function(){this.changed=false;this.tokenBounds=null;if(this.getToken().length>=this.options.minChars){this.getUpdatedChoices()}else{this.active=false;this.hide()}this.oldElementValue=this.element.value},getToken:function(){var A=this.getTokenBounds();return this.element.value.substring(A[0],A[1]).strip()},getTokenBounds:function(){if(null!=this.tokenBounds){return this.tokenBounds}var E=this.element.value;if(E.strip().empty()){return[-1,0]}var F=arguments.callee.getFirstDifferencePos(E,this.oldElementValue);var H=(F==this.oldElementValue.length?1:0);var D=-1,C=E.length;var G;for(var B=0,A=this.options.tokens.length;B<A;++B){G=E.lastIndexOf(this.options.tokens[B],F+H-1);if(G>D){D=G}G=E.indexOf(this.options.tokens[B],F+H);if(-1!=G&&G<C){C=G}}return(this.tokenBounds=[D+1,C])}});Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos=function(C,A){var D=Math.min(C.length,A.length);for(var B=0;B<D;++B){if(C[B]!=A[B]){return B}}return D};Ajax.Autocompleter=Class.create(Autocompleter.Base,{initialize:function(C,D,B,A){this.baseInitialize(C,D,A);this.options.asynchronous=true;this.options.onComplete=this.onComplete.bind(this);this.options.defaultParams=this.options.parameters||null;this.url=B},getUpdatedChoices:function(){this.startIndicator();var A=encodeURIComponent(this.options.paramName)+"="+encodeURIComponent(this.getToken());this.options.parameters=this.options.callback?this.options.callback(this.element,A):A;if(this.options.defaultParams){this.options.parameters+="&"+this.options.defaultParams}new Ajax.Request(this.url,this.options)},onComplete:function(A){this.updateChoices(A.responseText)}});Autocompleter.Local=Class.create(Autocompleter.Base,{initialize:function(B,D,C,A){this.baseInitialize(B,D,A);this.options.array=C},getUpdatedChoices:function(){this.updateChoices(this.options.selector(this))},setOptions:function(A){this.options=Object.extend({choices:10,partialSearch:true,partialChars:2,ignoreCase:true,fullSearch:false,selector:function(B){var D=[];var C=[];var H=B.getToken();var G=0;for(var E=0;E<B.options.array.length&&D.length<B.options.choices;E++){var F=B.options.array[E];var I=B.options.ignoreCase?F.toLowerCase().indexOf(H.toLowerCase()):F.indexOf(H);while(I!=-1){if(I==0&&F.length!=H.length){D.push("<li><strong>"+F.substr(0,H.length)+"</strong>"+F.substr(H.length)+"</li>");break}else{if(H.length>=B.options.partialChars&&B.options.partialSearch&&I!=-1){if(B.options.fullSearch||/\s/.test(F.substr(I-1,1))){C.push("<li>"+F.substr(0,I)+"<strong>"+F.substr(I,H.length)+"</strong>"+F.substr(I+H.length)+"</li>");break}}}I=B.options.ignoreCase?F.toLowerCase().indexOf(H.toLowerCase(),I+1):F.indexOf(H,I+1)}}if(C.length){D=D.concat(C.slice(0,B.options.choices-D.length))}return"<ul>"+D.join("")+"</ul>"}},A||{})}});Field.scrollFreeActivate=function(A){setTimeout(function(){Field.activate(A)},1)};Ajax.InPlaceEditor=Class.create({initialize:function(C,B,A){this.url=B;this.element=C=$(C);this.prepareOptions();this._controls={};arguments.callee.dealWithDeprecatedOptions(A);Object.extend(this.options,A||{});if(!this.options.formId&&this.element.id){this.options.formId=this.element.id+"-inplaceeditor";if($(this.options.formId)){this.options.formId=""}}if(this.options.externalControl){this.options.externalControl=$(this.options.externalControl)}if(!this.options.externalControl){this.options.externalControlOnly=false}this._originalBackground=this.element.getStyle("background-color")||"transparent";this.element.title=this.options.clickToEditText;this._boundCancelHandler=this.handleFormCancellation.bind(this);this._boundComplete=(this.options.onComplete||Prototype.emptyFunction).bind(this);this._boundFailureHandler=this.handleAJAXFailure.bind(this);this._boundSubmitHandler=this.handleFormSubmission.bind(this);this._boundWrapperHandler=this.wrapUp.bind(this);this.registerListeners()},checkForEscapeOrReturn:function(A){if(!this._editing||A.ctrlKey||A.altKey||A.shiftKey){return }if(Event.KEY_ESC==A.keyCode){this.handleFormCancellation(A)}else{if(Event.KEY_RETURN==A.keyCode){this.handleFormSubmission(A)}}},createControl:function(G,C,B){var E=this.options[G+"Control"];var F=this.options[G+"Text"];if("button"==E){var A=document.createElement("input");A.type="submit";A.value=F;A.className="editor_"+G+"_button";if("cancel"==G){A.onclick=this._boundCancelHandler}this._form.appendChild(A);this._controls[G]=A}else{if("link"==E){var D=document.createElement("a");D.href="#";D.appendChild(document.createTextNode(F));D.onclick="cancel"==G?this._boundCancelHandler:this._boundSubmitHandler;D.className="editor_"+G+"_link";if(B){D.className+=" "+B}this._form.appendChild(D);this._controls[G]=D}}},createEditField:function(){var C=(this.options.loadTextURL?this.options.loadingText:this.getText());var B;if(1>=this.options.rows&&!/\r|\n/.test(this.getText())){B=document.createElement("input");B.type="text";var A=this.options.size||this.options.cols||0;if(0<A){B.size=A}}else{B=document.createElement("textarea");B.rows=(1>=this.options.rows?this.options.autoRows:this.options.rows);B.cols=this.options.cols||40}B.name=this.options.paramName;B.value=C;B.className="editor_field";if(this.options.submitOnBlur){B.onblur=this._boundSubmitHandler}this._controls.editor=B;if(this.options.loadTextURL){this.loadExternalText()}this._form.appendChild(this._controls.editor)},createForm:function(){var B=this;function A(D,E){var C=B.options["text"+D+"Controls"];if(!C||E===false){return }B._form.appendChild(document.createTextNode(C))}this._form=$(document.createElement("form"));this._form.id=this.options.formId;this._form.addClassName(this.options.formClassName);this._form.onsubmit=this._boundSubmitHandler;this.createEditField();if("textarea"==this._controls.editor.tagName.toLowerCase()){this._form.appendChild(document.createElement("br"))}if(this.options.onFormCustomization){this.options.onFormCustomization(this,this._form)}A("Before",this.options.okControl||this.options.cancelControl);this.createControl("ok",this._boundSubmitHandler);A("Between",this.options.okControl&&this.options.cancelControl);this.createControl("cancel",this._boundCancelHandler,"editor_cancel");A("After",this.options.okControl||this.options.cancelControl)},destroy:function(){if(this._oldInnerHTML){this.element.innerHTML=this._oldInnerHTML}this.leaveEditMode();this.unregisterListeners()},enterEditMode:function(A){if(this._saving||this._editing){return }this._editing=true;this.triggerCallback("onEnterEditMode");if(this.options.externalControl){this.options.externalControl.hide()}this.element.hide();this.createForm();this.element.parentNode.insertBefore(this._form,this.element);if(!this.options.loadTextURL){this.postProcessEditField()}if(A){Event.stop(A)}},enterHover:function(A){if(this.options.hoverClassName){this.element.addClassName(this.options.hoverClassName)}if(this._saving){return }this.triggerCallback("onEnterHover")},getText:function(){return this.element.innerHTML},handleAJAXFailure:function(A){this.triggerCallback("onFailure",A);if(this._oldInnerHTML){this.element.innerHTML=this._oldInnerHTML;this._oldInnerHTML=null}},handleFormCancellation:function(A){this.wrapUp();if(A){Event.stop(A)}},handleFormSubmission:function(D){var B=this._form;var C=$F(this._controls.editor);this.prepareSubmission();var E=this.options.callback(B,C)||"";if(Object.isString(E)){E=E.toQueryParams()}E.editorId=this.element.id;if(this.options.htmlResponse){var A=Object.extend({evalScripts:true},this.options.ajaxOptions);Object.extend(A,{parameters:E,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Updater({success:this.element},this.url,A)}else{var A=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(A,{parameters:E,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Request(this.url,A)}if(D){Event.stop(D)}},leaveEditMode:function(){this.element.removeClassName(this.options.savingClassName);this.removeForm();this.leaveHover();this.element.style.backgroundColor=this._originalBackground;this.element.show();if(this.options.externalControl){this.options.externalControl.show()}this._saving=false;this._editing=false;this._oldInnerHTML=null;this.triggerCallback("onLeaveEditMode")},leaveHover:function(A){if(this.options.hoverClassName){this.element.removeClassName(this.options.hoverClassName)}if(this._saving){return }this.triggerCallback("onLeaveHover")},loadExternalText:function(){this._form.addClassName(this.options.loadingClassName);this._controls.editor.disabled=true;var A=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(A,{parameters:"editorId="+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(C){this._form.removeClassName(this.options.loadingClassName);var B=C.responseText;if(this.options.stripLoadedTextTags){B=B.stripTags()}this._controls.editor.value=B;this._controls.editor.disabled=false;this.postProcessEditField()}.bind(this),onFailure:this._boundFailureHandler});new Ajax.Request(this.options.loadTextURL,A)},postProcessEditField:function(){var A=this.options.fieldPostCreation;if(A){$(this._controls.editor)["focus"==A?"focus":"activate"]()}},prepareOptions:function(){this.options=Object.clone(Ajax.InPlaceEditor.DefaultOptions);Object.extend(this.options,Ajax.InPlaceEditor.DefaultCallbacks);[this._extraDefaultOptions].flatten().compact().each(function(A){Object.extend(this.options,A)}.bind(this))},prepareSubmission:function(){this._saving=true;this.removeForm();this.leaveHover();this.showSaving()},registerListeners:function(){this._listeners={};var A;$H(Ajax.InPlaceEditor.Listeners).each(function(B){A=this[B.value].bind(this);this._listeners[B.key]=A;if(!this.options.externalControlOnly){this.element.observe(B.key,A)}if(this.options.externalControl){this.options.externalControl.observe(B.key,A)}}.bind(this))},removeForm:function(){if(!this._form){return }this._form.remove();this._form=null;this._controls={}},showSaving:function(){this._oldInnerHTML=this.element.innerHTML;this.element.innerHTML=this.options.savingText;this.element.addClassName(this.options.savingClassName);this.element.style.backgroundColor=this._originalBackground;this.element.show()},triggerCallback:function(B,A){if("function"==typeof this.options[B]){this.options[B](this,A)}},unregisterListeners:function(){$H(this._listeners).each(function(A){if(!this.options.externalControlOnly){this.element.stopObserving(A.key,A.value)}if(this.options.externalControl){this.options.externalControl.stopObserving(A.key,A.value)}}.bind(this))},wrapUp:function(A){this.leaveEditMode();this._boundComplete(A,this.element)}});Object.extend(Ajax.InPlaceEditor.prototype,{dispose:Ajax.InPlaceEditor.prototype.destroy});Ajax.InPlaceCollectionEditor=Class.create(Ajax.InPlaceEditor,{initialize:function($super,C,B,A){this._extraDefaultOptions=Ajax.InPlaceCollectionEditor.DefaultOptions;$super(C,B,A)},createEditField:function(){var A=document.createElement("select");A.name=this.options.paramName;A.size=1;this._controls.editor=A;this._collection=this.options.collection||[];if(this.options.loadCollectionURL){this.loadCollection()}else{this.checkForExternalText()}this._form.appendChild(this._controls.editor)},loadCollection:function(){this._form.addClassName(this.options.loadingClassName);this.showLoadingText(this.options.loadingCollectionText);var options=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(options,{parameters:"editorId="+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(transport){var js=transport.responseText.strip();if(!/^\[.*\]$/.test(js)){throw"Server returned an invalid collection representation."}this._collection=eval(js);this.checkForExternalText()}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadCollectionURL,options)},showLoadingText:function(B){this._controls.editor.disabled=true;var A=this._controls.editor.firstChild;if(!A){A=document.createElement("option");A.value="";this._controls.editor.appendChild(A);A.selected=true}A.update((B||"").stripScripts().stripTags())},checkForExternalText:function(){this._text=this.getText();if(this.options.loadTextURL){this.loadExternalText()}else{this.buildOptionList()}},loadExternalText:function(){this.showLoadingText(this.options.loadingText);var A=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(A,{parameters:"editorId="+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(B){this._text=B.responseText.strip();this.buildOptionList()}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadTextURL,A)},buildOptionList:function(){this._form.removeClassName(this.options.loadingClassName);this._collection=this._collection.map(function(D){return 2===D.length?D:[D,D].flatten()});var B=("value" in this.options)?this.options.value:this._text;var A=this._collection.any(function(D){return D[0]==B}.bind(this));this._controls.editor.update("");var C;this._collection.each(function(E,D){C=document.createElement("option");C.value=E[0];C.selected=A?E[0]==B:0==D;C.appendChild(document.createTextNode(E[1]));this._controls.editor.appendChild(C)}.bind(this));this._controls.editor.disabled=false;Field.scrollFreeActivate(this._controls.editor)}});Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions=function(A){if(!A){return }function B(C,D){if(C in A||D===undefined){return }A[C]=D}B("cancelControl",(A.cancelLink?"link":(A.cancelButton?"button":A.cancelLink==A.cancelButton==false?false:undefined)));B("okControl",(A.okLink?"link":(A.okButton?"button":A.okLink==A.okButton==false?false:undefined)));B("highlightColor",A.highlightcolor);B("highlightEndColor",A.highlightendcolor)};Object.extend(Ajax.InPlaceEditor,{DefaultOptions:{ajaxOptions:{},autoRows:3,cancelControl:"link",cancelText:"cancel",clickToEditText:"Click to edit",externalControl:null,externalControlOnly:false,fieldPostCreation:"activate",formClassName:"inplaceeditor-form",formId:null,highlightColor:"#ffff99",highlightEndColor:"#ffffff",hoverClassName:"",htmlResponse:true,loadingClassName:"inplaceeditor-loading",loadingText:"Loading...",okControl:"button",okText:"ok",paramName:"value",rows:1,savingClassName:"inplaceeditor-saving",savingText:"Saving...",size:0,stripLoadedTextTags:false,submitOnBlur:false,textAfterControls:"",textBeforeControls:"",textBetweenControls:""},DefaultCallbacks:{callback:function(A){return Form.serialize(A)},onComplete:function(B,A){new Effect.Highlight(A,{startcolor:this.options.highlightColor,keepBackgroundImage:true})},onEnterEditMode:null,onEnterHover:function(A){A.element.style.backgroundColor=A.options.highlightColor;if(A._effect){A._effect.cancel()}},onFailure:function(B,A){alert("Error communication with the server: "+B.responseText.stripTags())},onFormCustomization:null,onLeaveEditMode:null,onLeaveHover:function(A){A._effect=new Effect.Highlight(A.element,{startcolor:A.options.highlightColor,endcolor:A.options.highlightEndColor,restorecolor:A._originalBackground,keepBackgroundImage:true})}},Listeners:{click:"enterEditMode",keydown:"checkForEscapeOrReturn",mouseover:"enterHover",mouseout:"leaveHover"}});Ajax.InPlaceCollectionEditor.DefaultOptions={loadingCollectionText:"Loading options..."};Form.Element.DelayedObserver=Class.create({initialize:function(B,A,C){this.delay=A||0.5;this.element=$(B);this.callback=C;this.timer=null;this.lastValue=$F(this.element);Event.observe(this.element,"keyup",this.delayedListener.bindAsEventListener(this))},delayedListener:function(A){if(this.lastValue==$F(this.element)){return }if(this.timer){clearTimeout(this.timer)}this.timer=setTimeout(this.onTimerEvent.bind(this),this.delay*1000);this.lastValue=$F(this.element)},onTimerEvent:function(){this.timer=null;this.callback(this.element,$F(this.element))}});if(Object.isUndefined(Effect)){throw ("dragdrop.js requires including script.aculo.us' effects.js library")}var Droppables={drops:[],remove:function(A){this.drops=this.drops.reject(function(B){return B.element==$(A)})},add:function(B){B=$(B);var A=Object.extend({greedy:true,hoverclass:null,tree:false},arguments[1]||{});if(A.containment){A._containers=[];var C=A.containment;if(Object.isArray(C)){C.each(function(D){A._containers.push($(D))})}else{A._containers.push($(C))}}if(A.accept){A.accept=[A.accept].flatten()}Element.makePositioned(B);A.element=B;this.drops.push(A)},findDeepestChild:function(A){deepest=A[0];for(i=1;i<A.length;++i){if(Element.isParent(A[i].element,deepest.element)){deepest=A[i]}}return deepest},isContained:function(B,A){var C;if(A.tree){C=B.treeNode}else{C=B.parentNode}return A._containers.detect(function(D){return C==D})},isAffected:function(A,C,B){return((B.element!=C)&&((!B._containers)||this.isContained(C,B))&&((!B.accept)||(Element.classNames(C).detect(function(D){return B.accept.include(D)})))&&Position.within(B.element,A[0],A[1]))},deactivate:function(A){if(A.hoverclass){Element.removeClassName(A.element,A.hoverclass)}this.last_active=null},activate:function(A){if(A.hoverclass){Element.addClassName(A.element,A.hoverclass)}this.last_active=A},show:function(A,C){if(!this.drops.length){return }var B,D=[];this.drops.each(function(E){if(Droppables.isAffected(A,C,E)){D.push(E)}});if(D.length>0){B=Droppables.findDeepestChild(D)}if(this.last_active&&this.last_active!=B){this.deactivate(this.last_active)}if(B){Position.within(B.element,A[0],A[1]);if(B.onHover){B.onHover(C,B.element,Position.overlap(B.overlap,B.element))}if(B!=this.last_active){Droppables.activate(B)}}},fire:function(B,A){if(!this.last_active){return }Position.prepare();if(this.isAffected([Event.pointerX(B),Event.pointerY(B)],A,this.last_active)){if(this.last_active.onDrop){this.last_active.onDrop(A,this.last_active.element,B);return true}}},reset:function(){if(this.last_active){this.deactivate(this.last_active)}}};var Draggables={drags:[],observers:[],register:function(A){if(this.drags.length==0){this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.updateDrag.bindAsEventListener(this);this.eventKeypress=this.keyPress.bindAsEventListener(this);Event.observe(document,"mouseup",this.eventMouseUp);Event.observe(document,"mousemove",this.eventMouseMove);Event.observe(document,"keypress",this.eventKeypress)}this.drags.push(A)},unregister:function(A){this.drags=this.drags.reject(function(B){return B==A});if(this.drags.length==0){Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);Event.stopObserving(document,"keypress",this.eventKeypress)}},activate:function(A){if(A.options.delay){this._timeout=setTimeout(function(){Draggables._timeout=null;window.focus();Draggables.activeDraggable=A}.bind(this),A.options.delay)}else{window.focus();this.activeDraggable=A}},deactivate:function(){this.activeDraggable=null},updateDrag:function(A){if(!this.activeDraggable){return }var B=[Event.pointerX(A),Event.pointerY(A)];if(this._lastPointer&&(this._lastPointer.inspect()==B.inspect())){return }this._lastPointer=B;this.activeDraggable.updateDrag(A,B)},endDrag:function(A){if(this._timeout){clearTimeout(this._timeout);this._timeout=null}if(!this.activeDraggable){return }this._lastPointer=null;this.activeDraggable.endDrag(A);this.activeDraggable=null},keyPress:function(A){if(this.activeDraggable){this.activeDraggable.keyPress(A)}},addObserver:function(A){this.observers.push(A);this._cacheObserverCallbacks()},removeObserver:function(A){this.observers=this.observers.reject(function(B){return B.element==A});this._cacheObserverCallbacks()},notify:function(B,A,C){if(this[B+"Count"]>0){this.observers.each(function(D){if(D[B]){D[B](B,A,C)}})}if(A.options[B]){A.options[B](A,C)}},_cacheObserverCallbacks:function(){["onStart","onEnd","onDrag"].each(function(A){Draggables[A+"Count"]=Draggables.observers.select(function(B){return B[A]}).length})}};var Draggable=Class.create({initialize:function(B){var C={handle:false,reverteffect:function(F,E,D){var G=Math.sqrt(Math.abs(E^2)+Math.abs(D^2))*0.02;new Effect.Move(F,{x:-D,y:-E,duration:G,queue:{scope:"_draggable",position:"end"}})},endeffect:function(E){var D=Object.isNumber(E._opacity)?E._opacity:1;new Effect.Opacity(E,{duration:0.2,from:0.7,to:D,queue:{scope:"_draggable",position:"end"},afterFinish:function(){Draggable._dragging[E]=false}})},zindex:1000,revert:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,snap:false,delay:0};if(!arguments[1]||Object.isUndefined(arguments[1].endeffect)){Object.extend(C,{starteffect:function(D){D._opacity=Element.getOpacity(D);Draggable._dragging[D]=true;new Effect.Opacity(D,{duration:0.2,from:D._opacity,to:0.7})}})}var A=Object.extend(C,arguments[1]||{});this.element=$(B);if(A.handle&&Object.isString(A.handle)){this.handle=this.element.down("."+A.handle,0)}if(!this.handle){this.handle=$(A.handle)}if(!this.handle){this.handle=this.element}if(A.scroll&&!A.scroll.scrollTo&&!A.scroll.outerHTML){A.scroll=$(A.scroll);this._isScrollChild=Element.childOf(this.element,A.scroll)}Element.makePositioned(this.element);this.options=A;this.dragging=false;this.eventMouseDown=this.initDrag.bindAsEventListener(this);Event.observe(this.handle,"mousedown",this.eventMouseDown);Draggables.register(this)},destroy:function(){Event.stopObserving(this.handle,"mousedown",this.eventMouseDown);Draggables.unregister(this)},currentDelta:function(){return([parseInt(Element.getStyle(this.element,"left")||"0"),parseInt(Element.getStyle(this.element,"top")||"0")])},initDrag:function(A){if(!Object.isUndefined(Draggable._dragging[this.element])&&Draggable._dragging[this.element]){return }if(Event.isLeftClick(A)){var C=Event.element(A);if((tag_name=C.tagName.toUpperCase())&&(tag_name=="INPUT"||tag_name=="SELECT"||tag_name=="OPTION"||tag_name=="BUTTON"||tag_name=="TEXTAREA")){return }var B=[Event.pointerX(A),Event.pointerY(A)];var D=Position.cumulativeOffset(this.element);this.offset=[0,1].map(function(E){return(B[E]-D[E])});Draggables.activate(this);Event.stop(A)}},startDrag:function(B){this.dragging=true;if(!this.delta){this.delta=this.currentDelta()}if(this.options.zindex){this.originalZ=parseInt(Element.getStyle(this.element,"z-index")||0);this.element.style.zIndex=this.options.zindex}if(this.options.ghosting){this._clone=this.element.cloneNode(true);this.element._originallyAbsolute=(this.element.getStyle("position")=="absolute");if(!this.element._originallyAbsolute){Position.absolutize(this.element)}this.element.parentNode.insertBefore(this._clone,this.element)}if(this.options.scroll){if(this.options.scroll==window){var A=this._getWindowScroll(this.options.scroll);this.originalScrollLeft=A.left;this.originalScrollTop=A.top}else{this.originalScrollLeft=this.options.scroll.scrollLeft;this.originalScrollTop=this.options.scroll.scrollTop}}Draggables.notify("onStart",this,B);if(this.options.starteffect){this.options.starteffect(this.element)}},updateDrag:function(event,pointer){if(!this.dragging){this.startDrag(event)}if(!this.options.quiet){Position.prepare();Droppables.show(pointer,this.element)}Draggables.notify("onDrag",this,event);this.draw(pointer);if(this.options.change){this.options.change(this)}if(this.options.scroll){this.stopScrolling();var p;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){p=[left,top,left+width,top+height]}}else{p=Position.page(this.options.scroll);p[0]+=this.options.scroll.scrollLeft+Position.deltaX;p[1]+=this.options.scroll.scrollTop+Position.deltaY;p.push(p[0]+this.options.scroll.offsetWidth);p.push(p[1]+this.options.scroll.offsetHeight)}var speed=[0,0];if(pointer[0]<(p[0]+this.options.scrollSensitivity)){speed[0]=pointer[0]-(p[0]+this.options.scrollSensitivity)}if(pointer[1]<(p[1]+this.options.scrollSensitivity)){speed[1]=pointer[1]-(p[1]+this.options.scrollSensitivity)}if(pointer[0]>(p[2]-this.options.scrollSensitivity)){speed[0]=pointer[0]-(p[2]-this.options.scrollSensitivity)}if(pointer[1]>(p[3]-this.options.scrollSensitivity)){speed[1]=pointer[1]-(p[3]-this.options.scrollSensitivity)}this.startScrolling(speed)}if(Prototype.Browser.WebKit){window.scrollBy(0,0)}Event.stop(event)},finishDrag:function(B,E){this.dragging=false;if(this.options.quiet){Position.prepare();var D=[Event.pointerX(B),Event.pointerY(B)];Droppables.show(D,this.element)}if(this.options.ghosting){if(!this.element._originallyAbsolute){Position.relativize(this.element)}delete this.element._originallyAbsolute;Element.remove(this._clone);this._clone=null}var F=false;if(E){F=Droppables.fire(B,this.element);if(!F){F=false}}if(F&&this.options.onDropped){this.options.onDropped(this.element)}Draggables.notify("onEnd",this,B);var A=this.options.revert;if(A&&Object.isFunction(A)){A=A(this.element)}var C=this.currentDelta();if(A&&this.options.reverteffect){if(F==0||A!="failure"){this.options.reverteffect(this.element,C[1]-this.delta[1],C[0]-this.delta[0])}}else{this.delta=C}if(this.options.zindex){this.element.style.zIndex=this.originalZ}if(this.options.endeffect){this.options.endeffect(this.element)}Draggables.deactivate(this);Droppables.reset()},keyPress:function(A){if(A.keyCode!=Event.KEY_ESC){return }this.finishDrag(A,false);Event.stop(A)},endDrag:function(A){if(!this.dragging){return }this.stopScrolling();this.finishDrag(A,true);Event.stop(A)},draw:function(A){var F=Position.cumulativeOffset(this.element);if(this.options.ghosting){var C=Position.realOffset(this.element);F[0]+=C[0]-Position.deltaX;F[1]+=C[1]-Position.deltaY}var E=this.currentDelta();F[0]-=E[0];F[1]-=E[1];if(this.options.scroll&&(this.options.scroll!=window&&this._isScrollChild)){F[0]-=this.options.scroll.scrollLeft-this.originalScrollLeft;F[1]-=this.options.scroll.scrollTop-this.originalScrollTop}var D=[0,1].map(function(G){return(A[G]-F[G]-this.offset[G])}.bind(this));if(this.options.snap){if(Object.isFunction(this.options.snap)){D=this.options.snap(D[0],D[1],this)}else{if(Object.isArray(this.options.snap)){D=D.map(function(G,H){return(G/this.options.snap[H]).round()*this.options.snap[H]}.bind(this))}else{D=D.map(function(G){return(G/this.options.snap).round()*this.options.snap}.bind(this))}}}var B=this.element.style;if((!this.options.constraint)||(this.options.constraint=="horizontal")){B.left=D[0]+"px"}if((!this.options.constraint)||(this.options.constraint=="vertical")){B.top=D[1]+"px"}if(B.visibility=="hidden"){B.visibility=""}},stopScrolling:function(){if(this.scrollInterval){clearInterval(this.scrollInterval);this.scrollInterval=null;Draggables._lastScrollPointer=null}},startScrolling:function(A){if(!(A[0]||A[1])){return }this.scrollSpeed=[A[0]*this.options.scrollSpeed,A[1]*this.options.scrollSpeed];this.lastScrolled=new Date();this.scrollInterval=setInterval(this.scroll.bind(this),10)},scroll:function(){var current=new Date();var delta=current-this.lastScrolled;this.lastScrolled=current;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){if(this.scrollSpeed[0]||this.scrollSpeed[1]){var d=delta/1000;this.options.scroll.scrollTo(left+d*this.scrollSpeed[0],top+d*this.scrollSpeed[1])}}}else{this.options.scroll.scrollLeft+=this.scrollSpeed[0]*delta/1000;this.options.scroll.scrollTop+=this.scrollSpeed[1]*delta/1000}Position.prepare();Droppables.show(Draggables._lastPointer,this.element);Draggables.notify("onDrag",this);if(this._isScrollChild){Draggables._lastScrollPointer=Draggables._lastScrollPointer||$A(Draggables._lastPointer);Draggables._lastScrollPointer[0]+=this.scrollSpeed[0]*delta/1000;Draggables._lastScrollPointer[1]+=this.scrollSpeed[1]*delta/1000;if(Draggables._lastScrollPointer[0]<0){Draggables._lastScrollPointer[0]=0}if(Draggables._lastScrollPointer[1]<0){Draggables._lastScrollPointer[1]=0}this.draw(Draggables._lastScrollPointer)}if(this.options.change){this.options.change(this)}},_getWindowScroll:function(w){var T,L,W,H;with(w.document){if(w.document.documentElement&&documentElement.scrollTop){T=documentElement.scrollTop;L=documentElement.scrollLeft}else{if(w.document.body){T=body.scrollTop;L=body.scrollLeft}}if(w.innerWidth){W=w.innerWidth;H=w.innerHeight}else{if(w.document.documentElement&&documentElement.clientWidth){W=documentElement.clientWidth;H=documentElement.clientHeight}else{W=body.offsetWidth;H=body.offsetHeight}}}return{top:T,left:L,width:W,height:H}}});Draggable._dragging={};var SortableObserver=Class.create({initialize:function(B,A){this.element=$(B);this.observer=A;this.lastValue=Sortable.serialize(this.element)},onStart:function(){this.lastValue=Sortable.serialize(this.element)},onEnd:function(){Sortable.unmark();if(this.lastValue!=Sortable.serialize(this.element)){this.observer(this.element)}}});var Sortable={SERIALIZE_RULE:/^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,sortables:{},_findRootElement:function(A){while(A.tagName.toUpperCase()!="BODY"){if(A.id&&Sortable.sortables[A.id]){return A}A=A.parentNode}},options:function(A){A=Sortable._findRootElement($(A));if(!A){return }return Sortable.sortables[A.id]},destroy:function(A){var B=Sortable.options(A);if(B){Draggables.removeObserver(B.element);B.droppables.each(function(C){Droppables.remove(C)});B.draggables.invoke("destroy");delete Sortable.sortables[B.element.id]}},create:function(C){C=$(C);var B=Object.extend({element:C,tag:"li",dropOnEmpty:false,tree:false,treeTag:"ul",overlap:"vertical",constraint:"vertical",containment:C,handle:false,only:false,delay:0,hoverclass:null,ghosting:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,format:this.SERIALIZE_RULE,elements:false,handles:false,onChange:Prototype.emptyFunction,onUpdate:Prototype.emptyFunction},arguments[1]||{});this.destroy(C);var A={revert:true,quiet:B.quiet,scroll:B.scroll,scrollSpeed:B.scrollSpeed,scrollSensitivity:B.scrollSensitivity,delay:B.delay,ghosting:B.ghosting,constraint:B.constraint,handle:B.handle};if(B.starteffect){A.starteffect=B.starteffect}if(B.reverteffect){A.reverteffect=B.reverteffect}else{if(B.ghosting){A.reverteffect=function(F){F.style.top=0;F.style.left=0}}}if(B.endeffect){A.endeffect=B.endeffect}if(B.zindex){A.zindex=B.zindex}var D={overlap:B.overlap,containment:B.containment,tree:B.tree,hoverclass:B.hoverclass,onHover:Sortable.onHover};var E={onHover:Sortable.onEmptyHover,overlap:B.overlap,containment:B.containment,hoverclass:B.hoverclass};Element.cleanWhitespace(C);B.draggables=[];B.droppables=[];if(B.dropOnEmpty||B.tree){Droppables.add(C,E);B.droppables.push(C)}(B.elements||this.findElements(C,B)||[]).each(function(H,F){var G=B.handles?$(B.handles[F]):(B.handle?$(H).select("."+B.handle)[0]:H);B.draggables.push(new Draggable(H,Object.extend(A,{handle:G})));Droppables.add(H,D);if(B.tree){H.treeNode=C}B.droppables.push(H)});if(B.tree){(Sortable.findTreeElements(C,B)||[]).each(function(F){Droppables.add(F,E);F.treeNode=C;B.droppables.push(F)})}this.sortables[C.id]=B;Draggables.addObserver(new SortableObserver(C,B.onUpdate))},findElements:function(B,A){return Element.findChildren(B,A.only,A.tree?true:false,A.tag)},findTreeElements:function(B,A){return Element.findChildren(B,A.only,A.tree?true:false,A.treeTag)},onHover:function(E,D,A){if(Element.isParent(D,E)){return }if(A>0.33&&A<0.66&&Sortable.options(D).tree){return }else{if(A>0.5){Sortable.mark(D,"before");if(D.previousSibling!=E){var B=E.parentNode;E.style.visibility="hidden";D.parentNode.insertBefore(E,D);if(D.parentNode!=B){Sortable.options(B).onChange(E)}Sortable.options(D.parentNode).onChange(E)}}else{Sortable.mark(D,"after");var C=D.nextSibling||null;if(C!=E){var B=E.parentNode;E.style.visibility="hidden";D.parentNode.insertBefore(E,C);if(D.parentNode!=B){Sortable.options(B).onChange(E)}Sortable.options(D.parentNode).onChange(E)}}}},onEmptyHover:function(E,G,H){var I=E.parentNode;var A=Sortable.options(G);if(!Element.isParent(G,E)){var F;var C=Sortable.findElements(G,{tag:A.tag,only:A.only});var B=null;if(C){var D=Element.offsetSize(G,A.overlap)*(1-H);for(F=0;F<C.length;F+=1){if(D-Element.offsetSize(C[F],A.overlap)>=0){D-=Element.offsetSize(C[F],A.overlap)}else{if(D-(Element.offsetSize(C[F],A.overlap)/2)>=0){B=F+1<C.length?C[F+1]:null;break}else{B=C[F];break}}}}G.insertBefore(E,B);Sortable.options(I).onChange(E);A.onChange(E)}},unmark:function(){if(Sortable._marker){Sortable._marker.hide()}},mark:function(B,A){var D=Sortable.options(B.parentNode);if(D&&!D.ghosting){return }if(!Sortable._marker){Sortable._marker=($("dropmarker")||Element.extend(document.createElement("DIV"))).hide().addClassName("dropmarker").setStyle({position:"absolute"});document.getElementsByTagName("body").item(0).appendChild(Sortable._marker)}var C=Position.cumulativeOffset(B);Sortable._marker.setStyle({left:C[0]+"px",top:C[1]+"px"});if(A=="after"){if(D.overlap=="horizontal"){Sortable._marker.setStyle({left:(C[0]+B.clientWidth)+"px"})}else{Sortable._marker.setStyle({top:(C[1]+B.clientHeight)+"px"})}}Sortable._marker.show()},_tree:function(E,B,F){var D=Sortable.findElements(E,B)||[];for(var C=0;C<D.length;++C){var A=D[C].id.match(B.format);if(!A){continue}var G={id:encodeURIComponent(A?A[1]:null),element:E,parent:F,children:[],position:F.children.length,container:$(D[C]).down(B.treeTag)};if(G.container){this._tree(G.container,B,G)}F.children.push(G)}return F},tree:function(D){D=$(D);var C=this.options(D);var B=Object.extend({tag:C.tag,treeTag:C.treeTag,only:C.only,name:D.id,format:C.format},arguments[1]||{});var A={id:null,parent:null,children:[],container:D,position:0};return Sortable._tree(D,B,A)},_constructIndex:function(B){var A="";do{if(B.id){A="["+B.position+"]"+A}}while((B=B.parent)!=null);return A},sequence:function(B){B=$(B);var A=Object.extend(this.options(B),arguments[1]||{});return $(this.findElements(B,A)||[]).map(function(C){return C.id.match(A.format)?C.id.match(A.format)[1]:""})},setSequence:function(B,C){B=$(B);var A=Object.extend(this.options(B),arguments[2]||{});var D={};this.findElements(B,A).each(function(E){if(E.id.match(A.format)){D[E.id.match(A.format)[1]]=[E,E.parentNode]}E.parentNode.removeChild(E)});C.each(function(E){var F=D[E];if(F){F[1].appendChild(F[0]);delete D[E]}})},serialize:function(C){C=$(C);var B=Object.extend(Sortable.options(C),arguments[1]||{});var A=encodeURIComponent((arguments[1]&&arguments[1].name)?arguments[1].name:C.id);if(B.tree){return Sortable.tree(C,arguments[1]).children.map(function(D){return[A+Sortable._constructIndex(D)+"[id]="+encodeURIComponent(D.id)].concat(D.children.map(arguments.callee))}).flatten().join("&")}else{return Sortable.sequence(C,arguments[1]).map(function(D){return A+"[]="+encodeURIComponent(D)}).join("&")}}};Element.isParent=function(B,A){if(!B.parentNode||B==A){return false}if(B.parentNode==A){return true}return Element.isParent(B.parentNode,A)};Element.findChildren=function(D,B,A,C){if(!D.hasChildNodes()){return null}C=C.toUpperCase();if(B){B=[B].flatten()}var E=[];$A(D.childNodes).each(function(G){if(G.tagName&&G.tagName.toUpperCase()==C&&(!B||(Element.classNames(G).detect(function(H){return B.include(H)})))){E.push(G)}if(A){var F=Element.findChildren(G,B,A,C);if(F){E.push(F)}}});return(E.length>0?E.flatten():[])};Element.offsetSize=function(A,B){return A["offset"+((B=="vertical"||B=="height")?"Height":"Width")]};var weekend=[0,6];var weekendColor="#e0e0e0";var fontface="Verdana";var fontsize=2;var gNow=new Date();var ggWinCal;isNav=(navigator.appName.indexOf("Netscape")!=-1)?true:false;isIE=(navigator.appName.indexOf("Microsoft")!=-1)?true:false;Calendar.Months=["January","February","March","April","May","June","July","August","September","October","November","December"];Calendar.DOMonth=[31,28,31,30,31,30,31,31,30,31,30,31];Calendar.lDOMonth=[31,29,31,30,31,30,31,31,30,31,30,31];function Calendar(D,E,A,C,B){if((A==null)&&(C==null)){return }if(E==null){this.gWinCal=ggWinCal}else{this.gWinCal=E}if(A==null){this.gMonthName=null;this.gMonth=null;this.gYearly=true}else{this.gMonthName=Calendar.get_month(A);this.gMonth=new Number(A);this.gYearly=false}this.gYear=C;this.gFormat=B;this.gBGColor="white";this.gFGColor="black";this.gTextColor="black";this.gHeaderColor="black";this.gReturnItem=D}Calendar.get_month=Calendar_get_month;Calendar.get_daysofmonth=Calendar_get_daysofmonth;Calendar.calc_month_year=Calendar_calc_month_year;Calendar.print=Calendar_print;function Calendar_get_month(A){return Calendar.Months[A]}function Calendar_get_daysofmonth(B,A){if((A%4)==0){if((A%100)==0&&(A%400)!=0){return Calendar.DOMonth[B]}return Calendar.lDOMonth[B]}else{return Calendar.DOMonth[B]}}function Calendar_calc_month_year(B,A,D){var C=new Array();if(D==-1){if(B==0){C[0]=11;C[1]=parseInt(A)-1}else{C[0]=parseInt(B)-1;C[1]=parseInt(A)}}else{if(D==1){if(B==11){C[0]=0;C[1]=parseInt(A)+1}else{C[0]=parseInt(B)+1;C[1]=parseInt(A)}}}return C}function Calendar_print(){ggWinCal.print()}function Calendar_calc_month_year(B,A,D){var C=new Array();if(D==-1){if(B==0){C[0]=11;C[1]=parseInt(A)-1}else{C[0]=parseInt(B)-1;C[1]=parseInt(A)}}else{if(D==1){if(B==11){C[0]=0;C[1]=parseInt(A)+1}else{C[0]=parseInt(B)+1;C[1]=parseInt(A)}}}return C}new Calendar();Calendar.prototype.getMonthlyCalendarCode=function(){var B="";var C="";var A="";B=B+'<TABLE BORDER=1 BGCOLOR="'+this.gBGColor+'">';C=this.cal_header();A=this.cal_data();B=B+C+A;B=B+"</TABLE>";return B};Calendar.prototype.show=function(){var G="";this.gWinCal.document.open();this.wwrite("<html>");this.wwrite("<head><title>Select a date</title>");this.wwrite("</head>");this.wwrite('<body link="'+this.gLinkColor+'" vlink="'+this.gLinkColor+'" alink="'+this.gLinkColor+'" text="'+this.gTextColor+'">');var E=Calendar.calc_month_year(this.gMonth,this.gYear,-1);var F=E[0];var C=E[1];var B=Calendar.calc_month_year(this.gMonth,this.gYear,1);var D=B[0];var A=B[1];this.wwrite("<TABLE WIDTH='100%' BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR='#e0e0e0'><TR><TD ALIGN=center>");this.wwrite("<A HREF=\"javascript:window.opener.Build('"+this.gReturnItem+"', '"+this.gMonth+"', '"+(parseInt(this.gYear)-1)+"', '"+this.gFormat+"');\"><<</A></TD><TD ALIGN=center>");this.wwrite("<A HREF=\"javascript:window.opener.Build('"+this.gReturnItem+"', '"+F+"', '"+C+"', '"+this.gFormat+"');\"><</A></TD><TD ALIGN=center>");this.wwriteA("<FONT FACE='"+fontface+"' SIZE=2><B>");this.wwriteA(this.gMonthName+" "+this.gYear);this.wwriteA("</B></TD><TD ALIGN=center>");this.wwrite("<A HREF=\"javascript:window.opener.Build('"+this.gReturnItem+"', '"+D+"', '"+A+"', '"+this.gFormat+"');\">></A></TD><TD ALIGN=center>");this.wwrite("<A HREF=\"javascript:window.opener.Build('"+this.gReturnItem+"', '"+this.gMonth+"', '"+(parseInt(this.gYear)+1)+"', '"+this.gFormat+"');\">>></A></TD></TR></TABLE><BR>");G=this.getMonthlyCalendarCode();this.wwrite(G);this.wwrite("</font></body></html>");this.gWinCal.document.close()};Calendar.prototype.showY=function(){var D="";var F;var M,H,J,I;var G=285;var B=200;var C=10;var L;if(isIE){L=75}else{if(isNav){L=25}}this.gWinCal.document.open();this.wwrite("<html>");this.wwrite("<head><title>Calendar</title>");this.wwrite("<link rel=stylesheet href=style.css type=text/css>");this.wwrite("<style type='text/css'>\n<!--");for(F=0;F<12;F++){H=F%3;if(F>=0&&F<=2){M=0}if(F>=3&&F<=5){M=1}if(F>=6&&F<=8){M=2}if(F>=9&&F<=11){M=3}J=parseInt(G*H)+C;I=parseInt(B*M)+L;this.wwrite(".lclass"+F+" {position:absolute;top:"+I+";left:"+J+";}")}this.wwrite("-->\n</style>");this.wwrite("</head>");this.wwrite('<body link="'+this.gLinkColor+'" vlink="'+this.gLinkColor+'" alink="'+this.gLinkColor+'" text="'+this.gTextColor+'">');this.wwrite("<FONT FACE='"+fontface+"' SIZE=2><B>");this.wwrite("Year : "+this.gYear);this.wwrite("</B><BR>");var K=parseInt(this.gYear)-1;var A=parseInt(this.gYear)+1;this.wwrite("<TABLE WIDTH='100%' BORDER=1 CELLSPACING=0 CELLPADDING=0 BGCOLOR='#e0e0e0'><TR><TD ALIGN=center>");this.wwrite("<A HREF=\"javascript:window.opener.Build('"+this.gReturnItem+"', null, '"+K+"', '"+this.gFormat+"');\" alt='Prev Year'><<</A>]</TD><TD ALIGN=center>");this.wwrite('<A HREF="javascript:window.print();">Print</A>]</TD><TD ALIGN=center>');this.wwrite("<A HREF=\"javascript:window.opener.Build('"+this.gReturnItem+"', null, '"+A+"', '"+this.gFormat+"');\">>></A>]</TD></TR></TABLE><BR>");var E;for(F=11;F>=0;F--){if(isIE){this.wwrite('<DIV ID="layer'+F+'" CLASS="lclass'+F+'">')}else{if(isNav){this.wwrite('<LAYER ID="layer'+F+'" CLASS="lclass'+F+'">')}}this.gMonth=F;this.gMonthName=Calendar.get_month(this.gMonth);D=this.getMonthlyCalendarCode();this.wwrite(this.gMonthName+"/"+this.gYear+"<BR>");this.wwrite(D);if(isIE){this.wwrite("</DIV>")}else{if(isNav){this.wwrite("</LAYER>")}}}this.wwrite("</font><BR></body></html>");this.gWinCal.document.close()};Calendar.prototype.wwrite=function(A){this.gWinCal.document.writeln(A)};Calendar.prototype.wwriteA=function(A){this.gWinCal.document.write(A)};Calendar.prototype.cal_header=function(){var A="";A=A+"<TRa align=center>";A=A+"<TD WIDTH='14%'><FONT SIZE='2' FACE='"+fontface+"' COLOR='"+this.gHeaderColor+"'><B>Sun</B></FONT></TD>";A=A+"<TD WIDTH='14%'><FONT SIZE='2' FACE='"+fontface+"' COLOR='"+this.gHeaderColor+"'><B>Mon</B></FONT></TD>";A=A+"<TD WIDTH='14%'><FONT SIZE='2' FACE='"+fontface+"' COLOR='"+this.gHeaderColor+"'><B>Tue</B></FONT></TD>";A=A+"<TD WIDTH='14%'><FONT SIZE='2' FACE='"+fontface+"' COLOR='"+this.gHeaderColor+"'><B>Wed</B></FONT></TD>";A=A+"<TD WIDTH='14%'><FONT SIZE='2' FACE='"+fontface+"' COLOR='"+this.gHeaderColor+"'><B>Thu</B></FONT></TD>";A=A+"<TD WIDTH='14%'><FONT SIZE='2' FACE='"+fontface+"' COLOR='"+this.gHeaderColor+"'><B>Fri</B></FONT></TD>";A=A+"<TD WIDTH='16%'><FONT SIZE='2' FACE='"+fontface+"' COLOR='"+this.gHeaderColor+"'><B>Sat</B></FONT></TD>";A=A+"</TR>";return A};Calendar.prototype.cal_data=function(){var B=new Date();B.setDate(1);B.setMonth(this.gMonth);B.setFullYear(this.gYear);var A=B.getDay();var D=1;var E=Calendar.get_daysofmonth(this.gMonth,this.gYear);var F=0;var C="";C=C+"<TR align=center>";for(i=0;i<A;i++){C=C+"<TD WIDTH='14%'"+this.write_weekend_string(i)+"><FONT SIZE='2' FACE='"+fontface+"'> </FONT></TD>"}for(j=A;j<7;j++){C=C+"<TD WIDTH='14%'"+this.write_weekend_string(j)+"><FONT SIZE='2' FACE='"+fontface+"'><A HREF='#' onClick=\"self.opener.document."+this.gReturnItem+".value='"+this.format_data(D)+"';window.close();\">"+this.format_day(D)+"</A></FONT></TD>";D=D+1}C=C+"</TR>";for(k=2;k<7;k++){C=C+"<TR align=center >";for(j=0;j<7;j++){C=C+"<TD WIDTH='14%'"+this.write_weekend_string(j)+"><FONT SIZE='2' FACE='"+fontface+"'><A HREF='#' onClick=\"self.opener.document."+this.gReturnItem+".value='"+this.format_data(D)+"';window.close();\">"+this.format_day(D)+"</A></FONT></TD>";D=D+1;if(D>E){F=1;break}}if(j==6){C=C+"</TR>"}if(F==1){break}}for(m=1;m<(7-j);m++){if(this.gYearly){C=C+"<TD WIDTH='14%'"+this.write_weekend_string(j+m)+"><FONT SIZE='2' FACE='"+fontface+"' COLOR='gray'> </FONT></TD>"}else{C=C+"<TD WIDTH='14%'"+this.write_weekend_string(j+m)+"><FONT SIZE='2' FACE='"+fontface+"' COLOR='gray'>"+m+"</FONT></TD>"}}return C};Calendar.prototype.format_day=function(A){var D=gNow.getDate();var C=gNow.getMonth();var B=gNow.getFullYear();if(A==D&&this.gMonth==C&&this.gYear==B){return('<FONT COLOR="RED"><B>'+A+"</B></FONT>")}else{return(A)}};Calendar.prototype.write_weekend_string=function(A){var B;for(B=0;B<weekend.length;B++){if(A==weekend[B]){return(' BGCOLOR="'+weekendColor+'"')}}return""};Calendar.prototype.format_data=function(C){var G;var F=1+this.gMonth;F=(F.toString().length<2)?"0"+F:F;var H=Calendar.get_month(this.gMonth).substr(0,3).toUpperCase();var B=Calendar.get_month(this.gMonth).toUpperCase();var D=new String(this.gYear);var E=new String(this.gYear.substr(2,2));var A=(C.toString().length<2)?"0"+C:C;switch(this.gFormat){case"MM/DD/YYYY":G=F+"/"+A+"/"+D;break;case"MM/DD/YY":G=F+"/"+A+"/"+E;break;case"MM-DD-YYYY":G=F+"-"+A+"-"+D;break;case"MM-DD-YY":G=F+"-"+A+"-"+E;break;case"DD/MON/YYYY":G=A+"/"+H+"/"+D;break;case"DD/MON/YY":G=A+"/"+H+"/"+E;break;case"DD-MON-YYYY":G=A+"-"+H+"-"+D;break;case"DD-MON-YY":G=A+"-"+H+"-"+E;break;case"DD/MONTH/YYYY":G=A+"/"+B+"/"+D;break;case"DD/MONTH/YY":G=A+"/"+B+"/"+E;break;case"DD-MONTH-YYYY":G=A+"-"+B+"-"+D;break;case"DD-MONTH-YY":G=A+"-"+B+"-"+E;break;case"DD/MM/YYYY":G=A+"/"+F+"/"+D;break;case"DD/MM/YY":G=A+"/"+F+"/"+E;break;case"DD-MM-YYYY":G=A+"-"+F+"-"+D;break;case"DD-MM-YY":G=A+"-"+F+"-"+E;break;default:G=F+"/"+A+"/"+D}return G};function Build(D,A,C,B){var E=ggWinCal;gCal=new Calendar(D,E,A,C,B);gCal.gBGColor="white";gCal.gLinkColor="black";gCal.gTextColor="black";gCal.gHeaderColor="darkgreen";if(gCal.gYearly){gCal.showY()}else{gCal.show()}}function show_calendar(){p_item=arguments[0];if(arguments[1]==null){p_month=new String(gNow.getMonth())}else{p_month=arguments[1]}if(arguments[2]==""||arguments[2]==null){p_year=new String(gNow.getFullYear().toString())}else{p_year=arguments[2]}if(arguments[3]==null){p_format="MM/DD/YYYY"}else{p_format=arguments[3]}vWinCal=window.open("","Calendar","width=250,height=250,status=no,resizable=no,top=200,left=200");vWinCal.opener=self;ggWinCal=vWinCal;Build(p_item,p_month,p_year,p_format)}function show_yearly_calendar(D,C,B){if(C==null||C==""){C=new String(gNow.getFullYear().toString())}if(B==null||B==""){B="MM/DD/YYYY"}var A=window.open("","Calendar","scrollbars=yes");A.opener=self;ggWinCal=A;Build(D,null,C,B)}LightboxOptions=Object.extend({fileLoadingImage:"/common/images/loading.gif",fileBottomNavCloseImage:"/common/images/closelabel.gif",overlayOpacity:0.8,animate:true,resizeSpeed:7,borderSize:10,labelImage:"Image",labelOf:"of"},window.LightboxOptions||{});var Lightbox=Class.create();Lightbox.prototype={imageArray:[],activeImage:undefined,initialize:function(){this.updateImageList();this.keyboardAction=this.keyboardAction.bindAsEventListener(this);if(LightboxOptions.resizeSpeed>10){LightboxOptions.resizeSpeed=10}if(LightboxOptions.resizeSpeed<1){LightboxOptions.resizeSpeed=1}this.resizeDuration=LightboxOptions.animate?((11-LightboxOptions.resizeSpeed)*0.15):0;this.overlayDuration=LightboxOptions.animate?0.2:0;var B=(LightboxOptions.animate?250:1)+"px";var A=$$("body")[0];A.appendChild(Builder.node("div",{id:"overlay"}));A.appendChild(Builder.node("div",{id:"lightbox"},[Builder.node("div",{id:"outerImageContainer"},Builder.node("div",{id:"imageContainer"},[Builder.node("img",{id:"lightboxImage"}),Builder.node("div",{id:"hoverNav"},[Builder.node("a",{id:"prevLink",href:"#"}),Builder.node("a",{id:"nextLink",href:"#"})]),Builder.node("div",{id:"loading"},Builder.node("a",{id:"loadingLink",href:"#"},Builder.node("img",{src:LightboxOptions.fileLoadingImage})))])),Builder.node("div",{id:"imageDataContainer"},Builder.node("div",{id:"imageData"},[Builder.node("div",{id:"imageDetails"},[Builder.node("span",{id:"caption"}),Builder.node("span",{id:"numberDisplay"})]),Builder.node("div",{id:"bottomNav"},Builder.node("a",{id:"bottomNavClose",href:"#"},Builder.node("img",{src:LightboxOptions.fileBottomNavCloseImage})))]))]));$("overlay").hide().observe("click",(function(){this.end()}).bind(this));$("lightbox").hide().observe("click",(function(D){if(D.element().id=="lightbox"){this.end()}}).bind(this));$("outerImageContainer").setStyle({width:B,height:B});$("prevLink").observe("click",(function(D){D.stop();this.changeImage(this.activeImage-1)}).bindAsEventListener(this));$("nextLink").observe("click",(function(D){D.stop();this.changeImage(this.activeImage+1)}).bindAsEventListener(this));$("loadingLink").observe("click",(function(D){D.stop();this.end()}).bind(this));$("bottomNavClose").observe("click",(function(D){D.stop();this.end()}).bind(this));var C=this;(function(){var D="overlay lightbox outerImageContainer imageContainer lightboxImage hoverNav prevLink nextLink loading loadingLink imageDataContainer imageData imageDetails caption numberDisplay bottomNav bottomNavClose";$w(D).each(function(E){C[E]=$(E)})}).defer()},updateImageList:function(){this.updateImageList=Prototype.emptyFunction;document.observe("click",(function(A){var B=A.findElement("a[rel^=lightbox]")||A.findElement("area[rel^=lightbox]");if(B){A.stop();this.start(B)}}).bind(this))},start:function(F){$$("select","object","embed").each(function(G){G.style.visibility="hidden"});var C=this.getPageSize();$("overlay").setStyle({width:C[0]+"px",height:C[1]+"px"});new Effect.Appear(this.overlay,{duration:this.overlayDuration,from:0,to:LightboxOptions.overlayOpacity});this.imageArray=[];var B=0;if((F.rel=="lightbox")){this.imageArray.push([F.href,F.title])}else{this.imageArray=$$(F.tagName+'[href][rel="'+F.rel+'"]').collect(function(G){return[G.href,G.title]}).uniq();while(this.imageArray[B][0]!=F.href){B++}}var A=document.viewport.getScrollOffsets();var E=A[1]+(document.viewport.getHeight()/10);var D=A[0];this.lightbox.setStyle({top:E+"px",left:D+"px"}).show();this.changeImage(B)},changeImage:function(B){this.activeImage=B;if(LightboxOptions.animate){this.loading.show()}this.lightboxImage.hide();this.hoverNav.hide();this.prevLink.hide();this.nextLink.hide();this.imageDataContainer.setStyle({opacity:0.0001});this.numberDisplay.hide();var A=new Image();A.onload=(function(){this.lightboxImage.src=this.imageArray[this.activeImage][0];this.resizeImageContainer(A.width,A.height)}).bind(this);A.src=this.imageArray[this.activeImage][0]},resizeImageContainer:function(E,F){var H=this.outerImageContainer.getWidth();var C=this.outerImageContainer.getHeight();var G=(E+LightboxOptions.borderSize*2);var J=(F+LightboxOptions.borderSize*2);var K=(G/H)*100;var B=(J/C)*100;var I=H-G;var A=C-J;if(A!=0){new Effect.Scale(this.outerImageContainer,B,{scaleX:false,duration:this.resizeDuration,queue:"front"})}if(I!=0){new Effect.Scale(this.outerImageContainer,K,{scaleY:false,duration:this.resizeDuration,delay:this.resizeDuration})}var D=0;if((A==0)&&(I==0)){D=100;if(Prototype.Browser.IE){D=250}}(function(){this.prevLink.setStyle({height:F+"px"});this.nextLink.setStyle({height:F+"px"});this.imageDataContainer.setStyle({width:G+"px"});this.showImage()}).bind(this).delay(D/1000)},showImage:function(){this.loading.hide();new Effect.Appear(this.lightboxImage,{duration:this.resizeDuration,queue:"end",afterFinish:(function(){this.updateDetails()}).bind(this)});this.preloadNeighborImages()},updateDetails:function(){if(this.imageArray[this.activeImage][1]!=""){this.caption.update(this.imageArray[this.activeImage][1]).show()}if(this.imageArray.length>1){this.numberDisplay.update(LightboxOptions.labelImage+" "+(this.activeImage+1)+" "+LightboxOptions.labelOf+"  "+this.imageArray.length).show()}new Effect.Parallel([new Effect.SlideDown(this.imageDataContainer,{sync:true,duration:this.resizeDuration,from:0,to:1}),new Effect.Appear(this.imageDataContainer,{sync:true,duration:this.resizeDuration})],{duration:this.resizeDuration,afterFinish:(function(){var A=this.getPageSize();this.overlay.setStyle({height:A[1]+"px"});this.updateNav()}).bind(this)})},updateNav:function(){this.hoverNav.show();if(this.activeImage>0){this.prevLink.show()}if(this.activeImage<(this.imageArray.length-1)){this.nextLink.show()}this.enableKeyboardNav()},enableKeyboardNav:function(){document.observe("keydown",this.keyboardAction)},disableKeyboardNav:function(){document.stopObserving("keydown",this.keyboardAction)},keyboardAction:function(D){var A=D.keyCode;var B;if(D.DOM_VK_ESCAPE){B=D.DOM_VK_ESCAPE}else{B=27}var C=String.fromCharCode(A).toLowerCase();if(C.match(/x|o|c/)||(A==B)){this.end()}else{if((C=="p")||(A==37)){if(this.activeImage!=0){this.disableKeyboardNav();this.changeImage(this.activeImage-1)}}else{if((C=="n")||(A==39)){if(this.activeImage!=(this.imageArray.length-1)){this.disableKeyboardNav();this.changeImage(this.activeImage+1)}}}}},preloadNeighborImages:function(){var A,B;if(this.imageArray.length>this.activeImage+1){A=new Image();A.src=this.imageArray[this.activeImage+1][0]}if(this.activeImage>0){B=new Image();B.src=this.imageArray[this.activeImage-1][0]}},end:function(){this.disableKeyboardNav();this.lightbox.hide();new Effect.Fade(this.overlay,{duration:this.overlayDuration});$$("select","object","embed").each(function(A){A.style.visibility="visible"})},getPageSize:function(){var C,A;if(window.innerHeight&&window.scrollMaxY){C=window.innerWidth+window.scrollMaxX;A=window.innerHeight+window.scrollMaxY}else{if(document.body.scrollHeight>document.body.offsetHeight){C=document.body.scrollWidth;A=document.body.scrollHeight}else{C=document.body.offsetWidth;A=document.body.offsetHeight}}var B,D;if(self.innerHeight){if(document.documentElement.clientWidth){B=document.documentElement.clientWidth}else{B=self.innerWidth}D=self.innerHeight}else{if(document.documentElement&&document.documentElement.clientHeight){B=document.documentElement.clientWidth;D=document.documentElement.clientHeight}else{if(document.body){B=document.body.clientWidth;D=document.body.clientHeight}}}if(A<D){pageHeight=D}else{pageHeight=A}if(C<B){pageWidth=C}else{pageWidth=B}return[pageWidth,pageHeight]}};document.observe("dom:loaded",function(){new Lightbox()});if(!Control){var Control={}}Control.Slider=Class.create({initialize:function(D,A,B){var C=this;if(Object.isArray(D)){this.handles=D.collect(function(E){return $(E)})}else{this.handles=[$(D)]}this.track=$(A);this.options=B||{};this.axis=this.options.axis||"horizontal";this.increment=this.options.increment||1;this.step=parseInt(this.options.step||"1");this.range=this.options.range||$R(0,1);this.value=0;this.values=this.handles.map(function(){return 0});this.spans=this.options.spans?this.options.spans.map(function(E){return $(E)}):false;this.options.startSpan=$(this.options.startSpan||null);this.options.endSpan=$(this.options.endSpan||null);this.restricted=this.options.restricted||false;this.maximum=this.options.maximum||this.range.end;this.minimum=this.options.minimum||this.range.start;this.alignX=parseInt(this.options.alignX||"0");this.alignY=parseInt(this.options.alignY||"0");this.trackLength=this.maximumOffset()-this.minimumOffset();this.handleLength=this.isVertical()?(this.handles[0].offsetHeight!=0?this.handles[0].offsetHeight:this.handles[0].style.height.replace(/px$/,"")):(this.handles[0].offsetWidth!=0?this.handles[0].offsetWidth:this.handles[0].style.width.replace(/px$/,""));this.active=false;this.dragging=false;this.disabled=false;if(this.options.disabled){this.setDisabled()}this.allowedValues=this.options.values?this.options.values.sortBy(Prototype.K):false;if(this.allowedValues){this.minimum=this.allowedValues.min();this.maximum=this.allowedValues.max()}this.eventMouseDown=this.startDrag.bindAsEventListener(this);this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.update.bindAsEventListener(this);this.handles.each(function(F,E){E=C.handles.length-1-E;C.setValue(parseFloat((Object.isArray(C.options.sliderValue)?C.options.sliderValue[E]:C.options.sliderValue)||C.range.start),E);F.makePositioned().observe("mousedown",C.eventMouseDown)});this.track.observe("mousedown",this.eventMouseDown);document.observe("mouseup",this.eventMouseUp);document.observe("mousemove",this.eventMouseMove);this.initialized=true},dispose:function(){var A=this;Event.stopObserving(this.track,"mousedown",this.eventMouseDown);Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);this.handles.each(function(B){Event.stopObserving(B,"mousedown",A.eventMouseDown)})},setDisabled:function(){this.disabled=true},setEnabled:function(){this.disabled=false},getNearestValue:function(A){if(this.allowedValues){if(A>=this.allowedValues.max()){return(this.allowedValues.max())}if(A<=this.allowedValues.min()){return(this.allowedValues.min())}var C=Math.abs(this.allowedValues[0]-A);var B=this.allowedValues[0];this.allowedValues.each(function(D){var E=Math.abs(D-A);if(E<=C){B=D;C=E}});return B}if(A>this.range.end){return this.range.end}if(A<this.range.start){return this.range.start}return A},setValue:function(B,A){if(!this.active){this.activeHandleIdx=A||0;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles()}A=A||this.activeHandleIdx||0;if(this.initialized&&this.restricted){if((A>0)&&(B<this.values[A-1])){B=this.values[A-1]}if((A<(this.handles.length-1))&&(B>this.values[A+1])){B=this.values[A+1]}}B=this.getNearestValue(B);this.values[A]=B;this.value=this.values[0];this.handles[A].style[this.isVertical()?"top":"left"]=this.translateToPx(B);this.drawSpans();if(!this.dragging||!this.event){this.updateFinished()}},setValueBy:function(B,A){this.setValue(this.values[A||this.activeHandleIdx||0]+B,A||this.activeHandleIdx||0)},translateToPx:function(A){return Math.round(((this.trackLength-this.handleLength)/(this.range.end-this.range.start))*(A-this.range.start))+"px"},translateToValue:function(A){return((A/(this.trackLength-this.handleLength)*(this.range.end-this.range.start))+this.range.start)},getRange:function(B){var A=this.values.sortBy(Prototype.K);B=B||0;return $R(A[B],A[B+1])},minimumOffset:function(){return(this.isVertical()?this.alignY:this.alignX)},maximumOffset:function(){return(this.isVertical()?(this.track.offsetHeight!=0?this.track.offsetHeight:this.track.style.height.replace(/px$/,""))-this.alignY:(this.track.offsetWidth!=0?this.track.offsetWidth:this.track.style.width.replace(/px$/,""))-this.alignX)},isVertical:function(){return(this.axis=="vertical")},drawSpans:function(){var A=this;if(this.spans){$R(0,this.spans.length-1).each(function(B){A.setSpan(A.spans[B],A.getRange(B))})}if(this.options.startSpan){this.setSpan(this.options.startSpan,$R(0,this.values.length>1?this.getRange(0).min():this.value))}if(this.options.endSpan){this.setSpan(this.options.endSpan,$R(this.values.length>1?this.getRange(this.spans.length-1).max():this.value,this.maximum))}},setSpan:function(B,A){if(this.isVertical()){B.style.top=this.translateToPx(A.start);B.style.height=this.translateToPx(A.end-A.start+this.range.start)}else{B.style.left=this.translateToPx(A.start);B.style.width=this.translateToPx(A.end-A.start+this.range.start)}},updateStyles:function(){this.handles.each(function(A){Element.removeClassName(A,"selected")});Element.addClassName(this.activeHandle,"selected")},startDrag:function(C){if(Event.isLeftClick(C)){if(!this.disabled){this.active=true;var D=Event.element(C);var E=[Event.pointerX(C),Event.pointerY(C)];var A=D;if(A==this.track){var B=Position.cumulativeOffset(this.track);this.event=C;this.setValue(this.translateToValue((this.isVertical()?E[1]-B[1]:E[0]-B[0])-(this.handleLength/2)));var B=Position.cumulativeOffset(this.activeHandle);this.offsetX=(E[0]-B[0]);this.offsetY=(E[1]-B[1])}else{while((this.handles.indexOf(D)==-1)&&D.parentNode){D=D.parentNode}if(this.handles.indexOf(D)!=-1){this.activeHandle=D;this.activeHandleIdx=this.handles.indexOf(this.activeHandle);this.updateStyles();var B=Position.cumulativeOffset(this.activeHandle);this.offsetX=(E[0]-B[0]);this.offsetY=(E[1]-B[1])}}}Event.stop(C)}},update:function(A){if(this.active){if(!this.dragging){this.dragging=true}this.draw(A);if(Prototype.Browser.WebKit){window.scrollBy(0,0)}Event.stop(A)}},draw:function(B){var C=[Event.pointerX(B),Event.pointerY(B)];var A=Position.cumulativeOffset(this.track);C[0]-=this.offsetX+A[0];C[1]-=this.offsetY+A[1];this.event=B;this.setValue(this.translateToValue(this.isVertical()?C[1]:C[0]));if(this.initialized&&this.options.onSlide){this.options.onSlide(this.values.length>1?this.values:this.value,this)}},endDrag:function(A){if(this.active&&this.dragging){this.finishDrag(A,true);Event.stop(A)}this.active=false;this.dragging=false},finishDrag:function(A,B){this.active=false;this.dragging=false;this.updateFinished()},updateFinished:function(){if(this.initialized&&this.options.onChange){this.options.onChange(this.values.length>1?this.values:this.value,this)}this.event=null}});Sound={tracks:{},_enabled:true,template:new Template('<embed style="height:0" id="sound_#{track}_#{id}" src="#{url}" loop="false" autostart="true" hidden="true"/>'),enable:function(){Sound._enabled=true},disable:function(){Sound._enabled=false},play:function(B){if(!Sound._enabled){return }var A=Object.extend({track:"global",url:B,replace:false},arguments[1]||{});if(A.replace&&this.tracks[A.track]){$R(0,this.tracks[A.track].id).each(function(D){var C=$("sound_"+A.track+"_"+D);C.Stop&&C.Stop();C.remove()});this.tracks[A.track]=null}if(!this.tracks[A.track]){this.tracks[A.track]={id:0}}else{this.tracks[A.track].id++}A.id=this.tracks[A.track].id;$$("body")[0].insert(Prototype.Browser.IE?new Element("bgsound",{id:"sound_"+A.track+"_"+A.id,src:A.url,loop:1,autostart:true}):Sound.template.evaluate(A))}};if(Prototype.Browser.Gecko&&navigator.userAgent.indexOf("Win")>0){if(navigator.plugins&&$A(navigator.plugins).detect(function(A){return A.name.indexOf("QuickTime")!=-1})){Sound.template=new Template('<object id="sound_#{track}_#{id}" width="0" height="0" type="audio/mpeg" data="#{url}"/>')}else{Sound.play=function(){}}}Event.simulateMouse=function(D,B){var C=Object.extend({pointerX:0,pointerY:0,buttons:0,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},arguments[2]||{});var A=document.createEvent("MouseEvents");A.initMouseEvent(B,true,true,document.defaultView,C.buttons,C.pointerX,C.pointerY,C.pointerX,C.pointerY,C.ctrlKey,C.altKey,C.shiftKey,C.metaKey,0,$(D));if(this.mark){Element.remove(this.mark)}this.mark=document.createElement("div");this.mark.appendChild(document.createTextNode(" "));document.body.appendChild(this.mark);this.mark.style.position="absolute";this.mark.style.top=C.pointerY+"px";this.mark.style.left=C.pointerX+"px";this.mark.style.width="5px";this.mark.style.height="5px;";this.mark.style.borderTop="1px solid red;";this.mark.style.borderLeft="1px solid red;";if(this.step){alert("["+new Date().getTime().toString()+"] "+B+"/"+Test.Unit.inspect(C))}$(D).dispatchEvent(A)};Event.simulateKey=function(D,B){var C=Object.extend({ctrlKey:false,altKey:false,shiftKey:false,metaKey:false,keyCode:0,charCode:0},arguments[2]||{});var A=document.createEvent("KeyEvents");A.initKeyEvent(B,true,true,window,C.ctrlKey,C.altKey,C.shiftKey,C.metaKey,C.keyCode,C.charCode);$(D).dispatchEvent(A)};Event.simulateKeys=function(B,C){for(var A=0;A<C.length;A++){Event.simulateKey(B,"keypress",{charCode:C.charCodeAt(A)})}};var Test={};Test.Unit={};Test.Unit.inspect=Object.inspect;Test.Unit.Logger=Class.create();Test.Unit.Logger.prototype={initialize:function(A){this.log=$(A);if(this.log){this._createLogTable()}},start:function(A){if(!this.log){return }this.testName=A;this.lastLogLine=document.createElement("tr");this.statusCell=document.createElement("td");this.nameCell=document.createElement("td");this.nameCell.className="nameCell";this.nameCell.appendChild(document.createTextNode(A));this.messageCell=document.createElement("td");this.lastLogLine.appendChild(this.statusCell);this.lastLogLine.appendChild(this.nameCell);this.lastLogLine.appendChild(this.messageCell);this.loglines.appendChild(this.lastLogLine)},finish:function(A,B){if(!this.log){return }this.lastLogLine.className=A;this.statusCell.innerHTML=A;this.messageCell.innerHTML=this._toHTML(B);this.addLinksToResults()},message:function(A){if(!this.log){return }this.messageCell.innerHTML=this._toHTML(A)},summary:function(A){if(!this.log){return }this.logsummary.innerHTML=this._toHTML(A)},_createLogTable:function(){this.log.innerHTML='<div id="logsummary"></div><table id="logtable"><thead><tr><th>Status</th><th>Test</th><th>Message</th></tr></thead><tbody id="loglines"></tbody></table>';this.logsummary=$("logsummary");this.loglines=$("loglines")},_toHTML:function(A){return A.escapeHTML().replace(/\n/g,"<br/>")},addLinksToResults:function(){$$("tr.failed .nameCell").each(function(A){A.title="Run only this test";Event.observe(A,"click",function(){window.location.search="?tests="+A.innerHTML})});$$("tr.passed .nameCell").each(function(A){A.title="Run all tests";Event.observe(A,"click",function(){window.location.search=""})})}};Test.Unit.Runner=Class.create();Test.Unit.Runner.prototype={initialize:function(A){this.options=Object.extend({testLog:"testlog"},arguments[1]||{});this.options.resultsURL=this.parseResultsURLQueryParameter();this.options.tests=this.parseTestsQueryParameter();if(this.options.testLog){this.options.testLog=$(this.options.testLog)||null}if(this.options.tests){this.tests=[];for(var C=0;C<this.options.tests.length;C++){if(/^test/.test(this.options.tests[C])){this.tests.push(new Test.Unit.Testcase(this.options.tests[C],A[this.options.tests[C]],A.setup,A.teardown))}}}else{if(this.options.test){this.tests=[new Test.Unit.Testcase(this.options.test,A[this.options.test],A.setup,A.teardown)]}else{this.tests=[];for(var B in A){if(/^test/.test(B)){this.tests.push(new Test.Unit.Testcase(this.options.context?" -> "+this.options.titles[B]:B,A[B],A.setup,A.teardown))}}}}this.currentTest=0;this.logger=new Test.Unit.Logger(this.options.testLog);setTimeout(this.runTests.bind(this),1000)},parseResultsURLQueryParameter:function(){return window.location.search.parseQuery()["resultsURL"]},parseTestsQueryParameter:function(){if(window.location.search.parseQuery()["tests"]){return window.location.search.parseQuery()["tests"].split(",")}},getResult:function(){var B=false;for(var A=0;A<this.tests.length;A++){if(this.tests[A].errors>0){return"ERROR"}if(this.tests[A].failures>0){B=true}}if(B){return"FAILURE"}else{return"SUCCESS"}},postResults:function(){if(this.options.resultsURL){new Ajax.Request(this.options.resultsURL,{method:"get",parameters:"result="+this.getResult(),asynchronous:false})}},runTests:function(){var A=this.tests[this.currentTest];if(!A){this.postResults();this.logger.summary(this.summary());return }if(!A.isWaiting){this.logger.start(A.name)}A.run();if(A.isWaiting){this.logger.message("Waiting for "+A.timeToWait+"ms");setTimeout(this.runTests.bind(this),A.timeToWait||1000)}else{this.logger.finish(A.status(),A.summary());this.currentTest++;this.runTests()}},summary:function(){var D=0;var B=0;var E=0;var C=[];for(var A=0;A<this.tests.length;A++){D+=this.tests[A].assertions;B+=this.tests[A].failures;E+=this.tests[A].errors}return((this.options.context?this.options.context+": ":"")+this.tests.length+" tests, "+D+" assertions, "+B+" failures, "+E+" errors")}};Test.Unit.Assertions=Class.create();Test.Unit.Assertions.prototype={initialize:function(){this.assertions=0;this.failures=0;this.errors=0;this.messages=[]},summary:function(){return(this.assertions+" assertions, "+this.failures+" failures, "+this.errors+" errors\n"+this.messages.join("\n"))},pass:function(){this.assertions++},fail:function(A){this.failures++;this.messages.push("Failure: "+A)},info:function(A){this.messages.push("Info: "+A)},error:function(A){this.errors++;this.messages.push(A.name+": "+A.message+"("+Test.Unit.inspect(A)+")")},status:function(){if(this.failures>0){return"failed"}if(this.errors>0){return"error"}return"passed"},assert:function(C){var A=arguments[1]||'assert: got "'+Test.Unit.inspect(C)+'"';try{C?this.pass():this.fail(A)}catch(B){this.error(B)}},assertEqual:function(B,D){var A=arguments[2]||"assertEqual";try{(B==D)?this.pass():this.fail(A+': expected "'+Test.Unit.inspect(B)+'", actual "'+Test.Unit.inspect(D)+'"')}catch(C){this.error(C)}},assertInspect:function(B,D){var A=arguments[2]||"assertInspect";try{(B==D.inspect())?this.pass():this.fail(A+': expected "'+Test.Unit.inspect(B)+'", actual "'+Test.Unit.inspect(D)+'"')}catch(C){this.error(C)}},assertEnumEqual:function(B,D){var A=arguments[2]||"assertEnumEqual";try{$A(B).length==$A(D).length&&B.zip(D).all(function(E){return E[0]==E[1]})?this.pass():this.fail(A+": expected "+Test.Unit.inspect(B)+", actual "+Test.Unit.inspect(D))}catch(C){this.error(C)}},assertNotEqual:function(B,D){var A=arguments[2]||"assertNotEqual";try{(B!=D)?this.pass():this.fail(A+': got "'+Test.Unit.inspect(D)+'"')}catch(C){this.error(C)}},assertIdentical:function(B,D){var A=arguments[2]||"assertIdentical";try{(B===D)?this.pass():this.fail(A+': expected "'+Test.Unit.inspect(B)+'", actual "'+Test.Unit.inspect(D)+'"')}catch(C){this.error(C)}},assertNotIdentical:function(B,D){var A=arguments[2]||"assertNotIdentical";try{!(B===D)?this.pass():this.fail(A+': expected "'+Test.Unit.inspect(B)+'", actual "'+Test.Unit.inspect(D)+'"')}catch(C){this.error(C)}},assertNull:function(C){var A=arguments[1]||"assertNull";try{(C==null)?this.pass():this.fail(A+': got "'+Test.Unit.inspect(C)+'"')}catch(B){this.error(B)}},assertMatch:function(C,E){var B=arguments[2]||"assertMatch";var A=new RegExp(C);try{(A.exec(E))?this.pass():this.fail(B+' : regex: "'+Test.Unit.inspect(C)+" did not match: "+Test.Unit.inspect(E)+'"')}catch(D){this.error(D)}},assertHidden:function(A){var B=arguments[1]||"assertHidden";this.assertEqual("none",A.style.display,B)},assertNotNull:function(A){var B=arguments[1]||"assertNotNull";this.assert(A!=null,B)},assertType:function(B,D){var A=arguments[2]||"assertType";try{(D.constructor==B)?this.pass():this.fail(A+': expected "'+Test.Unit.inspect(B)+'", actual "'+(D.constructor)+'"')}catch(C){this.error(C)}},assertNotOfType:function(B,D){var A=arguments[2]||"assertNotOfType";try{(D.constructor!=B)?this.pass():this.fail(A+': expected "'+Test.Unit.inspect(B)+'", actual "'+(D.constructor)+'"')}catch(C){this.error(C)}},assertInstanceOf:function(B,D){var A=arguments[2]||"assertInstanceOf";try{(D instanceof B)?this.pass():this.fail(A+": object was not an instance of the expected type")}catch(C){this.error(C)}},assertNotInstanceOf:function(B,D){var A=arguments[2]||"assertNotInstanceOf";try{!(D instanceof B)?this.pass():this.fail(A+": object was an instance of the not expected type")}catch(C){this.error(C)}},assertRespondsTo:function(D,C){var A=arguments[2]||"assertRespondsTo";try{(C[D]&&typeof C[D]=="function")?this.pass():this.fail(A+": object doesn't respond to ["+D+"]")}catch(B){this.error(B)}},assertReturnsTrue:function(E,D){var B=arguments[2]||"assertReturnsTrue";try{var A=D[E];if(!A){A=D["is"+E.charAt(0).toUpperCase()+E.slice(1)]}A()?this.pass():this.fail(B+": method returned false")}catch(C){this.error(C)}},assertReturnsFalse:function(E,D){var B=arguments[2]||"assertReturnsFalse";try{var A=D[E];if(!A){A=D["is"+E.charAt(0).toUpperCase()+E.slice(1)]}!A()?this.pass():this.fail(B+": method returned true")}catch(C){this.error(C)}},assertRaise:function(A,D){var B=arguments[2]||"assertRaise";try{D();this.fail(B+": exception expected but none was raised")}catch(C){((A==null)||(C.name==A))?this.pass():this.error(C)}},assertElementsMatch:function(){var A=$A(arguments),B=$A(A.shift());if(B.length!=A.length){this.fail("assertElementsMatch: size mismatch: "+B.length+" elements, "+A.length+" expressions");return false}B.zip(A).all(function(F,C){var D=$(F.first()),E=F.last();if(D.match(E)){return true}this.fail("assertElementsMatch: (in index "+C+") expected "+E.inspect()+" but got "+D.inspect())}.bind(this))&&this.pass()},assertElementMatches:function(A,B){this.assertElementsMatch([A],B)},benchmark:function(C,D){var B=new Date();(D||1).times(C);var A=((new Date())-B);this.info((arguments[2]||"Operation")+" finished "+D+" iterations in "+(A/1000)+"s");return A},_isVisible:function(A){A=$(A);if(!A.parentNode){return true}this.assertNotNull(A);if(A.style&&Element.getStyle(A,"display")=="none"){return false}return this._isVisible(A.parentNode)},assertNotVisible:function(A){this.assert(!this._isVisible(A),Test.Unit.inspect(A)+" was not hidden and didn't have a hidden parent either. "+(""||arguments[1]))},assertVisible:function(A){this.assert(this._isVisible(A),Test.Unit.inspect(A)+" was not visible. "+(""||arguments[1]))},benchmark:function(C,D){var B=new Date();(D||1).times(C);var A=((new Date())-B);this.info((arguments[2]||"Operation")+" finished "+D+" iterations in "+(A/1000)+"s");return A}};Test.Unit.Testcase=Class.create();Object.extend(Object.extend(Test.Unit.Testcase.prototype,Test.Unit.Assertions.prototype),{initialize:function(name,test,setup,teardown){Test.Unit.Assertions.prototype.initialize.bind(this)();this.name=name;if(typeof test=="string"){test=test.gsub(/(\.should[^\(]+\()/,"#{0}this,");test=test.gsub(/(\.should[^\(]+)\(this,\)/,"#{1}(this)");this.test=function(){eval("with(this){"+test+"}")}}else{this.test=test||function(){}}this.setup=setup||function(){};this.teardown=teardown||function(){};this.isWaiting=false;this.timeToWait=1000},wait:function(B,A){this.isWaiting=true;this.test=A;this.timeToWait=B},run:function(){try{try{if(!this.isWaiting){this.setup.bind(this)()}this.isWaiting=false;this.test.bind(this)()}finally{if(!this.isWaiting){this.teardown.bind(this)()}}}catch(A){this.error(A)}}});Test.setupBDDExtensionMethods=function(){var B={shouldEqual:"assertEqual",shouldNotEqual:"assertNotEqual",shouldEqualEnum:"assertEnumEqual",shouldBeA:"assertType",shouldNotBeA:"assertNotOfType",shouldBeAn:"assertType",shouldNotBeAn:"assertNotOfType",shouldBeNull:"assertNull",shouldNotBeNull:"assertNotNull",shouldBe:"assertReturnsTrue",shouldNotBe:"assertReturnsFalse",shouldRespondTo:"assertRespondsTo"};var A=function(C,E,D){this[C].apply(this,(E||[]).concat([D]))};Test.BDDMethods={};$H(B).each(function(C){Test.BDDMethods[C.key]=function(){var D=$A(arguments);var E=D.shift();A.apply(E,[C.value,D,this])}});[Array.prototype,String.prototype,Number.prototype,Boolean.prototype].each(function(C){Object.extend(C,Test.BDDMethods)})};Test.context=function(D,C,F){Test.setupBDDExtensionMethods();var E={};var G={};for(specName in C){switch(specName){case"setup":case"teardown":E[specName]=C[specName];break;default:var B="test"+specName.gsub(/\s+/,"-").camelize();var A=C[specName].toString().split("\n").slice(1);if(/^\{/.test(A[0])){A=A.slice(1)}A.pop();A=A.map(function(H){return H.strip()});E[B]=A.join("\n");G[B]=specName}}new Test.Unit.Runner(E,{titles:G,testLog:F||"testlog",context:D})};