﻿Type.registerNamespace("epsilon");

epsilon.productThumbHover = function(element) {
   epsilon.productThumbHover.initializeBase(this, [element]);

   this._targetImageElement = null;
   this._clickDelegate = null;
   this._hoverDelegate = null;
   this._unhoverDelegate = null;
   this._hoverImageUrl = '';
   this._unhoverImageUrl = '';
   this._targerLinkElement = null;
   this._photosPreviewUrl = '';
}

epsilon.productThumbHover.prototype = {

   set_TargetImageElement: function(el) {
      this._targetImageElement = el;
   },
   get_TargetImageElement: function() {
      return this._targetImageElement;
   },

   set_HoverImageUrl: function(el) {
      this._hoverImageUrl = el;
   },
   get_HoverImageUrl: function() {
      return this._hoverImageUrl;
   },

   set_TargerLinkElement: function(el) {
      this._targerLinkElement = el;
   },
   get_TargerLinkElement: function() {
      return this._targerLinkElement;
   },

   set_PhotosPreviewUrl: function(url) {
      this._photosPreviewUrl = url;
   },
   get_PhotosPreviewUrl: function() {
      return this._photosPreviewUrl;
   },

   dispose: function() {
      var element = this.get_element();


      if (this._clickDelegate) {
         Sys.UI.DomEvent.removeHandler(element, 'click', this._clickDelegate);
         delete this._clickDelegate;
      }
      if (this._hoverDelegate) {
         Sys.UI.DomEvent.removeHandler(element, 'focus', this._hoverDelegate);
         Sys.UI.DomEvent.removeHandler(element, 'mouseover', this._hoverDelegate);
         delete this._hoverDelegate;
      }

      if (this._unhoverDelegate) {
         Sys.UI.DomEvent.removeHandler(element, 'blur', this._unhoverDelegate);
         Sys.UI.DomEvent.removeHandler(element, 'mouseout', this._unhoverDelegate);
         delete this._unhoverDelegate;
      }
      epsilon.productThumbHover.callBaseMethod(this, 'dispose');
   },

   initialize: function() {
      var element = this.get_element();

      if (!element.tabIndex) element.tabIndex = 0;

      if (this._clickDelegate === null) {
         this._clickDelegate = Function.createDelegate(this, this._clickHandler);
      }
      Sys.UI.DomEvent.addHandler(element, 'click', this._clickDelegate);

      if (this._hoverDelegate === null) {
         this._hoverDelegate = Function.createDelegate(this, this._hoverHandler);
      }
      Sys.UI.DomEvent.addHandler(element, 'mouseover', this._hoverDelegate);
      Sys.UI.DomEvent.addHandler(element, 'focus', this._hoverDelegate);

      if (this._unhoverDelegate === null) {
         this._unhoverDelegate = Function.createDelegate(this, this._unhoverHandler);
      }
      Sys.UI.DomEvent.addHandler(element, 'mouseout', this._unhoverDelegate);
      Sys.UI.DomEvent.addHandler(element, 'blur', this._unhoverDelegate);


      epsilon.productThumbHover.callBaseMethod(this, 'initialize');
   },

   _clickHandler: function(event) {
      
   },

   _hoverHandler: function(event) {
      this._targetImageElement.src = this._hoverImageUrl;
      this._targerLinkElement.href = this._photosPreviewUrl;
   },

   _unhoverHandler: function(event) {
      
   }


}
epsilon.productThumbHover.registerClass('epsilon.productThumbHover', Sys.UI.Control);

if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
