Bind a function to the mouseenter event of each matched element.

@param jsScope
Scope to use
@return the jQuery code
196074
public static ChainableStatement mouseenter(JsScope jsScope)
	{
		return new DefaultChainableStatement(MouseEvent.MOUSEENTER.getEventLabel(),
			jsScope.render());
	}
1099312
function(BlockLayerUtils, jQuery) {
	"use strict";

	// Static class

	/**
	 * @alias sap.ui.core.BusyIndicatorUtils
	 * @namespace
	 * @public
	 */
	var BusyIndicatorUtils = function() {};

	/**
	 * Returns the HTML content for the busy indicator
	 * styling + animation: LocalBusyIndicator.less
	 *
	 * @param {string} sSize either "Large" or "Medium". Other sizes will be mapped to "Medium"
	 * @returns {DOM.element} the element for the busy indicator
	 */
	BusyIndicatorUtils.getElement = function(sSize) {
		//default size is medium
		var sSizeClass = "sapUiLocalBusyIndicatorSizeMedium";

		if (sSize === "Large") {
			sSizeClass = "sapUiLocalBusyIndicatorSizeBig";
		}

		var oContainer = document.createElement("div");
		oContainer.className = "sapUiLocalBusyIndicator " + sSizeClass + " sapUiLocalBusyIndicatorFade";

		BlockLayerUtils.addAriaAttributes(oContainer);

		addAnimation(oContainer);

		return oContainer;
	};

	function addAnimation(oContainer, sSizeClass) {

		sSizeClass  = sSizeClass || "sapUiLocalBusyIndicatorAnimStandard";

		// set title for screen reader
		var oResBundle = sap.ui.getCore().getLibraryResourceBundle("sap.ui.core"),
			sTitle = oResBundle.getText("BUSY_TEXT");

		oContainer.setAttribute("title", sTitle);

		// determine automation size class
		var oAnimation = document.createElement("div");
		oAnimation.className = "sapUiLocalBusyIndicatorAnimation " + sSizeClass;
		oAnimation.appendChild(document.createElement("div"));
		oAnimation.appendChild(document.createElement("div"));
		oAnimation.appendChild(document.createElement("div"));


		oContainer.appendChild(oAnimation);
	}

	function handleAutoAnimationSize(oBusyBlockState, sSize) {
		var oParentDOM = oBusyBlockState.$parent.get(0),
			oBlockLayerDOM = oBusyBlockState.$blockLayer.get(0);

		// get animation container
		var oAnimation = oBlockLayerDOM.children[0],
			iWidth = oAnimation.offsetWidth;

		// We can only determine the actual animation after the browser has
		// calculated the size of the indicator we need to know the pixel-size of
		// 3rem, under which the indicator will animate differently
		if (oParentDOM.offsetWidth < iWidth) {
			oAnimation.className = "sapUiLocalBusyIndicatorAnimation sapUiLocalBusyIndicatorAnimSmall";
		}
	}

	/**
	 * Adds the DOM element for the BusyIndicator animation to the contained DOM element in the given block-state.
	 * @param {object} oBusyBlockState The given block-state on which the DOM gets added for the busy animation
	 * @param {sap.ui.core.BusyIndicatorSize} sSize either "Auto", "Large", "Medium" or "Small", determines the size of the
	 *                     indicator, default is "Medium"
	 * @see sap.ui.core.BusyIndicatorSize
	 */
	BusyIndicatorUtils.addHTML = function (oBusyBlockState, sSize) {
		var sSizeClass = "sapUiLocalBusyIndicatorSizeMedium",
			sAnimationSizeClass;

		switch (sSize) {
			case sap.ui.core.BusyIndicatorSize.Small:
				sSizeClass = "sapUiLocalBusyIndicatorSizeMedium";
				sAnimationSizeClass = "sapUiLocalBusyIndicatorAnimSmall";
				break;
			case sap.ui.core.BusyIndicatorSize.Large:
				sSizeClass = "sapUiLocalBusyIndicatorSizeBig";
				sAnimationSizeClass = "sapUiLocalBusyIndicatorAnimStandard";
				break;
			case sap.ui.core.BusyIndicatorSize.Auto:
				sSizeClass = "sapUiLocalBusyIndicatorSizeMedium";
				sAnimationSizeClass = "sapUiLocalBusyIndicatorAnimStandard";
				break;
			default:
				//default size is medium
				sSizeClass = "sapUiLocalBusyIndicatorSizeMedium";
				sAnimationSizeClass = "sapUiLocalBusyIndicatorAnimStandard";
				break;
		}
		var oParentDOM = oBusyBlockState.$parent.get(0),
			oBlockLayerDOM = oBusyBlockState.$blockLayer.get(0);

		oParentDOM.className += " sapUiLocalBusy";
		oBlockLayerDOM.className += " sapUiLocalBusyIndicator " + sSizeClass + " sapUiLocalBusyIndicatorFade";
		addAnimation(oBlockLayerDOM, sAnimationSizeClass);

		if (sSize === sap.ui.core.BusyIndicatorSize.Auto) {
			handleAutoAnimationSize(oBusyBlockState);
		}
		//Set the actual DOM Element to 'aria-busy'
		jQuery(oParentDOM).attr('aria-busy', true);
	};

	/**
	 * Obsolete IE9 support, kept for some more time to avoid issues with custom controls,
	 * start/stop now are 'noop's.
	 */
	BusyIndicatorUtils.animateIE9 = {
		start: function () {},
		stop: function () {}
	};

	return BusyIndicatorUtils;

}
507349
@Override
    public XValue call(Scope scope) {
        List<String> res = new LinkedList<>();
        for (Element e:scope.context()){
            if ("script".equals(e.nodeName())){
                res.add(e.data());
            }else {
                res.add(e.text());
            }
        }
        return XValue.create(res);
    }
