var ScrollBox=Class.create();ScrollBox.NO_ACTION=0;ScrollBox.PAGE_ACTION=1;ScrollBox.JUMP_ACTION=2;Object.extend(ScrollBox.prototype,{initialize:function(b,a){this.element=b;Element.addClassName(this.element,"scrollbox");this.opts={scroll_increment:30,hold_delay:500,hold_interval:100,drag_interval:100,update_check_interval:100,auto_hide:false,bar_action:ScrollBox.PAGE_ACTION};Object.extend(this.opts,a);this.content_div=document.createElement("div");Element.addClassName(this.content_div,"scrollbox_content");$A(this.element.childNodes).each(function(c){this.content_div.appendChild(c)}.bind(this));this.element.appendChild(this.content_div);this.content_div.style.overflow="hidden";this.content_div.style.height="100%";this.scrollbar=document.createElement("div");Element.addClassName(this.scrollbar,"scrollbox_scrollbar");this.element.appendChild(this.scrollbar);this.scrollbar.style.position="absolute";this.scrollbar.style.top="0";this.scrollbar.style.right="0";this.up_button=document.createElement("div");Element.addClassName(this.up_button,"scrollbox_up_button");this.up_button.style.position="absolute";this.up_button.style.width="100%";this.up_button.style.top="0";this.up_button.style.right="0";this.scrollbar.appendChild(this.up_button);this.down_button=document.createElement("div");Element.addClassName(this.down_button,"scrollbox_down_button");this.down_button.style.position="absolute";this.down_button.style.width="100%";this.down_button.style.bottom="0";this.down_button.style.right="0";this.scrollbar.appendChild(this.down_button);this.handle=document.createElement("div");Element.addClassName(this.handle,"scrollbox_handle");this.handle.style.position="absolute";this.handle.style.width="100%";this.handle.style.right="0";this.down_button.style.margin="0px 0 -6px 0";this.scrollbar.appendChild(this.handle);this.scroll_pos=0;this.setSizes();Event.observe(this.up_button,"mousedown",function(c){this.buttonDown(c,this.scrollUp.bind(this))}.bindAsEventListener(this));Event.observe(this.down_button,"mousedown",function(c){this.buttonDown(c,this.scrollDown.bind(this))}.bindAsEventListener(this));Event.observe(document,"mouseup",this.buttonUp.bindAsEventListener(this));Event.observe(document,"mousemove",this.setMousePos.bindAsEventListener(this));Event.observe(this.handle,"mousedown",this.handleDown.bindAsEventListener(this));this.handle_update_interval=setInterval(this.updateCheck.bind(this),this.opts.update_check_interval);Event.observe(this.up_button,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.down_button,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.handle,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.scrollbar,"click",this.scrollBarClick.bindAsEventListener(this));this.keyboard_events=[[document,"keypress",this.keyboardEvent.bindAsEventListener(this)]];Event.observe(this.element,"click",this.enableKeyboardEvents.bindAsEventListener(this));Event.observe(document,"click",this.disableKeyboardEvents.bindAsEventListener(this));Event.observe(this.content_div,"mousewheel",this.scrollWheel.bindAsEventListener(this),true);Event.observe(this.content_div,"DOMMouseScroll",this.scrollWheel.bindAsEventListener(this),true)},scrollDown:function(){if(this.scroll_pos<this.scroll_max){this.scrollTo(this.scroll_pos+this.opts.scroll_increment<this.scroll_max?this.scroll_pos+this.opts.scroll_increment:this.scroll_max);return true}else{return false}},scrollUp:function(){if(this.scroll_pos>0){this.scrollTo(this.scroll_pos>this.opts.scroll_increment?this.scroll_pos-this.opts.scroll_increment:0);return true}else{return false}},scrollTo:function(a){if(a<0){a=0}if(a>this.scroll_max){a=this.scroll_max}this.content_div.scrollTop=a;this.scroll_pos=a;this.updateHandle()},buttonDown:function(a,b){b();this.timeout=setTimeout(function(){b();this.timeout=null;if(this.interval){clearInterval(this.interval)}this.interval=setInterval(b,this.opts.hold_interval)}.bind(this),this.opts.hold_delay);Event.stop(a)},buttonUp:function(a){if(this.timeout){clearTimeout(this.timeout)}if(this.interval){clearInterval(this.interval)}this.timeout=null;this.interval=null;this.down_position=null},updateHandle:function(){if(this.scroll_max){this.handle_height=Math.floor(this.bar_height/this.scroll_height_ratio)}else{this.handle_height=this.bar_height}var c=this.up_button.offsetHeight;var a=this.up_button.offsetHeight+(this.bar_height-this.handle_height);var b=a-c;if(this.scroll_max){this.handle_pos=c+Math.floor(b*(this.scroll_pos/this.scroll_max))}else{this.handle_pos=c}this.handle.style.height=this.handle_height+"px";this.handle.style.top=this.handle_pos+"px"},handleDown:function(){this.down_position=this.raw_mouse_pos-Position.cumulativeOffset(this.handle)[1];if(this.interval){clearInterval(this.interval)}this.interval=setInterval(function(){this.scrollTo(this.mouse_pos-(this.down_position*this.scroll_height_ratio))}.bindAsEventListener(this),this.opts.drag_interval)},setMousePos:function(a){if(document.all){tempY=event.clientY+document.body.scrollTop}else{tempY=a.pageY}if(tempY<0){tempY=0}this.raw_mouse_pos=tempY;this.mouse_pos=Math.floor((tempY-this.scrollbar_top)*this.scroll_height_ratio)},setSizes:function(){this.scroll_max=this.content_div.scrollHeight-this.content_div.offsetHeight;if(this.scroll_max<0){this.scroll_max=0}if(this.scroll_pos>this.scroll_max){this.scrollTo(this.scroll_max)}this.bar_height=this.scrollbar.offsetHeight-(this.up_button.offsetHeight+this.down_button.offsetHeight);if(!this.bar_height){setTimeout(this.setSizes.bind(this),100)}this.scroll_height_ratio=(this.content_div.scrollHeight/this.bar_height);this.scroll_height_ratio=this.scroll_height_ratio>=1?this.scroll_height_ratio:1;this.scrollbar_top=Position.cumulativeOffset(this.scrollbar)[1]+this.up_button.offsetHeight;this.scrollbar_bottom=this.scrollbar_top+this.bar_height;this.updateHandle()},scrollBarClick:function(a){switch(this.opts.bar_action){case ScrollBox.PAGE_ACTION:if(this.mouse_pos<this.handle_pos*this.scroll_height_ratio){this.pageUp()}else{this.pageDown()}break;case ScrollBox.JUMP_ACTION:this.scrollTo(this.mouse_pos);break}},pageUp:function(){this.scrollTo(this.scroll_pos-this.content_div.offsetHeight)},pageDown:function(){this.scrollTo(this.scroll_pos+this.content_div.offsetHeight)},scrollWheel:function(c){var b=Event.wheel(c);if(b>0){for(var a=0;a<Math.ceil(b);++a){this.scrollUp()}if(this.scroll_pos>0){Event.stop(c)}}else{if(b<0){for(var a=0;a>Math.floor(b);--a){this.scrollDown()}if(this.scroll_pos<this.scroll_max){Event.stop(c)}}}},updateCheck:function(){if(this.content_div.scrollTop!=this.scroll_pos){this.scrollTo(this.content_div.scrollTop)}if(this.scroll_max!=this.content_div.scrollHeight-this.content_div.offsetHeight){this.setSizes()}},enableKeyboardEvents:function(a){this.disableKeyboardEvents(a);this.keyboard_events.each(function(b){Event.observe(b[0],b[1],b[2])});this.within_enable_event=true},disableKeyboardEvents:function(a){if(!this.within_enable_event){this.keyboard_events.each(function(b){Event.stopObserving(b[0],b[1],b[2])})}else{this.within_enable_event=false}},keyboardEvent:function(a){switch(a.keyCode){case Event.KEY_HOME:this.scrollTo(0);break;case Event.KEY_END:this.scrollTo(this.scroll_max);break;case Event.KEY_PAGEUP:this.pageUp();break;case Event.KEY_PAGEDOWN:this.pageDown();break;case Event.KEY_UP:this.scrollUp();break;case Event.KEY_DOWN:this.scrollDown();break;default:return}Event.stop(a)}});Object.extend(Event,{wheel:function(a){var b=0;if(!a){a=window.event}if(a.wheelDelta){b=a.wheelDelta/120;if(window.opera){b=-b}}else{if(a.detail){b=-a.detail/3}}return b}});var ScrollBox_red=Class.create();ScrollBox_red.NO_ACTION=0;ScrollBox_red.PAGE_ACTION=1;ScrollBox_red.JUMP_ACTION=2;Object.extend(ScrollBox_red.prototype,{initialize:function(b,a){this.element=b;Element.addClassName(this.element,"scrollbox_red");this.opts={scroll_increment:30,hold_delay:500,hold_interval:100,drag_interval:100,update_check_interval:100,auto_hide:false,bar_action:ScrollBox_red.PAGE_ACTION};Object.extend(this.opts,a);this.content_div=document.createElement("div");Element.addClassName(this.content_div,"scrollbox_content_red");$A(this.element.childNodes).each(function(c){this.content_div.appendChild(c)}.bind(this));this.element.appendChild(this.content_div);this.content_div.style.overflow="hidden";this.content_div.style.height="100%";this.scrollbar=document.createElement("div");Element.addClassName(this.scrollbar,"scrollbox_scrollbar_red");this.element.appendChild(this.scrollbar);this.scrollbar.style.position="absolute";this.scrollbar.style.top="0";this.scrollbar.style.right="0";this.up_button=document.createElement("div");Element.addClassName(this.up_button,"scrollbox_up_button_red");this.up_button.style.position="absolute";this.up_button.style.width="100%";this.up_button.style.top="0";this.up_button.style.right="0";this.scrollbar.appendChild(this.up_button);this.down_button=document.createElement("div");Element.addClassName(this.down_button,"scrollbox_down_button_red");this.down_button.style.position="absolute";this.down_button.style.width="100%";this.down_button.style.bottom="0";this.down_button.style.right="0";this.scrollbar.appendChild(this.down_button);this.handle=document.createElement("div");Element.addClassName(this.handle,"scrollbox_handle_red");this.handle.style.position="absolute";this.handle.style.width="100%";this.handle.style.right="0";this.down_button.style.margin="0px 0 -6px 0";this.scrollbar.appendChild(this.handle);this.scroll_pos=0;this.setSizes();Event.observe(this.up_button,"mousedown",function(c){this.buttonDown(c,this.scrollUp.bind(this))}.bindAsEventListener(this));Event.observe(this.down_button,"mousedown",function(c){this.buttonDown(c,this.scrollDown.bind(this))}.bindAsEventListener(this));Event.observe(document,"mouseup",this.buttonUp.bindAsEventListener(this));Event.observe(document,"mousemove",this.setMousePos.bindAsEventListener(this));Event.observe(this.handle,"mousedown",this.handleDown.bindAsEventListener(this));this.handle_update_interval=setInterval(this.updateCheck.bind(this),this.opts.update_check_interval);Event.observe(this.up_button,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.down_button,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.handle,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.scrollbar,"click",this.scrollBarClick.bindAsEventListener(this));this.keyboard_events=[[document,"keypress",this.keyboardEvent.bindAsEventListener(this)]];Event.observe(this.element,"click",this.enableKeyboardEvents.bindAsEventListener(this));Event.observe(document,"click",this.disableKeyboardEvents.bindAsEventListener(this));Event.observe(this.content_div,"mousewheel",this.scrollWheel.bindAsEventListener(this),true);Event.observe(this.content_div,"DOMMouseScroll",this.scrollWheel.bindAsEventListener(this),true)},scrollDown:function(){if(this.scroll_pos<this.scroll_max){this.scrollTo(this.scroll_pos+this.opts.scroll_increment<this.scroll_max?this.scroll_pos+this.opts.scroll_increment:this.scroll_max);return true}else{return false}},scrollUp:function(){if(this.scroll_pos>0){this.scrollTo(this.scroll_pos>this.opts.scroll_increment?this.scroll_pos-this.opts.scroll_increment:0);return true}else{return false}},scrollTo:function(a){if(a<0){a=0}if(a>this.scroll_max){a=this.scroll_max}this.content_div.scrollTop=a;this.scroll_pos=a;this.updateHandle()},buttonDown:function(a,b){b();this.timeout=setTimeout(function(){b();this.timeout=null;if(this.interval){clearInterval(this.interval)}this.interval=setInterval(b,this.opts.hold_interval)}.bind(this),this.opts.hold_delay);Event.stop(a)},buttonUp:function(a){if(this.timeout){clearTimeout(this.timeout)}if(this.interval){clearInterval(this.interval)}this.timeout=null;this.interval=null;this.down_position=null},updateHandle:function(){if(this.scroll_max){this.handle_height=Math.floor(this.bar_height/this.scroll_height_ratio)}else{this.handle_height=this.bar_height}var c=this.up_button.offsetHeight;var a=this.up_button.offsetHeight+(this.bar_height-this.handle_height);var b=a-c;if(this.scroll_max){this.handle_pos=c+Math.floor(b*(this.scroll_pos/this.scroll_max))}else{this.handle_pos=c}this.handle.style.height=this.handle_height+"px";this.handle.style.top=this.handle_pos+"px"},handleDown:function(){this.down_position=this.raw_mouse_pos-Position.cumulativeOffset(this.handle)[1];if(this.interval){clearInterval(this.interval)}this.interval=setInterval(function(){this.scrollTo(this.mouse_pos-(this.down_position*this.scroll_height_ratio))}.bindAsEventListener(this),this.opts.drag_interval)},setMousePos:function(a){if(document.all){tempY=event.clientY+document.body.scrollTop}else{tempY=a.pageY}if(tempY<0){tempY=0}this.raw_mouse_pos=tempY;this.mouse_pos=Math.floor((tempY-this.scrollbar_top)*this.scroll_height_ratio)},setSizes:function(){this.scroll_max=this.content_div.scrollHeight-this.content_div.offsetHeight;if(this.scroll_max<0){this.scroll_max=0}if(this.scroll_pos>this.scroll_max){this.scrollTo(this.scroll_max)}this.bar_height=this.scrollbar.offsetHeight-(this.up_button.offsetHeight+this.down_button.offsetHeight);if(!this.bar_height){setTimeout(this.setSizes.bind(this),100)}this.scroll_height_ratio=(this.content_div.scrollHeight/this.bar_height);this.scroll_height_ratio=this.scroll_height_ratio>=1?this.scroll_height_ratio:1;this.scrollbar_top=Position.cumulativeOffset(this.scrollbar)[1]+this.up_button.offsetHeight;this.scrollbar_bottom=this.scrollbar_top+this.bar_height;this.updateHandle()},scrollBarClick:function(a){switch(this.opts.bar_action){case ScrollBox_red.PAGE_ACTION:if(this.mouse_pos<this.handle_pos*this.scroll_height_ratio){this.pageUp()}else{this.pageDown()}break;case ScrollBox_red.JUMP_ACTION:this.scrollTo(this.mouse_pos);break}},pageUp:function(){this.scrollTo(this.scroll_pos-this.content_div.offsetHeight)},pageDown:function(){this.scrollTo(this.scroll_pos+this.content_div.offsetHeight)},scrollWheel:function(c){var b=Event.wheel(c);if(b>0){for(var a=0;a<Math.ceil(b);++a){this.scrollUp()}if(this.scroll_pos>0){Event.stop(c)}}else{if(b<0){for(var a=0;a>Math.floor(b);--a){this.scrollDown()}if(this.scroll_pos<this.scroll_max){Event.stop(c)}}}},updateCheck:function(){if(this.content_div.scrollTop!=this.scroll_pos){this.scrollTo(this.content_div.scrollTop)}if(this.scroll_max!=this.content_div.scrollHeight-this.content_div.offsetHeight){this.setSizes()}},enableKeyboardEvents:function(a){this.disableKeyboardEvents(a);this.keyboard_events.each(function(b){Event.observe(b[0],b[1],b[2])});this.within_enable_event=true},disableKeyboardEvents:function(a){if(!this.within_enable_event){this.keyboard_events.each(function(b){Event.stopObserving(b[0],b[1],b[2])})}else{this.within_enable_event=false}},keyboardEvent:function(a){switch(a.keyCode){case Event.KEY_HOME:this.scrollTo(0);break;case Event.KEY_END:this.scrollTo(this.scroll_max);break;case Event.KEY_PAGEUP:this.pageUp();break;case Event.KEY_PAGEDOWN:this.pageDown();break;case Event.KEY_UP:this.scrollUp();break;case Event.KEY_DOWN:this.scrollDown();break;default:return}Event.stop(a)}});Object.extend(Event,{wheel:function(a){var b=0;if(!a){a=window.event}if(a.wheelDelta){b=a.wheelDelta/120;if(window.opera){b=-b}}else{if(a.detail){b=-a.detail/3}}return b}});var ScrollBox_profile=Class.create();ScrollBox_profile.NO_ACTION=0;ScrollBox_profile.PAGE_ACTION=1;ScrollBox_profile.JUMP_ACTION=2;Object.extend(ScrollBox_profile.prototype,{initialize:function(b,a){this.element=b;Element.addClassName(this.element,"scrollbox_red");this.opts={scroll_increment:30,hold_delay:500,hold_interval:100,drag_interval:100,update_check_interval:100,auto_hide:false,bar_action:ScrollBox_profile.PAGE_ACTION};Object.extend(this.opts,a);this.content_div=document.createElement("div");Element.addClassName(this.content_div,"scrollbox_content_profile");$A(this.element.childNodes).each(function(c){this.content_div.appendChild(c)}.bind(this));this.element.appendChild(this.content_div);this.content_div.style.overflow="hidden";this.content_div.style.height="100%";this.scrollbar=document.createElement("div");Element.addClassName(this.scrollbar,"scrollbox_scrollbar_profile");this.element.appendChild(this.scrollbar);this.scrollbar.style.position="absolute";this.scrollbar.style.top="0";this.scrollbar.style.right="0";this.up_button=document.createElement("div");Element.addClassName(this.up_button,"scrollbox_up_button_profile");this.up_button.style.position="absolute";this.up_button.style.width="100%";this.up_button.style.top="0";this.up_button.style.right="0";this.scrollbar.appendChild(this.up_button);this.down_button=document.createElement("div");Element.addClassName(this.down_button,"scrollbox_down_button_profile");this.down_button.style.position="absolute";this.down_button.style.width="100%";this.down_button.style.bottom="0";this.down_button.style.right="0";this.scrollbar.appendChild(this.down_button);this.handle=document.createElement("div");Element.addClassName(this.handle,"scrollbox_handle_profile");this.handle.style.position="absolute";this.handle.style.width="100%";this.handle.style.right="0";this.down_button.style.margin="0px 0 -6px 0";this.scrollbar.appendChild(this.handle);this.scroll_pos=0;this.setSizes();Event.observe(this.up_button,"mousedown",function(c){this.buttonDown(c,this.scrollUp.bind(this))}.bindAsEventListener(this));Event.observe(this.down_button,"mousedown",function(c){this.buttonDown(c,this.scrollDown.bind(this))}.bindAsEventListener(this));Event.observe(document,"mouseup",this.buttonUp.bindAsEventListener(this));Event.observe(document,"mousemove",this.setMousePos.bindAsEventListener(this));Event.observe(this.handle,"mousedown",this.handleDown.bindAsEventListener(this));this.handle_update_interval=setInterval(this.updateCheck.bind(this),this.opts.update_check_interval);Event.observe(this.up_button,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.down_button,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.handle,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.scrollbar,"click",this.scrollBarClick.bindAsEventListener(this));this.keyboard_events=[[document,"keypress",this.keyboardEvent.bindAsEventListener(this)]];Event.observe(this.element,"click",this.enableKeyboardEvents.bindAsEventListener(this));Event.observe(document,"click",this.disableKeyboardEvents.bindAsEventListener(this));Event.observe(this.content_div,"mousewheel",this.scrollWheel.bindAsEventListener(this),true);Event.observe(this.content_div,"DOMMouseScroll",this.scrollWheel.bindAsEventListener(this),true)},scrollDown:function(){if(this.scroll_pos<this.scroll_max){this.scrollTo(this.scroll_pos+this.opts.scroll_increment<this.scroll_max?this.scroll_pos+this.opts.scroll_increment:this.scroll_max);return true}else{return false}},scrollUp:function(){if(this.scroll_pos>0){this.scrollTo(this.scroll_pos>this.opts.scroll_increment?this.scroll_pos-this.opts.scroll_increment:0);return true}else{return false}},scrollTo:function(a){if(a<0){a=0}if(a>this.scroll_max){a=this.scroll_max}this.content_div.scrollTop=a;this.scroll_pos=a;this.updateHandle()},buttonDown:function(a,b){b();this.timeout=setTimeout(function(){b();this.timeout=null;if(this.interval){clearInterval(this.interval)}this.interval=setInterval(b,this.opts.hold_interval)}.bind(this),this.opts.hold_delay);Event.stop(a)},buttonUp:function(a){if(this.timeout){clearTimeout(this.timeout)}if(this.interval){clearInterval(this.interval)}this.timeout=null;this.interval=null;this.down_position=null},updateHandle:function(){if(this.scroll_max){this.handle_height=Math.floor(this.bar_height/this.scroll_height_ratio)}else{this.handle_height=this.bar_height}var c=this.up_button.offsetHeight;var a=this.up_button.offsetHeight+(this.bar_height-this.handle_height);var b=a-c;if(this.scroll_max){this.handle_pos=c+Math.floor(b*(this.scroll_pos/this.scroll_max))}else{this.handle_pos=c}this.handle.style.height=this.handle_height+"px";this.handle.style.top=this.handle_pos+"px"},handleDown:function(){this.down_position=this.raw_mouse_pos-Position.cumulativeOffset(this.handle)[1];if(this.interval){clearInterval(this.interval)}this.interval=setInterval(function(){this.scrollTo(this.mouse_pos-(this.down_position*this.scroll_height_ratio))}.bindAsEventListener(this),this.opts.drag_interval)},setMousePos:function(a){if(document.all){tempY=event.clientY+document.body.scrollTop}else{tempY=a.pageY}if(tempY<0){tempY=0}this.raw_mouse_pos=tempY;this.mouse_pos=Math.floor((tempY-this.scrollbar_top)*this.scroll_height_ratio)},setSizes:function(){this.scroll_max=this.content_div.scrollHeight-this.content_div.offsetHeight;if(this.scroll_max<0){this.scroll_max=0}if(this.scroll_pos>this.scroll_max){this.scrollTo(this.scroll_max)}this.bar_height=this.scrollbar.offsetHeight-(this.up_button.offsetHeight+this.down_button.offsetHeight);if(!this.bar_height){setTimeout(this.setSizes.bind(this),100)}this.scroll_height_ratio=(this.content_div.scrollHeight/this.bar_height);this.scroll_height_ratio=this.scroll_height_ratio>=1?this.scroll_height_ratio:1;this.scrollbar_top=Position.cumulativeOffset(this.scrollbar)[1]+this.up_button.offsetHeight;this.scrollbar_bottom=this.scrollbar_top+this.bar_height;this.updateHandle()},scrollBarClick:function(a){switch(this.opts.bar_action){case ScrollBox_red.PAGE_ACTION:if(this.mouse_pos<this.handle_pos*this.scroll_height_ratio){this.pageUp()}else{this.pageDown()}break;case ScrollBox_red.JUMP_ACTION:this.scrollTo(this.mouse_pos);break}},pageUp:function(){this.scrollTo(this.scroll_pos-this.content_div.offsetHeight)},pageDown:function(){this.scrollTo(this.scroll_pos+this.content_div.offsetHeight)},scrollWheel:function(c){var b=Event.wheel(c);if(b>0){for(var a=0;a<Math.ceil(b);++a){this.scrollUp()}if(this.scroll_pos>0){Event.stop(c)}}else{if(b<0){for(var a=0;a>Math.floor(b);--a){this.scrollDown()}if(this.scroll_pos<this.scroll_max){Event.stop(c)}}}},updateCheck:function(){if(this.content_div.scrollTop!=this.scroll_pos){this.scrollTo(this.content_div.scrollTop)}if(this.scroll_max!=this.content_div.scrollHeight-this.content_div.offsetHeight){this.setSizes()}},enableKeyboardEvents:function(a){this.disableKeyboardEvents(a);this.keyboard_events.each(function(b){Event.observe(b[0],b[1],b[2])});this.within_enable_event=true},disableKeyboardEvents:function(a){if(!this.within_enable_event){this.keyboard_events.each(function(b){Event.stopObserving(b[0],b[1],b[2])})}else{this.within_enable_event=false}},keyboardEvent:function(a){switch(a.keyCode){case Event.KEY_HOME:this.scrollTo(0);break;case Event.KEY_END:this.scrollTo(this.scroll_max);break;case Event.KEY_PAGEUP:this.pageUp();break;case Event.KEY_PAGEDOWN:this.pageDown();break;case Event.KEY_UP:this.scrollUp();break;case Event.KEY_DOWN:this.scrollDown();break;default:return}Event.stop(a)}});Object.extend(Event,{wheel:function(a){var b=0;if(!a){a=window.event}if(a.wheelDelta){b=a.wheelDelta/120;if(window.opera){b=-b}}else{if(a.detail){b=-a.detail/3}}return b}});var ScrollBox_blue=Class.create();ScrollBox_blue.NO_ACTION=0;ScrollBox_blue.PAGE_ACTION=1;ScrollBox_blue.JUMP_ACTION=2;Object.extend(ScrollBox_blue.prototype,{initialize:function(b,a){this.element=b;Element.addClassName(this.element,"scrollbox_blue");this.opts={scroll_increment:30,hold_delay:500,hold_interval:100,drag_interval:100,update_check_interval:100,auto_hide:false,bar_action:ScrollBox_blue.PAGE_ACTION};Object.extend(this.opts,a);this.content_div=document.createElement("div");Element.addClassName(this.content_div,"scrollbox_content_blue");$A(this.element.childNodes).each(function(c){this.content_div.appendChild(c)}.bind(this));this.element.appendChild(this.content_div);this.content_div.style.overflow="hidden";this.content_div.style.height="100%";this.scrollbar=document.createElement("div");Element.addClassName(this.scrollbar,"scrollbox_scrollbar_blue");this.element.appendChild(this.scrollbar);this.scrollbar.style.position="absolute";this.scrollbar.style.top="0";this.scrollbar.style.right="0";this.up_button=document.createElement("div");Element.addClassName(this.up_button,"scrollbox_up_button_blue");this.up_button.style.position="absolute";this.up_button.style.width="100%";this.up_button.style.top="0";this.up_button.style.right="0";this.scrollbar.appendChild(this.up_button);this.down_button=document.createElement("div");Element.addClassName(this.down_button,"scrollbox_down_button_blue");this.down_button.style.position="absolute";this.down_button.style.width="100%";this.down_button.style.bottom="0";this.down_button.style.right="0";this.scrollbar.appendChild(this.down_button);this.handle=document.createElement("div");Element.addClassName(this.handle,"scrollbox_handle_blue");this.handle.style.position="absolute";this.handle.style.width="100%";this.handle.style.right="0";this.down_button.style.margin="0px 0 -6px 0";this.scrollbar.appendChild(this.handle);this.scroll_pos=0;this.setSizes();Event.observe(this.up_button,"mousedown",function(c){this.buttonDown(c,this.scrollUp.bind(this))}.bindAsEventListener(this));Event.observe(this.down_button,"mousedown",function(c){this.buttonDown(c,this.scrollDown.bind(this))}.bindAsEventListener(this));Event.observe(document,"mouseup",this.buttonUp.bindAsEventListener(this));Event.observe(document,"mousemove",this.setMousePos.bindAsEventListener(this));Event.observe(this.handle,"mousedown",this.handleDown.bindAsEventListener(this));this.handle_update_interval=setInterval(this.updateCheck.bind(this),this.opts.update_check_interval);Event.observe(this.up_button,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.down_button,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.handle,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.scrollbar,"click",this.scrollBarClick.bindAsEventListener(this));this.keyboard_events=[[document,"keypress",this.keyboardEvent.bindAsEventListener(this)]];Event.observe(this.element,"click",this.enableKeyboardEvents.bindAsEventListener(this));Event.observe(document,"click",this.disableKeyboardEvents.bindAsEventListener(this));Event.observe(this.content_div,"mousewheel",this.scrollWheel.bindAsEventListener(this),true);Event.observe(this.content_div,"DOMMouseScroll",this.scrollWheel.bindAsEventListener(this),true)},scrollDown:function(){if(this.scroll_pos<this.scroll_max){this.scrollTo(this.scroll_pos+this.opts.scroll_increment<this.scroll_max?this.scroll_pos+this.opts.scroll_increment:this.scroll_max);return true}else{return false}},scrollUp:function(){if(this.scroll_pos>0){this.scrollTo(this.scroll_pos>this.opts.scroll_increment?this.scroll_pos-this.opts.scroll_increment:0);return true}else{return false}},scrollTo:function(a){if(a<0){a=0}if(a>this.scroll_max){a=this.scroll_max}this.content_div.scrollTop=a;this.scroll_pos=a;this.updateHandle()},buttonDown:function(a,b){b();this.timeout=setTimeout(function(){b();this.timeout=null;if(this.interval){clearInterval(this.interval)}this.interval=setInterval(b,this.opts.hold_interval)}.bind(this),this.opts.hold_delay);Event.stop(a)},buttonUp:function(a){if(this.timeout){clearTimeout(this.timeout)}if(this.interval){clearInterval(this.interval)}this.timeout=null;this.interval=null;this.down_position=null},updateHandle:function(){if(this.scroll_max){this.handle_height=Math.floor(this.bar_height/this.scroll_height_ratio)}else{this.handle_height=this.bar_height}var c=this.up_button.offsetHeight;var a=this.up_button.offsetHeight+(this.bar_height-this.handle_height);var b=a-c;if(this.scroll_max){this.handle_pos=c+Math.floor(b*(this.scroll_pos/this.scroll_max))}else{this.handle_pos=c}this.handle.style.height=this.handle_height+"px";this.handle.style.top=this.handle_pos+"px"},handleDown:function(){this.down_position=this.raw_mouse_pos-Position.cumulativeOffset(this.handle)[1];if(this.interval){clearInterval(this.interval)}this.interval=setInterval(function(){this.scrollTo(this.mouse_pos-(this.down_position*this.scroll_height_ratio))}.bindAsEventListener(this),this.opts.drag_interval)},setMousePos:function(a){if(document.all){tempY=event.clientY+document.body.scrollTop}else{tempY=a.pageY}if(tempY<0){tempY=0}this.raw_mouse_pos=tempY;this.mouse_pos=Math.floor((tempY-this.scrollbar_top)*this.scroll_height_ratio)},setSizes:function(){this.scroll_max=this.content_div.scrollHeight-this.content_div.offsetHeight;if(this.scroll_max<0){this.scroll_max=0}if(this.scroll_pos>this.scroll_max){this.scrollTo(this.scroll_max)}this.bar_height=this.scrollbar.offsetHeight-(this.up_button.offsetHeight+this.down_button.offsetHeight);if(!this.bar_height){setTimeout(this.setSizes.bind(this),100)}this.scroll_height_ratio=(this.content_div.scrollHeight/this.bar_height);this.scroll_height_ratio=this.scroll_height_ratio>=1?this.scroll_height_ratio:1;this.scrollbar_top=Position.cumulativeOffset(this.scrollbar)[1]+this.up_button.offsetHeight;this.scrollbar_bottom=this.scrollbar_top+this.bar_height;this.updateHandle()},scrollBarClick:function(a){switch(this.opts.bar_action){case ScrollBox_red.PAGE_ACTION:if(this.mouse_pos<this.handle_pos*this.scroll_height_ratio){this.pageUp()}else{this.pageDown()}break;case ScrollBox_red.JUMP_ACTION:this.scrollTo(this.mouse_pos);break}},pageUp:function(){this.scrollTo(this.scroll_pos-this.content_div.offsetHeight)},pageDown:function(){this.scrollTo(this.scroll_pos+this.content_div.offsetHeight)},scrollWheel:function(c){var b=Event.wheel(c);if(b>0){for(var a=0;a<Math.ceil(b);++a){this.scrollUp()}if(this.scroll_pos>0){Event.stop(c)}}else{if(b<0){for(var a=0;a>Math.floor(b);--a){this.scrollDown()}if(this.scroll_pos<this.scroll_max){Event.stop(c)}}}},updateCheck:function(){if(this.content_div.scrollTop!=this.scroll_pos){this.scrollTo(this.content_div.scrollTop)}if(this.scroll_max!=this.content_div.scrollHeight-this.content_div.offsetHeight){this.setSizes()}},enableKeyboardEvents:function(a){this.disableKeyboardEvents(a);this.keyboard_events.each(function(b){Event.observe(b[0],b[1],b[2])});this.within_enable_event=true},disableKeyboardEvents:function(a){if(!this.within_enable_event){this.keyboard_events.each(function(b){Event.stopObserving(b[0],b[1],b[2])})}else{this.within_enable_event=false}},keyboardEvent:function(a){switch(a.keyCode){case Event.KEY_HOME:this.scrollTo(0);break;case Event.KEY_END:this.scrollTo(this.scroll_max);break;case Event.KEY_PAGEUP:this.pageUp();break;case Event.KEY_PAGEDOWN:this.pageDown();break;case Event.KEY_UP:this.scrollUp();break;case Event.KEY_DOWN:this.scrollDown();break;default:return}Event.stop(a)}});Object.extend(Event,{wheel:function(a){var b=0;if(!a){a=window.event}if(a.wheelDelta){b=a.wheelDelta/120;if(window.opera){b=-b}}else{if(a.detail){b=-a.detail/3}}return b}});var ScrollBox_green=Class.create();ScrollBox_green.NO_ACTION=0;ScrollBox_green.PAGE_ACTION=1;ScrollBox_green.JUMP_ACTION=2;Object.extend(ScrollBox_green.prototype,{initialize:function(b,a){this.element=b;Element.addClassName(this.element,"scrollbox_green");this.opts={scroll_increment:30,hold_delay:500,hold_interval:100,drag_interval:100,update_check_interval:100,auto_hide:false,bar_action:ScrollBox_green.PAGE_ACTION};Object.extend(this.opts,a);this.content_div=document.createElement("div");Element.addClassName(this.content_div,"scrollbox_content");$A(this.element.childNodes).each(function(c){this.content_div.appendChild(c)}.bind(this));this.element.appendChild(this.content_div);this.content_div.style.overflow="hidden";this.content_div.style.height="100%";this.scrollbar=document.createElement("div");Element.addClassName(this.scrollbar,"scrollbox_scrollbar_green");this.element.appendChild(this.scrollbar);this.scrollbar.style.position="absolute";this.scrollbar.style.top="0";this.scrollbar.style.right="0";this.up_button=document.createElement("div");Element.addClassName(this.up_button,"scrollbox_up_button");this.up_button.style.position="absolute";this.up_button.style.width="100%";this.up_button.style.top="0";this.up_button.style.right="0";this.scrollbar.appendChild(this.up_button);this.down_button=document.createElement("div");Element.addClassName(this.down_button,"scrollbox_down_button");this.down_button.style.position="absolute";this.down_button.style.width="100%";this.down_button.style.bottom="0";this.down_button.style.right="0";this.scrollbar.appendChild(this.down_button);this.handle=document.createElement("div");Element.addClassName(this.handle,"scrollbox_handle");this.handle.style.position="absolute";this.handle.style.width="100%";this.handle.style.right="0";this.down_button.style.margin="0px 0 -6px 0";this.scrollbar.appendChild(this.handle);this.scroll_pos=0;this.setSizes();Event.observe(this.up_button,"mousedown",function(c){this.buttonDown(c,this.scrollUp.bind(this))}.bindAsEventListener(this));Event.observe(this.down_button,"mousedown",function(c){this.buttonDown(c,this.scrollDown.bind(this))}.bindAsEventListener(this));Event.observe(document,"mouseup",this.buttonUp.bindAsEventListener(this));Event.observe(document,"mousemove",this.setMousePos.bindAsEventListener(this));Event.observe(this.handle,"mousedown",this.handleDown.bindAsEventListener(this));this.handle_update_interval=setInterval(this.updateCheck.bind(this),this.opts.update_check_interval);Event.observe(this.up_button,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.down_button,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.handle,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.scrollbar,"click",this.scrollBarClick.bindAsEventListener(this));this.keyboard_events=[[document,"keypress",this.keyboardEvent.bindAsEventListener(this)]];Event.observe(this.element,"click",this.enableKeyboardEvents.bindAsEventListener(this));Event.observe(document,"click",this.disableKeyboardEvents.bindAsEventListener(this));Event.observe(this.content_div,"mousewheel",this.scrollWheel.bindAsEventListener(this),true);Event.observe(this.content_div,"DOMMouseScroll",this.scrollWheel.bindAsEventListener(this),true)},scrollDown:function(){if(this.scroll_pos<this.scroll_max){this.scrollTo(this.scroll_pos+this.opts.scroll_increment<this.scroll_max?this.scroll_pos+this.opts.scroll_increment:this.scroll_max);return true}else{return false}},scrollUp:function(){if(this.scroll_pos>0){this.scrollTo(this.scroll_pos>this.opts.scroll_increment?this.scroll_pos-this.opts.scroll_increment:0);return true}else{return false}},scrollTo:function(a){if(a<0){a=0}if(a>this.scroll_max){a=this.scroll_max}this.content_div.scrollTop=a;this.scroll_pos=a;this.updateHandle()},buttonDown:function(a,b){b();this.timeout=setTimeout(function(){b();this.timeout=null;if(this.interval){clearInterval(this.interval)}this.interval=setInterval(b,this.opts.hold_interval)}.bind(this),this.opts.hold_delay);Event.stop(a)},buttonUp:function(a){if(this.timeout){clearTimeout(this.timeout)}if(this.interval){clearInterval(this.interval)}this.timeout=null;this.interval=null;this.down_position=null},updateHandle:function(){if(this.scroll_max){this.handle_height=Math.floor(this.bar_height/this.scroll_height_ratio)}else{this.handle_height=this.bar_height}var c=this.up_button.offsetHeight;var a=this.up_button.offsetHeight+(this.bar_height-this.handle_height);var b=a-c;if(this.scroll_max){this.handle_pos=c+Math.floor(b*(this.scroll_pos/this.scroll_max))}else{this.handle_pos=c}this.handle.style.height=this.handle_height+"px";this.handle.style.top=this.handle_pos+"px"},handleDown:function(){this.down_position=this.raw_mouse_pos-Position.cumulativeOffset(this.handle)[1];if(this.interval){clearInterval(this.interval)}this.interval=setInterval(function(){this.scrollTo(this.mouse_pos-(this.down_position*this.scroll_height_ratio))}.bindAsEventListener(this),this.opts.drag_interval)},setMousePos:function(a){if(document.all){tempY=event.clientY+document.body.scrollTop}else{tempY=a.pageY}if(tempY<0){tempY=0}this.raw_mouse_pos=tempY;this.mouse_pos=Math.floor((tempY-this.scrollbar_top)*this.scroll_height_ratio)},setSizes:function(){this.scroll_max=this.content_div.scrollHeight-this.content_div.offsetHeight;if(this.scroll_max<0){this.scroll_max=0}if(this.scroll_pos>this.scroll_max){this.scrollTo(this.scroll_max)}this.bar_height=this.scrollbar.offsetHeight-(this.up_button.offsetHeight+this.down_button.offsetHeight);if(!this.bar_height){setTimeout(this.setSizes.bind(this),100)}this.scroll_height_ratio=(this.content_div.scrollHeight/this.bar_height);this.scroll_height_ratio=this.scroll_height_ratio>=1?this.scroll_height_ratio:1;this.scrollbar_top=Position.cumulativeOffset(this.scrollbar)[1]+this.up_button.offsetHeight;this.scrollbar_bottom=this.scrollbar_top+this.bar_height;this.updateHandle()},scrollBarClick:function(a){switch(this.opts.bar_action){case ScrollBox_red.PAGE_ACTION:if(this.mouse_pos<this.handle_pos*this.scroll_height_ratio){this.pageUp()}else{this.pageDown()}break;case ScrollBox_red.JUMP_ACTION:this.scrollTo(this.mouse_pos);break}},pageUp:function(){this.scrollTo(this.scroll_pos-this.content_div.offsetHeight)},pageDown:function(){this.scrollTo(this.scroll_pos+this.content_div.offsetHeight)},scrollWheel:function(c){var b=Event.wheel(c);if(b>0){for(var a=0;a<Math.ceil(b);++a){this.scrollUp()}if(this.scroll_pos>0){Event.stop(c)}}else{if(b<0){for(var a=0;a>Math.floor(b);--a){this.scrollDown()}if(this.scroll_pos<this.scroll_max){Event.stop(c)}}}},updateCheck:function(){if(this.content_div.scrollTop!=this.scroll_pos){this.scrollTo(this.content_div.scrollTop)}if(this.scroll_max!=this.content_div.scrollHeight-this.content_div.offsetHeight){this.setSizes()}},enableKeyboardEvents:function(a){this.disableKeyboardEvents(a);this.keyboard_events.each(function(b){Event.observe(b[0],b[1],b[2])});this.within_enable_event=true},disableKeyboardEvents:function(a){if(!this.within_enable_event){this.keyboard_events.each(function(b){Event.stopObserving(b[0],b[1],b[2])})}else{this.within_enable_event=false}},keyboardEvent:function(a){switch(a.keyCode){case Event.KEY_HOME:this.scrollTo(0);break;case Event.KEY_END:this.scrollTo(this.scroll_max);break;case Event.KEY_PAGEUP:this.pageUp();break;case Event.KEY_PAGEDOWN:this.pageDown();break;case Event.KEY_UP:this.scrollUp();break;case Event.KEY_DOWN:this.scrollDown();break;default:return}Event.stop(a)}});Object.extend(Event,{wheel:function(a){var b=0;if(!a){a=window.event}if(a.wheelDelta){b=a.wheelDelta/120;if(window.opera){b=-b}}else{if(a.detail){b=-a.detail/3}}return b}});var ScrollBox_blue2=Class.create();ScrollBox_blue2.NO_ACTION=0;ScrollBox_blue2.PAGE_ACTION=1;ScrollBox_blue2.JUMP_ACTION=2;Object.extend(ScrollBox_blue2.prototype,{initialize:function(b,a){this.element=b;Element.addClassName(this.element,"scrollbox_blue2");this.opts={scroll_increment:30,hold_delay:500,hold_interval:100,drag_interval:100,update_check_interval:100,auto_hide:false,bar_action:ScrollBox_green.PAGE_ACTION};Object.extend(this.opts,a);this.content_div=document.createElement("div");Element.addClassName(this.content_div,"scrollbox_content_blue");$A(this.element.childNodes).each(function(c){this.content_div.appendChild(c)}.bind(this));this.element.appendChild(this.content_div);this.content_div.style.overflow="hidden";this.content_div.style.height="100%";this.scrollbar=document.createElement("div");Element.addClassName(this.scrollbar,"scrollbox_scrollbar_blue2");this.element.appendChild(this.scrollbar);this.scrollbar.style.position="absolute";this.scrollbar.style.top="0";this.scrollbar.style.right="0";this.up_button=document.createElement("div");Element.addClassName(this.up_button,"scrollbox_up_button_blue");this.up_button.style.position="absolute";this.up_button.style.width="100%";this.up_button.style.top="0";this.up_button.style.right="0";this.scrollbar.appendChild(this.up_button);this.down_button=document.createElement("div");Element.addClassName(this.down_button,"scrollbox_down_button_blue");this.down_button.style.position="absolute";this.down_button.style.width="100%";this.down_button.style.bottom="0";this.down_button.style.right="0";this.scrollbar.appendChild(this.down_button);this.handle=document.createElement("div");Element.addClassName(this.handle,"scrollbox_handle_blue");this.handle.style.position="absolute";this.handle.style.width="100%";this.handle.style.right="0";this.down_button.style.margin="0px 0 -6px 0";this.scrollbar.appendChild(this.handle);this.scroll_pos=0;this.setSizes();Event.observe(this.up_button,"mousedown",function(c){this.buttonDown(c,this.scrollUp.bind(this))}.bindAsEventListener(this));Event.observe(this.down_button,"mousedown",function(c){this.buttonDown(c,this.scrollDown.bind(this))}.bindAsEventListener(this));Event.observe(document,"mouseup",this.buttonUp.bindAsEventListener(this));Event.observe(document,"mousemove",this.setMousePos.bindAsEventListener(this));Event.observe(this.handle,"mousedown",this.handleDown.bindAsEventListener(this));this.handle_update_interval=setInterval(this.updateCheck.bind(this),this.opts.update_check_interval);Event.observe(this.up_button,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.down_button,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.handle,"click",function(c){Event.stop(c)}.bindAsEventListener(this));Event.observe(this.scrollbar,"click",this.scrollBarClick.bindAsEventListener(this));this.keyboard_events=[[document,"keypress",this.keyboardEvent.bindAsEventListener(this)]];Event.observe(this.element,"click",this.enableKeyboardEvents.bindAsEventListener(this));Event.observe(document,"click",this.disableKeyboardEvents.bindAsEventListener(this));Event.observe(this.content_div,"mousewheel",this.scrollWheel.bindAsEventListener(this),true);Event.observe(this.content_div,"DOMMouseScroll",this.scrollWheel.bindAsEventListener(this),true)},scrollDown:function(){if(this.scroll_pos<this.scroll_max){this.scrollTo(this.scroll_pos+this.opts.scroll_increment<this.scroll_max?this.scroll_pos+this.opts.scroll_increment:this.scroll_max);return true}else{return false}},scrollUp:function(){if(this.scroll_pos>0){this.scrollTo(this.scroll_pos>this.opts.scroll_increment?this.scroll_pos-this.opts.scroll_increment:0);return true}else{return false}},scrollTo:function(a){if(a<0){a=0}if(a>this.scroll_max){a=this.scroll_max}this.content_div.scrollTop=a;this.scroll_pos=a;this.updateHandle()},buttonDown:function(a,b){b();this.timeout=setTimeout(function(){b();this.timeout=null;if(this.interval){clearInterval(this.interval)}this.interval=setInterval(b,this.opts.hold_interval)}.bind(this),this.opts.hold_delay);Event.stop(a)},buttonUp:function(a){if(this.timeout){clearTimeout(this.timeout)}if(this.interval){clearInterval(this.interval)}this.timeout=null;this.interval=null;this.down_position=null},updateHandle:function(){if(this.scroll_max){this.handle_height=Math.floor(this.bar_height/this.scroll_height_ratio)}else{this.handle_height=this.bar_height}var c=this.up_button.offsetHeight;var a=this.up_button.offsetHeight+(this.bar_height-this.handle_height);var b=a-c;if(this.scroll_max){this.handle_pos=c+Math.floor(b*(this.scroll_pos/this.scroll_max))}else{this.handle_pos=c}this.handle.style.height=this.handle_height+"px";this.handle.style.top=this.handle_pos+"px"},handleDown:function(){this.down_position=this.raw_mouse_pos-Position.cumulativeOffset(this.handle)[1];if(this.interval){clearInterval(this.interval)}this.interval=setInterval(function(){this.scrollTo(this.mouse_pos-(this.down_position*this.scroll_height_ratio))}.bindAsEventListener(this),this.opts.drag_interval)},setMousePos:function(a){if(document.all){tempY=event.clientY+document.body.scrollTop}else{tempY=a.pageY}if(tempY<0){tempY=0}this.raw_mouse_pos=tempY;this.mouse_pos=Math.floor((tempY-this.scrollbar_top)*this.scroll_height_ratio)},setSizes:function(){this.scroll_max=this.content_div.scrollHeight-this.content_div.offsetHeight;if(this.scroll_max<0){this.scroll_max=0}if(this.scroll_pos>this.scroll_max){this.scrollTo(this.scroll_max)}this.bar_height=this.scrollbar.offsetHeight-(this.up_button.offsetHeight+this.down_button.offsetHeight);if(!this.bar_height){setTimeout(this.setSizes.bind(this),100)}this.scroll_height_ratio=(this.content_div.scrollHeight/this.bar_height);this.scroll_height_ratio=this.scroll_height_ratio>=1?this.scroll_height_ratio:1;this.scrollbar_top=Position.cumulativeOffset(this.scrollbar)[1]+this.up_button.offsetHeight;this.scrollbar_bottom=this.scrollbar_top+this.bar_height;this.updateHandle()},scrollBarClick:function(a){switch(this.opts.bar_action){case ScrollBox_red.PAGE_ACTION:if(this.mouse_pos<this.handle_pos*this.scroll_height_ratio){this.pageUp()}else{this.pageDown()}break;case ScrollBox_red.JUMP_ACTION:this.scrollTo(this.mouse_pos);break}},pageUp:function(){this.scrollTo(this.scroll_pos-this.content_div.offsetHeight)},pageDown:function(){this.scrollTo(this.scroll_pos+this.content_div.offsetHeight)},scrollWheel:function(c){var b=Event.wheel(c);if(b>0){for(var a=0;a<Math.ceil(b);++a){this.scrollUp()}if(this.scroll_pos>0){Event.stop(c)}}else{if(b<0){for(var a=0;a>Math.floor(b);--a){this.scrollDown()}if(this.scroll_pos<this.scroll_max){Event.stop(c)}}}},updateCheck:function(){if(this.content_div.scrollTop!=this.scroll_pos){this.scrollTo(this.content_div.scrollTop)}if(this.scroll_max!=this.content_div.scrollHeight-this.content_div.offsetHeight){this.setSizes()}},enableKeyboardEvents:function(a){this.disableKeyboardEvents(a);this.keyboard_events.each(function(b){Event.observe(b[0],b[1],b[2])});this.within_enable_event=true},disableKeyboardEvents:function(a){if(!this.within_enable_event){this.keyboard_events.each(function(b){Event.stopObserving(b[0],b[1],b[2])})}else{this.within_enable_event=false}},keyboardEvent:function(a){switch(a.keyCode){case Event.KEY_HOME:this.scrollTo(0);break;case Event.KEY_END:this.scrollTo(this.scroll_max);break;case Event.KEY_PAGEUP:this.pageUp();break;case Event.KEY_PAGEDOWN:this.pageDown();break;case Event.KEY_UP:this.scrollUp();break;case Event.KEY_DOWN:this.scrollDown();break;default:return}Event.stop(a)}});Object.extend(Event,{wheel:function(a){var b=0;if(!a){a=window.event}if(a.wheelDelta){b=a.wheelDelta/120;if(window.opera){b=-b}}else{if(a.detail){b=-a.detail/3}}return b}});