﻿Type.registerNamespace('FS.Controls'); FS.Controls.Curseur = function(instanceName, backgroundCurseur, imgCurseur){ var _instanceName = instanceName; var _imgCurseur = imgCurseur; var _backgroundCurseur = backgroundCurseur; var _oCurseur; var _levels = 8; var _height = parseInt(_backgroundCurseur.style.height); var _levelHeight = _height / _levels; var _selectedLevel = 0; this.add_selectedLevelChanged = function(handler) { _oCurseur.get_events().addHandler('selectedLevelChanged', handler);}; this.remove_selectedLevelChanged = function(handler) { _oCurseur.get_events().removeHandler('selectedLevelChanged', handler);}; this._raiseEvent = function(eventName, eventArgs) { var handler = _oCurseur.get_events().getHandler(eventName); if (handler) { if (!eventArgs) { eventArgs = Sys.EventArgs.Empty;}
handler(this, eventArgs);}
}; this.get_selectedLevel = function(){ return _selectedLevel;}
this.set_selectedLevel = function(value){ if(value >= 0 && value < _levels && value != _selectedLevel) { _selectedLevel = value; var locBg = Sys.UI.DomElement.getLocation(_backgroundCurseur); Sys.UI.DomElement.setLocation(_imgCurseur, locBg.x + 1, locBg.y + Math.round(_selectedLevel * _levelHeight) + 2); this._raiseEvent('selectedLevelChanged');}
}; this.get_levels = function() { return _levels;}; this.set_levels = function(value) { _levels = value;}; this.initialize = function() { _oCurseur = new Sys.Preview.UI.Image(_imgCurseur); _oCurseur._id = _imgCurseur.id; _oCurseur.initialize(); Sys.Preview.UI.DragDropManager._getInstance()._recoverFromDomChanges = Function.emptyMethod; $create(Sys.Preview.UI.FloatingBehavior, {'handle': _imgCurseur,'name': 'floating'},null, null, _oCurseur._element); var floatingBehavior = $find(_oCurseur._id + '$floating'); floatingBehavior.onDrag = d(this,dragCurseur); floatingBehavior.onDragEnd = d(this,dragCurseurEnd); var locBg = Sys.UI.DomElement.getLocation(_backgroundCurseur); Sys.UI.DomElement.setLocation(_imgCurseur, locBg.x+1, locBg.y + Math.round(_selectedLevel * _levelHeight) + 2); _imgCurseur.style.display = '';}; var dragCurseur = function() { refreshCurseur();}; var _currentLevel; var refreshCurseur = function() { _currentLevel = Math.round((Sys.UI.DomElement.getLocation(_imgCurseur).y - Sys.UI.DomElement.getLocation(_backgroundCurseur).y) / _levelHeight); if(_currentLevel < 0) _currentLevel = 0; if(_currentLevel > _levels - 1) _currentLevel = _levels - 1; var locBg = Sys.UI.DomElement.getLocation(_backgroundCurseur); Sys.UI.DomElement.setLocation(_imgCurseur, locBg.x + 1, locBg.y + Math.round(_currentLevel * _levelHeight) + 2);}; var dragCurseurEnd = function() { if(_currentLevel != _selectedLevel){ _selectedLevel = _currentLevel; this._raiseEvent('selectedLevelChanged');}
}; this.changeLevel = function(levelOffset){ _currentLevel = _selectedLevel + levelOffset; this.set_selectedLevel(_currentLevel);};}
var d = function(o,m){ return function() { return m.call(o);} }; if (Sys && Sys.Application){ Sys.Application.notifyScriptLoaded();}