347365
function mouseEnterHandler(e) {
        e = e || window.event;

        if (checkMouse(element, e)) {
            eventHandler(e);
        }
    }
559559
function bind(b, el, opts) {
			var full = el == window, $el = $(el);

			// don't bother unbinding if there is nothing to unbind
			if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked')))
				return;

			$el.data('blockUI.isBlocked', b);

			// don't bind events when overlay is not in use or if bindEvents is false
			if (!full || !opts.bindEvents || (b && !opts.showOverlay))
				return;

			// bind anchors and inputs for mouse and key events
			var events = 'mousedown mouseup keydown keypress keyup touchstart touchend touchmove';
			if (b)
				$(document).bind(events, opts, handler);
			else
				$(document).unbind(events, handler);

		// former impl...
		//		var $e = $('a,:input');
		//		b ? $e.bind(events, opts, handler) : $e.unbind(events, handler);
		}
145523
public static ChainableStatement scroll(JsScope jsScope)
	{
		return new DefaultChainableStatement(MouseEvent.SCROLL.getEventLabel(), jsScope.render());
	}
45987
public boolean executeJavaScript(final By by, boolean shouldClick){
		if(by instanceof By.Id){
			return executeJavaScriptFunction("id(\""+by.getValue()+"\", \"" + String.valueOf(shouldClick) + "\");");
		}
		else if(by instanceof By.Xpath){
			return executeJavaScriptFunction("xpath(\""+by.getValue()+"\", \"" + String.valueOf(shouldClick) + "\");");
		}
		else if(by instanceof By.CssSelector){
			return executeJavaScriptFunction("cssSelector(\""+by.getValue()+"\", \"" + String.valueOf(shouldClick) + "\");");
		}
		else if(by instanceof By.Name){
			return executeJavaScriptFunction("name(\""+by.getValue()+"\", \"" + String.valueOf(shouldClick) + "\");");
		}
		else if(by instanceof By.ClassName){
			return executeJavaScriptFunction("className(\""+by.getValue()+"\", \"" + String.valueOf(shouldClick) + "\");");
		}
		else if(by instanceof By.Text){
			return executeJavaScriptFunction("textContent(\""+by.getValue()+"\", \"" + String.valueOf(shouldClick) + "\");");
		}
		else if(by instanceof By.TagName){
			return executeJavaScriptFunction("tagName(\""+by.getValue()+"\", \"" + String.valueOf(shouldClick) + "\");");
		}
		return false;
	}
892066
public Object callFunctionInScope(Context cx, Scriptable scope, String functionName, Object[] args) {
		return callFunctionInScope(cx, scope, functionName, args, false);
	}
