
if(!window.Richfaces){window.Richfaces={};}
if(!Richfaces.componentControl){Richfaces.componentControl={};}
Richfaces.componentControl.eachComponent=function(forAttr,callback){jQuery(forAttr).each(function(){if(this.component){callback(this.component);}});};Richfaces.componentControl.applyDecorations=function(element,forAttr,decorationCode){if(decorationCode){decorationCode(element);}
Richfaces.componentControl.eachComponent(forAttr,function(component){if(component.applyDecoration){component.applyDecoration(element);}});};Richfaces.componentControl.attachEvent=function(attachTo,aevent,forAttr,operation,params,disableDefault){jQuery(attachTo).bind(Richfaces.effectEventOnOut(aevent),function(event){Richfaces.componentControl.performOperation(event,aevent,forAttr,operation,params,disableDefault);}).each(function(){Richfaces.componentControl.applyDecorations(this,forAttr,function(element){});});};Richfaces.componentControl.attachAvailable=function(attachTo,aevent,forAttr,operation,params,disableDefault){var ids=attachTo.split(',');for(var i=0;i<ids.length;i++){var id=ids[i];Richfaces.onAvailable(id.replace(/^#|\\(:)/g,"$1"),function(){Richfaces.componentControl.attachEvent(id,aevent,forAttr,operation,params,disableDefault);});}};Richfaces.componentControl.attachReady=function(attachTo,aevent,forAttr,operation,params,disableDefault){jQuery(document).ready(function(){Richfaces.componentControl.attachEvent(attachTo,aevent,forAttr,operation,params,disableDefault);});};Richfaces.componentControl.checkDisableDefault=function(ename,disableDefault){if(disableDefault==undefined){var en=ename.toLowerCase();return(en=="oncontextmenu"||en=="contextmenu"?true:false);}else{return disableDefault;}};Richfaces.componentControl.performOperation=function(event,aevent,forAttr,operation,params,disableDefault){if(Richfaces.componentControl.checkDisableDefault(aevent,disableDefault)){var fixedEvent=jQuery.event.fix(event);fixedEvent.stopPropagation();fixedEvent.preventDefault();}
Richfaces.componentControl.eachComponent(forAttr,function(component){var paramsValue=params;if(typeof params=="function"){paramsValue=params();}
component[operation](event,paramsValue);});};Richfaces.effectEventOnOut=function(ename){return ename.substr(0,2)=='on'?ename.substr(2):ename;};