/**
 *
 */

function createDelegate(scope, func) {
	f=function() {
		scope[func]();
	};

	return f;
}

/**
 *
 *  Text input hinter.
 *
 */

function TextInputHinter(textInputEl, hintText) {

	/**
	 *
	 */
	this.onInputFocus=function() {
		if (this.showingHintText) {
			this.inputEl.style.color="#000000";
			this.inputEl.value="";
		}

		this.showingHintText=false;
	}

	/**
	 *
	 */
	this.onInputBlur=function() {
		if (this.inputEl.value=="") {
			//trace(this.inputEl.style);
			this.inputEl.style.color="#c0c0c0";
			this.inputEl.value=this.hintText+"   ";
			this.showingHintText=true;
		}

		else {
			this.inputEl.style.color="#000000";
			this.showingHintText=false;
		}
	}

	/**
	 *
	 */
	this.setValue=function(v) {
		this.inputEl.value=v;
		this.onInputBlur();
	}

	/**
	 *  Construct.
	 */
	this.inputEl=textInputEl;
	this.inputEl.onfocus=createDelegate(this,"onInputFocus");
	this.inputEl.onblur=createDelegate(this,"onInputBlur");
	this.hintText=hintText;
	this.showingHintText=false;
	this.onInputBlur();
}

/**
 *
 */

function KeepSelectColor(selectId) {

	/**
	 *
	 */

	this.onSelectChange=function() {
		var optionEl=this.selectEl.options[this.selectEl.selectedIndex];

		this.selectEl.style.color=optionEl.style.color;
	}

	/**
	 *
	 */

	this.selectEl=document.getElementById(selectId);
	this.selectEl.onchange=createDelegate(this,"onSelectChange");
	this.onSelectChange();
}