1150649
public void mouseClicked(MouseEvent evt)
    {
        JLabel button = (JLabel)evt.getSource();
        int iOffsetDay = Integer.parseInt(button.getName());
        iOffsetDay -= targetComponent;
        calendar.setTime(selectedDate);
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);
        int second = calendar.get(Calendar.SECOND);
        int ms = calendar.get(Calendar.MILLISECOND);
        calendar.setTime(targetDate);
        calendar.add(Calendar.DATE, iOffsetDay);
        if (hour == 0)
            if (minute == 0)
            if (second == 0)
            if (ms == 0)
                hour = 12;
        calendar.set(Calendar.HOUR_OF_DAY, hour);
        calendar.set(Calendar.MINUTE, minute);
        calendar.set(Calendar.SECOND, second);
        calendar.set(Calendar.MILLISECOND, ms);
        Date date = calendar.getTime();
        JPopupMenu popupMenu = this.getJPopupMenu();
        if (popupMenu != null)
        { // I'm not sure this is the correct code, but here it is!
            Component invoker = popupMenu.getInvoker();
            this.getParent().remove(this);      // Just being careful
            Container container = popupMenu.getParent();
            popupMenu.setVisible(false);
            container.remove(popupMenu);
            if (invoker != null)
                if (transferFocus)
                    invoker.transferFocus();    // Focus on next component after invoker
        }
        Date oldDate = selectedDate;
        if (selectedDate == targetDate)
            oldDate = null;
        this.firePropertyChange(dateParam, oldDate, date);
    }
1112806
function JQLite(element) {
  if (element instanceof JQLite) {
    return element;
  }
  if (!(this instanceof JQLite)) {
    if (isString(element) && element.charAt(0) != '<') {
      throw Error('selectors not implemented');
    }
    return new JQLite(element);
  }

  if (isString(element)) {
    var div = document.createElement('div');
    // Read about the NoScope elements here:
    // http://msdn.microsoft.com/en-us/library/ms533897(VS.85).aspx
    div.innerHTML = '<div>&#160;</div>' + element; // IE insanity to make NoScope elements work!
    div.removeChild(div.firstChild); // remove the superfluous div
    JQLiteAddNodes(this, div.childNodes);
    this.remove(); // detach the elements from the temporary DOM div.
  } else {
    JQLiteAddNodes(this, element);
  }
}
659319
function bindFocusBlur(element, inputElement) {
        var isFocused, isMousedown, isBlur;

        $document[0].addEventListener('click', clickHandler, true);
        element[0].addEventListener('mousedown', mousedownHandler, true);
        element[0].addEventListener('blur', blurHandler, true);
        inputElement.on('focus', focusHandler);

        function blurHandler(event) {
            if (event && event.target.nodeName !== 'INPUT') return; //for IE

            isBlur = false;

            if (isMousedown) {
                isBlur = true;
                return;
            }

            $timeout(function () {
                element.triggerHandler('blur'); //conflict with current live cycle (case: multiple=none + tab)
            });
        }

        function focusHandler() {
            if (!isFocused) {
                isFocused = true;

                $timeout(function () {
                    element.triggerHandler('focus'); //conflict with current live cycle (case: multiple=none + tab)
                });
            }
        }

        function mousedownHandler() {
            isMousedown = true;
        }

        function clickHandler(event) {
            isMousedown = false;

            var activeElement = event.target;
            var isSelectElement = contains(element[0], activeElement);

            if (isBlur && !isSelectElement) {
                blurHandler();
            }

            if (isSelectElement && activeElement.nodeName !== 'INPUT') {
                $timeout(function () {
                    inputElement[0].focus();
                });
            }

            if (!isSelectElement && isFocused) {
                isFocused = false;
            }
        }

        return function () {
            $document[0].removeEventListener('click', clickHandler, true);
            element[0].removeEventListener('mousedown', mousedownHandler, true);
            element[0].removeEventListener('blur', blurHandler, true);
            inputElement.off('focus', focusHandler);
        }
    }
811713
function bindTo (scope) {
        // Only initialize once to allow multiple calls for same scope.
        if (!(scope.$id in boundScopes)) {

          // Add the scope to the list of bound scopes
          boundScopes[scope.$id] = [];

          scope.$on('$destroy', function () {
            var i = boundScopes[scope.$id].length;
            while (i--) {
              _del(boundScopes[scope.$id].pop());
            }
          });
        }
        // return an object with an add function so we can keep track of the
        // hotkeys and their scope that we added via this chaining method
        return {
          add: function (args) {
            var hotkey;

            if (arguments.length > 1) {
              hotkey = _add.apply(this, arguments);
            } else {
              hotkey = _add(args);
            }

            boundScopes[scope.$id].push(hotkey);
            return this;
          }
        };
      }
