/**
 * Create a numeric stepper from a standard text input
 * @param HTMLInputElement input
 * @param Object options
 */
ols.controls.NumericStepper = function(input,options)
{
	// Create the "UP" button
	var up = document.createElement('BUTTON');
	up.style.background = 'none';
	up.style.backgroundImage = 'url(/assets/scripts/ols/controls/assets/NumericStepper/UpArrow.gif)';
	up.style.backgroundPosition = 'center center';
	up.style.backgroundRepeat = 'no-repeat';
	up.style.float = 'right';
	up.style.height = up.style.width = 13+'px';
	up.style.position = 'absolute';
	up.INCREMENTOR = 1;
	up.onclick = function(){
		if(isNaN(parseInt(input.value)))
		{
			input.value = 0;
		}
		input.value = parseInt(input.value) + this.INCREMENTOR;
		input.onchange();
		return false;
	}
	input.parentNode.insertBefore(up,input.nextSibling);
	// Create the "DOWN" button
	var down = up.cloneNode(true);
	down.INCREMENTOR = -1;
	down.onclick = up.onclick;
	down.style.backgroundImage = 'url(/assets/scripts/ols/controls/assets/NumericStepper/DownArrow.gif)';	
	down.style.marginTop = 13+'px';
	input.parentNode.insertBefore(down,input.nextSibling);
	
	// Options for the input
	if(undefined!=input.onchange)
	{
		var onchange = input.onchange;
	}
	input.onchange = function(){
		if(isNaN(parseInt(this.value)))
		{
			this.value = 0;
		}
		if(undefined!=options.Max)
		{
			if(options.Max<this.value)
			{
				this.value = options.Max;
			}
		}
		if(undefined!=options.Min)
		{
			if(options.Min>this.value)
			{
				this.value = options.Min;
			}
		}
		if(onchange)
		{
			onchange();
		}
	};
	
	// Just to make sure that the input has a number in it:
	input.onchange();
}



var NumericStepperWindowOnload;
if(window.onload)
{
	NumericStepperWindowOnload = window.onload;
}
window.onload = function(){
	var inputs = document.getElementsByTagName('INPUT');
	for(var i=0;i<inputs.length;i++)
	{
		if(inputs[i].className=='NumericStepper')
		{
			new ols.controls.NumericStepper(inputs[i],{Min:0,Max:10});
		}
	}
	if(NumericStepperWindowOnload)
	{
		NumericStepperWindowOnload();
	}
}