/*MooTools, My Object Oriented Javascript Tools. Copyright (c) 2006-2007 Valerio Proietti, <http://mad4milk.net>, MIT Style License.||CNET Libraries Copyright (c) 2006-2008, http://clientside.cnet.com/wiki/cnet-libraries#license*/

var dbug={logged:[],timers:{},firebug:false,enabled:false,log:function(){dbug.logged.push(arguments)},nolog:function(msg){dbug.logged.push(arguments)},time:function(name){dbug.timers[name]=new Date().getTime()},timeEnd:function(name){if(dbug.timers[name]){var end=new Date().getTime()-dbug.timers[name];dbug.timers[name]=false;dbug.log('%s: %s',name,end)}else dbug.log('no such timer: %s',name)},enable:function(silent){if(dbug.firebug){try{dbug.enabled=true;dbug.log=function(){(console.debug||console.log).apply(console,arguments)};dbug.time=function(){console.time.apply(console,arguments)};dbug.timeEnd=function(){console.timeEnd.apply(console,arguments)};if(!silent)dbug.log('enabling dbug');for(var i=0;i<dbug.logged.length;i++){dbug.log.apply(console,dbug.logged[i])}dbug.logged=[]}catch(e){dbug.enable.delay(400)}}},disable:function(){if(dbug.firebug)dbug.enabled=false;dbug.log=dbug.nolog;dbug.time=function(){};dbug.timeEnd=function(){}},cookie:function(set){var value=document.cookie.match('(?:^|;)\\s*jsdebug=([^;]*)');var debugCookie=value?unescape(value[1]):false;if((!$defined(set)&&debugCookie!='true')||($defined(set)&&set)){dbug.enable();dbug.log('setting debugging cookie');var date=new Date();date.setTime(date.getTime()+(24*60*60*1000));document.cookie='jsdebug=true;expires='+date.toGMTString()+';path=/;'}else dbug.disableCookie()},disableCookie:function(){dbug.log('disabling debugging cookie');document.cookie='jsdebug=false;path=/;'}};(function(){var fb=typeof console!="undefined";var debugMethods=['debug','info','warn','error','assert','dir','dirxml'];var otherMethods=['trace','group','groupEnd','profile','profileEnd','count'];function set(methodList,defaultFunction){for(var i=0;i<methodList.length;i++){dbug[methodList[i]]=(fb&&console[methodList[i]])?console[methodList[i]]:defaultFunction}};set(debugMethods,dbug.log);set(otherMethods,function(){})})();if(typeof console!="undefined"&&console.warn){dbug.firebug=true;var value=document.cookie.match('(?:^|;)\\s*jsdebug=([^;]*)');var debugCookie=value?unescape(value[1]):false;if(window.location.href.indexOf("jsdebug=true")>0||debugCookie=='true')dbug.enable();if(debugCookie=='true')dbug.log('debugging cookie enabled');if(window.location.href.indexOf("jsdebugCookie=true")>0){dbug.cookie();if(!dbug.enabled)dbug.enable()}if(window.location.href.indexOf("jsdebugCookie=false")>0)dbug.disableCookie()}Browser.combine({fixPNG:function(el){try{if(Browser.Engine.trident4){el=$(el);if(!el)return el;if(el.get('tag')=="img"&&el.get('src').test(".png")){var vis=el.isVisible();try{dim=el.getSize()}catch(e){}if(!vis){var before={};['visibility','display','position'].each(function(style){before[style]=this.style[style]||''},this);this.setStyles({visibility:'hidden',display:'block',position:'absolute'});dim=el.getSize();this.setStyles(before);el.hide()}var replacement=new Element('span',{id:(el.id)?el.id:'','class':(el.className)?el.className:'',title:(el.title)?el.title:(el.alt)?el.alt:'',styles:{display:vis?'inline-block':'none',width:dim.x,height:dim.y,filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader (src='"+el.src+"', sizingMethod='scale');"},src:el.src});if(el.style.cssText){try{var styles={};var s=el.style.cssText.split(';');s.each(function(style){var n=style.split(':');styles[n[0]]=n[1]});replacement.setStyle(styles)}catch(e){dbug.log('fixPNG1: ',e)}}if(replacement.cloneEvents)replacement.cloneEvents(el);replacement.replaces(el)}else if(el.get('tag')!="img"){var imgURL=el.getStyle('background-image');if(imgURL.test(/\((.+)\)/)){el.setStyles({background:'',filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='crop', src="+imgURL.match(/\((.+)\)/)[1]+")"})}}}}catch(e){dbug.log('fixPNG2: ',e)}},pngTest:/\.png$/,scanForPngs:function(el,className){className=className||'fixPNG';if(document.getElements){el=$(el||document.body);el.getElements('img[src$=.png]').addClass(className)}else{var els=$$('img').each(function(img){if(Browser.pngTest(img.src)){img.addClass(className)}})}}});if(Browser.Engine.trident4)window.addEvent('domready',function(){$$('img.fixPNG').each(Browser.fixPNG)});var IframeShim=new Class({Implements:[Options,Events],options:{name:'',className:'iframeShim',display:false,zindex:null,margin:0,offset:{x:0,y:0},browsers:(Browser.Engine.trident4||(Browser.Engine.gecko&&!Browser.Engine.gecko19&&Browser.Platform.mac))},initialize:function(element,options){this.setOptions(options);if(this.options.offset&&this.options.offset.top)this.options.offset.y=this.options.offset.top;if(this.options.offset&&this.options.offset.left)this.options.offset.x=this.options.offset.left;this.element=$(element);this.makeShim();return},makeShim:function(){this.shim=new Element('iframe');this.id=this.options.name||new Date().getTime()+"_shim";if(this.element.getStyle('z-Index').toInt()<1||isNaN(this.element.getStyle('z-Index').toInt()))this.element.setStyle('z-Index',5);var z=this.element.getStyle('z-Index')-1;if($chk(this.options.zindex)&&this.element.getStyle('z-Index').toInt()>this.options.zindex)z=this.options.zindex;this.shim.setStyles({'position':'absolute','zIndex':z,'border':'none','filter':'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)'}).setProperties({'src':'javascript:void(0);','frameborder':'0','scrolling':'no','id':this.id}).addClass(this.options.className);this.element.store('shim',this);var inject=function(){this.shim.inject(this.element,'after');if(this.options.display)this.show();else this.hide();this.fireEvent('onInject')};if(this.options.browsers){if(Browser.Engine.trident&&!IframeShim.ready){window.addEvent('load',inject.bind(this))}else{inject.run(null,this)}}},position:function(shim){if(!this.options.browsers||!IframeShim.ready)return this;var before=this.element.getStyles('display','visibility','position');this.element.setStyles({display:'block',position:'absolute',visibility:'hidden'});var size=this.element.getSize();this.element.setStyles(before);if($type(this.options.margin)){size.x=size.x-(this.options.margin*2);size.y=size.y-(this.options.margin*2);this.options.offset.x+=this.options.margin;this.options.offset.y+=this.options.margin}this.shim.setStyles({'width':size.x,'height':size.y}).setPosition({relativeTo:this.element,offset:this.options.offset});return this},hide:function(){if(this.options.browsers)this.shim.setStyle('display','none');return this},show:function(){if(!this.options.browsers)return this;this.shim.setStyle('display','block');return this.position()},dispose:function(){if(this.options.browsers)this.shim.dispose();return this}});window.addEvent('load',function(){IframeShim.ready=true});Hash.implement({getFromPath:function(notation){var source=this.getClean();notation.replace(/\[([^\]]+)\]|\.([^.[]+)|[^[.]+/g,function(match){if(!source)return;var prop=arguments[2]||arguments[1]||arguments[0];source=(prop in source)?source[prop]:null;return match});return source},cleanValues:function(method){method=method||$defined;this.each(function(v,k){if(!method(v))this.erase(k)},this);return this}});String.implement({stripTags:function(){return this.replace(/<\/?[^>]+>/gi,'')},parseQuery:function(encodeKeys,encodeValues){encodeKeys=$pick(encodeKeys,true);encodeValues=$pick(encodeValues,true);var vars=this.split(/[&;]/);var rs={};if(vars.length)vars.each(function(val){var keys=val.split('=');if(keys.length&&keys.length==2){rs[(encodeKeys)?encodeURIComponent(keys[0]):keys[0]]=(encodeValues)?encodeURIComponent(keys[1]):keys[1]}});return rs},tidy:function(){var txt=this.toString();$each({"[\xa0\u2002\u2003\u2009]":" ","\xb7":"*","[\u2018\u2019]":"'","[\u201c\u201d]":'"',"\u2026":"...","\u2013":"-","\u2014":"--","\uFFFD":"&raquo;"},function(value,key){txt=txt.replace(new RegExp(key,'g'),value)});return txt},cleanQueryString:function(method){return this.split("&").filter(method||function(set){return $chk(set.split("=")[1])}).join("&")}});Element.implement({expose:function(){if(this.getStyle('display')!='none')return $empty;var before={};var styles={visibility:'hidden',display:'block',position:'absolute'};$each(styles,function(value,style){before[style]=this.style[style]||''},this);this.setStyles(styles);return(function(){this.setStyles(before)}).bind(this)},getDimensions:function(options){options=$merge({computeSize:false},options);var dim={};function getSize(el,options){return(options.computeSize)?el.getComputedSize(options):el.getSize()};if(this.getStyle('display')=='none'){var restore=this.expose();dim=getSize(this,options);restore()}else{try{dim=getSize(this,options)}catch(e){}}return $chk(dim.x)?$extend(dim,{width:dim.x,height:dim.y}):$extend(dim,{x:dim.width,y:dim.height})},getComputedSize:function(options){options=$merge({styles:['padding','border'],plains:{height:['top','bottom'],width:['left','right']},mode:'both'},options);var size={width:0,height:0};switch(options.mode){case'vertical':delete size.width;delete options.plains.width;break;case'horizontal':delete size.height;delete options.plains.height;break};var getStyles=[];$each(options.plains,function(plain,key){plain.each(function(edge){options.styles.each(function(style){getStyles.push((style=="border")?style+'-'+edge+'-'+'width':style+'-'+edge)})})});var styles=this.getStyles.apply(this,getStyles);var subtracted=[];$each(options.plains,function(plain,key){size['total'+key.capitalize()]=0;size['computed'+key.capitalize()]=0;plain.each(function(edge){size['computed'+edge.capitalize()]=0;getStyles.each(function(style,i){if(style.test(edge)){styles[style]=styles[style].toInt();if(isNaN(styles[style]))styles[style]=0;size['total'+key.capitalize()]=size['total'+key.capitalize()]+styles[style];size['computed'+edge.capitalize()]=size['computed'+edge.capitalize()]+styles[style]}if(style.test(edge)&&key!=style&&(style.test('border')||style.test('padding'))&&!subtracted.contains(style)){subtracted.push(style);size['computed'+key.capitalize()]=size['computed'+key.capitalize()]-styles[style]}})})});if($chk(size.width)){size.width=size.width+this.offsetWidth+size.computedWidth;size.totalWidth=size.width+size.totalWidth;delete size.computedWidth}if($chk(size.height)){size.height=size.height+this.offsetHeight+size.computedHeight;size.totalHeight=size.height+size.totalHeight;delete size.computedHeight}return $extend(styles,size)}});Element.implement({autoMouseOvers:function(options){options=$extend({outString:'_out',overString:'_over',cssOver:'hover',cssOut:'hoverOut',subSelector:'',applyToBoth:false},options);el=this;if(options.subSelector)el=this.getElements(options.subSelector);return el.addEvents({mouseenter:function(){this.swapClass(options.cssOut,options.cssOver);if(this.src&&this.src.contains(options.outString))this.src=this.src.replace(options.outString,options.overString);if(options.applyToBoth&&options.subSelector){this.getElements(options.subSelector).each(function(el){el.swapClass(options.cssOut,options.cssOver)})}}.bind(this),mouseleave:function(){this.swapClass(options.cssOver,options.cssOut);if(this.src&&this.src.contains(options.overString))this.src=this.src.replace(options.overString,options.outString);if(options.applyToBoth&&options.subSelector){this.getElements(options.subSelector).each(function(el){el.swapClass(options.cssOver,options.cssOut)})}}.bind(this)}).swapClass(options.cssOver,options.cssOut);el=null}});window.addEvent('domready',function(){$$('img.autoMouseOver').each(function(img){img.autoMouseOvers()})});window.addEvent('domready',function(){var test=new Element('div').setStyles({position:'fixed',top:0,right:0}).inject(document.body);var supported=(test.offsetTop===0);test.dispose();Browser.set('supportsPositionFixed',supported)});Element.implement({pin:function(enable){if(this.getStyle('display')=='none'){dbug.log('cannot pin '+this+' because it is hidden');return}if(enable!==false){var p=this.getPosition();if(!this.get('pinned')){var pos={top:(p.y-window.getScroll().y),left:(p.x-window.getScroll().x)};if(Browser.get('supportsPositionFixed')){this.setStyle('position','fixed').setStyles(pos)}else{this.setStyles({position:'absolute',top:p.y,left:p.x});window.addEvent('scroll',function(){if(this.get('pinned')){var to={top:(pos.top.toInt()+window.getScroll().y),left:(pos.left.toInt()+window.getScroll().x)};this.setStyles(to)}}.bind(this))}this.set('pinned',true)}}else{var op;if(!Browser.Engine.trident){if(this.getParent().getComputedStyle('position')!='static')op=this.getParent();else op=this.getParent().getOffsetParent()}var p=this.getPosition(op);this.set('pinned',false);var reposition=(Browser.get('supportsPositionFixed'))?{top:(p.y+window.getScroll().y),left:(p.x+window.getScroll().x)}:{top:(p.y),left:(p.x)};this.setStyles($merge(reposition,{position:'absolute'}))}return this},unpin:function(){return this.pin(false)},togglepin:function(){this.pin(!this.get('pinned'))}});Element.implement({setPosition:function(options){$each(options||{},function(v,k){if(!$defined(v))delete options[k]});options=$merge({relativeTo:document.body,position:{x:'center',y:'center'},edge:false,offset:{x:0,y:0},returnPos:false,relFixedPosition:false,ignoreMargins:false},options);var parentOffset={x:0,y:0};var parentPositioned=false;var putItBack=this.expose();var offsetParent=this.getOffsetParent();putItBack();if(offsetParent&&offsetParent!=this.getDocument().body){var putItBack=offsetParent.expose();parentOffset=offsetParent.getPosition();putItBack();parentPositioned=true;options.offset.x=options.offset.x-parentOffset.x;options.offset.y=options.offset.y-parentOffset.y}function fixValue(option){if($type(option)!="string")return option;option=option.toLowerCase();var val={};if(option.test('left'))val.x='left';else if(option.test('right'))val.x='right';else val.x='center';if(option.test('upper')||option.test('top'))val.y='top';else if(option.test('bottom'))val.y='bottom';else val.y='center';return val};options.edge=fixValue(options.edge);options.position=fixValue(options.position);if(!options.edge){if(options.position.x=='center'&&options.position.y=='center')options.edge={x:'center',y:'center'};else options.edge={x:'left',y:'top'}}this.setStyle('position','absolute');var rel=$(options.relativeTo)||document.body;var top=(rel==document.body)?window.getScroll().y:rel.getPosition().y;var left=(rel==document.body)?window.getScroll().x:rel.getPosition().x;if(top<0)top=0;if(left<0)left=0;var dim=this.getDimensions({computeSize:true,styles:['padding','border','margin']});if(options.ignoreMargins){options.offset.x=options.offset.x-parentOffset.x-offsetParent.getStyle('border-left-width').toInt()||0;options.offset.y=options.offset.y-parentOffset.y-offsetParent.getStyle('border-top-width').toInt()||0}var pos={};var prefY=options.offset.y.toInt();var prefX=options.offset.x.toInt();switch(options.position.x){case'left':pos.x=left+prefX;break;case'right':pos.x=left+prefX+rel.offsetWidth;break;default:pos.x=left+(((rel==document.body)?window.getSize().x:rel.offsetWidth)/2)+prefX;break};switch(options.position.y){case'top':pos.y=top+prefY;break;case'bottom':pos.y=top+prefY+rel.offsetHeight;break;default:pos.y=top+(((rel==document.body)?window.getSize().y:rel.offsetHeight)/2)+prefY;break};if(options.edge){var edgeOffset={};switch(options.edge.x){case'left':edgeOffset.x=0;break;case'right':edgeOffset.x=-dim.x-dim.computedRight-dim.computedLeft;break;default:edgeOffset.x=-(dim.x/2);break};switch(options.edge.y){case'top':edgeOffset.y=0;break;case'bottom':edgeOffset.y=-dim.y-dim.computedTop-dim.computedBottom;break;default:edgeOffset.y=-(dim.y/2);break};pos.x=pos.x+edgeOffset.x;pos.y=pos.y+edgeOffset.y}pos={left:((pos.x>=0||parentPositioned)?pos.x:0).toInt(),top:((pos.y>=0||parentPositioned)?pos.y:0).toInt()};if(rel.getStyle('position')=="fixed"||options.relFixedPosition){pos.top=pos.top.toInt()+window.getScroll().y;pos.left=pos.left.toInt()+window.getScroll().x}if(options.returnPos)return pos;else this.setStyles(pos);return this}});Element.implement({isVisible:function(){return this.getStyle('display')!='none'},toggle:function(){return this[this.isVisible()?'hide':'show']()},hide:function(){var d;try{d=this.getStyle('display')}catch(e){}this.store('originalDisplay',d||'block');this.setStyle('display','none');return this},show:function(display){original=this.retrieve('originalDisplay')?this.retrieve('originalDisplay'):this.get('originalDisplay');this.setStyle('display',(display||original||'block'));return this},swapClass:function(remove,add){return this.removeClass(remove).addClass(add)},fxOpacityOk:function(){return!Browser.Engine.trident4}});Fx.Marquee=new Class({Extends:Fx.Morph,options:{mode:'horizontal',message:'',revert:true,delay:5000,cssClass:'msg',showEffect:{opacity:1},hideEffect:{opacity:0},revertEffect:{opacity:[0,1]},currentMessage:null},initialize:function(container,options){container=$(container);var msg=this.options.currentMessage||(container.getChildren().length==1)?container.getFirst():'';var wrapper=new Element('div',{styles:{position:'relative'},'class':'fxMarqueeWrapper'}).inject(container);this.parent(wrapper,options);this.current=this.wrapMessage(msg)},wrapMessage:function(msg){if($(msg)&&$(msg).hasClass('fxMarquee')){var wrapper=$(msg)}else{var wrapper=new Element('span',{'class':'fxMarquee',styles:{position:'relative'}});if($(msg))wrapper.grab($(msg));else if($type(msg)=="string")wrapper.set('html',msg)}return wrapper.inject(this.element)},announce:function(options){this.setOptions(options).showMessage();return this},showMessage:function(reverting){(function(){var chain=this.$chain?$A(this.$chain):[];this.clearChain();this.element=$(this.element);this.current=$(this.current);this.message=$(this.message);this.start(this.options.hideEffect).chain(function(){if(reverting){this.message.hide();if(this.current)this.current.show()}else{if(this.message)this.message.dispose();this.message=this.wrapMessage(this.options.message);if(this.current)this.current.hide()}this.start((reverting)?this.options.revertEffect:this.options.showEffect).chain(function(){if(this.$chain)this.$chain.combine(chain);else this.$chain=chain;this.fireEvent((reverting)?'onRevert':'onMessage');if(!reverting&&this.options.revert)this.showMessage(true);else this.callChain.delay(this.options.delay,this)}.bind(this))}.bind(this))}).delay((reverting)?this.options.delay:10,this);return this}});Fx.Reveal=new Class({Extends:Fx.Morph,options:{styles:['padding','border','margin'],transitionOpacity:true,mode:'vertical',heightOverride:null,widthOverride:null},dissolve:function(){try{if(!this.hiding&&!this.showing){if(this.element.getStyle('display')!='none'){this.hiding=true;this.showing=false;this.hidden=true;var startStyles=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode});var setToAuto=this.element.style.height===""||this.element.style.height=="auto";this.element.setStyle('display','block');if(this.element.fxOpacityOk()&&this.options.transitionOpacity)startStyles.opacity=1;var zero={};$each(startStyles,function(style,name){zero[name]=[style,0]},this);var overflowBefore=this.element.getStyle('overflow');this.element.setStyle('overflow','hidden');if(!this.$chain)this.$chain=[];this.$chain.unshift(function(){if(this.hidden){this.hiding=false;$each(startStyles,function(style,name){startStyles[name]=style},this);this.element.setStyles($merge({display:'none',overflow:overflowBefore},startStyles));if(setToAuto)this.element.setStyle('height','auto')}this.fireEvent('onShow',this.element);this.callChain()}.bind(this));this.start(zero)}else{this.callChain.delay(10,this);this.fireEvent('onComplete',this.element);this.fireEvent('onHide',this.element)}}}catch(e){this.hiding=false;this.element.hide();this.callChain.delay(10,this);this.fireEvent('onComplete',this.element);this.fireEvent('onHide',this.element)}return this},reveal:function(){try{if(!this.showing&&!this.hiding){if(this.element.getStyle('display')=="none"||this.element.getStyle('visiblity')=="hidden"||this.element.getStyle('opacity')==0){this.showing=true;this.hiding=false;this.hidden=false;var before=this.element.getStyles('visibility','display','position');this.element.setStyles({visibility:'hidden',display:'block',position:'absolute'});var setToAuto=this.element.style.height===""||this.element.style.height=="auto";if(this.element.fxOpacityOk()&&this.options.transitionOpacity)this.element.setStyle('opacity',0);var startStyles=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode});this.element.setStyles(before);$each(startStyles,function(style,name){startStyles[name]=style},this);if($chk(this.options.heightOverride))startStyles['height']=this.options.heightOverride.toInt();if($chk(this.options.widthOverride))startStyles['width']=this.options.widthOverride.toInt();if(this.element.fxOpacityOk()&&this.options.transitionOpacity)startStyles.opacity=1;var zero={height:0,display:'block'};$each(startStyles,function(style,name){zero[name]=0},this);var overflowBefore=this.element.getStyle('overflow');this.element.setStyles($merge(zero,{overflow:'hidden'}));this.start(startStyles);if(!this.$chain)this.$chain=[];this.$chain.unshift(function(){if(!this.options.heightOverride&&setToAuto){if(["vertical","both"].contains(this.options.mode))this.element.setStyle('height','auto');if(["width","both"].contains(this.options.mode))this.element.setStyle('width','auto')}if(!this.hidden)this.showing=false;this.element.setStyle('overflow',overflowBefore);this.callChain();this.fireEvent('onShow',this.element)}.bind(this))}else{this.callChain();this.fireEvent('onComplete',this.element);this.fireEvent('onShow',this.element)}}}catch(e){this.element.setStyles({display:'block',visiblity:'visible',opacity:1});this.showing=false;this.callChain.delay(10,this);this.fireEvent('onComplete',this.element);this.fireEvent('onShow',this.element)}return this},toggle:function(){try{if(this.element.getStyle('display')=="none"||this.element.getStyle('visiblity')=="hidden"||this.element.getStyle('opacity')==0){this.reveal()}else{this.dissolve()}}catch(e){this.show()}return this}});Element.Properties.reveal={set:function(options){var reveal=this.retrieve('reveal');if(reveal)reveal.cancel();return this.eliminate('reveal').store('reveal:options',$extend({link:'cancel'},options))},get:function(options){if(options||!this.retrieve('reveal')){if(options||!this.retrieve('reveal:options'))this.set('reveal',options);this.store('reveal',new Fx.Reveal(this,this.retrieve('reveal:options')))}return this.retrieve('reveal')}};Element.Properties.dissolve=Element.Properties.reveal;Element.implement({reveal:function(options){this.get('reveal',options).reveal();return this},dissolve:function(options){this.get('reveal',options).dissolve();return this}});Element.implement({nix:function(){var params=Array.link(arguments,{destroy:Boolean.type,options:Object.type});this.get('reveal',params.options).dissolve().chain(function(){this[params.destroy?'destroy':'erase']()}.bind(this));return this}});var Modalizer=new Class({defaultModalStyle:{display:'block',position:'fixed',top:0,left:0,'z-index':5000,'background-color':'#333',opacity:0.8},setModalOptions:function(options){this.modalOptions=$merge({width:(window.getScrollSize().x+300),height:(window.getScrollSize().y+300),elementsToHide:'select',hideOnClick:true,modalStyle:{},updateOnResize:true,layerId:'modalOverlay',onModalHide:$empty,onModalShow:$empty},this.modalOptions,options);return this},toElement:function(){if(!this.modalOptions.layerId)this.setModalOptions();return $(this.modalOptions.layerId)||new Element('div',{id:this.modalOptions.layerId}).inject(document.body)},resize:function(){if($(this)){$(this).setStyles({width:(window.getScrollSize().x+300),height:(window.getScrollSize().y+300)})}},setModalStyle:function(styleObject){this.modalOptions.modalStyle=styleObject;this.modalStyle=$merge(this.defaultModalStyle,{width:this.modalOptions.width,height:this.modalOptions.height},styleObject);if($(this))$(this).setStyles(this.modalStyle);return(this.modalStyle)},modalShow:function(options){this.setModalOptions(options);$(this).setStyles(this.setModalStyle(this.modalOptions.modalStyle));if(Browser.Engine.trident4)$(this).setStyle('position','absolute');$(this).removeEvents('click').addEvent('click',function(){this.modalHide(this.modalOptions.hideOnClick)}.bind(this));this.bound=this.bound||{};if(!this.bound.resize&&this.modalOptions.updateOnResize){this.bound.resize=this.resize.bind(this);window.addEvent('resize',this.bound.resize)}if($type(this.modalOptions.onModalShow)=="function")this.modalOptions.onModalShow();this.togglePopThroughElements(0);$(this).setStyle('display','block');return this},modalHide:function(override){if(override===false)return false;this.togglePopThroughElements(1);if($type(this.modalOptions.onModalHide)=="function")this.modalOptions.onModalHide();$(this).setStyle('display','none');if(this.modalOptions.updateOnResize){this.bound=this.bound||{};if(!this.bound.resize)this.bound.resize=this.resize.bind(this);window.removeEvent('resize',this.bound.resize)}return this},togglePopThroughElements:function(opacity){if(Browser.Engine.trident4||(Browser.Engine.gecko&&Browser.Platform.mac)){$$(this.modalOptions.elementsToHide).each(function(sel){sel.setStyle('opacity',opacity)})}}});var StyleWriter=new Class({createStyle:function(css,id){window.addEvent('domready',function(){try{if($(id)&&id)return;var style=new Element('style',{id:id||''}).inject($$('head')[0]);if(Browser.Engine.trident)style.styleSheet.cssText=css;else style.set('text',css)}catch(e){dbug.log('error: %s',e)}}.bind(this))}});var StickyWin=new Class({Implements:[Options,Events,StyleWriter],options:{closeClassName:'closeSticky',pinClassName:'pinSticky',content:'',zIndex:10000,className:'',width:false,height:false,timeout:-1,allowMultipleByClass:false,allowMultiple:true,showNow:true,useIframeShim:true,iframeShimSelector:''},css:'.SWclearfix:after {content: "."; display: block; height: 0; clear: both; visibility: hidden;}'+'.SWclearfix {display: inline-table;}'+'* html .SWclearfix {height: 1%;}'+'.SWclearfix {display: block;}',initialize:function(options){this.options.inject={target:document.body,where:'bottom'};this.setOptions(options);this.id=this.options.id||'StickyWin_'+new Date().getTime();this.makeWindow();if(this.options.content)this.setContent(this.options.content);if(this.options.timeout>0){this.addEvent('onDisplay',function(){this.hide.delay(this.options.timeout,this)}.bind(this))}if(this.options.showNow)this.show();this.createStyle(this.css,'StickyWinClearFix')},toElement:function(){return this.win},makeWindow:function(){this.destroyOthers();if(!$(this.id)){this.win=new Element('div',{id:this.id}).addClass(this.options.className).addClass('StickyWinInstance').addClass('SWclearfix').setStyles({display:'none',position:'absolute',zIndex:this.options.zIndex}).inject(this.options.inject.target,this.options.inject.where).store('StickyWin',this)}else this.win=$(this.id);if(this.options.width&&$type(this.options.width.toInt())=="number")this.win.setStyle('width',this.options.width.toInt());if(this.options.height&&$type(this.options.height.toInt())=="number")this.win.setStyle('height',this.options.height.toInt());return this},show:function(){this.fireEvent('onDisplay');this.showWin();if(this.options.useIframeShim)this.showIframeShim();this.visible=true;return this},showWin:function(){this.win.setStyle('display','block');if(!this.positioned)this.position()},hide:function(suppressEvent){if(!suppressEvent)this.fireEvent('onClose');this.hideWin();if(this.options.useIframeShim)this.hideIframeShim();this.visible=false;return this},hideWin:function(){this.win.setStyle('display','none')},destroyOthers:function(){if(!this.options.allowMultipleByClass||!this.options.allowMultiple){$$('div.StickyWinInstance').each(function(sw){if(!this.options.allowMultiple||(!this.options.allowMultipleByClass&&sw.hasClass(this.options.className)))sw.dispose()},this)}},setContent:function(html){if(this.win.getChildren().length>0)this.win.empty();if($type(html)=="string")this.win.set('html',html);else if($(html))this.win.adopt(html);this.win.getElements('.'+this.options.closeClassName).each(function(el){el.addEvent('click',this.hide.bind(this))},this);this.win.getElements('.'+this.options.pinClassName).each(function(el){el.addEvent('click',this.togglepin.bind(this))},this);return this},position:function(){this.positioned=true;this.win.setPosition({relativeTo:this.options.relativeTo,position:this.options.position,offset:this.options.offset,edge:this.options.edge});if(this.shim)this.shim.position();return this},pin:function(pin){if(!this.win.pin){dbug.log('you must include element.pin.js!');return this}this.pinned=$pick(pin,true);this.win.pin(pin);return this},unpin:function(){return this.pin(false)},togglepin:function(){return this.pin(!this.pinned)},makeIframeShim:function(){if(!this.shim){var el=(this.options.iframeShimSelector)?this.win.getElement(this.options.iframeShimSelector):this.win;this.shim=new IframeShim(el,{display:false,name:'StickyWinShim'})}},showIframeShim:function(){if(this.options.useIframeShim){this.makeIframeShim();this.shim.show()}},hideIframeShim:function(){if(this.options.useIframeShim)this.shim.hide()},destroy:function(){if(this.win)this.win.dispose();if(this.options.useIframeShim)this.shim.dispose();if($('modalOverlay'))$('modalOverlay').dispose()}});var StickyWinFx=new Class({Extends:StickyWin,options:{fade:true,fadeDuration:150,draggable:false,dragOptions:{},dragHandleSelector:'.dragHandle',resizable:false,resizeOptions:{},resizeHandleSelector:''},setContent:function(html){this.parent(html);if(this.options.draggable)this.makeDraggable();if(this.options.resizable)this.makeResizable();return this},hideWin:function(){if(this.options.fade)this.fade(0);else this.parent()},showWin:function(){if(this.options.fade)this.fade(1);else this.parent()},fade:function(to){if(!this.fadeFx){this.win.setStyles({opacity:0,display:'block'});var opts={property:'opacity',duration:this.options.fadeDuration};if(this.options.fadeTransition)opts.transition=this.options.fadeTransition;this.fadeFx=new Fx.Tween(this.win,opts)}if(to>0){this.win.setStyle('display','block');this.position()}this.fadeFx.clearChain();this.fadeFx.start(to).chain(function(){if(to==0)this.win.setStyle('display','none')}.bind(this));return this},makeDraggable:function(){dbug.log('you must include Drag.js, cannot make draggable')},makeResizable:function(){dbug.log('you must include Drag.js, cannot make resizable')}});if(typeof Drag!="undefined"){StickyWinFx.implement({makeDraggable:function(){var toggled=this.toggleVisible(true);if(this.options.useIframeShim){this.makeIframeShim();var onComplete=(this.options.dragOptions.onComplete||$empty);this.options.dragOptions.onComplete=function(){onComplete();this.shim.position()}.bind(this)}if(this.options.dragHandleSelector){var handle=this.win.getElement(this.options.dragHandleSelector);if(handle){handle.setStyle('cursor','move');this.options.dragOptions.handle=handle}}this.win.makeDraggable(this.options.dragOptions);if(toggled)this.toggleVisible(false)},makeResizable:function(){var toggled=this.toggleVisible(true);if(this.options.useIframeShim){this.makeIframeShim();var onComplete=(this.options.resizeOptions.onComplete||$empty);this.options.resizeOptions.onComplete=function(){onComplete();this.shim.position()}.bind(this)}if(this.options.resizeHandleSelector){var handle=this.win.getElement(this.options.resizeHandleSelector);if(handle)this.options.resizeOptions.handle=this.win.getElement(this.options.resizeHandleSelector)}this.win.makeResizable(this.options.resizeOptions);if(toggled)this.toggleVisible(false)},toggleVisible:function(show){if(!this.visible&&Browser.Engine.webkit&&$pick(show,true)){this.win.setStyles({display:'block',opacity:0});return true}else if(!$pick(show,false)){this.win.setStyles({display:'none',opacity:1});return false}return false}})}var StickyWinModal,StickyWinFxModal;(function(){var modalWinBase=function(extend){return{Extends:extend,initialize:function(options){options=options||{};this.setModalOptions($merge(options.modalOptions||{},{onModalHide:function(){this.hide(false)}.bind(this)}));this.parent(options)},show:function(showModal){if($pick(showModal,true)){this.modalShow();this.win.getElements(this.modalOptions.elementsToHide).setStyle('opacity',1)}this.parent()},hide:function(hideModal){if($pick(hideModal,true))this.modalHide();this.parent($pick(hideModal,true))}}};StickyWinModal=new Class(modalWinBase(StickyWin));StickyWinModal.implement(new Modalizer);StickyWinFxModal=(typeof StickyWinFx!="undefined")?new Class(modalWinBase(StickyWinFx)):$empty;try{StickyWinFxModal.implement(new Modalizer())}catch(e){}})();(function(){var SWA=function(extend){return{Extends:extend,options:{url:'',showNow:false,requestOptions:{method:'get'},wrapWithUi:false,caption:'',uiOptions:{},handleResponse:function(response){var responseScript="";this.Request.response.text.stripScripts(function(script){responseScript+=script});if(this.options.wrapWithUi)response=StickyWin.ui(this.options.caption,response,this.options.uiOptions);this.setContent(response);this.show();if(this.evalScripts)$exec(responseScript)}},initialize:function(options){this.parent(options);this.evalScripts=this.options.requestOptions.evalScripts;this.options.requestOptions.evalScripts=false;this.createRequest()},createRequest:function(){this.Request=new Request(this.options.requestOptions).addEvent('onSuccess',this.options.handleResponse.bind(this))},update:function(url,options){this.Request.setOptions(options).send({url:url||this.options.url});return this}}};try{StickyWin.Ajax=new Class(SWA(StickyWin))}catch(e){}try{StickyWinFx.Ajax=new Class(SWA(StickyWinFx))}catch(e){}try{StickyWinModal.Ajax=new Class(SWA(StickyWinModal))}catch(e){}try{StickyWinFxModal.Ajax=new Class(SWA(StickyWinFxModal))}catch(e){}})();StickyWin.alert=function(msghdr,msg,baseHref){baseHref=baseHref||"http://www.cnet.com/html/rb/assets/global/simple.error.popup";msg='<p class="errorMsg SWclearfix" style="margin: 0px;">'+'<img src="'+baseHref+'/icon_problems_sm.gif"'+' class="bang clearfix" style="float: left; width: 30px; height: 30px; margin: 3px 5px 5px 0px;">'+msg+'</p>';var body=StickyWin.ui(msghdr,msg,{width:250});return new StickyWinModal({modalOptions:{modalStyle:{zIndex:11000}},zIndex:110001,content:body,position:'center'})};StickyWin.ui=function(caption,body,options){options=$extend({width:300,css:"div.DefaultStickyWin div.body{font-family:verdana; font-size:11px; line-height: 13px;}"+"div.DefaultStickyWin div.top_ul{background:url({%baseHref%}full.png) top left no-repeat; height:30px; width:15px; float:left}"+"div.DefaultStickyWin div.top_ur{position:relative; left:0px !important; left:-4px; background:url({%baseHref%}full.png) top right !important; height:30px; margin:0px 0px 0px 15px !important; margin-right:-4px; padding:0px}"+"div.DefaultStickyWin h1.caption{clear: none !important; margin:0px 5px 0px 0px !important; overflow: hidden; padding:0 !important; font-weight:bold; color:#555; font-size:14px !important; position:relative; top:8px !important; left:5px !important; float: left; height: 22px !important;}"+"div.DefaultStickyWin div.middle, div.DefaultStickyWin div.closeBody {background:url({%baseHref%}body.png) top left repeat-y; margin:0px 20px 0px 0px !important;	margin-bottom: -3px; position: relative;	top: 0px !important; top: -3px;}"+"div.DefaultStickyWin div.body{background:url({%baseHref%}body.png) top right repeat-y; padding:8px 30px 8px 0px !important; margin-left:5px !important; position:relative; right:-20px !important;}"+"div.DefaultStickyWin div.bottom{clear:both}"+"div.DefaultStickyWin div.bottom_ll{background:url({%baseHref%}full.png) bottom left no-repeat; width:15px; height:15px; float:left}"+"div.DefaultStickyWin div.bottom_lr{background:url({%baseHref%}full.png) bottom right; position:relative; left:0px !important; left:-4px; margin:0px 0px 0px 15px !important; margin-right:-4px; height:15px}"+"div.DefaultStickyWin div.closeButtons{text-align: center; background:url({%baseHref%}body.png) top right repeat-y; padding: 0px 30px 8px 0px; margin-left:5px; position:relative; right:-20px}"+"div.DefaultStickyWin a.button:hover{background:url({%baseHref%}big_button_over.gif) repeat-x}"+"div.DefaultStickyWin a.button {background:url({%baseHref%}big_button.gif) repeat-x; margin: 2px 8px 2px 8px; padding: 2px 12px; cursor:pointer; border: 1px solid #999 !important; text-decoration:none; color: #000 !important;}"+"div.DefaultStickyWin div.closeButton{width:13px; height:13px; background:url({%baseHref%}closebtn.gif) no-repeat; position: absolute; right: 0px; margin:10px 15px 0px 0px !important; cursor:pointer}"+"div.DefaultStickyWin div.dragHandle {	width: 11px;	height: 25px;	position: relative;	top: 5px;	left: -3px;	cursor: move;	background: url({%baseHref%}drag_corner.gif); float: left;}",cornerHandle:false,cssClass:'',baseHref:'http://www.cnet.com/html/rb/assets/global/stickyWinHTML/',buttons:[]},options);if(options.confirmTxt)options.buttons.push({text:options.confirmTxt,onClick:options.onConfirm||$empty});if(options.closeTxt)options.buttons.push({text:options.closeTxt,onClick:options.onClose||$empty});new StyleWriter().createStyle(options.css.substitute({baseHref:options.baseHref},/\\?\{%([^}]+)%\}/g),'defaultStickyWinStyle');caption=$pick(caption,'%caption%');body=$pick(body,'%body%');var container=new Element('div').setStyle('width',options.width).addClass('DefaultStickyWin');if(options.cssClass)container.addClass(options.cssClass);var h1Caption=new Element('h1').addClass('caption').setStyle('width',(options.width.toInt()-(options.cornerHandle?70:60)));if($(caption))h1Caption.adopt(caption);else h1Caption.set('html',caption);var bodyDiv=new Element('div').addClass('body');if($(body))bodyDiv.adopt(body);else bodyDiv.set('html',body);var top_ur=new Element('div').addClass('top_ur').adopt(new Element('div').addClass('closeButton').addClass('closeSticky')).adopt(h1Caption);if(options.cornerHandle)new Element('div').addClass('dragHandle').inject(top_ur,'top');else h1Caption.addClass('dragHandle');container.adopt(new Element('div').addClass('top').adopt(new Element('div').addClass('top_ul')).adopt(top_ur));container.adopt(new Element('div').addClass('middle').adopt(bodyDiv));if(options.buttons.length>0){var closeButtons=new Element('div').addClass('closeButtons');options.buttons.each(function(button){if(button.properties&&button.properties.className){button.properties['class']=button.properties.className;delete button.properties.className}var properties=$merge({'class':'closeSticky'},button.properties);new Element('a').addEvent('click',button.onClick||$empty).appendText(button.text).inject(closeButtons).setProperties(properties).addClass('button')});container.adopt(new Element('div').addClass('closeBody').adopt(closeButtons))}container.adopt(new Element('div').addClass('bottom').adopt(new Element('div').addClass('bottom_ll')).adopt(new Element('div').addClass('bottom_lr')));return container};var Lightbox=new Class({Implements:[Options,Events],options:{resizeDuration:400,initialWidth:250,initialHeight:250,zIndex:5000,animateCaption:true,showCounter:true,autoScanLinks:true,relString:'lightbox',useDefaultCss:true,assetBaseUrl:'http://www.cnet.com/html/rb/assets/global/slimbox/',overlayStyles:{}},initialize:function(options){this.setOptions(options);this.anchors=this.options.anchors||arguments[1];if(this.options.autoScanLinks&&!this.anchors){this.anchors=[];$$('a[rel^='+this.options.relString+']').each(function(el){if(!el.retrieve('lightbox'))this.anchors.push(el)},this)}if(!$$(this.anchors).length)return;if(this.options.useDefaultCss)this.addCss();$$(this.anchors).each(function(el){if(!el.retrieve('lightbox')){el.store('lightbox',this);el.addEvent('click',function(e){e.stop();this.click(el)}.bind(this))}}.bind(this));this.eventKeyDown=this.keyboardListener.bind(this);this.eventPosition=this.position.bind(this);window.addEvent('domready',this.addHtmlElements.bind(this))},addHtmlElements:function(){this.overlay=new Element('div',{'class':'lbOverlay',styles:{zIndex:this.options.zIndex}});this.overlay.inject(document.body).setStyles(this.options.overlayStyles);this.center=new Element('div',{styles:{width:this.options.initialWidth,height:this.options.initialHeight,marginLeft:(-(this.options.initialWidth/2)),display:'none',zIndex:this.options.zIndex+1}}).inject(document.body).addClass('lbCenter');this.image=new Element('div',{'class':'lbImage'}).inject(this.center);this.prevLink=new Element('a',{'class':'lbPrevLink',href:'javascript:void(0);',styles:{'display':'none'}}).inject(this.image);this.nextLink=this.prevLink.clone().removeClass('lbPrevLink').addClass('lbNextLink').inject(this.image);this.prevLink.addEvent('click',this.previous.bind(this));this.nextLink.addEvent('click',this.next.bind(this));this.bottomContainer=new Element('div',{'class':'lbBottomContainer',styles:{display:'none',zIndex:this.options.zIndex+1}}).inject(document.body);this.bottom=new Element('div',{'class':'lbBottom'}).inject(this.bottomContainer);new Element('a',{'class':'lbCloseLink',href:'javascript:void(0);'}).inject(this.bottom).addEvent('click',this.close.bind(this));this.overlay.addEvent('click',this.close.bind(this));this.caption=new Element('div',{'class':'lbCaption'}).inject(this.bottom);this.number=new Element('div',{'class':'lbNumber'}).inject(this.bottom);new Element('div',{'styles':{'clear':'both'}}).inject(this.bottom);var nextEffect=this.nextEffect.bind(this);this.fx={overlay:new Fx.Tween(this.overlay,{property:'opacity',duration:500}).set(0),resize:new Fx.Morph(this.center,$extend({duration:this.options.resizeDuration,onComplete:nextEffect},this.options.resizeTransition?{transition:this.options.resizeTransition}:{})),image:new Fx.Tween(this.image,{property:'opacity',duration:500,onComplete:nextEffect}),bottom:new Fx.Tween(this.bottom,{property:'margin-top',duration:400,onComplete:nextEffect})};this.preloadPrev=new Element('img');this.preloadNext=new Element('img')},addCss:function(){window.addEvent('domready',function(){if($('LightboxCss'))return;new Element('link',{rel:'stylesheet',media:'screen',type:'text/css',href:this.options.assetBaseUrl+'slimbox.css',id:'LightboxCss'}).inject(document.head)}.bind(this))},click:function(link){link=$(link);var rel=link.get('rel')||this.options.relString;if(rel==this.options.relString)return this.show(link.get('href'),link.get('title'));var j,imageNum,images=[];this.anchors.each(function(el){if(el.get('rel')==link.get('rel')){for(j=0;j<images.length;j++)if(images[j][0]==el.get('href'))break;if(j==images.length){images.push([el.get('href'),el.get('title')]);if(el.get('href')==link.get('href'))imageNum=j}}},this);return this.open(images,imageNum)},show:function(url,title){return this.open([[url,title]],0)},open:function(images,imageNum){this.fireEvent('onDisplay');this.images=images;this.position();this.setup(true);this.top=(window.getScroll().y+(window.getSize().y/15)).toInt();this.center.setStyles({top:this.top,display:''});this.fx.overlay.start(0.8);return this.changeImage(imageNum)},position:function(){this.overlay.setStyles({'top':window.getScroll().y,'height':window.getSize().y})},setup:function(open){var elements=$$('object, iframe');elements.extend($$(Browser.Engine.trident?'select':'embed'));elements.each(function(el){if(open)el.store('lbBackupStyle',el.getStyle('visibility'));var vis=(open?'hidden':el.retrieve('lbBackupStyle'));el.setStyle('visibility',vis)});var fn=open?'addEvent':'removeEvent';window[fn]('scroll',this.eventPosition)[fn]('resize',this.eventPosition);document[fn]('keydown',this.eventKeyDown);this.step=0},keyboardListener:function(event){switch(event.code){case 27:case 88:case 67:this.close();break;case 37:case 80:this.previous();break;case 39:case 78:this.next()}},previous:function(){return this.changeImage(this.activeImage-1)},next:function(){return this.changeImage(this.activeImage+1)},changeImage:function(imageNum){this.fireEvent('onImageShow',[imageNum,this.images[imageNum]]);if(this.step||(imageNum<0)||(imageNum>=this.images.length))return false;this.step=1;this.activeImage=imageNum;this.center.setStyle('backgroundColor','');this.bottomContainer.setStyle('display','none');this.prevLink.setStyle('display','none');this.nextLink.setStyle('display','none');this.fx.image.set(0);this.center.addClass('lbLoading');this.preload=new Element('img',{events:{load:function(){this.nextEffect.delay(100,this)}.bind(this)}});this.preload.set('src',this.images[imageNum][0]);return false},nextEffect:function(){switch(this.step++){case 1:this.image.setStyle('backgroundImage','url('+this.images[this.activeImage][0]+')');this.image.setStyle('width',this.preload.width);this.bottom.setStyle('width',this.preload.width);this.image.setStyle('height',this.preload.height);this.prevLink.setStyle('height',this.preload.height);this.nextLink.setStyle('height',this.preload.height);this.caption.set('html',this.images[this.activeImage][1]||'');this.number.set('html',(!this.options.showCounter||(this.images.length==1))?'':'Image '+(this.activeImage+1)+' of '+this.images.length);if(this.activeImage)$(this.preloadPrev).set('src',this.images[this.activeImage-1][0]);if(this.activeImage!=(this.images.length-1))$(this.preloadNext).set('src',this.images[this.activeImage+1][0]);if(this.center.clientHeight!=this.image.offsetHeight){this.fx.resize.start({height:this.image.offsetHeight});break}this.step++;case 2:if(this.center.clientWidth!=this.image.offsetWidth){this.fx.resize.start({width:this.image.offsetWidth,marginLeft:-this.image.offsetWidth/2});break}this.step++;case 3:this.bottomContainer.setStyles({top:(this.top+this.center.getSize().y),height:0,marginLeft:this.center.getStyle('margin-left'),display:''});this.fx.image.start(1);break;case 4:this.center.style.backgroundColor='#000';if(this.options.animateCaption){this.fx.bottom.set(-this.bottom.offsetHeight);this.bottomContainer.setStyle('height','');this.fx.bottom.start(0);break}this.bottomContainer.style.height='';case 5:if(this.activeImage)this.prevLink.setStyle('display','');if(this.activeImage!=(this.images.length-1))this.nextLink.setStyle('display','');this.step=0}},close:function(){this.fireEvent('onHide');if(this.step<0)return;this.step=-1;if(this.preload)this.preload.destroy();for(var f in this.fx)this.fx[f].cancel();this.center.setStyle('display','none');this.bottomContainer.setStyle('display','none');this.fx.overlay.chain(this.setup.pass(false,this)).start(0);return}});window.addEvent('domready',function(){if($(document.body).get('html').match(/rel=?.lightbox/i))new Lightbox()});