137046
public void generateBootsFacesAJAXAndJavaScriptForJQuery(FacesContext context, UIComponent component,
			ResponseWriter rw, String jQueryExpressionOfTargetElement, Map<String, String> additionalEventHandlers,
			boolean attachOnReady) throws IOException {
		if (jQueryExpressionOfTargetElement.contains(":")) {
			if (!jQueryExpressionOfTargetElement.contains("\\\\:")) { // avoid escaping twice
				jQueryExpressionOfTargetElement = jQueryExpressionOfTargetElement.replace(":", "\\\\:");
			}
		}
		IAJAXComponent ajaxComponent = (IAJAXComponent) component;
		Set<String> events = ajaxComponent.getJQueryEvents().keySet();
		for (String event : events) {
			StringBuilder code = new StringBuilder();
			String additionalEventHandler = null;
			if (null != additionalEventHandlers)
				additionalEventHandler = additionalEventHandlers.get(event);

			String parameterList = null;
			if (null != ajaxComponent.getJQueryEventParameterListsForAjax()) {
				if (null != ajaxComponent.getJQueryEventParameterListsForAjax().get(event))
					parameterList = ajaxComponent.getJQueryEventParameterListsForAjax().get(event);
			}
			generateAJAXCallForASingleEvent(context, (ClientBehaviorHolder) component, rw, null, event,
					additionalEventHandler, true, event, code, parameterList);
			if (code.length() > 0) {
				rw.startElement("script", component);
				parameterList = "event";
				if (null != ajaxComponent.getJQueryEventParameterLists()) {
					if (null != ajaxComponent.getJQueryEventParameterLists().get(event))
						parameterList = ajaxComponent.getJQueryEventParameterLists().get(event);
				}
				String js = "$('" + jQueryExpressionOfTargetElement + "').on('"
						+ ajaxComponent.getJQueryEvents().get(event) + "', function(" + parameterList + "){"
						+ code.toString() + "});";
				if (attachOnReady)
					js = "$(function() { " + js + " })";
				rw.writeText(js, null);
				rw.endElement("script");
			}
		}
	}
