
BLOCK_CLASS="Block";function BlockManager(){this.componentClass=BLOCK_CLASS;}
BlockManager.prototype=new AbstractComponentManager();BlockManager.prototype.constructor=AbstractComponentManager;BlockManager.prototype.toString=function(){return"BlockManager"};BlockManager.prototype.registerComponent=function registerComponent(id,props){this._nComponents.push(new Block(id,props));};function Block(id,props){AbstractComponent.apply(this,[id,props]);}
Block.SWITCH="switch";Block.SWITCH_NODE_SELECTOR="[class^=switch-]";Block.SWITCHED_ON="switched-on";Block.SWITCHED_OFF="switched-off";Block.STATE_NODE_SELECTOR="[class^=switched-]";Block.SWITCH_ON="switchOn";Block.SWITCH_OFF="switchOff";Block.TEXT_BOUNDARY=new String("\\b");Block.IS_SWITCH_RE=new RegExp("\\b"+Block.SWITCH+"\\b");Block.STATE_RE=new RegExp("\\b"+Block.SWITCHED_ON+"\\b"+"|"+"\\b"+Block.SWITCHED_OFF+"\\b");Block.SWITCHED_ON_STATE_RE=new RegExp("\\b"+Block.SWITCHED_ON+"\\b");Block.SWITCHED_OFF_STATE_RE=new RegExp("\\b"+Block.SWITCHED_OFF+"\\b");Block._messages={"switchOn":"Expand","switchOff":"Collapse"};Block.addMessage=function addMessage(key,msg){Block._messages[key]=msg;};Block.prototype=new AbstractComponent();Block.prototype.constructor=Block;Block.prototype.toString=function(){return"Block, id: "+this._id;};Block.prototype.init=function init(){this.setDomElementById(this._id);if(!this.requireInit()||!this.getSwitchNode()){return;}
var stateNode=this.getStateNode();if(stateNode){var switchNode=this.getSwitchNode();switchNode.alt=switchNode.title=Block._messages[Block.SWITCH_OFF];UiUtils.makeInnerTextSelectable(switchNode,false);var onClickEventHandler=function(e){var self=null;if(e.target){self=e.target;e.stopPropagation();}else if(window.event.srcElement){self=window.event.srcElement;e.cancelBubble=true;}else{alert("Assertion error");}
if(!self||!self.stateNode){var msg="Error: onClickEventHandler, self or stateNode is null";alert(msg);throw new Error(msg);}
var newState=self.stateNode.permuteState(),tooltip;switch(newState){case Block.SWITCHED_OFF:tooltip=Block._messages[Block.SWITCH_ON];break;case Block.SWITCHED_ON:tooltip=Block._messages[Block.SWITCH_OFF];break;}
switchNode.title=tooltip||"";switchNode.alt=tooltip||"";};if(switchNode.addEventListener){switchNode.addEventListener("click",onClickEventHandler,false);}else if(switchNode.attachEvent){switchNode.attachEvent("onclick",onClickEventHandler);}
switchNode.stateNode=stateNode;stateNode.permuteState=function permuteState(){var newState=null,tooltip="";if(Block.SWITCHED_ON_STATE_RE.test(this.className)){newState=Block.SWITCHED_OFF;}else if(Block.SWITCHED_OFF_STATE_RE.test(this.className)){newState=Block.SWITCHED_ON;}else{var msg="Error: newState is undefined";alert(msg);throw new Error(msg);}
this.className=this.className.replace(Block.STATE_RE,newState);return newState;};}
this.setInitialized(true);};Block.prototype.getSwitchNode=function getSwitchNode(){var s="#"+this._id+" "+Block.SWITCH_NODE_SELECTOR;return $jq(s)[0];};Block.prototype.getStateNode=function getStateNode(){var s="#"+this._id+" "+Block.STATE_NODE_SELECTOR;var selection=$jq(s);return selection.size()?selection[0]:null;};application.addComponentManager(new BlockManager(application));
