//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/tiburon/download/",["download.postdl.js"])) {
/*	download.postdl.js - packed	*/
var InputValidator=new Class({Implements:[Options],initialize:function(B,A){this.setOptions({errorMsg:"Validation failed.",test:function(C){return true}},A);this.className=B},test:function(A){if($(A)){return this.options.test($(A),this.getProps(A))}else{return false}},getError:function(B){var A=this.options.errorMsg;if($type(A)=="function"){A=A($(B),this.getProps(B))}return A},getProps:function(B){if($(B)&&$(B).get("validatorProps")){try{return JSON.decode($(B).get("validatorProps"))}catch(A){return{}}}else{return{}}}});var FormValidator=new Class({Implements:[Options,Events],options:{fieldSelectors:"input, select, textarea",useTitles:false,evaluateOnSubmit:true,evaluateFieldsOnBlur:true,evaluateFieldsOnChange:true,serial:true,warningPrefix:"Warning: ",errorPrefix:"Error: "},initialize:function(B,A){this.setOptions(A);this.form=$(B);if(this.options.evaluateOnSubmit){this.form.addEvent("submit",this.onSubmit.bind(this))}if(this.options.evaluateFieldsOnBlur){this.watchFields()}},getFields:function(){return this.fields=this.form.getElements(this.options.fieldSelectors)},watchFields:function(){this.getFields().each(function(A){A.addEvent("blur",this.validateField.pass([A,false],this));if(this.options.evaluateFieldsOnChange){A.addEvent("change",this.validateField.pass([A,true],this))}},this)},onSubmit:function(A){if(!this.validate(A)){A.stop()}else{this.stop();this.reset()}},reset:function(){this.getFields().each(this.resetField,this);return this},validate:function(B){var A=this.getFields().map(function(C){return this.validateField(C,true)},this);A=A.every(function(C){return C});this.fireEvent("onFormValidate",[A,this.form,B]);return A},validateField:function(H,G){if(this.paused){return true}H=$(H);var B=true;var D=this.form.getElement(".validation-failed");var F=this.form.getElement(".warning");if(H&&(!D||G||H==D||(D&&!this.options.serial))){var C=H.className.split(" ").some(function(I){return this.getValidator(I)},this);B=H.className.split(" ").map(function(I){return this.test(I,H)},this).every(function(I){return I});if(C&&!H.hasClass("warnOnly")){if(B){H.addClass("validation-passed").removeClass("validation-failed")}else{H.addClass("validation-failed").removeClass("validation-passed")}}if(!F||G||(F&&!this.options.serial)){var E=H.className.split(" ").some(function(I){if(I.test("^warn-")||H.hasClass("warnOnly")){return this.getValidator(I.replace(/^warn-/,""))}else{return null}},this);H.removeClass("warning");var A=H.className.split(" ").map(function(I){if(I.test("^warn-")||H.hasClass("warnOnly")){return this.test(I.replace(/^warn-/,""),H,true)}else{return null}},this)}}return B},getPropName:function(A){return"__advice"+A},test:function(C,E,F){E=$(E);if(E.hasClass("ignoreValidation")){return true}F=$pick(F,false);if(E.hasClass("warnOnly")){F=true}var D=true;if(E){var B=this.getValidator(C);if(B&&this.isVisible(E)){D=B.test(E);if(!D&&B.getError(E)){if(F){E.addClass("warning")}var A=this.makeAdvice(C,E,B.getError(E),F);this.insertAdvice(A,E);this.showAdvice(C,E)}else{this.hideAdvice(C,E)}this.fireEvent("onElementValidate",[D,E])}}if(F){return true}return D},showAdvice:function(B,C){var A=this.getAdvice(B,C);if(A&&!C[this.getPropName(B)]&&(A.getStyle("display")=="none"||A.getStyle("visiblity")=="hidden"||A.getStyle("opacity")==0)){C[this.getPropName(B)]=true;if(A.smoothShow){A.smoothShow()}else{A.setStyle("display","block")}}},hideAdvice:function(B,C){var A=this.getAdvice(B,C);if(A&&C[this.getPropName(B)]){C[this.getPropName(B)]=false;if(A.smoothHide){A.smoothHide()}else{A.setStyle("display","none")}}},isVisible:function(A){do{if($(A).getStyle("display")=="none"){return false}}while(A=A.getParent());return true},getAdvice:function(A,B){return $("advice-"+A+"-"+this.getFieldId(B))},makeAdvice:function(D,F,C,G){var E=(G)?this.options.warningPrefix:this.options.errorPrefix;E+=(this.options.useTitles)?$pick(F.title,C):C;var B=this.getAdvice(D,F);if(!B){var A=(G)?"warning-advice":"validation-advice";B=new Element("div",{text:E,styles:{display:"none"},id:"advice-"+D+"-"+this.getFieldId(F)}).addClass(A)}else{B.set("html",E)}return B},insertAdvice:function(A,C){switch(C.type.toLowerCase()){case"radio":var B=$(C.parentNode);if(B){B.adopt(A);break}default:A.inject($(C),"after")}},getFieldId:function(A){return A.id?A.id:A.id="input_"+A.name},resetField:function(A){A=$(A);if(A){var B=A.className.split(" ");B.each(function(C){if(C.test("^warn-")){C=C.replace(/^warn-/,"")}var D=this.getPropName(C);if(A[D]){this.hideAdvice(C,A)}A.removeClass("validation-failed");A.removeClass("warning");A.removeClass("validation-passed")},this)}return this},stop:function(){this.paused=true;return this},start:function(){this.paused=false;return this},ignoreField:function(A,B){A=$(A);if(A){this.enforceField(A);if(B){A.addClass("warnOnly")}else{A.addClass("ignoreValidation")}}return this},enforceField:function(A){A=$(A);if(A){A.removeClass("warnOnly").removeClass("ignoreValidation")}return this}});FormValidator.adders={validators:{},add:function(B,A){this.validators[B]=new InputValidator(B,A);if(!this.initialize){this.implement({validators:this.validators})}},addAllThese:function(A){$A(A).each(function(B){this.add(B[0],B[1])},this)},getValidator:function(A){return this.validators[A]}};$extend(FormValidator,FormValidator.adders);FormValidator.implement(FormValidator.adders);FormValidator.add("IsEmpty",{errorMsg:false,test:function(A){if(A.type=="select-one"||A.type=="select"){return !(A.selectedIndex>=0&&A.options[A.selectedIndex].value!="")}else{return((A.get("value")==null)||(A.get("value").length==0))}}});FormValidator.addAllThese([["required",{errorMsg:function(A){return"This field is required."},test:function(A){return !FormValidator.getValidator("IsEmpty").test(A)}}],["minLength",{errorMsg:function(A,B){if($type(B.minLength)){return"Please enter at least "+B.minLength+" characters (you entered "+A.get("value").length+" characters)."}else{return""}},test:function(A,B){if($type(B.minLength)){return(A.get("value").length>=$pick(B.minLength,0))}else{return true}}}],["maxLength",{errorMsg:function(A,B){if($type(B.maxLength)){return"Please enter no more than "+B.maxLength+" characters (you entered "+A.get("value").length+" characters)."}else{return""}},test:function(A,B){return(A.get("value").length<=$pick(B.maxLength,10000))}}],["validate-integer",{errorMsg:"Please enter an integer in this field. Numbers with decimals (e.g. 1.25) are not permitted.",test:function(A){return FormValidator.getValidator("IsEmpty").test(A)||!/[^\d+$]/.test(A.get("value"))}}],["validate-numeric",{errorMsg:'Please enter only numeric values in this field ("1" or "1.1" or "-1" or "-1.1").',test:function(A){return FormValidator.getValidator("IsEmpty").test(A)||!/[-+]?[0-9]*\.?[0-9]+/.test(A.get("value"))}}],["validate-digits",{errorMsg:"Please use numbers and punctuation only in this field (for example, a phone number with dashes or dots is permitted).",test:function(A){return FormValidator.getValidator("IsEmpty").test(A)||(/[^a-zA-Z]/.test(A.get("value"))&&/[\d]/.test(A.get("value")))}}],["validate-alpha",{errorMsg:"Please use letters only (a-z) with in this field. No spaces or other characters are allowed.",test:function(A){return FormValidator.getValidator("IsEmpty").test(A)||/^[a-zA-Z]+$/.test(A.get("value"))}}],["validate-alphanum",{errorMsg:"Please use only letters (a-z) or numbers (0-9) only in this field. No spaces or other characters are allowed.",test:function(A){return FormValidator.getValidator("IsEmpty").test(A)||!/\W/.test(A.get("value"))}}],["validate-date",{errorMsg:function(A,B){if(Date.parse){var C=B.dateFormat||"%x";return"Please enter a valid date such as "+new Date().format(C)}else{return'Please enter a valid date such as MM/DD/YYYY (i.e. "12/31/1999")'}},test:function(A,B){if(FormValidator.getValidator("IsEmpty").test(A)){return true}if(Date.parse){var E=B.dateFormat||"%x";var F=Date.parse(A.get("value"));var D=F.format(E);if(D!="invalid date"){A.set("value",D)}return !isNaN(F)}else{var C=/^(\d{2})\/(\d{2})\/(\d{4})$/;if(!C.test(A.get("value"))){return false}var F=new Date(A.get("value").replace(C,"$1/$2/$3"));return(parseInt(RegExp.$1,10)==(1+F.getMonth()))&&(parseInt(RegExp.$2,10)==F.getDate())&&(parseInt(RegExp.$3,10)==F.getFullYear())}}}],["validate-email",{errorMsg:'Please enter a valid email address. For example "fred@domain.com".',test:function(A){return FormValidator.getValidator("IsEmpty").test(A)||/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(A.get("value"))}}],["validate-url",{errorMsg:"Please enter a valid URL.",test:function(A){return FormValidator.getValidator("IsEmpty").test(A)||/^(http|https|ftp|rmtp|mms):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(A.get("value"))}}],["validate-currency-dollar",{errorMsg:"Please enter a valid $ amount. For example $100.00 .",test:function(A){return FormValidator.getValidator("IsEmpty").test(A)||/^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(A.get("value"))}}],["validate-one-required",{errorMsg:"Please enter something for at least one of the above options.",test:function(B){var C=B.parentNode;var A=C.getElements("input");return $A(A).some(function(D){return D.get("value")})}}]]);$extend(RBDL,{setMyDownloadsCookiePDL:function(E){if(!E.pidString.test(PageVars.get("assetId","string"))){E.pidString=""!=E.pidString?PageVars.get("assetId")+"-"+E.pidString:PageVars.get("assetId","string");var A=20;var D=E.pidString.split("-");var B=D.length;var F="";if(B>A){for(var C=0;C<A;C++){if(C>0){F=F+"-"}F=F+D[C]}E.pidString=F}E.count=E.count.toInt+1;Cookie.setMyDownloadsCookie(E)}}});$extend(watchList,{addToWatchList:function(A,E,B,D){$("watchListAutoAddRightCol").set("html","<img src='http://i.d.com.com/i/dl/watchlist/waiting_white.gif' width='150' height='54'>");try{$("removeItemMsg").hide()}catch(C){}try{$("alwaysAddMsg").hide()}catch(C){}try{$("input_col").hide()}catch(C){}(function(){watchList.addWatchItem(A,E,B,D,"",watchList.handleAjaxError)}).delay(500);try{$("watchListPlusImg").hide()}catch(C){}try{$("watchListAutoAddRightCol").setStyle("padding","10px 25px")}catch(C){}},addWatchItemWithTracking:function(K,I,C,J,G,H,D,A){this.showWaitingGif(K,G,"Adding...");var F="/3353-"+this.jsNodeId+"_"+this.jsSiteId+"-0.html";var E="addWatchItem";var B="cmd="+E+"&referencedType="+I+"&referencedId="+C;if(A!=""){B+="&"+A}B+="&viewName="+J+"&usrAction="+D+"&component";this.getHTML(K,F,B,this.getErrorHandler(H))},addToWatchListWithTracking:function(A,F,B,E,C){$("watchListAutoAddRightCol").set("html","<img src='http://i.d.com.com/i/dl/watchlist/waiting_white.gif' width='150' height='54'>");try{$("removeItemMsg").hide()}catch(D){}try{$("alwaysAddMsg").hide()}catch(D){}try{$("input_col").hide()}catch(D){}(function(){watchList.addWatchItem(A,F,B,E,"",watchList.handleAjaxError)}).delay(500);try{$("watchListPlusImg").hide()}catch(D){}try{$("watchListAutoAddRightCol").style.padding="10px 25px"}catch(D){}},addWatchItemPostDLWithTracking:function(I,F,B,H,D,E,C){dbug.log($(I));var A="eventTypes=1&eventTypes=4";var G=new Cookie("DLWatchlistAutoAdd-SW_PS-PostDlAlert").read();if(G!="false"){switch(B){case 10045910:case 10320142:case 10208565:case 10028984:case 10047473:case 10251792:case 10007677:case 10003164:case 10029188:case 10039884:case 10051892:case 10296306:case 10057840:case 10021962:case 10155605:case 10411076:case 10265538:case 10122137:case 10019223:case 10590188:if(location.href!=null&&location.href.indexOf("also-dwnld")<0){A+="&eventTypes=2"}}}this.addWatchItemWithTracking(I,F,B,H,D,E,C,A)},removeFromWatchList:function(B,A,F,C,E){try{$("watchListAutoAddRightCol").set("html","<img src='http://i.d.com.com/i/dl/watchlist/waiting_white.gif' width='150' height='54'>");try{$("removeItemMsg").hide()}catch(D){}try{$("alwaysAddMsg").hide()}catch(D){}try{$("input_col").hide()}catch(D){}this.removeWatchItem.delay(500,this,[B,A,F,C,E,"large",this.handleAjaxError])}catch(D){dbug.log("error removing item: %o",D)}try{$("watchListAutoAddRightCol").setStyle("padding","10px 25px")}catch(D){}},showNonAuthWatchListComponent:function(){$("watchListAutoAdd").set("html",$("watchListAutoAddOff").get("html"))},showRegAndWatchListPromo:function(){dbug.log("showRegAndWatchListPromo");var C=Cookie.myDownloadsCookie().count;if(watchList.handleAjaxErrorRegPromo){watchList.defaultErrorHandler=watchList.handleAjaxErrorRegPromo}$("urs_mini_form").show();var B=null!=C?"-"+C:"";if(document.rgprm_trkng){var A="http://dw.com.com/clear/c.gif?oid="+PageVars.getOid.replace("3001-","3051-")+"&sId=17&ptId=3051&onId="+PageVars.get("nodeId")+"&asId="+PageVars.get("assetId")+"&pId="+PageVars.get("assetId")+"&ctype=dlcount&cval="+C;document.rgprm_trkng.src=A}},regPromoURSPageToUse:"1300",handleAjaxErrorRegPromo:function(G){dbug.log("handleAjaxErrorRegPromo");var F=G.responseText;if(F.test("COMPONENT_RESPONSE_CODE=401")){var E=watchList.getDlCount();var B="";var A=document.forms["rgprm"]["EMAILADDR"].value;var D="pdl-rgprm-btn";var C="pdl-rgprm-confirm";if(watchList.regPromoURSPageToUse=="1320"){D="pdl-rgprm-link";C="pdl-rgprm-login"}document.location="http://"+document.location.host+"/"+watchList.regPromoURSPageToUse+"-20_4-133.html?EMAILADDR="+A+"&tag="+D+B+"&path="+document.location+escape("?tag="+C+B+"&addWatchItem=true&idl=n")}else{$("watchListAutoAdd").set("html",$("watchListAutoAddOff").get("html"));watchList.setAutoCookie()}},setMyDownloadsCookiePDL:function(E){if(!E.pidString.test(PageVars.get("assetId","string"))){E.pidString=""!=E.pidString?PageVars.get("assetId")+"-"+E.pidString:PageVars.get("assetId","string");var A=20;var D=E.pidString.split("-");var B=D.length;var F="";if(B>A){for(var C=0;C<A;C++){if(C>0){F=F+"-"}F=F+D[C]}E.pidString=F}E.count=E.count.toInt+1;Cookie.setMyDownloadsCookie(E)}}})
/* end packed code */
}
