
 //dbugScripts - will include non-compressed versions of this code if "jsdebug=true" is in the url of this page,
 //otherwise it will execute this code.

 if(!dbugScripts("http://publish.cnet.com:8100/html/rb/js/tron/commerce/",["commerce.tron.coco.js"])) {
 /*	commerce.tron.coco.js - packed	*/
       var StickyWinModal,StickyWinFxModal;(function(){var A=function(C){return{Extends:C,initialize:function(D){D=D||{};this.setModalOptions($merge(D.modalOptions||{},{onModalHide:function(){this.hide(false);}.bind(this)}));this.parent(D);},show:function(D){if($pick(D,true)){this.modalShow();this.win.getElements(this.modalOptions.elementsToHide).setStyle("opacity",1);}this.parent();},hide:function(D){if($pick(D,true)){this.modalHide();}this.parent($pick(D,true));}};};StickyWinModal=new Class(A(StickyWin));StickyWinModal.implement(new Modalizer);StickyWinFxModal=(typeof StickyWinFx!="undefined")?new Class(A(StickyWinFx)):$empty;try{StickyWinFxModal.implement(new Modalizer());}catch(B){}})();var JsonP=new Class({Implements:[Options,Events],options:{callBackKey:"callback",queryString:"",data:{},timeout:5000,retries:0},initialize:function(B,A){this.setOptions(A);this.url=this.makeUrl(B).url;this.fired=false;this.scripts=[];this.requests=0;this.triesRemaining=[];},request:function(C,E){var B=this.makeUrl(C);if(!$chk(E)){E=this.requests;this.requests++;}if(!$chk(this.triesRemaining[E])){this.triesRemaining[E]=this.options.retries;}var D=this.triesRemaining[E];dbug.log("retrieving by json script method: %s",B.url);var A=(Browser.Engine.trident)?50:0;(function(){var F=new Element("script",{src:B.url,type:"text/javascript",id:"jsonp_"+B.index+"_"+E});this.fired=true;this.addEvent("onComplete",function(){try{F.dispose();}catch(G){}}.bind(this));F.inject(document.head);if(D){(function(){this.triesRemaining[E]=D-1;if(F.getParent()&&D){dbug.log("removing script (%o) and retrying: try: %s, remaining: %s",E,D);F.dispose();this.request(C,E);}}).delay(this.options.timeout,this);}}.bind(this)).delay(A);return this;},makeUrl:function(B){var A;if(JsonP.requestors.contains(this)){A=JsonP.requestors.indexOf(this);}else{A=JsonP.requestors.push(this)-1;JsonP.requestors["request_"+A]=this;}if(B){var D=(B.test("\\?"))?"&":"?";var C=B+D+this.options.callBackKey+"=JsonP.requestors.request_"+A+".handleResults";if(this.options.queryString){C+="&"+this.options.queryString;}C+="&"+Hash.toQueryString(this.options.data);}else{var C=this.url;}return{url:C,index:A};},handleResults:function(A){dbug.log("jsonp received: ",A);this.fireEvent("onComplete",[A,this]);}});JsonP.requestors=[];var ThumbScroller=new Class({Extends:Fx.Scroll,scrollOptions:{thumbs:".box",axis:"x",thumbContainer:null,nav:{},startIndex:0},initialize:function(A,B){this.parent(A,$merge(this.scrollOptions,B));this.element.setStyle("overflow","hidden");this.computeDimensions();this.initNav();this.element.store("thumbscroller",this);this.toIndex(this.options.startIndex);this.lastScroll=null;return this;},computeDimensions:function(){this.thumbs=this.element.getElements(this.options.thumbs);this.setParentSize();this.positions=this.getLocations();return this;},isAtEnd:function(A){A=A||this.getRange();return(A[A.length-1].index==this.thumbs.length-1&&A[A.length-1].type!="partial");},isAtStart:function(A){A=A||this.getRange();return(A[0].index==0&&A[0].type!="partial");},getLocations:function(){return this.thumbs.map(function(B){var C=B.getComputedSize()[this.getDir("total")];var A=B.getPosition(B.getParent())[this.getDir("xy")];return{size:C,start:A,end:C+A};},this);},initNav:function(){$$(this.options.nav.next).addEvent("click",this.toNextScreen.bind(this));$$(this.options.nav.previous).addEvent("click",this.toPreviousScreen.bind(this));$$(this.options.nav.start).addEvent("click",this.toStart.bind(this));$$(this.options.nav.end).addEvent("click",this.toEnd.bind(this));},getDir:function(A){switch(A){case"total":if(this.options.axis=="y"){return"totalHeight";}return"totalWidth";case"dir":if(this.options.axis=="y"){return"height";}return"width";case"xy":default:if(this.options.axis=="y"){return"y";}return"x";}},getStart:function(A){if(this.options.axis=="y"){return[0,A];}return[A,0];},getStartPx:function(A){if(!A){return 0;}return this.positions[A].start-(this.positions[A].start-this.positions[A-1].end);},setParentSize:function(){var A=(this.options.thumbContainer)?this.element.getElement(this.options.thumbContainer):this.element.getElement(this.options.thumbs).getParent();var B=0;$each(this.thumbs,function(C){B+=C.getComputedSize({styles:["padding","border","margin"]})[this.getDir("total")];},this);A.setStyle(this.getDir("dir"),B);},getRange:function(E){E=E||this.element.getScroll()[this.getDir("xy")];var D=this.element.getComputedSize({styles:["padding"]})[this.getDir("total")];var C=[];for(var A=0;A<this.positions.length;A++){var B=this.withinRange(this.positions[A],E,E+D);if(B){C.push($merge(B,{index:A}));if(B.where=="end"){break;}}}return C;},withinRange:function(C,B,A){if(C.end>B&&C.end<=A){if(C.start>=B){return{type:"full"};}else{return{type:"partial",where:"start"};}}else{if(C.start>=B&&C.start<A){return{type:"partial",where:"end"};}else{if(C.start<B&&C.end>A){return{type:"full"};}}}return false;},toNextScreen:function(){var A=this.getRange();if(A.getLast().type=="partial"&&A.length>1){this.start.run(this.getStart(this.getStartPx(A.getLast().index)),this);}else{if($(this.thumbs[A.getLast().index+1])){this.start.run(this.getStart(this.getStartPx(A.getLast().index+1)),this);}else{this.toEnd();}}this.lastScroll="next";},toPreviousScreen:function(){var A=this.getRange();var C=(A[0].type=="partial"&&A.length>1)?A[0].index:A[0].index-1;if(!this.positions[C]){this.toStart();return ;}var B=this.positions[C].end-this.element.getComputedSize({styles:["padding"]})[this.getDir("total")];var E=this.getRange(B);var D=(E[0].type=="partial"&&E.length>1)?E[0].index+1:E[0].index;this.start.run(this.getStart(this.getStartPx(D)),this);this.lastScroll="previous";},toIndex:function(A){this.start.run(this.getStart(this.getStartPx(parseInt(A))),this);},toStart:function(){if(this.options.axis=="y"){this.toTop();}else{this.toLeft();}},toEnd:function(){if(this.options.axis=="y"){this.toBottom();}else{this.toRight();}}});var PopupVideo=new Class({Implements:Options,options:{target:null,event:"click",position:"upperLeft",videoId:null},initialize:function(A){this.setOptions(A);this.options.target.addEvent(this.options.event,this.displayPopup.bind(this));},displayPopup:function(){this.newVideo=new StickyWin({width:364,height:302,position:"upperLeft",className:"productVideo",relativeTo:this.options.target,onDisplay:this.writePlayer.delay(10,this),closeClassName:"closeVideo"},this);},writePlayer:function(){new Element("a",{"class":"closeVideo"}).addEvent("click",this.destroyPopup.bind(this)).inject(this.newVideo.win,"top");loadUniversalPlayer({parentElement:this.newVideo.win,playerType:"small",lumiereQueryType:"id",lumiereQueryValue:this.options.videoId,firstVideoPostAd:false,preRollAd:true,contentPostRollAd:true,hideTabs:true,initObject:window,initAction:false,autoPlay:true,hideBkg:true});},destroyPopup:function(){this.newVideo.destroy();}});var RVP={options:{domain:"http://reviews.cnet.com",rtssUrl:"/9804-4_7-0-0.html",validPageTypes:[4505,4852,4864,4507,4540,4510,4014,1714]},imagesLoaded:false,Thumb:new Class({Implements:Events,options:{defaultImage:"http://www.cnet.com/b.gif"},initialize:function(B,A){this.data=B;this.thumb=this.makeElem(A);this.thumb.store("rvpThumb",this);new Tips(this.thumb,{className:"rvpTip"});this.thumb.addEvent("mouseenter",function(){RVP.prodHover.ping();this.image.morph({"border-color":"#CC0000"});}.bind(this));this.thumb.addEvent("mouseleave",function(){if(!this.thumb.getElement("input[type=checkbox]").checked){this.image.morph({"border-color":"#CCCCCC"});}}.bind(this));return this;},makeElem:function(A){this.imageIsSet=false;var B=new Element("li",{title:this.makeProductName(this.data.productName),productId:this.data.productId});var C=new Element("a",{href:this.getProductLink()}).inject(B);this.image=new Element("img",{src:this.options.defaultImage}).inject(C);if(A<8){this.setImage();}new Element("span").inject(B).adopt(new Element("input",{type:"checkbox",name:"prodId",value:this.data.productId}));return B;},getProductLink:function(){if(PageVars.get("siteId","number")==9){this.data.productLink=this.data.productLink.replace("/4505-","/4014-").replace("_7-","_9-");}return this.data.productLink+"?tag=box4505";},setImage:function(){if(!this.imageIsSet){this.image=new Element("img",{src:this.data.productImage}).replaces(this.image);this.verifyImage();}this.imageIsSet=true;},verifyImage:function(){var B=this.image;if(B.naturalWidth===undefined){B=$(new Image());B.set("src",this.image.get("src"));}var A=this.testValid.pass(B,this);if(!B.complete){if(!(B.onreadystatechange===undefined)){$(B).onreadystatechange=A;}else{B.addEvent("load",A);}}else{A();}},testValid:function(A){if(A.readyState=="complete"||A.complete){var B=(A.naturalWidth!=undefined)?A.naturalWidth:A.width;if(B==1){this.image.setStyle("background","#FFF url(http://i.i.com.com/cnwk.1d/i/dl/global/image_not_available.gif) no-repeat center center");}}this.fireEvent("onImageSet");},makeProductName:function(A){if(A.length<30){return A;}var B=A.substr(0,A.lastIndexOf(" ",30));return B+"...";},remove:function(){try{this.thumb.set("morph",{onComplete:function(){this.thumb.dispose();RVP.scroller.computeDimensions().fireEvent("onComplete");}.bind(this)});this.thumb.morph({width:0});}catch(A){dbug.log("Failed to remove thumb: %o",A);}}}),add:function(A){this.getRTSS("addProducts",A);},remove:function(A){A=$splat(A);var B=[];A.each(function(C){C=C.retrieve("rvpThumb");B.push(C.data.productId);C.remove();});this.getRTSS("removeProducts",B);},clearHistory:function(){this.getRTSS("clearHistory");var A=$("recentlyViewedProds").getElement(".rvpShell");A.set("morph",{duration:250,onComplete:function(){A.getElements("li").dispose();A.setStyle("opacity",1);RVP.setBoxDisplay();}});A.morph("opacity",0);},getStored:function(){var B=Cookie.get("RVPstore");var A=false;B=(B)?B.split(":"):[];if(RVP.options.validPageTypes.contains(PageVars.get("pageType","number"))){A=PageVars.get("assetId");}else{if(PageVars.get("pageType","number")==4504){A=new Link({href:location.href}).getQuery("id");}}if(!A){return null;}if($type(A)!="array"){A=[A];}A.each(function(C){B.erase(C);B.unshift(C);});return(B.length)?B:null;},saveStored:function(A){A=A||this.getStored();if(A){Cookie.write("RVPstore",A.join(":"),{path:"/",duration:31,domain:"cnet.com"});}},getRTSS:function(B,D){B=B||"retrieveHistory";try{D=(D)?"productIds="+$splat(D).join("&productIds="):"";var A={startAt:0,maxHits:0,_siteid_:PageVars.get("siteId","number"),_editionid_:3,cmd:B};new JsonP(this.options.domain+this.options.rtssUrl,{queryString:D,data:A,onComplete:function(E){this.products=E;try{this.waiter.stop();}catch(F){}if(["addProducts","retrieveHistory"].contains(B)){this.updateData(E);}else{this.setBoxDisplay();}}.bind(RVP)}).request();}catch(C){}},setBoxDisplay:function(){var B=$("recentlyViewedProds");var A=B.getElement(".invite");if(this.products.products.length<3){var C=null;if(this.products.products.length==2){C="You can create side-by-side comparisons of the products that interest you most.";}else{C="When you look at products on CNET, we'll keep track of them here.";}A.set("text",C);A.setStyle("display","block");}else{A.hide("display","none");}var D=B.getElement(".compareSel a");if(B.getParent(".coco")){if(!this.products.products.length){D.morph({opacity:0.3});D.removeEvent("click",RVP.addToCompare);}else{D.morph({opacity:1});D.addEvent("click",RVP.addToCompare);}}else{if(this.products.products.length<2){D.morph({opacity:0.3});D.removeEvent("click",RVP.compareSelected);}else{D.morph({opacity:1});D.addEvent("click",RVP.compareSelected);}}B.getElements("li.removeSel, li.clearAll").setStyle("display",((this.products.products.length)?"block":"none"));B.getElements("li.empty").setStyle("display",((this.products.products.length)?"none":"block"));if(!this.products.products.length){B.getElement("#scrollLeft").addClass("leftInactive");B.getElement("#scrollRight").addClass("rightInactive");}},updateData:function(A){$each(this.products.products,function(D,C){new RVP.Thumb(D,C).thumb.inject($E("#recentlyViewedProds ul.thumbContainer"));});RVP.scroller=new ThumbScroller($("recentlyViewedProds").getElement(".rvpShell"),{thumbs:".thumbContainer li",thumbContainer:"ul.thumbContainer",nav:{next:"#scrollRight",previous:"#scrollLeft"}});RVP.scroller.addEvent("onComplete",function(){var G=RVP.scroller;$$(G.options.nav.next).removeClass("rightInactive");$$(G.options.nav.previous).removeClass("leftInactive");var E=G.getRange();if(G.isAtEnd(E)){$$(G.options.nav.next).addClass("rightInactive");}if(G.isAtStart(E)){$$(G.options.nav.previous).addClass("leftInactive");}if(G.lastScroll=="next"){if(!this.imagesLoaded){var F=E.length;var C=E[0].index;var D=$$("#recentlyViewedProds ul.thumbContainer li");for(C;(C<(E.length*3)+C&&C<D.length);C++){D[C].retrieve("rvpThumb").setImage();if(C==D.length-1){this.imagesLoaded=true;}}}}}.bind(this));var B=this.products.products.length;B=(B>2)?2:B;new Jlogger({tag:"box-imp"+B,ctype:"tooltype;action",cval:"box;imp"+B}).ping();this.setBoxDisplay();},buildContainer:function(){var A=new Element("div",{id:"recentlyViewedProds"});A.set("html",'            <strong><span>My recently viewed products</span></strong>            <div class="rvpBar">                <a id="scrollLeft" class="leftInactive"></a>                    <div class="rvpShell">                         <ul class="thumbContainer"></ul>                    </div>                <a id="scrollRight" class="rightInactive"></a>                <div class="invite" style="display: none"></div>            </div>            <ul class="rvpTools">                <li class="compareSel"><a class="flexButton" title="Select two or more products to compare."><b>Compare</b></a></li>                <li class="empty" style="display:none">Your history is now empty.</li>                <li class="removeSel"><a>Remove selected</a></li>                <li class="clearAll"><a>Clear all</a></li>            </ul>        ');return A;},compareSelected:function(){var A=$("recentlyViewedProds").getElements("input").filter(function(C){return C.checked;});if(A.length>1){var B="";A.each(function(C){B+="id="+C.get("value")+"&";});window.location="/4504-4_7-0.html?"+B+"&tag=boxcoco";}else{alert("You must select at least two products to compare.");}},addToCompare:function(){var A=$("recentlyViewedProds").getElements("input").filter(function(D){return D.checked;});var C=A.map(function(D){return D.get("value");});var B=new Link({href:location.href});C.combine(B.getQuery("id"));B.mergeQueryString({tag:"boxcomp",id:C});window.location.search=B.get("search");},setTracking:function(){new Jlogger({tag:"box-scroll-right",ctype:"tooltype;action",cval:"box;scrllrght",element:$("recentlyViewedProds").getElement("#scrollRight"),event:"click",fireOnce:true,onPing:function(){this.general.ping();}.bind(this)});new Jlogger({tag:"box-scroll-left",ctype:"tooltype;action",cval:"box;scrllft",event:"click",element:$("recentlyViewedProds").getElement("#scrollLeft"),fireOnce:true,onPing:function(){this.general.ping();}.bind(this)});new Jlogger({tag:"box-remove",ctype:"tooltype;action",cval:"box;remove",event:"click",element:$("recentlyViewedProds").getElement(".removeSel a"),fireOnce:true,onPing:function(){this.general.ping();}.bind(this)});new Jlogger({tag:"box-rm-all",ctype:"tooltype;action",cval:"box;rm-all",event:"click",element:$("recentlyViewedProds").getElement(".clearAll a"),fireOnce:true,onPing:function(){this.general.ping();}.bind(this)});this.general=new Jlogger({tag:"box-general",ctype:"tooltype;action",cval:"box;general",fireOnce:true});this.prodHover=new Jlogger({tag:"box-prod-hover",ctype:"tooltype;action",cval:"box;hover",fireOnce:true,onPing:function(){this.general.ping();}.bind(this)});if([4014,4366,4504,4566,1714,1724,1726].contains(PageVars.get("pageType","number"))){new JlScroller({scrollTo:{top:"recentlyViewedProds"},event:"scrollTo",tag:"box-scroll-to",ctype:"tooltype;action",cval:"box;scrollto",fireOnce:true});}$("recentlyViewedProds").getElement(".compareSel a").addEvent("click",function(){this.general.ping();}.bind(this));}};RVP.saveStored();window.addEvent("domready",function(){if($("toolboxHistory")){if(!Cookie.read("XCLGFbrowser")){new Jlogger({tag:"missing-sess-cookie"}).ping();return ;}$("toolboxHistory").adopt(RVP.buildContainer());RVP.waiter=new Waiter($("recentlyViewedProds").getElement(".rvpShell")).start();var A=RVP.getStored();if(A){RVP.add(A);if(Cookie.read("RVPstore")){Cookie.dispose("RVPstore",{path:"/",domain:"cnet.com"});}}else{RVP.getRTSS();}$("recentlyViewedProds").getElement(".removeSel a").addEvent("click",function(){var D=$("recentlyViewedProds");var C=D.getElements("input").filter(function(E){return E.checked;});var B=C.map(function(E){return E.getParent("li");});RVP.remove(B);});$("recentlyViewedProds").getElement(".clearAll a").addEvent("click",function(){RVP.clearHistory();});new Tips($("recentlyViewedProds").getElement(".compareSel a"),{className:"rvpTip"});if($("recentlyViewedProds").getParent(".coco")){$("recentlyViewedProds").getElement(".compareSel a b").set("text","Add to comparison");$("recentlyViewedProds").getElement(".compareSel a").store("tip:title","Select one or more products to add to the comparison chart.");}RVP.setTracking();}});var CoCo={initEvents:function(){try{$("whatsSame").addEvent("click",this.whatsTheSame.bind(this));$("whatsDifferent").addEvent("click",this.whatsDifferent.bind(this));}catch(A){dbug.log(A);}$$(".simProductShowLink").addEvent("click",function(B){this.showSimilarProducts(B,B.target.getProperty("prodId"));}.bind(this));},whatsTheSame:function(){dbug.log("whatsTheSame");this.hiliteElWithClassName("areSame","#cae5f5");this.hiliteElWithClassName("areDifferent","#FFFFFF");},whatsDifferent:function(){dbug.log("whatsDifferent");this.hiliteElWithClassName("areDifferent","#f8e493");this.hiliteElWithClassName("areSame","#FFFFFF");},hiliteElWithClassName:function(B,A){dbug.log("hiliteElWithClassName");$$("td."+B).each(function(C){C.getParent().morph({"background-color":A});});},showSimilarProducts:function(B,A){$(B.target).set("text","Loading...");new Request.HTML({update:$("simProduct"+A),onSuccess:function(){$(B.target).dissolve();$("simProduct"+A).reveal();$("simProduct"+A).getElement("a.compHide").addEvent("click",function(C){CoCo.hideSimilarProducts(C.target);});$("simProduct"+A).getElement("input.compProd").addEvent("click",function(C){C.stop();CoCo.addPidsToComparison(C.target);});},onFailure:function(){$("simProduct"+A).set("text","We encountered an error while loading similar products. Please try again later.");}}).get(PageVars.getPath({pageType:4504,assetId:A,pageNumber:false})+"?_tilename_=.cocoSimilarProductsAjaxUpdate&shPid="+A+"&nomesh&s=1");},hideSimilarProducts:function(B){var A=B.getParent("td").getElement("a.simProductShowLink");$("simProduct"+A.getProperty("prodId")).hide();A.set("text","Compare more products").reveal();},addPidsToComparison:function(B){var C=$(B).getParent("form").getElements("input[name=pids]");var A={id:$splat(new Link(window.location).getQueryObject()["id"])||[],tag:"addtocompare"};C.each(function(D){if(D.checked){A.id.include(D.get("value"));}});if(C.length<2){alert("Please select at least two products to compare.");}else{window.location=new Link(window.location).mergeQueryString($merge(A,{tag:"simcomp"})).get("href");}}};window.addEvent("domready",function(){CoCo.initEvents();$$(".edRate a.toolTipElement").each(function(A){var B=A.getParent("li").getElement("ul.data");if(B){A.store("tip:text",B.getParent().get("html"));}else{A.store("tip:text","Product summary not available");}});$$(".contentTools a.share").each(function(A){A.addEvent("mouseenter",PageTools.openShare.bind(PageTools));});$$(".contentTools a.email").each(function(A){A.addEvent("click",PageTools.email);});$$(".contentTools a.print").each(function(A){A.addEvent("click",PageTools.print);});$$(".prodBasicImg").each(function(A){if(A.getProperty("videoId")){new PopupVideo({target:A,videoId:A.getProperty("videoId")});}});});
 /* end packed code */
 }
       