﻿if (typeof(MyExtenders) == "undefined")
    Type.registerNamespace("MyExtenders");

MyExtenders.SwapImgBehaviour = function(element) { 
    MyExtenders.SwapImgBehaviour.initializeBase(this, [element]);

    this._imageUrl = null;
    this._hoverImageUrl = null;
}

///Create prototype
MyExtenders.SwapImgBehaviour.prototype = {

    initialize : function() {
        MyExtenders.SwapImgBehaviour.callBaseMethod(this, 'initialize');

        $addHandlers(this.get_element(), 
                     { 'mouseout' : this._onMouseOut,
                       'mouseover' : this._onMouseOver },
                     this);

//        var i1 = new Image();
//        i1.src = this._imageUrl;
//        
//        var i2 = new Image();
//        i1.src = this._hoverImageUrl;

        //var img = eval('document.images["' + this.get_element().id + '"]');
        var img = this.get_element();
        img.src = this._imageUrl;
    },

    dispose : function() {
        $clearHandlers(this.get_element());

        MyExtenders.SwapImgBehaviour.callBaseMethod(this, 'dispose');
    },

    //
    // Event delegates
    //

    _onMouseOut : function(e) {
        if (this.get_element() && !this.get_element().disabled) {
            //var img = eval('document.images["' + this.get_element().id + '"]');
            var img = this.get_element();
            img.src = this._imageUrl;
        }
    },

    _onMouseOver : function(e) {
        if (this.get_element() && !this.get_element().disabled) {
            //var img = eval('document.images["' + this.get_element().id + '"]');
            var img = this.get_element();
            img.src = this._hoverImageUrl;
        }
    },


    //
    // Behaviour properties
    //

    get_imageUrl : function() {
        return this._imageUrl;
    },

    set_imageUrl : function(value) {
        if (this._imageUrl !== value) {
            this._imageUrl = value;
            this.raisePropertyChanged('imageUrl');
        }
    },

    get_hoverImageUrl : function() {
        return this._hoverImageUrl;
    },

    set_hoverImageUrl : function(value) {
        if (this._hoverImageUrl !== value) {
            this._hoverImageUrl = value;
            this.raisePropertyChanged('hoverImageUrl');
        }
    }
}

// Register the class as a type that inherits from Sys.UI.Control.
MyExtenders.SwapImgBehaviour.registerClass('MyExtenders.SwapImgBehaviour', Sys.UI.Behavior);

if (typeof(Sys) != 'undefined') Sys.Application.notifyScriptLoaded();

