﻿Type.registerNamespace('Dropit');

Dropit.Image = function(element)
{
	this._hoverImg = '';
	this._originalImg = '';
	this._preLoad = null;
	
	this._onMouseOver$delegate = Function.createDelegate(this,this._onMouseOver);
	this._onMouseOut$delegate = Function.createDelegate(this,this._onMouseOut);

    Dropit.Image.initializeBase(this,[element]);
}

Dropit.Image.prototype = 
{
    initialize: function() {
        Dropit.Image.callBaseMethod(this, "initialize");
		var el = this.get_element();
		this._originalImg = el.src;
		$addHandler(el, "mouseover", this._onMouseOver$delegate); 
		$addHandler(el, "mouseout", this._onMouseOut$delegate); 
		this._preLoad = new Image();
		this._preLoad.src = this.get_hoverImg();
    },

    dispose: function() {
		this._preLoad = null;
		var el = this.get_element();
		$removeHandler(el, "mouseover", this._onMouseOver$delegate); 
		$removeHandler(el, "mouseout", this._onMouseOut$delegate); 
        Dropit.Image.callBaseMethod(this, "dispose");
    },
   
    _onMouseOver: function() {
		this.get_element().src = this.get_hoverImg();
    },
    
    _onMouseOut:  function() {
		this.get_element().src = this.get_originalImg();
    },
        
    /// PROPERTIES ///
    get_originalImg: function() {
		return this._originalImg;
    },
    set_originalImg: function(value) {
		this._originalImg = value;
    },
    get_hoverImg: function() {
		return this._hoverImg;
    },
    set_hoverImg: function(value) {
		this._hoverImg = value;
    }
}

Dropit.Image.registerClass("Dropit.Image", Sys.UI.Control);
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();