﻿
Ext.namespace("Credit360");Credit360.Clickable=function(container,config){this.el=Ext.get(container);this.el.on({"click":this.onClick,"mouseover":this.onMouseOver,"mouseout":this.onMouseOut,"mousemove":this.onMouseMove,scope:this});this.addEvents({"click":true,"clear":true,"mouseover":true,"mouseout":true,"mousemove":true});Ext.apply(this,config);this.refresh();Credit360.Clickable.superclass.constructor.call(this);}
Ext.extend(Credit360.Clickable,Ext.util.Observable,{refresh:function(){this.nodes=this.el.dom.childNodes;this.updateIndexes(0);},updateIndexes:function(startIndex,endIndex){var ns=this.nodes;startIndex=startIndex||0;endIndex=endIndex||ns.length-1;for(var i=startIndex;i<=endIndex;i++){ns[i].nodeIndex=i;}},getNode:function(i){return this.nodes[i];},onClick:function(e){var item=this.findItemFromChild(e.getTarget());if(item){var index=this.indexOf(item);this.fireEvent("click",this,index,item,e);}else{this.fireEvent("clear",this,e);}},onMouseOver:function(e){var item=this.findItemFromChild(e.getTarget());if(item){var index=this.indexOf(item);this.fireEvent("mouseover",this,index,item,e);}},onMouseOut:function(e){var item=this.findItemFromChild(e.getTarget());if(item){var index=this.indexOf(item);this.fireEvent("mouseout",this,index,item,e);}},onMouseMove:function(e){this.fireEvent("mousemove",this);},findItemFromChild:function(node){var el=this.el.dom;if(!node||node.parentNode==el){return node;}
var p=node.parentNode;while(p&&p!=el){if(p.parentNode==el){return p;}
p=p.parentNode;}
return null;},getNode:function(nodeInfo){if(typeof nodeInfo=="string"){return document.getElementById(nodeInfo);}else if(typeof nodeInfo=="number"){return this.nodes[nodeInfo];}
return nodeInfo;},indexOf:function(node){node=this.getNode(node);if(typeof node.nodeIndex=="number"){return node.nodeIndex;}
var ns=this.nodes;for(var i=0,len=ns.length;i<len;i++){if(ns[i]==node){return i;}}
return-1;},destroy:function(){this.el.removeAllListeners();}});