309932
function () {

/*Line 250 - 'AtomAutoCompleteBox.js' */                this._itemsPresenter._logicalParent = this._element;

/*Line 252 - 'AtomAutoCompleteBox.js' */                $(this._itemsPresenter).remove();

/*Line 254 - 'AtomAutoCompleteBox.js' */                document.body.appendChild(this._itemsPresenter);

/*Line 256 - 'AtomAutoCompleteBox.js' */                $(this._itemsPresenter).addClass("auto-complete-popup");

/*Line 258 - 'AtomAutoCompleteBox.js' */                base.onCreated.apply(this, arguments);
/*Line 259 - 'AtomAutoCompleteBox.js' */                this.bindEvent(this._itemsPresenter, "mouseover", "onMouseOver");
/*Line 260 - 'AtomAutoCompleteBox.js' */                this.bindEvent(this._itemsPresenter, "mouseout", "onMouseOut");
/*Line 261 - 'AtomAutoCompleteBox.js' */            }
1317768
function (bindingDef, targetScope, attrKey, context) {
            var path = bindingDef.path;
            var pathElement = path[0];

            var scope;
            var searchScope = targetScope;
            if (pathElement.type != Binding.TYPE_FNC && attrKey == pathElement.name) {
                searchScope = searchScope.$parentScope;
            }

            if (pathElement.type == Binding.TYPE_FNC) {
                scope = searchScope.getScopeForFncName(pathElement.name);
            } else {
                scope = searchScope.getScopeForKey(pathElement.name);
            }

            if (scope) {
                if (bindingDef.type !== "static") {
                    var cb;
                    if (_.isFunction(attrKey)) {
                        cb = attrKey;
                    }

                    var twoWay = (bindingDef.type == Binding.TYPE_TWOWAY);

                    var options = {
                        scope: scope,
                        path: path,
                        parent: bindingDef.parent,
                        target: targetScope,
                        twoWay: twoWay,
                        context: context,
                        bindingCreator: this
                    };

                    if (twoWay) {
                        var fncName,
                            fncScope;
                        if (bindingDef.transform && bindingDef.transform.length) {
                            fncName = bindingDef.transform[0].name;
                            fncScope = searchScope.getScopeForFncName(fncName);
                            if (fncScope && fncScope[fncName] instanceof Function) {
                                options.transform = fncScope[fncName];
                                options.transformScope = fncScope;
                            }
                        }

                        if (bindingDef.transformBack && bindingDef.transformBack.length) {
                            fncName = bindingDef.transformBack[0].name;
                            fncScope = searchScope.getScopeForFncName(fncName);
                            if (fncScope && fncScope[fncName] instanceof Function) {
                                options.transformBack = fncScope[fncName];
                                options.transformBackScope = fncScope;
                            }
                        }
                    }

                    if (cb) {
                        options.callback = cb;
                    } else {
                        options.targetKey = attrKey;
                    }

                    return new Binding(options);
                } else {
                    var par,
                        newPath = [];

                    function resolvePath(scope, path) {
                        return scope.get(resolveParameter(path));
                    }

                    function resolveParameter(path) {
                        var pathElement,
                            first,
                            scope,
                            newPath = [],
                            parameter = [];
                        for (var i = 0; i < path.length; i++) {
                            pathElement = path[i];
                            if (_.isObject(pathElement)) {
                                if (pathElement.type === "fnc") {
                                    parameter = [];
                                    for (var j = 0; j < pathElement.parameter.length; j++) {
                                        par = pathElement.parameter[j];
                                        // if it's a path
                                        if (_.isArray(par)) {
                                            first = par[0];
                                            // TODO: check targetscope first
                                            if (first.type === "var") {
                                                scope = searchScope.getScopeForKey(first.name);
                                            } else if (first.type === "fnc") {
                                                scope = searchScope.getScopeForKey(first.name);
                                            }
                                            if (scope) {
                                                par = resolvePath(scope, par);
                                            }
                                        }
                                        parameter.push(par);
                                    }

                                }
                                newPath.push({
                                    index: pathElement.index,
                                    type: pathElement.type,
                                    name: pathElement.name,
                                    parameter: parameter
                                })
                            }
                        }

                        return newPath;
                    }

                    return scope.get(resolveParameter(bindingDef.path));
                }
            } else {
                throw new Error("Couldn't find scope for " + pathElement.name);
            }

        }
1068359
public static ChainableStatement click(JsScope jsScope)
	{
		return new DefaultChainableStatement(MouseEvent.CLICK.getEventLabel(), jsScope.render());
	}
