iButton = function()
{
	var inited, cfg, singleton,current;
	
	var getNamespaceVar = function(t, attribute)
	{
        if(!t || t.nodeType !== 1 || t == document || t == document.body){
            return;
        }		
        
        current = Ext.fly(t);
        var ns = cfg.namespace;	
        var v = current.getAttributeNS(ns, attribute);        
        return v;
	};
	
	var onOver = function(e)
	{
        var t = e.getTarget();
        var rollover = getNamespaceVar(t, cfg.mouseover);
        if (!rollover)
        {
        	return;
        }
		
//        e.preventDefault();
        t.orig = t.src;
        t.src = rollover;                
	};
	
	var onUp = function(e)
	{
        var t = e.getTarget();		
        var targetID = getNamespaceVar(t, cfg.mouseup);
        if (!targetID)
        {
        	return;
        }
	};
	
	var onDown = function(e)
	{
        var t = e.getTarget();			
        var mousedown = getNamespaceVar(t, cfg.mousedown);
        if (!mousedown)
        {
        	return;
        }
        t.src = mousedown;	
	};
	
	var onOut = function(e)
	{
        var t = e.getTarget();			
        var targetID = getNamespaceVar(t, cfg.mouseover);
        if (!targetID)
        {
        	return;
        }	
		t.src = t.orig;
	};

	var onClick = function(e)
	{
        var t = e.getTarget();			
        var targetID = getNamespaceVar(t, cfg.mousedown);
        if (!targetID)
        {
        	return;
        }			        
	}
	
	
	return {
	
		enable : function()
		{
		},
	
		init : function()
		{
			singleton = iButton;
			cfg = singleton.tagConfig;
			if(!inited){
				if(!Ext.isReady){ // allow calling of init() before onReady
					Ext.onReady(iButton.init, iButton);
					return;
				}
				var d = Ext.get(document);
				d.on("mousedown", onDown);
				d.on("mouseup", onUp);
				d.on("mouseover", onOver);
				d.on("mouseout", onOut);
				d.on("click", onClick);
				inited = true;
			}
			this.enable(); 
		},
       	
        // private        
       tagConfig : {
           namespace : "ibutton",
           mouseup : "unpressed",
           mouseover : "hotimage",
           mousedown : "pressed"
       }	
	};
}();

Ext.onReady(iButton.init, iButton);