/*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*/
/*dbug, FixPng, IFrameShim, PopUp, Element.Measure/Pin/Position/Shortcuts, Fx.Reveal, Fx.Sort, Modalizer, StyleWriter, StickyWin/Fx/Modal, MultipleOpenAccordion, Lightbox*/

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((debugCookie!='true'||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(selector){if($type(selector)=="array")return $$(selector).each(Browser.fixPNG);if($(selector))selector=$(selector).get('tag');window.addEvent('domready',function(){if(document.all&&/MSIE (5\.5|6)/.test(navigator.userAgent)&&document.styleSheets&&document.styleSheets[0]&&document.styleSheets[0].addRule){if(!$('iepngfix_tilebg_js')){new Element('script',{src:Browser.iepngFixJs,id:'iepngfix_tilebg_js','type':'text/javascript'}).inject(document.head)}if(!document.styleSheets[0])new Element('style').inject(document.head);document.styleSheets[0].addRule(selector||'.fixPNG','behavior: url('+Browser.iepngfixUrl+')')}})},iepngFixJs:'http://www.cnet.com/html/rb/assets/global/fixpng/iepngfix_tilebg.js',iepngfixUrl:'http://www.cnet.com/html/rb/assets/global/fixpng/iepngfix.htc'});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});Browser.set("Popup",new Class({Implements:[Options,Events],options:{width:500,height:300,x:50,y:50,toolbar:0,location:0,directories:0,status:0,scrollbars:'auto',resizable:1,name:'popup'},initialize:function(url,options){this.url=url||false;this.setOptions(options);if(this.url)this.openWin()},openWin:function(url){url=url||this.url;var options='toolbar='+this.options.toolbar+',location='+this.options.location+',directories='+this.options.directories+',status='+this.options.status+',scrollbars='+this.options.scrollbars+',resizable='+this.options.resizable+',width='+this.options.width+',height='+this.options.height+',top='+this.options.y+',left='+this.options.x;this.window=window.open(url,this.options.name,options);if(!this.window){this.window=window.open('',this.options.name,options);this.window.location.href=url}this.focus.delay(100,this);return this},focus:function(){if(this.window)this.window.focus();else if(this.focusTries<10)this.focus.delay(100,this);else{this.blocked=true;this.fireEvent('onBlock')}return this},focusTries:0,blocked:null,close:function(){this.window.close();return this}}));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)}});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}var p=this.getPosition();if(enable!==false){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{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.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.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.callChain()}.bind(this));this.start(zero)}else{this.callChain.delay(10,this);this.fireEvent('onComplete',this.element)}}}catch(e){this.hiding=false;this.element.hide();this.callChain.delay(10,this);this.fireEvent('onComplete',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()}.bind(this))}else{this.callChain();this.fireEvent('onComplete',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)}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}});Fx.Sort=new Class({Extends:Fx.Elements,options:{mode:'vertical'},initialize:function(elements,options){this.parent(elements,options);this.elements.each(function(el){if(el.getStyle('position')=='static')el.setStyle('position','relative')});this.setDefaultOrder()},setDefaultOrder:function(){this.currentOrder=this.elements.map(function(el,index){return index})},sort:function(newOrder){if($type(newOrder)!='array')return false;var top=0;var left=0;var zero={};var vert=this.options.mode=="vertical";var current=this.elements.map(function(el,index){var size=el.getComputedSize({styles:['border','padding','margin']});var val;if(vert){val={top:top,margin:size['margin-top'],height:size.totalHeight};top+=val.height-size['margin-top']}else{val={left:left,margin:size['margin-left'],width:size.totalWidth};left+=val.width}var plain=vert?'top':'left';zero[index]={};var start=el.getStyle(plain).toInt();zero[index][plain]=($chk(start))?start:0;return val},this);this.set(zero);newOrder=newOrder.map(function(i){return i.toInt()});if(newOrder.length!=this.elements.length){this.currentOrder.each(function(index){if(!newOrder.contains(index))newOrder.push(index)});if(newOrder.length>this.elements.length){newOrder.splice(this.elements.length-1,newOrder.length-this.elements.length)}}var top=0;var left=0;var margin=0;var next={};newOrder.each(function(item,index){var newPos={};if(vert){newPos.top=top-current[item].top-margin;top+=current[item].height}else{newPos.left=left-current[item].left;left+=current[item].width}margin=margin+current[item].margin;next[item]=newPos},this);var mapped={};$A(newOrder).sort().each(function(index){mapped[index]=next[index]});this.start(mapped);this.currentOrder=newOrder;return this},rearrangeDOM:function(newOrder){newOrder=newOrder||this.currentOrder;var parent=this.elements[0].getParent();var rearranged=[];this.elements.setStyle('opacity',0);newOrder.each(function(index){rearranged.push(this.elements[index].inject(parent).setStyles({top:0,left:0}))},this);this.elements.setStyle('opacity',1);this.elements=$$(rearranged);this.setDefaultOrder();return this},getDefaultOrder:function(){return this.elements.map(function(el,index){return index})},forward:function(){return this.sort(this.getDefaultOrder())},backward:function(){return this.sort(this.getDefaultOrder().reverse())},reverse:function(){return this.sort(this.currentOrder.reverse())},sortByElements:function(elements){return this.sort(elements.map(function(el){return this.elements.indexOf(el)}))},swap:function(one,two){if($type(one)=='element'){one=this.elements.indexOf(one);two=this.elements.indexOf(two)}var indexOne=this.currentOrder.indexOf(one);var indexTwo=this.currentOrder.indexOf(two);var newOrder=$A(this.currentOrder);newOrder[indexOne]=two;newOrder[indexTwo]=one;this.sort(newOrder)}});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',onModalHide:$empty,onModalShow:$empty,hideOnClick:true,modalStyle:{},updateOnResize:true},this.modalOptions,options);return this},toElement:function(){return $('modalOverlay')},resize:function(){if($('modalOverlay')){$('modalOverlay').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($('modalOverlay'))$('modalOverlay').setStyles(this.modalStyle);return(this.modalStyle)},modalShow:function(options){this.setModalOptions(options);var overlay=null;if($('modalOverlay'))overlay=$('modalOverlay');if(!overlay)overlay=new Element('div',{id:'modalOverlay'}).inject(document.body);overlay.setStyles(this.setModalStyle(this.modalOptions.modalStyle));if(Browser.Engine.trident4)overlay.setStyle('position','absolute');$('modalOverlay').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);overlay.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();if($('modalOverlay'))$('modalOverlay').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.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(){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')}});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()}}};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){}})();var MultipleOpenAccordion=new Class({Implements:[Options,Events,Chain],options:{togglers:[],elements:[],openAll:true,firstElementsOpen:[0],fixedHeight:false,fixedWidth:false,height:true,opacity:true,width:false},togglers:[],elements:[],initialize:function(container,options){this.setOptions(options);this.container=$(container);elements=$$(options.elements);$$(options.togglers).each(function(toggler,idx){this.addSection(toggler,elements[idx],idx)},this);if(this.togglers.length){if(this.options.openAll)this.showAll();else this.openSections(this.options.firstElementsOpen)}},addSection:function(toggler,element,pos){toggler=$(toggler);element=$(element);var test=this.togglers.contains(toggler);var len=this.togglers.length;this.togglers.include(toggler);this.elements.include(element);if(len&&(!test||pos)){pos=$pick(pos-1,len-1);toggler.inject(this.elements[pos],'after');element.inject(toggler,'after')}else if(this.container&&!test){toggler.inject(this.container);element.inject(this.container)}var idx=this.togglers.indexOf(toggler);toggler.addEvent('click',this.toggleSection.bind(this,idx));var mode;if(this.options.height&&this.options.width)mode="both";else mode=(this.options.height)?"vertical":"horizontal";element.store('reveal',new Fx.Reveal(element,{transitionOpacity:this.options.opacity,mode:mode,heightOverride:this.options.fixedHeight,widthOverride:this.options.fixedWidth}));return this},onComplete:function(idx,callChain){this.fireEvent(this.elements[idx].isVisible()?'onActive':'onBackground',[this.togglers[idx],this.elements[idx]]);this.callChain();return this},showSection:function(idx,useFx){this.toggleSection(idx,useFx,true)},hideSection:function(idx,useFx){this.toggleSection(idx,useFx,false)},toggleSection:function(idx,useFx,show,callChain){var method=show?'reveal':$defined(show)?'dissolve':'toggle';callChain=$pick(callChain,true);if($pick(useFx,true)){this.elements[idx].retrieve('reveal')[method]().chain(this.onComplete.bind(this,[idx,callChain]))}else{if(method=="toggle")el.togglek();else el[method=="reveal"?'show':'hide']();this.onComplete(idx,callChain)}return this},toggleAll:function(useFx,show){var method=show?'reveal':$chk(show)?'disolve':'toggle';var last=this.elements.getLast();this.elements.each(function(el,idx){this.toggleSection(idx,useFx,show,el==last)},this);return this},toggleSections:function(sections,useFx,show){last=sections.getLast();this.elements.each(function(el,idx){this.toggleSection(idx,useFx,sections.contains(idx),show,idx==last)},this);return this},openSections:function(sections,useFx){this.toggleSections(sections,useFx,true)},closeSections:function(sections,useFx){this.toggleSections(sections,useFx,false)},showAll:function(useFx){return this.toggleAll(useFx,true)},hideAll:function(useFx){return this.toggleAll(useFx,false)}});var Lightbox=new Class({Implements:[Options,Events],options:{resizeDuration:400,initialWidth:250,initialHeight:250,zIndex:10,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()});
