﻿
(function($) {
	$.widget("ui.tiptextbox", {

		defText: 'enter text',
		textBox: null,
		tipCssClass: 'text-tip',
		normalCssClass: 'text',

		_init: function() {
			this.textBox = $(this.element);
			this._initOptions(this.options);
			this._initEvents();
			var v = this.textBox.val();
			if (v.length == 0) this.textBox.val(this.defText);
			if (this.textBox.val() == this.defText) {
				this.textBox.removeClass(this.normalCssClass);
				this.textBox.addClass(this.tipCssClass);
			}
		},

		_initEvents: function() {
			var self = this;
			this.textBox.bind("focus", function() {
				var v = self.textBox.val();
				if (v == self.defText) {
					self.textBox.addClass(self.normalCssClass);
					self.textBox.removeClass(self.tipCssClass);
					self.textBox.val("");
				}
			});
			this.textBox.bind("blur", function() {
				var v = self.textBox.val();
				if (v.length == 0) {
					self.textBox.removeClass(self.normalCssClass);
					self.textBox.addClass(self.tipCssClass);
					self.textBox.val(self.defText);
				}
			});
		},

		_initOptions: function(_o) {
			if (typeof (_o) == "undefined") _o = {};
			this.tipCssClass = typeof (_o.tipCssClass) != "undefined" ? _o.tipCssClass : this.defs.tipCssClass;
			this.normalCssClass = typeof (_o.normalCssClass) != "undefined" ? _o.normalCssClass : this.defs.normalCssClass;
			this.defText = typeof (_o.defText) != "undefined" ? _o.defText : this.defs.defText;
		},
		
		getDefText:function(){
			return this.defText;
		},
		
		reset : function(){
			this.textBox.val(this.defText);
			this.textBox.removeClass(this.normalCssClass);
			this.textBox.addClass(this.tipCssClass);
		},

		defs: {
			defText: 'enter text',
			tipCssClass: 'textBig-tip',
			normalCssClass: 'textBig'
		}
	})
})(jQuery);

