Meetup.DomDeco.RadioSelector=function(){bindMethods(this)};Meetup.DomDeco.RadioSelector.prototype.firer=null;Meetup.DomDeco.RadioSelector.prototype.target=null;Meetup.DomDeco.RadioSelector.prototype.__repr__=function(){return"Meetup.DomDeco.RadioSelector"};Meetup.DomDeco.RadioSelector.prototype.decorate=function(elm){if(!elm){LOG.error("no element passed in to Meetup.DomDeco.RadioSelector.decorate()");return}this.target=Meetup.DomDeco.RadioSelector.getDependsOn(elm);if(!this.target){return}this.firer=elm;if(this.target.firers===undefined){this.target.firers=[]}this.target.firers[this.target.firers.length]=this.firer;var tagname=this.firer.tagName.toLowerCase();if(tagname==="input"){switch(this.target.type){case"checkbox":case"radio":MochiKit.Signal.connect(elm,"onclick",partial(this.onCheckEvent,"onclick"));break;case"image":case"file":MochiKit.Signal.connect(elm,"onchange",partial(this.onCheckEvent,"onchange"));break;case"text":case"password":MochiKit.Signal.connect(elm,"onkeydown",partial(this.onCheckEvent,"onkeydown"));break}}else{if(tagname==="label"){MochiKit.Signal.connect(elm,"onmouseup",partial(this.onCheckEvent,"onmouseup"))}else{if(tagname==="textarea"){MochiKit.Signal.connect(elm,"onkeydown",partial(this.onCheckEvent,"onkeydown"))}else{if(tagname==="option"){MochiKit.Signal.connect(elm,"onmouseup",partial(this.onCheckEvent,"onmouseup"))}else{if(tagname==="select"){MochiKit.Signal.connect(elm,"onmouseup",partial(this.onCheckEvent,"onmouseup"))}else{LOG.error("See RadioSelector.js, or you are applying to wrong elements: "+tagname)}}}}}};Meetup.DomDeco.RadioSelector.prototype.onCheckEvent=function(evname,ev){var elm=this.firer;var type=elm.type||ev.target().tagName.toLowerCase();var val=undefined;var is_checked=Boolean(elm.checked);switch(type){case"checkbox":if(!is_checked){val=false}else{val=true}break;case"radio":if(!elm.checked){val=false}else{val=true}break;case"text":case"password":case"file":case"image":case"select":case"select-one":case"textarea":case"option":val=true;break}Meetup.DomDeco.RadioSelector.setValue(this.target,val)};Meetup.DomDeco.RadioSelector.getDependsOn=function(elm){var result=null;var inputId=""+elm.getAttribute("dependson");if(inputId){result=document.getElementById(inputId)}return result};Meetup.DomDeco.RadioSelector.setValue=function(target,val,recur){recur=recur||0;if(val===undefined){return}if(recur>7){return}var f,my,result=true;if(val===false){for(var i=0,len=target.firers.length;i<len;++i){f=target.firers[i];my=undefined;switch(f.type){case"checkbox":case"radio":my=f.checked;break}if(my===undefined){continue}if(my!==val){result=false}}}if(result){target.checked=val;var parentElm=Meetup.DomDeco.RadioSelector.getDependsOn(target);if(parentElm){Meetup.DomDeco.RadioSelector.setValue(parentElm,val,(recur+1))}}};Meetup.DOMReady.ready(function(){Meetup.DomDeco.applyByTagAndClass(undefined,"isRadioSelector",Meetup.DomDeco.RadioSelector)});