CGI-WebToolkit

 view release on metacpan or  search on metacpan

t/private/javascripts/jscolor.js  view on Meta::CPAN

			return jscolor.picker && jscolor.picker.owner == THIS
		}


		function blurTarget() {
			if(valueElement == target) THIS.importColor()
			if(THIS.pickerOnfocus) THIS.hidePicker()
		}


		function blurValue() {
			if(valueElement != target) THIS.importColor()
		}


		function setPad(e) {
			var posM = jscolor.getMousePos(e)
			var x = posM[0]-posPad[0]
			var y = posM[1]-posPad[1]
			switch(modeID) {
				case 0: THIS.fromHSV(x*(6/(jscolor.images.pad[0]-1)), 1 - y/(jscolor.images.pad[1]-1), null, leaveSld); break
				case 1: THIS.fromHSV(x*(6/(jscolor.images.pad[0]-1)), null, 1 - y/(jscolor.images.pad[1]-1), leaveSld); break
			}
		}


		function setSld(e) {
			var posM = jscolor.getMousePos(e)
			var y = posM[1]-posPad[1]
			switch(modeID) {
				case 0: THIS.fromHSV(null, null, 1 - y/(jscolor.images.sld[1]-1), leavePad); break
				case 1: THIS.fromHSV(null, 1 - y/(jscolor.images.sld[1]-1), null, leavePad); break
			}
		}


		var THIS = this
		var modeID = this.pickerMode.toLowerCase()=='hvs' ? 1 : 0
		var abortBlur = false
		var
			valueElement = jscolor.fetchElement(this.valueElement),
			styleElement = jscolor.fetchElement(this.styleElement)
		var
			holdPad = false,
			holdSld = false
		var
			posPad,
			posSld
		var
			leaveValue = 1<<0,
			leaveStyle = 1<<1,
			leavePad = 1<<2,
			leaveSld = 1<<3

		// target
		jscolor.addEvent(target, 'focus', function() {
			if(THIS.pickerOnfocus) THIS.showPicker()
		})
		jscolor.addEvent(target, 'blur', function() {
			if(!abortBlur) {
				setTimeout(function(){ abortBlur || blurTarget(); abortBlur=false }, 0)
			} else {
				abortBlur = false
			}
		})

		// valueElement
		if(valueElement) {
			var updateField = function() {
				THIS.fromString(valueElement.value, leaveValue)
			}
			jscolor.addEvent(valueElement, 'keyup', updateField)
			jscolor.addEvent(valueElement, 'input', updateField)
			jscolor.addEvent(valueElement, 'blur', blurValue)
			valueElement.setAttribute('autocomplete', 'off')
		}

		// styleElement
		if(styleElement) {
			styleElement.jscStyle = {
				backgroundColor : styleElement.style.backgroundColor,
				color : styleElement.style.color
			}
		}

		// require images
		switch(modeID) {
			case 0: jscolor.requireImage('hs.png'); break
			case 1: jscolor.requireImage('hv.png'); break
		}
		jscolor.requireImage('cross.gif');
		jscolor.requireImage('arrow.gif');

		this.importColor()
	}

}


jscolor.install()



( run in 1.681 second using v1.01-cache-2.11-cpan-39bf76dae61 )