if(typeof(Control)=='undefined')Control={};var $proc=function(proc){return typeof(proc)=='function'?proc:function(){return proc}};var $value=function(value){return typeof(value)=='function'?value():value};Object.Event={extend:function(object){object._objectEventSetup=function(event_name){this._observers=this._observers||{};this._observers[event_name]=this._observers[event_name]||[]};object.observe=function(event_name,observer){if(typeof(event_name)=='string'&&typeof(observer)!='undefined'){this._objectEventSetup(event_name);if(!this._observers[event_name].include(observer))this._observers[event_name].push(observer)}else for(var e in event_name)this.observe(e,event_name[e])};object.stopObserving=function(event_name,observer){this._objectEventSetup(event_name);if(event_name&&observer)this._observers[event_name]=this._observers[event_name].without(observer);else if(event_name)this._observers[event_name]=[];else this._observers={}};object.observeOnce=function(event_name,outer_observer){var inner_observer=function(){outer_observer.apply(this,arguments);this.stopObserving(event_name,inner_observer)}.bind(this);this._objectEventSetup(event_name);this._observers[event_name].push(inner_observer)};object.notify=function(event_name){this._objectEventSetup(event_name);var collected_return_values=[];var args=$A(arguments).slice(1);try{for(var i=0;i<this._observers[event_name].length;++i)collected_return_values.push(this._observers[event_name][i].apply(this._observers[event_name][i],args)||null)}catch(e){if(e==$break)return false;else throw e;}return collected_return_values};if(object.prototype){object.prototype._objectEventSetup=object._objectEventSetup;object.prototype.observe=object.observe;object.prototype.stopObserving=object.stopObserving;object.prototype.observeOnce=object.observeOnce;object.prototype.notify=function(event_name){if(object.notify){var args=$A(arguments).slice(1);args.unshift(this);args.unshift(event_name);object.notify.apply(object,args)}this._objectEventSetup(event_name);var args=$A(arguments).slice(1);var collected_return_values=[];try{if(this.options&&this.options[event_name]&&typeof(this.options[event_name])=='function')collected_return_values.push(this.options[event_name].apply(this,args)||null);for(var i=0;i<this._observers[event_name].length;++i)collected_return_values.push(this._observers[event_name][i].apply(this._observers[event_name][i],args)||null)}catch(e){if(e==$break)return false;else throw e;}return collected_return_values}}}};Element.addMethods({observeOnce:function(element,event_name,outer_callback){var inner_callback=function(){outer_callback.apply(this,arguments);Element.stopObserving(element,event_name,inner_callback)};Element.observe(element,event_name,inner_callback)}});(function(){function wheel(event){var delta,element,custom_event;if(event.wheelDelta){delta=event.wheelDelta/120}else if(event.detail){delta=-event.detail/3}if(!delta){return}element=Event.extend(event).target;element=Element.extend(element.nodeType===Node.TEXT_NODE?element.parentNode:element);custom_event=element.fire('mouse:wheel',{delta:delta});if(custom_event.stopped){Event.stop(event);return false}}document.observe('mousewheel',wheel);document.observe('DOMMouseScroll',wheel)})();var IframeShim=Class.create({initialize:function(){this.element=new Element('iframe',{style:'position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);display:none',src:'javascript:void(0);',frameborder:0});$(document.body).insert(this.element)},hide:function(){this.element.hide();return this},show:function(){this.element.show();return this},positionUnder:function(element){var element=$(element);var offset=element.cumulativeOffset();var dimensions=element.getDimensions();this.element.setStyle({left:offset[0]+'px',top:offset[1]+'px',width:dimensions.width+'px',height:dimensions.height+'px',zIndex:element.getStyle('zIndex')-1}).show();return this},setBounds:function(bounds){for(prop in bounds)bounds[prop]+='px';this.element.setStyle(bounds);return this},destroy:function(){if(this.element)this.element.remove();return this}});