741439
function () {
					var win = settings.window,
						popup =  null;
					container = $($this);
					container.addClass('jPicker Container');
					
					container.get(0).onselectstart = function (event) {
						if (event.target.nodeName.toLowerCase() !== 'input') return false;
					};
					// inject html source code - we are using a single table for this control - I know tables are considered bad, but it takes care of equal height columns and
					// this control really is tabular data, so I believe it is the right move
					var all = color.active.val('all');
					if (win.alphaPrecision < 0) win.alphaPrecision = 0;
					else if (win.alphaPrecision > 2) win.alphaPrecision = 2;
					var controlHtml = '<table class="jPicker" cellpadding="0" cellspacing="0"><tbody><tr><td rowspan="9"><div class="Map"><span class="Map1">&nbsp;</span><span class="Map2">&nbsp;</span><span class="Map3">&nbsp;</span><img src="' + images.clientPath + images.colorMap.arrow.file + '" class="Arrow"/></div></td><td rowspan="9"><div class="Bar"><span class="Map1">&nbsp;</span><span class="Map2">&nbsp;</span><span class="Map3">&nbsp;</span><span class="Map4">&nbsp;</span><span class="Map5">&nbsp;</span><span class="Map6">&nbsp;</span><img src="' + images.clientPath + images.colorBar.arrow.file + '" class="Arrow"/></div></td><td colspan="2" class="Preview">' + localization.text.newColor + '<div><span class="Active" title="' + localization.tooltips.colors.newColor + '">&nbsp;</span><span class="Current" title="' + localization.tooltips.colors.currentColor + '">&nbsp;</span></div>' + localization.text.currentColor + '</td><td rowspan="9" class="Button"><input type="button" class="Ok" value="' + localization.text.ok + '" title="' + localization.tooltips.buttons.ok + '"/><input type="button" class="Cancel" value="' + localization.text.cancel + '" title="' + localization.tooltips.buttons.cancel + '"/><hr/><div class="Grid">&nbsp;</div></td></tr><tr class="Hue"><td class="Radio"><label><input type="radio" aria-label="' + localization.tooltips.hue.radio + '" class="hue-radio" value="h"' + (settings.color.mode == 'h' ? ' checked="checked"' : '') + '/>H:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.h : '') + '" title="' + localization.tooltips.hue.textbox + '"/>&nbsp;&deg;</td></tr><tr class="Saturation"><td class="Radio"><label><input type="radio" aria-label="' + localization.tooltips.saturation.radio + '" value="s"' + (settings.color.mode == 's' ? ' checked="checked"' : '') + '/>S:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.s : '') + '" title="' + localization.tooltips.saturation.textbox + '"/>&nbsp;%</td></tr><tr class="Value"><td class="Radio"><label><input type="radio" aria-label="' + localization.tooltips.value.radio + '" value="v"' + (settings.color.mode == 'v' ? ' checked="checked"' : '') + '/>V:</label><br/><br/></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.v : '') + '" title="' + localization.tooltips.value.textbox + '"/>&nbsp;%<br/><br/></td></tr><tr class="Red"><td class="Radio"><label><input type="radio" aria-label="' + localization.tooltips.red.radio + '" value="r"' + (settings.color.mode == 'r' ? ' checked="checked"' : '') + '/>R:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.r : '') + '" title="' + localization.tooltips.red.textbox + '"/></td></tr><tr class="Green"><td class="Radio"><label><input type="radio" title="' + localization.tooltips.green.radio + '" value="g"' + (settings.color.mode == 'g' ? ' checked="checked"' : '') + '/>G:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.g : '') + '" title="' + localization.tooltips.green.textbox + '"/></td></tr><tr class="Blue"><td class="Radio"><label><input type="radio"  aria-label="' + localization.tooltips.blue.radio + '" value="b"' + (settings.color.mode == 'b' ? ' checked="checked"' : '') + '/>B:</label></td><td class="Text"><input type="text" maxlength="3" value="' + (all != null ? all.b : '') + '" title="' + localization.tooltips.blue.textbox + '"/></td></tr><tr class="Alpha"><td class="Radio"><label><input aria-label="' + localization.tooltips.alpha.radio + '" class="alpha-radio" type="radio" value="a"' + (settings.color.mode == 'a' ? ' checked="checked"' : '') + '/>A:</label></td><td class="Text"><input type="text" maxlength="' + (3 + win.alphaPrecision) + '" value="' + (all != null ? mPrecision((all.a * 100) / 255, win.alphaPrecision) : '') + '" title="' + localization.tooltips.alpha.textbox + '"/>&nbsp;%</td></tr><tr class="Hex"><td colspan="2" class="Text"><label>#:<input  aria-label="' + localization.tooltips.hex.textbox + '" type="text" maxlength="6" class="Hex" value="' + (all != null ? all.hex : '') + '"/></label><input type="text" maxlength="2" class="AHex" value="' + (all != null ? all.ahex.substring(6) : '') + '" title="' + localization.tooltips.hex.alpha + '"/></td></tr></tbody></table>';
					container = $($this);
					container.html(controlHtml);
					// initialize the objects to the source code just injected
					var tbody = container.find('tbody').eq(0);
					colorMapDiv = tbody.find('div.Map').eq(0);
					colorBarDiv = tbody.find('div.Bar').eq(0);
					var MapMaps = colorMapDiv.find('span'),
						BarMaps = colorBarDiv.find('span');
					colorMapL1 = MapMaps.filter('.Map1').eq(0);
					colorMapL2 = MapMaps.filter('.Map2').eq(0);
					colorMapL3 = MapMaps.filter('.Map3').eq(0);
					colorBarL1 = BarMaps.filter('.Map1').eq(0);
					colorBarL2 = BarMaps.filter('.Map2').eq(0);
					colorBarL3 = BarMaps.filter('.Map3').eq(0);
					colorBarL4 = BarMaps.filter('.Map4').eq(0);
					colorBarL5 = BarMaps.filter('.Map5').eq(0);
					colorBarL6 = BarMaps.filter('.Map6').eq(0);
					// create color pickers and maps
					colorMap = new Slider(colorMapDiv, {
						map: {
							width: images.colorMap.width,
							height: images.colorMap.height
						},
						arrow: {
							image: images.clientPath + images.colorMap.arrow.file,
							width: images.colorMap.arrow.width,
							height: images.colorMap.arrow.height
						}
					});
					colorMap.bind(mapValueChanged);
					colorBar = new Slider(colorBarDiv, {
						map: {
							width: images.colorBar.width,
							height: images.colorBar.height
						},
						arrow: {
							image: images.clientPath + images.colorBar.arrow.file,
							width: images.colorBar.arrow.width,
							height: images.colorBar.arrow.height
						}
					});
					colorBar.bind(colorBarValueChanged);
					colorPicker = new ColorValuePicker(tbody, color.active, null, win.alphaPrecision);
					var hex = all != null ? all.hex : null,
						preview = tbody.find('.Preview'),
						button = tbody.find('.Button');
					activePreview = preview.find('.Active').eq(0).css({
						backgroundColor: hex && '#' + hex || 'transparent'
					});
					currentPreview = preview.find('.Current').eq(0).css({
						backgroundColor: hex && '#' + hex || 'transparent'
					}).on('click', currentClicked);
					setAlpha.call($this, currentPreview, mPrecision(color.current.val('a') * 100) / 255, 4);
					okButton = button.find('.Ok').eq(0).on('click', okClicked);
					cancelButton = button.find('.Cancel').eq(0).on('click', cancelClicked);
					grid = button.find('.Grid').eq(0);
					setTimeout(function () {
						setImg.call($this, colorMapL1, images.clientPath + 'Maps.png');
						setImg.call($this, colorMapL2, images.clientPath + 'Maps.png');
						setImg.call($this, colorMapL3, images.clientPath + 'map-opacity.png');
						setImg.call($this, colorBarL1, images.clientPath + 'Bars.png');
						setImg.call($this, colorBarL2, images.clientPath + 'Bars.png');
						setImg.call($this, colorBarL3, images.clientPath + 'Bars.png');
						setImg.call($this, colorBarL4, images.clientPath + 'Bars.png');
						setImg.call($this, colorBarL5, images.clientPath + 'bar-opacity.png');
						setImg.call($this, colorBarL6, images.clientPath + 'AlphaBar.png');
						setImg.call($this, preview.find('div').eq(0), images.clientPath + 'preview-opacity.png');
					}, 0);
					tbody.find('td.Radio input').on('click', radioClicked);
					// initialize quick list
					if (color.quickList && color.quickList.length > 0) {
						var html = '', i;
						for (i = 0; i < color.quickList.length; i++) {
							/* if default colors are hex strings, change them to color objects */
							if ((typeof (color.quickList[i])).toString().toLowerCase() == 'string') color.quickList[i] = new Color({
									hex: color.quickList[i]
								});
							var alpha = color.quickList[i].val('a');
							var ahex = color.quickList[i].val('ahex');
							if (!win.alphaSupport && ahex) ahex = ahex.substring(0, 6) + 'ff';
							var quickHex = color.quickList[i].val('hex');
							html += '<span class="QuickColor"' + (ahex && ' title="#' + ahex + '"' || '') + ' style="background-color:' + (quickHex && '#' + quickHex || '') + ';' + (quickHex ? '' : 'background-image:url(' + images.clientPath + 'NoColor.png)') + (win.alphaSupport && alpha && alpha < 255 ? ';opacity:' + mPrecision(alpha / 255, 4) + ';filter:Alpha(opacity=' + mPrecision(alpha / 2.55, 4) + ')' : '') + '">&nbsp;</span>';
						}
						setImg.call($this, grid, images.clientPath + 'bar-opacity.png');
						grid.html(html);
						grid.find('.QuickColor').on('click', quickPickClicked);
					}
					setColorMode.call($this, settings.color.mode);
					color.active.bind(activeColorChanged);
					$.isFunction(liveCallback) && color.active.bind(liveCallback);
					color.current.bind(currentColorChanged);
					show.call($this);
				}