var CNB={isDomReady:false,log:function(a){if(window.console&&window.console.firebug){console.log(a)}},environment:function(){this.host=location.hostname;this.irisHost="";this.apiURS="http://api-rps.cnet.com/rest/v1.0/";this.apiService="http://open-api.bnet.com/rest/v1.0/";this.cnbApiKey="khkhff6jwcmm2474cgjmbvqsqxtuw34y";this.site="";this.siteId="23";this.siteEnv="";this.title="BNET";this.domain="bnet.com";this.ursLogin="http://www.bnet.com/1320-4-45.html";this.helpUrl="http://bnet.custhelp.com/";this.cookieHost=this.host;var a=this.host.match("([^.]*?).(com|net|org|co.uk|com.au|co.cn)$");if($chk(a)){this.cookieHost="."+a[0]}if(this.host.contains("b2bdev")||this.host.contains("dev1")||this.host.contains("c13")||this.host.contains("cosmo")){this.siteEnv="b2bdev";this.apiURS="http://c17-rps-api-integ-lb.cnet.com:7035/rest/v1.0/";this.apiService="http://internal-api.b2bdev.bnet.com:6450/rest/v1.0/";this.cnbApiKey="";if(this.host.contains("c13")){this.irisHost=CNB.getIrisPrefix()}}else{if(this.host.contains("b2buat")){this.siteEnv="b2bdev";this.apiURS="http://c17-rps-api-integ-lb.cnet.com:7035/rest/v1.0/";this.apiService="http://internal-api.b2bdev.bnet.com:6450/rest/v1.0/";this.cnbApiKey=""}}if(this.host.contains("techrepublic")||this.irisHost.contains("techrepublic_dev")){this.site="techrepublic";this.siteId="11";this.title="TechRepublic";this.domain="techrepublic.com.com";this.ursLogin="http://techrepublic.com.com/1320-4-55.html";this.helpUrl="http://techrepublic.custhelp.com/"}else{if(this.host.contains("zdnet")||this.irisHost.contains("zdreviews_dev")){this.site="zdnet";this.siteId="2";this.title="ZDNet";this.domain="zdnet.com";this.ursLogin="http://www.zdnet.com/1320-4_24-44.html";this.helpUrl="http://zdnet.custhelp.com/"}else{if(this.host.contains("moneywatch")||this.irisHost.contains("moneywatch_dev")){this.site="moneywatch";this.siteId="252";this.title="MoneyWatch";this.domain="bnet.com";this.ursLogin="http://www.bnet.com/1320-4-45.html";this.helpUrl="http://bnet.custhelp.com/"}else{if(this.host.contains("bnet")||this.irisHost.contains("industries_dev")){this.site="bnet";this.siteId="23";this.title="BNET";this.domain="bnet.com";this.ursLogin="http://www.bnet.com/1320-4-45.html";this.helpUrl="http://bnet.custhelp.com/"}else{if(this.host.contains("findarticles")||this.irisHost.contains("fa_dev")){this.site="findarticles";this.siteId="23";this.title="BNET";this.domain="bnet.com";this.ursLogin="http://www.bnet.com/1320-4-45.html";this.helpUrl="http://bnet.custhelp.com/"}else{if(this.host.contains("smartplanet")||this.irisHost.contains("smartplanet_dev")){this.site="smartplanet";this.siteId="139";this.title="SmartPlanet";this.domain="smartplanet.com";this.ursLogin="http://membership.smartplanet.com/1320-4-213.html";this.helpUrl="javascript:new CNB.Contacter({url:'http://www.smartplanet.com/contact/internal/B2B-Customercare/subject/Smartplanet+Site+Help+%26amp%3B+Feedback', title: 'Site Help &amp; Feedback' })"}}}}}}return this},getIrisPrefix:function(){var d=location.pathname.split("/");var c="";if(d.length>1){c=(d[1].match("_dev.php"))?"/"+d[1]:""}return c},Cookie:{set:function(c,f,g,d){var a="";var e="";if(g){var b=new Date();b.setTime(b.getTime()+(g*24*60*60*1000));a="; expires="+b.toGMTString()}if(d){e="; domain="+d}document.cookie=c+"="+f+a+"; path=/"+e},get:function(b){var e=b+"=";var a=document.cookie.split(";");for(var d=0;d<a.length;d++){var f=a[d];while(f.charAt(0)==" "){f=f.substring(1,f.length)}if(f.indexOf(e)==0){return f.substring(e.length,f.length)}}return null}},DW:{ping:function(a){try{if(CNB.isDomReady){DW.redir(a)}else{window.addEvent("domready",function(){DW.redir(a)}.bind(this))}}catch(b){CNB.log(b)}}}};(function(){var a=CNB.Cookie.get("purs_3");var d=($chk(a))?a.substring(40,a.indexOf("!")):"";var b="";var g=Cookie.read("geo-data");try{var c=JSON.decode(g);b=($chk(c)&&(typeof g.domain!="undefined"))?g.domain:""}catch(f){CNB.log("Error: geo cookie: "+f)}CNB.env=CNB.environment();CNB.UserVars=new Hash({regId:d,loggedIn:false,geoDomain:b})})();Element.Properties.jsonClass={get:function(){var b=this.get("class").split(" ").filter(function(c){return c.test(":")});if(!b.length){return false}else{var a={};b.each(function(c){var d=c.split(":");if(d[1]){try{a[d[0]]=JSON.decode(d[1])}catch(f){}}});return a}}};CNB.Selector=new Class({Implements:[Options,Events],options:{setCookie:true,cookieName:null,action:"click",startSeq:null,styleType:"display"},initialize:function(b,c,a){this.setOptions(a);this.setElements(b,c);this.initSeq();this.setCookieName();this.checkCookie();this.tabs.each(function(e,d){this.close(d);e.addEvent(this.options.action,function(f){if(!e.hasClass("external")){f=new Event(f).stop();this.setSeq(d);this.close(this.seq.past);this.open(d);this.setCookie()}}.bind(this))}.bind(this));this.open(this.seq.current)},setElements:function(a,b){this.tabs=($type(a)=="array")?a:[a];this.contents=($type(b)=="array")?b:[b]},initSeq:function(){var a=($chk(this.options.startSeq))?this.options.startSeq:0;this.seq={current:a,past:null}},setSeq:function(a){this.seq.past=this.seq.current;this.seq.current=a},open:function(a){this.tabs[a].addClass("on");if(this.options.styleType=="visibility"){this.contents[a].setStyle("visibility","visible");this.contents[a].setStyle("display","block")}else{this.contents[a].setStyle("display","block")}this.fireEvent("open",a)},close:function(a){this.tabs[a].removeClass("on");if(!this.contents[a].hasClass("on-perm")){if(this.options.styleType=="visibility"){this.contents[a].setStyle("visibility","hidden")}else{this.contents[a].setStyle("display","none")}}this.fireEvent("close",a)},checkCookie:function(){if(this.options.setCookie){var a=Cookie.read(this.cookieName);if(a){this.seq.current=a}}},setCookie:function(a){if(this.options.setCookie){Cookie.write(this.cookieName,a,{duration:12})}},setCookieName:function(){this.cookieName=(this.options.cookieName==null)?this.makeCookieName():this.options.cookieName},makeCookieName:function(){var b=document.URL;var a=this.tabs[0].get("text").slice(0,10).replace(/[ \t]/g,"")+"_"+b.slice(b.length-15,b.length-5);return a}});CNB.Pop=new Class({Extends:CNB.Selector,Implements:Options,options:{setCookie:false,cookieName:null,relative:null,shadow:false,styleType:"visibility",location:{x:"left",y:"bottom"},offset:{x:0,y:0}},initialize:function(b,c,a){this.setOptions(a);this.setElements(b,c);this.initSeq();this.tabs.each(function(e,d){this.close(d);this.position(e,this.contents[d]);this.attachEvents(e,d,true);this.attachEvents(this.contents[d],d);if(this.options.shadow){var f=new CNB.Shadow(this.contents[d])}}.bind(this))},position:function(a,b){var c=new CNB.Position(b,{relative:this.options.relative,positionTo:a,location:this.options.location,offset:this.options.offset})},attachEvents:function(c,b,a){c.addEvent("mouseover",function(d){d=new Event(d).stop();this.setSeq(b);if(b!=this.seq.past){this.close(this.seq.past)}$clear(this.closeDelay);if($chk(a)){this.position(c,this.contents[b])}this.openDelay=this.open.pass(b,this).delay(150)}.bind(this));c.addEvent("mouseout",function(d){d=new Event(d).stop();$clear(this.openDelay);this.closeDelay=this.close.pass(b,this).delay(250)}.bind(this))}});CNB.Rotocop=new Class({Implements:[Options,Events],options:{showNumber:3,showNav:false,slide:true,usableDisabled:false,startSeq:0,timer:null,margin:0,contents:null},initialize:function(a,b){this.setOptions(b);this.container=a;this.load()},load:function(){this.fireEvent("load");this.cover=this.container.getElement(".roto-cover");if($chk(this.options.contents)){this.contents=this.options.contents;this.contents.inject(this.cover,"top")}else{this.contents=this.container.getElement(".roto-items")}if(!$chk(this.contents)){return false}this.items=this.contents.getChildren();this.seq=this.options.startSeq;this.z=Math.floor((this.items.length-1)/this.options.showNumber);this.contentSize=this.cover.getSize();if(this.items.length>this.options.showNumber){this.container.addClass("roto-active");this.controls=new Element("div",{"class":"roto-controls"}).inject(this.container,"bottom");this.buildPrev();this.buildNext();if(this.options.showNav){this.buildNav()}if($chk(this.options.timer)){this.setTimer()}}},setTimer:function(){this.rotoTimer=this.next.periodical(this.options.timer,this);var a=[this.prevLink,this.nextLink];if(this.options.showNav){a.extend(this.navItems)}a.each(function(b){b.addEvent("click",function(c){$clear(this.rotoTimer)}.bind(this))}.bind(this))},rotate:function(c){if(this.options.showNav){this.navItems[this.seq].removeClass("on");this.navItems[c].addClass("on")}if(this.seq==this.z){this.nextLink.removeClass("disabled")}else{if(this.seq===0){this.prevLink.removeClass("disabled")}}if(c===0){this.prevLink.addClass("disabled")}else{if(c==this.z){this.nextLink.addClass("disabled")}}var b=this.contentSize.x+this.options.margin;var a=(c===0)?0:c*b;if(this.options.slide==true){this.contents.tween("margin-left","-"+a+"px")}else{this.contents.setStyle("margin-left","-"+a+"px")}this.seq=c},buildNav:function(){this.navItems=[];var a=new Element("ul",{"class":"roto-nav clear"}).inject(this.controls,"bottom");for(i=0;i<=this.z;i++){this.navItems[i]=new Element("li",{html:"<a></a>"}).inject(a,"bottom")}this.navItems[0].addClass("on");this.navItems.each(function(c,b){c.addEvent("click",function(d){d=new Event(d).stop();this.rotate(b)}.bind(this))}.bind(this))},buildPrev:function(){this.prevLink=new Element("a",{"class":"roto-prev disabled",html:"Previous"}).inject(this.controls,"bottom");this.prevLink.addEvent("click",function(a){a=new Event(a).stop();if(this.options.usableDisabled||!this.prevLink.hasClass("disabled")){this.prev()}}.bind(this))},buildNext:function(){this.nextLink=new Element("a",{"class":"roto-next",html:"Next"}).inject(this.controls,"bottom");this.nextLink.addEvent("click",function(a){a=new Event(a).stop();if(this.options.usableDisabled||!this.nextLink.hasClass("disabled")){this.next()}}.bind(this))},prev:function(){var a=(this.seq===0)?this.z:this.seq-1;this.rotate(a);this.fireEvent("prev")},next:function(){var a=(this.seq==this.z)?0:this.seq+1;this.rotate(a);this.fireEvent("next")}});CNB.Pillars={init:function(){this.handles=$$("#pillars h5");this.contents=$$("#pillars .inner");var a=new CNB.Truncate($$("#pillars h5 span"),{length:38}).basic();this.handles.each(function(d,c){var b=new CNB.fxDrop(this.contents[c]);d.addEvent("click",function(f){f=new Event(f).stop();if(!this.contents[c].hasClass("on")){this.closeAll()}b.chain(function(){d.toggleClass("on")});b.toggle()}.bind(this))}.bind(this))},closeAll:function(){this.contents.each(function(c,b){if(c.hasClass("on")){var a=new CNB.fxDrop(c);this.handles[b].removeClass("on");a.close()}}.bind(this))}};CNB.fxDrop=new Class({Implements:[Chain,Options],options:{speed:300},initialize:function(b,a){this.setOptions(a);this.element=b;this.height=this.element.getScrollSize().y;if(!this.options.open&&this.element.get("height")!="0"){this.element.setStyles({visibility:"hidden",height:0,overflow:"hidden"})}this.fx=new Fx.Morph(this.element,{duration:this.options.speed,link:"ignore"})},toggle:function(){if(this.element.hasClass("on")){this.close()}else{this.open()}},open:function(){this.element.setStyle("visibility","visible");this.callChain();this.fx.start({height:this.height});this.element.addClass("on")},close:function(){this.fx.start({height:0}).chain(function(){this.element.setStyle("visibility","hidden");this.callChain()}.bind(this));this.element.removeClass("on")}});CNB.Tables=new Class({Implements:Options,options:{evenclass:"even",oddclass:"odd"},initialize:function(b,a){this.setOptions(a);if($type(b)!="array"){b=[b]}b.each(function(c){this.stripe(c.getElements("tbody tr"))}.bind(this))},stripe:function(a){a.each(function(d,b){var c=(b%2===0)?this.options.oddclass:this.options.evenclass;d.addClass(c)}.bind(this))}});CNB.Position=new Class({Implements:Options,options:{positionTo:null,location:{x:"left",y:"bottom"},position:"absolute",inWindow:false,offEdge:5,relative:null,offset:{x:0,y:0}},initialize:function(c,a){this.setOptions(a);this.elem=$(c);this.link=($chk(this.options.positionTo))?$(this.options.positionTo):null;this.elementSize=this.elem.getSize();if($chk(this.link)){var b=($chk(this.options.relative))?this.options.relative:this.elem.getOffsetParent();this.linkCoords=this.link.getCoordinates(b);if(this.options.offset.y=="center"){this.options.offset.y="-"+(this.elementSize.y/2-this.linkCoords.height/2)}if(this.options.offset.x=="center"){this.options.offset.x="-"+(this.elementSize.x/2-this.linkCoords.width/2)}if(this.options.inWindow){this.windowStats();this.yActual=this.linkCoords.bottom+this.elementSize.y;this.xActual=this.linkCoords.left+this.elementSize.x;this.yMax=this.windowSize.y+this.windowScroll.y;this.xMax=this.windowSize.x+this.windowScroll.x;this.top=(this.yActual>this.yMax)?this.linkCoords.bottom-((this.yActual-this.yMax)+this.options.offEdge):this.linkCoords.bottom;this.left=(this.xActual>this.xMax)?this.linkCoords.left-((this.xActual-this.xMax)+this.options.offEdge):this.linkCoords.left}else{this.top=this.linkCoords[this.options.location.y]+parseInt(this.options.offset.y);this.left=this.linkCoords[this.options.location.x]+parseInt(this.options.offset.x)}}else{this.windowStats();this.top=(this.windowSize.y/2)-(this.elementSize.y/2)+parseInt(this.options.offset.y);this.left=(this.windowSize.x/2)-(this.elementSize.x/2)+parseInt(this.options.offset.x);if(this.options.position=="absolute"){this.top=this.top+this.windowScroll.y;this.left=this.left+this.windowScroll.x}if(this.top<0){this.top=this.options.offEdge}}this.setPosition()},windowStats:function(){this.windowSize=$(window).getSize();this.windowScroll=$(window).getScroll()},setPosition:function(){this.elem.set("styles",{position:this.options.position,top:this.top,left:this.left})}});CNB.Scrollbar=new Class({Implements:[Options,Events],options:{ignoreMouse:false,mode:"vertical"},initialize:function(b,a){this.setOptions(a);this.steps=(this.options.mode=="horizontal")?b.getScrollSize().x-b.getSize().x:b.getScrollSize().y-b.getSize().y;if(this.steps>0){this.fireEvent("activate");this.scrollbar=new Element("div",{"class":"scrollbar"}).inject(b,"after");this.handle=new Element("div",{"class":"handle"}).inject(this.scrollbar,"top");this.slider=new Slider(this.scrollbar,this.handle,{steps:this.steps,mode:"vertical",onChange:function(d){var c=(this.options.mode=="horizontal")?d:0;var e=(this.options.mode=="horizontal")?0:d;b.scrollTo(c,e)}}).set(0);if(!this.options.ignoreMouse){$$(b,this.scrollbar).addEvent("mousewheel",function(d){d=new Event(d).stop();var c=this.slider.step-d.wheel*30;this.slider.set(c)}.bind(this))}$(document.body).addEvent("mouseleave",function(){this.slider.drag.stop()}.bind(this))}}});CNB.Fixation=new Class({Implements:Options,options:{inset:20},initialize:function(c,a,b){this.setOptions(b);this.element=$(c);this.container=$(a);this.coords=this.container.getCoordinates();this.container.size=this.container.getSize();this.defaults=this.element.getStyles("left","top");this.element.size=this.element.getSize();this.max={top:this.coords.top-this.options.inset+this.defaults.top.toInt(),bottom:this.coords.bottom-this.options.inset,colBottom:this.container.size.y-this.element.size.y};this.fixed=false;this.pos={position:"absolute",top:this.defaults.top,left:this.defaults.left};if(!Browser.Engine.trident4&&(this.element.size.y+this.options.inset<window.getSize().y)){this.attachScroll();this.attachResize()}},attachScroll:function(){window.addEvent("scroll",function(){var a=window.getScroll();if(this.fixed&&a.y<this.max.top){this.pos={position:"absolute",top:this.defaults.top,left:this.defaults.left};this.setPosition();this.fixed=false}else{if(this.fixed&&(a.y+this.element.size.y)>this.max.bottom){this.pos={position:"absolute",top:this.max.colBottom,left:this.defaults.left};this.setPosition();this.fixed=false}else{if(!this.fixed&&(a.y>this.max.top)&&(a.y+this.element.size.y<this.max.bottom)){this.pos={position:"fixed",top:this.options.inset,left:this.coords.left};this.setPosition();this.fixed=true}}}}.bind(this))},attachResize:function(){window.addEvent("resize",function(){this.coords=this.container.getCoordinates();if(this.fixed){this.pos.left=this.coords.left;this.setPosition()}}.bind(this))},setPosition:function(){this.element.setStyles({position:this.pos.position,top:this.pos.top,left:this.pos.left})}});CNB.Pagination=new Class({Implements:Options,options:{count:"10",total:0,start:1,nextAction:$empty,range:4},initialize:function(a,b){this.setOptions(b);this.container=$(a);this.pagetotal=Math.ceil(this.options.total/this.options.count);this.pagelist=new Element("ul",{"class":"clear"}).inject(this.container,"top");this.page=new Element("span",{"class":"page"}).inject(this.container,"bottom");this.set(this.options.start)},set:function(c){this.pagelist.empty();var b=false;var a;if(c<=6){a=(this.pagetotal>10)?10:this.pagetotal;for(i=1;i<=a;i++){b=(i==c)?true:false;this.setItem(i,b)}if(this.pagetotal>a){if(this.pagetotal>(a+1)){this.setItem("sep")}this.setItem(this.pagetotal)}}else{a=(this.pagetotal>(c+this.options.range))?c+this.options.range:this.pagetotal;this.setItem(1,false);this.setItem("sep");for(i=c-this.options.range;i<c;i++){this.setItem(i,b)}this.setItem(c,true);for(i=c+1;i<=a;i++){this.setItem(i,b)}if(this.pagetotal>a){if(this.pagetotal>(a+1)){this.setItem("sep")}this.setItem(this.pagetotal)}}this.page.set("text","page "+c+" of "+this.pagetotal)},setItem:function(c,a){if($type(c)=="number"){var d=new Element("li").set("html","<a>"+c+"</a>").inject(this.pagelist,"bottom").addEvent("click",function(f){f=new Event(f).stop();this.set(c);this.options.nextAction(c)}.bind(this));if(a===true){d.addClass("on")}}else{var b=new Element("li",{"class":"sep"}).inject(this.pagelist,"bottom").set("text","...")}}});CNB.Layered=new Class({Implements:[Options,Events],options:{id:"layered",container:null,drag:true,width:474,title:"",shadow:true,modal:false,zindex:5500,inputFocus:false,nextAction:$empty,className:"",parentLayer:null,relative:null,maxHeight:true,positionTo:null,inWindow:false,offEdge:10,offset:{x:0,y:0}},initialize:function(b,a){this.setOptions(a);if($chk(this.options.parentLayer)){this._childLayer(this.options.parentLayer)}this.contents=(this._isDump(b))?b.getChildren().clone():b;if(!CNB.isDomReady&&(Browser.Engine.trident4||Browser.Engine.trident5)){window.addEvent("domready",function(){this.load()}.bind(this))}else{this.load()}return this},load:function(){this.fireEvent("load");this.container=($chk(this.options.container))?$(this.options.container):$(document.body);this._dispose();this.position="absolute";if(this.options.modal){this.modal=new CNB.Modal({id:"modal-"+this.options.id,zindex:this.options.zindex-1});this.modal.load();if(!Browser.Engine.trident4){this.position="fixed"}}this.win=new Element("div",{id:this.options.id,"class":"layered "+this.options.className,styles:{"z-index":this.options.zindex}}).inject(this.container,"bottom");if(this.options.width!="-"){this.win.setStyle("width",this.options.width)}this.winHold=new Element("div",{"class":"layered-container"}).inject(this.win,"bottom");this.head=new Element("div",{id:this.options.id+"-header","class":"layered-header"}).inject(this.winHold,"top");if($chk(this.options.title)){this.head.set("html","<h6>"+this.options.title+"</h6>")}this.closeBtn=new Element("a",{"class":"close close-x",styles:{"z-index":this.options.zindex+1}}).inject(this.winHold,"top");this.contentHold=new Element("div",{id:this.options.id+"-content","class":"layered-content"}).inject(this.winHold,"bottom");this.content=new Element("div",{"class":"clear loading-zone"}).inject(this.contentHold,"bottom").adopt(this.contents);if($chk(this.options.maxHeight)){var b=($type(this.options.maxHeight)=="number")?this.options.maxHeight:$(window).getSize().y-100;this.contentHold.setStyles({"max-height":b,overflow:"auto"})}this.initClose(this.win);this.options.nextAction();if(this.options.shadow){var c=new CNB.Shadow(this.win)}if(this.options.drag){this.drag()}this.fireEvent("complete");this._position();if(this.options.inputFocus){var a=this.content.getElement("input[type!=hidden]");if($chk(a)){a.focus()}}},loading:function(a){if(a=="start"){this.contentHold.addClass("loading");this.content.setStyle("visibility","hidden")}else{if(a=="stop"){this.contentHold.removeClass("loading");this.content.setStyle("visibility","visible")}}},_dispose:function(a){if($(this.options.id)){$(this.options.id).dispose();if($("modal-"+this.options.id)){$("modal-"+this.options.id).dispose()}}},_childLayer:function(a){this.options.zindex=a.options.zindex+5;this.options.id=a.options.id+"-child"},_isDump:function(a){var b=$splat(a).every(function(c){return c.hasClass("dump")});return b},_position:function(){var a=new CNB.Position(this.win,{relative:this.options.relative,positionTo:this.options.positionTo,position:this.position,inWindow:this.options.inWindow,offEdge:this.options.offEdge,offset:{x:this.options.offset.x,y:this.options.offset.y}})},initClose:function(a){a.getElements(".close").each(function(c,b){c.addEvent("click",function(d){d=new Event(d).stop();this.close()}.bind(this))}.bind(this))},close:function(c){if(c=="fade"){var a=this.win;var b=new Fx.Tween(a,{property:"opacity"});b.start(1,0).chain(function(){a.destroy()})}else{this.win.destroy()}if(this.options.modal){this.modal.close()}this.fireEvent("close")},replace:function(a){if($type(a)=="string"){a=new Element("p",{html:a})}else{a=(this._isDump(a))?a.getChildren().clone():a}this.content.empty().adopt(a);this.initClose(this.content);this._position();this.fireEvent("replace")},drag:function(){this.head.setStyle("cursor","move");var a=new Drag(this.win,{handle:this.head})}});CNB.Modal=new Class({Implements:[Options,Events],options:{id:"modal",container:null,opacity:".6",color:"#000",zindex:5000},initialize:function(b){this.setOptions(b);this.container=($chk(this.options.container))?$(this.options.container):$(document.body);var a=(Browser.Engine.trident4)?"absolute":"fixed";this.modal=new Element("div",{id:this.options.id,styles:{"class":"modal",position:a,left:"0",top:"0",width:"100%",height:"100%","z-index":this.options.zindex,opacity:"0","background-color":this.options.color}});this.fade=new Fx.Tween(this.modal)},load:function(){this.modal.inject(this.container,"bottom");this.fade.start("opacity",".0",".5")},close:function(){this.fade.start("opacity",".5",".0").chain(function(){this.modal.destroy()}.bind(this))}});CNB.Shadow=new Class({Implements:Options,options:{top:true,btm:true,left:true,right:true},initialize:function(a,b){this.setOptions(b);if(!Browser.Engine.trident4){this.container=$(a);if(this.options.top){this.top=new Element("div",{"class":"shadow shadow-top png"}).inject(this.container,"bottom")}if(this.options.btm){this.btm=new Element("div",{"class":"shadow shadow-btm png"}).inject(this.container,"bottom")}if(this.options.left){this.left=new Element("div",{"class":"shadow shadow-left png"}).inject(this.container,"bottom")}if(this.options.right){this.right=new Element("div",{"class":"shadow shadow-right png"}).inject(this.container,"bottom")}}}});CNB.InputFocus=new Class({Implements:Options,options:{container:null,className:"focus"},initialize:function(b){this.setOptions(b);var c=[];if($chk(this.options.container)){var a=$(this.options.container);c=a.getElements("."+this.options.className)}else{c=$$("."+this.options.className)}c.each(function(f,e){f.addClass("unfocus");f.removeClass("focus");var d=f.get("value");f.addEvent("focus",function(g){if(f.hasClass("unfocus")){f.removeClass("unfocus");f.set("value","")}}.bind(this));f.addEvent("blur",function(g){if(!$chk(f.get("value"))){f.addClass("unfocus");f.set("value",d)}}.bind(this))}.bind(this))}});CNB.Placeholder=new Class({initialize:function(a){if($chk(a)){this.set(a)}},set:function(a){$splat(a).each(function(c,b){this.addPlaceholder(c);c.addEvent("focus",this.removePlaceholder.pass(c));c.addEvent("blur",this.addPlaceholder.pass(c))}.bind(this))},addPlaceholder:function(a){var b=a.getProperty("placeholder");if(!$chk(a.value)||(a.value==b)){a.addClass("placeholder");a.value=b}},removePlaceholder:function(a){if(a.hasClass("placeholder")){a.value="";a.removeClass("placeholder")}}});CNB.Replacer=new Class({Implements:Options,options:{destroy:false,stripScripts:false},initialize:function(d,a,b){this.setOptions(b);if($chk(d)&&$chk(a)){var c=$(d).get("html");if(this.options.stripScripts){c=c.stripScripts()}$(a).set("html",c);if(this.options.destroy){$(d).destroy()}}}});CNB.Contacter=new Class({Implements:Options,options:{url:null,title:"Contact"},initialize:function(c){this.setOptions(c);var d=new Element("div",{id:"contact-holder","class":"loading",styles:{height:"350px"}});var b=new CNB.Layered(d,{title:this.options.title});var e=this.setCookie.bind(this);var a=this.getCookie.bind(this);var f=new Request.HTML({onSuccess:function(l,h,m){d.set("html",m).removeClass("loading").setStyle("height","auto");var j=d.getElement("form");var g=new CNB.InputFocus({className:"focus-lag"});a(j);e(j);var k=new CNB.Submitter(j)},onFailure:function(g){d.removeClass("loading");var h=new Element("p",{html:'Unfortunately, the delivery failed. Please try sending your message at our <a href="http://bnet.custhelp.com/">Site Help &amp; Feedback</a> page.',"class":"error"}).inject(d,"top")}}).send({url:this.options.url})},getCookie:function(b){var c=Cookie.read("cnb_contact_info");if($chk(c)){var a=JSON.decode(c);$each(a,function(d,e){b.getElement("input[name="+e+"]").removeClass("unfocus");b.getElement("input[name="+e+"]").value=d})}},setCookie:function(a){a.addEvent("submit",function(){var b=a.getElement("input");if(!b.hasClass("unfocus")&&!b.hasClass("placeholder")){Cookie.write("cnb_contact_info",JSON.encode({name:a.getElement("input[name=name]").value,email:a.getElement("input[name=email]").value}),{duration:30,domain:CNB.env.cookieHost,path:"/"})}})}});CNB.Submitter=new Class({Implements:Options,options:{msgSuccess:"It has been submitted. Thanks.",msgFailure:"Something went wrong."},initialize:function(b,a){this.setOptions(a);this.form=b;var c=new CNB.Validate(this.form);this.form.addEvent("submit",function(f){f.stop();var d=this.submitted.bind(this);this.form.set("send",{onSuccess:function(e){d(true)},onFailure:function(e){d(false)}});if(c.isValid()){this.form.send()}}.bind(this))},submitted:function(c){var a=(c)?this.options.msgSuccess:this.options.msgFailure;var b=new Element("p",{"class":"form-success"}).set("text",a);b.replaces(this.form)}});CNB.Truncate=new Class({Implements:Options,options:{format:"characters",length:100,showMore:false,textEnd:"...",textMore:"+more",textLess:"-less"},initialize:function(b,a){this.setOptions(a);this.content=$splat(b)},basic:function(){this.content.each(function(a){if(this._getLength(a.get("text"))>this.options.length){this._setHtml(a,this._getExcerpt(a))}}.bind(this))},moreLess:function(){this.content.each(function(a){if(this._getLength(a.get("text"))>this.options.length){if(this.options.format=="tags"){this._tags(a)}else{this._toggle(a,a.get("html").clean(),this._getExcerpt(a),false)}}}.bind(this))},_tags:function(c){var a=new Element("span",{"class":"tags-more",styles:{display:"none"}}).set("html",", "+this._getHidden(c.get("html").clean()));this._setHtml(c,this._getExcerpt(c));var b=new Element("span",{"class":"tags-ellipsis"}).set("html",this.options.textEnd).inject(c,"bottom");a.inject(c,"bottom");c.addEvents({mouseenter:function(){b.setStyle("display","none");a.setStyle("display","inline")},mouseleave:function(){b.setStyle("display","inline");a.setStyle("display","none")}})},_toggle:function(f,e,c,g){if(g){this._setHtml(f,e);g=false;text=this.options.textLess}else{this._setHtml(f,c);g=true;text=this.options.textMore}var b=this._toggle.bind(this);var d=new Element("a",{text:" "+text,events:{click:function(h){h=new Event(h).stop();b(f,e,c,g)}}});var a=(e.substr(0,6).contains("<p>"))?"p":"span";new Element(a,{"class":"more"}).adopt(d).inject(f,"bottom")},_getLength:function(b){var a;switch(this.options.format){case"words":a=b.split(" ").length;break;case"tags":a=b.split(",").length;break;default:a=b.length}return a},_getExcerpt:function(b){var a=b.get("html").clean();var c=b.get("text");switch(this.options.format){case"words":c=c.split(" ").slice(0,this.options.length).join(" ");break;case"tags":c=a.split(",").slice(0,this.options.length).join(", ");break;default:c=c.substring(0,this.options.length)}if(this.options.format!="tags"){c=c.replace(/\w+$/,"").replace(/\s+$/,"");if(a.substr(0,6).contains("<p>")){c="<p>"+c+this.options.textEnd+"</p>"}else{c=c+this.options.textEnd}}return c},_getHidden:function(b){var a=b.split(",").slice(this.options.length).join(", ");return a},_setHtml:function(b,a){b.set("html",a)}});CNB.Validate=new Class({Implements:[Options,Events],options:{msgEmpty:"This field is required",msgEmail:"Please enter a valid email",msgZipcode:"Invalid Postal Code",msgConfirmPw:"Passwords do not match",msgRequireOne:"Please make a selection",msgTooShort:"This field must be at least %x% characters long.",msgTooLong:"This field can't be more than %x% characters long.",msgSpecChars:"Special characters are not allowed in this field."},initialize:function(b,a){this.setOptions(a);this.form=b;this.errorInputs={}},validate:function(d){var e=d.get("value").trim();if(d.hasClass("minlength")){var c=this._getLength(d,"min");if(e.length<c){this.errorInput(d,this.options.msgTooShort.replace("%x%",c));this.wellformed=false}}else{if(d.hasClass("maxlength")){var a=this._getLength(d,"max");if(e.length>a){this.errorInput(d,this.options.msgTooLong.replace("%x%",a));this.wellformed=false}}else{if(d.hasClass("email")&&(!e.test(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i))){this.errorInput(d,this.options.msgEmail);this.wellformed=false}else{if(d.hasClass("confirm-pw")){if(!this.confirmPassword()){this.wellformed=false}}else{if(d.hasClass("zipcode-us")&&(!e.test(/^[0-9]+$/))){this.errorInput(d,this.options.msgZipcode);this.wellformed=false}else{if(d.hasClass("unfocus")||d.hasClass("placeholder")){this.errorInput(d,this.options.msgEmpty);this.wellformed=false}else{if(d.hasClass("specialchars")){if(!this.specChars(d)){this.errorInput(d,this.options.msgSpecChars);this.wellformed=false}}}}}}}}if(d.hasClass("required")){if(d.get("type")=="checkbox"||d.get("type")=="radio"){if(d.get("checked")!=true){this.errorInput(d,this.options.msgEmpty);this.wellformed=false}}else{if(d.get("type")=="select-one"){var b=d.getElements("option").filter(function(f){return f.selected});if(!$chk(b[0].get("value"))||(b[0].get("value").toLowerCase()=="notselected")){this.errorInput(d,this.options.msgEmpty);this.wellformed=false}}else{if(!$chk(e)){this.errorInput(d,this.options.msgEmpty);this.wellformed=false}}}}},customValidate:function(b,a){this.clearInput(b);a(b,this._customCallback.bind(this))},_customCallback:function(a,b,c){if(!c){this.errorInput(a,b)}},_getLength:function(b,a){var c=(a=="min")?1:1000;b.get("class").split(" ").each(function(d){if(d.contains("length-")){c=d.slice(7).toInt()}});return c},confirmPassword:function(){var a=this.form.getElements(".password");if(a[0].get("value")!=a[1].get("value")){a.each(function(c,b){this.errorInput(c,this.options.msgConfirmPw)}.bind(this));return false}else{return true}},specChars:function(c){var d="%;";var a=true;for(var b=0;b<c.get("value").length;b++){if(d.indexOf(c.get("value").charAt(b))!=-1){a=false}}return a},requireOneValidate:function(a){$splat(a).each(function(b){var c=b.getElements("input");var d=false;c.each(function(e){if(e.get("type")=="checkbox"||e.get("type")=="radio"){if(e.get("checked")==true){d=true}}else{if($chk(val)){d=true}}});if(!d){this.errorMessage(this.options.msgRequireOne,false,b);this.wellformed=false}}.bind(this))},isValid:function(){this.wellformed=true;this.clearErrors();var a=this.form.getElements(".required, .validate");a.each(function(b){this.validate(b)}.bind(this));this.form.getElements(".require-one").each(function(b){this.requireOneValidate(b)}.bind(this));if(this.wellformed){this.fireEvent("valid");return true}else{this.fireEvent("notValid");return false}},clearErrors:function(){this.form.getElements(".error-global").each(function(a){a.destroy()});this.form.getElements(".error-element").each(function(a){this.clearInput(a)}.bind(this))},clearInput:function(b){b.removeClass("error-element");if($chk(this.errorInputs[b.get("name")])){this.errorInputs[b.get("name")].destroy()}var a=b.getParent(".level-input");if($chk(a)){a.removeClass("error-level")}},errorInput:function(b,d,c){var a=b.getParent(".level-input");this.clearInput(b,a);b.addEvent("focus",this.clearInput.pass([b,a],this));this.errorInputs[b.get("name")]=new Element("span",{"class":"error-text",html:d});if($chk(a)){a.addClass("error-level");this.errorInputs[b.get("name")].inject(a,"bottom");b.addClass("error-element");if($chk(c)){a.addClass("error-valid")}}else{if($chk(c)){this.errorInputs[b.get("name")].addClass("error-valid")}else{b.addClass("error-element")}this.errorInputs[b.get("name")].inject(b,"after")}},errorMessage:function(e,d,a){if(this.errorMsg){this.errorMsg.destroy()}var c="error-global";if(d){c+=" error-valid"}if($type(e)=="string"){e=new Element("p",{html:e})}this.errorMsg=new Element("div",{"class":c});var b=($chk(a))?a:this.form;this.errorMsg.inject(b,"top").adopt(e)}});CNB.FormBuilder=new Class({Implements:[Options,Events],options:{id:"",className:"",focus:false,fieldsets:null,buttons:null,levels:true},initialize:function(a){this.setOptions(a);this.fieldsets={};this.fields={};this.buttons={};this.cont=new Element("div",{id:this.options.id+"-cont","class":this.options.className+"-cont"});this.form=new Element("form",{id:this.options.id,"class":this.options.className}).inject(this.cont,"top");this.validate=new CNB.Validate(this.form);if($chk(this.options.fieldsets)){this.addFieldsets(this.options.fieldsets)}if($chk(this.options.buttons)){this.addButtons(this.options.buttons)}this.form.addEvent("submit",function(c){c.stop();var b=this.fieldHash();this.fireEvent("submitStart",b);if(this.validate.isValid()){this.fireEvent("submit",b)}else{this.fireEvent("error")}}.bind(this));return this},addFieldsets:function(a){$splat(a).each(function(e,b){var f=($chk(e.id))?e.id:this.options.id+"-"+b;var d=($chk(e.className))?e.className:"";this.fieldsets[f]=new Element("fieldset",{id:f,"class":d}).inject(this.form,"bottom");if($chk(e.legend)){var c=new Element("legend",{text:e.legend}).inject(this.fieldsets[f],"top")}this.addFields(e.fields,f)}.bind(this))},addFields:function(b,a){radioNum=1;$splat(b).each(function(j,g){var c={};c.name=($chk(j.name))?j.name:a+"-input-"+g;c.value=($chk(j.value))?j.value:"";c.type=($chk(j.type))?j.type:"";c["class"]=($chk(j.className))?j.className:"";c.checked=($chk(j.checked))?j.checked:"";c.disabled=($chk(j.disabled))?j.disabled:"";c.id=c.name+"-input-"+g;if(c.type!="hidden"&&this.options.levels){var k=new Element("div",{id:"level-"+c.id,"class":"level-input level-"+c.type+" level-"+c.name+" clear"}).inject(this.fieldsets[a],"bottom");if($chk(j.label)){var f=new Element("label",{"for":c.id,html:j.label}).inject(k,"bottom")}}var d=(c.type=="hidden"||!this.options.levels)?this.fieldsets[a]:k;if(c.type=="select"){this.fields[c.name]=new Element("select",{"class":c["class"],id:c.id,name:c.name,disabled:c.disabled}).inject(d,"bottom");j.options.each(function(m,l){var n={};n.text=($chk(m.text))?m.text:"";n.value=($chk(m.value))?m.value:"";n.selected=($chk(m.selected))?m.selected:"";n.disabled=($chk(m.disabled))?m.disabled:"";new Element("option",n).inject(this.fields[c.name],"bottom")}.bind(this))}else{if(c.type=="textarea"){this.fields[c.name]=new Element("textarea",{"class":c["class"],id:c.id,name:c.name,disabled:c.disabled,value:c.value}).inject(d,"bottom")}else{var h=(c.type=="checkbox"||c.type=="radio")?"top":"bottom";var e=c.name;if(c.type=="radio"){e=c.name+radioNum;radioNum++}this.fields[e]=new Element("input",{name:c.name,type:c.type,"class":c["class"],value:c.value,id:c.id,checked:c.checked,disabled:c.disabled}).inject(d,h)}}if($chk(j.validate)){this.fields[c.name].addEvent(j.validate.event,this.validate.customValidate.bind(this.validate,[this.fields[c.name],j.validate.fn]))}if(this.options.focus&&j.type!="hidden"){this.fields[c.name].focus();this.options.focus=false}}.bind(this))},addButtons:function(c){if(this.options.levels){var b=new Element("div",{id:this.options.id+"-submit","class":"level-input level-submit clear"}).inject(this.form,"bottom")}var a=(!this.options.levels)?this.form.getLast("fieldset"):b;$splat(c).each(function(f,e){var d={};d.events={};d.name=($chk(f.name))?f.name:this.options.id+"-button-"+e;d["class"]=($chk(f.className))?f.className:"";d.type=($chk(f.type))?f.type:"button";d.disabled=($chk(f.disabled))?f.disabled:"";d.text=($chk(f.text))?f.text:"";if($chk(f.handler)){d.events.click=f.handler.pass(this.fieldHash());if($chk(f.handler.exec)){d.events.click=f.handler.exec}}this.buttons[d.name]=new Element("button",d).inject(a,"bottom")}.bind(this))},removeFields:function(a){$splat(a).each(function(b){delete this.fields[b]}.bind(this))},fieldHash:function(){var a={};$each(this.fields,function(d,c,b){if(d.get("type")=="checkbox"||d.get("type")=="radio"){if(d.get("checked")==true){a[d.name]=d.value}}else{if($type(d.value)=="string"){d.value=d.value.trim()}a[c]=d.value}});return a}});CNB.Expander=new Class({Implements:Options,options:{displayamount:5,morelinktext:"More",lesslinktext:"Less",speed:600},initialize:function(b,a){this.setOptions(a);this.contents=$splat(b);this.contents.each(function(e,d){var c=e.getElements("li");var f=true;if(c.length>this.options.displayamount){c=c.slice(this.options.displayamount);this.moreLink(e,c,f);this.showHide(c,1,f,null,d);this.setScrollTo(d)}}.bind(this))},moreLink:function(c,a,e){var f=this.showHide.bind(this);var d=this.options.speed;var b=new Element("p",{html:"<a>"+this.options.morelinktext+"</a>","class":"more",events:{click:function(g){g=new Event(g).stop();e=(e==true)?false:true;f(a,d,e,b);if(e){new Fx.Scroll(window).toElement($("expander-top"))}}}}).inject(c,"bottom")},showHide:function(a,e,d,c,b){a.each(function(h,g){var f=new Fx.Slide(h,{duration:e,transition:Fx.Transitions.Pow.easeOut});f.toggle()});if(c){if(d){c.getElement("a").set("text",this.options.morelinktext)}else{c.getElement("a").set("text",this.options.lesslinktext)}}},setScrollTo:function(a){new Element("a",{id:"expander-top"}).inject(this.contents[a],"before")}});CNB.ExpandMore=new Class({Implements:[Options,Events],options:{content:null,action:"click",hidden:"true",btn:null,btnClass:"",btnText:{show:"Show",hide:"Hide"}},initialize:function(a,b){this.setOptions(b);this.container=$(a);if($chk(this.options.btn)){this.btn=$(this.options.btn)}else{var c=new Element("div",{"class":"more "+this.options.btnClass});this.btn=new Element("a",{text:this.options.btnText.show}).inject(c);c.inject(this.container,"after")}this.slide=new Fx.Slide(this.container,{mode:"vertical"}).hide();this.visible=false;this.btn.addEvent(this.options.action,this.toggle.bind(this));if($chk(this.options.btnText.show)){this.addEvents({show:this.setText.bind(this,this.options.btnText.hide),hide:this.setText.bind(this,this.options.btnText.show)})}},toggle:function(){if(this.visible){this.hide()}else{this.show()}},setText:function(a){var b=($chk(a))?a:(this.visible)?this.options.btnText.hide:this.options.btnText.show;this.btn.set("html",b)},show:function(){this.visible=true;this.slide.slideIn();this.fireEvent("show",[this.container,this.btn])},hide:function(){this.visible=false;this.slide.slideOut();this.fireEvent("hide",[this.container,this.btn])}});CNB.Quickpoll=new Class({Implements:Options,options:{container:null,question:null,answers:[],template:"zdnet_poll_spons",pollId:null,height:500,width:300},initialize:function(a){this.setOptions(a);this.container=$(this.options.container);this.fields=[]},load:function(){this.b=new CNB.FormBuilder({id:"qpoll-"+this.options.pollId,fieldsets:[{id:"qpoll-opts-"+this.options.pollId,className:"require-one",fields:this._setFields(this.fields)},{id:"qpoll-hidden-"+this.options.pollId,fields:[{name:"action",type:"hidden",value:"vote"},{name:"template_set",type:"hidden",value:this.options.template},{name:"poll_ident",type:"hidden",value:this.options.pollId}]}],buttons:[{name:"btn-vote",text:"Vote",type:"submit",className:"btn btn-vote"},{name:"btn-view-results",text:"View Results",type:"button",className:"btn-view-results",handler:this.results.bind(this)}]});this.b.addEvent("submit",this.loadResults.bind(this));if($chk(this.container)){this.container.adopt(this._setQuestion(this.options.question),this.b.form)}else{CNB.log("Please specify a container for this poll")}},results:function(a){a.action="results";this.b.fireEvent("submit",a)},loadResults:function(b){var c=new Element("iframe",{src:"http://polls.cnet.com/polls/results.php?"+Hash.toQueryString(b),frameborder:"0",marginheight:"0",marginwidth:"0",scrolling:"no",styles:{width:"100%",height:this.options.height,border:"0",overflow:"hidden"}});var a=new CNB.Layered(c,{title:"Quick Poll",className:"qpoll-layered",width:this.options.width})},_setQuestion:function(a){if($type(a)=="string"){a=new Element("p",{html:a})}var b=new Element("div",{"class":"quick-poll-question"}).adopt(a);return b},_setFields:function(a){$splat(this.options.answers).each(function(c,b){a.push({name:"option_id",type:"radio",value:b+1,label:c,className:"radio"})});return a}});CNB.Accordion=function(c,b,a){new Accordion($(c),b,a,{opacity:0,alwaysHide:false,show:0,onActive:function(e,d){e.addClass("accordshow")},onBackground:function(e,d){e.removeClass("accordshow")}})};window.addEvent("domready",function(){CNB.isDomReady=true;if($$(".focus")!=""){CNB.FocusSet=new CNB.InputFocus()}var a=$$("input[placeholder]");if(a.length>0){new CNB.Placeholder(a)}if($("pillars")){CNB.Pillars.init()}if($("drawer")){CNB.Drawer=new CNB.Fixation("drawer","col1")}if($$(".view-changer")!=""){viewChanger()}});