
if(!window.Richfaces){window.Richfaces={};}
Richfaces.SYNTHETIC_EVENT="Richfaces.SYNTHETIC_EVENT";Richfaces.createEvent=function(type,component,baseEvent,props){var eventObj;if(document.createEventObject){if(baseEvent){eventObj=document.createEventObject(baseEvent);}else{eventObj=document.createEventObject();}}else{var bubbles=baseEvent&&baseEvent.bubbles||false;var cancelable=baseEvent&&baseEvent.cancelable||true;switch(type){case'abort':case'blur':case'change':case'error':case'focus':case'load':case'reset':case'resize':case'scroll':case'select':case'submit':case'unload':eventObj=document.createEvent('HTMLEvents');eventObj.initEvent(type,bubbles,cancelable);break;case'DOMActivate':case'DOMFocusIn':case'DOMFocusOut':case'keydown':case'keypress':case'keyup':eventObj=document.createEvent('UIEvents');if(baseEvent){eventObj.initUIEvent(type,bubbles,cancelable,baseEvent.windowObject,baseEvent.detail);}else{eventObj.initEvent(type,bubbles,cancelable);}
break;case'click':case'mousedown':case'mousemove':case'mouseout':case'mouseover':case'mouseup':eventObj=document.createEvent('MouseEvents');if(baseEvent){eventObj.initMouseEvent(type,bubbles,cancelable,baseEvent.windowObject,baseEvent.detail,baseEvent.screenX,baseEvent.screenY,baseEvent.clientX,baseEvent.clientY,baseEvent.ctrlKey,baseEvent.altKey,baseEvent.shiftKey,baseEvent.metaKey,baseEvent.button,baseEvent.relatedTarget);}else{eventObj.initEvent(type,bubbles,cancelable)}
break;case'DOMAttrModified':case'DOMNodeInserted':case'DOMNodeRemoved':case'DOMCharacterDataModified':case'DOMNodeInsertedIntoDocument':case'DOMNodeRemovedFromDocument':case'DOMSubtreeModified':eventObj=document.createEvent('MutationEvents');if(baseEvent){eventObj.initMutationEvent(type,bubbles,cancelable,baseEvent.relatedNode,baseEvent.prevValue,baseEvent.newValue,baseEvent.attrName,baseEvent.attrChange);}else{eventObj.initEvent(type,bubbles,cancelable)}
break;default:eventObj=document.createEvent('Events');eventObj.initEvent(type,bubbles,cancelable);}}
if(props){Object.extend(eventObj,props);}
eventObj[Richfaces.SYNTHETIC_EVENT]=true;return{event:eventObj,fire:function(){if(component.fireEvent){component.fireEvent("on"+type,this.event);}else{component.dispatchEvent(this.event);}},destroy:function(){if(props){for(var name in props){this.event[name]=undefined;}}}};}
Richfaces.eventIsSynthetic=function(event){if(event){return new Boolean(event[Richfaces.SYNTHETIC_EVENT]).valueOf();}
return false;}