/**
 * Плагин для jQuery
 * 
 * Убирает текущий текст в input'ах
 * Применим для тега <input> с аттрибутом
 * "type" равным "text".
 * 
 * Принмает параметры:
 *  • HIDE [не обяз.]
 *    При фокусе на поле ввода:
 *    true - текст скрывается.
 *    false- текст выделяется.
 *    
 *  • STYLE [не обяз.]
 *    Стиль текста в неактивном поле ввода.
 *    Для задания стиля текста во время ввода
 *    задавать стиль элементу через css.
 *    
 *  • STRING [не обяз.]
 *    Строка которая будет браться по
 *    умолчанию. Если не задана, берется
 *    текущее значение елемента.
 *    Элемент с пустым аттрибутом "value" и
 *    пустым параметом STRING не обрабатывается
 *    плагином.
 * 
 * @author Дакалов Виктор
 * @version 1.0.0
 */
jQuery.fn.tis = function (option) {
	var param = jQuery.extend({
		style: "color:gray",
		string: "",
		hide: false
	},option);
	var num = 0;
	return this.each(function(){
		if(	jQuery(this)[0].tagName != "INPUT"	||
			(jQuery(this).attr("type") != "text" && jQuery(this).attr("type") != "password") ||
			(!jQuery(this).val().length && !param.string.length)) {
			return;
		}
		if(param.string.length) {
			$(this).val(param.string);
		}
		var id  = "tisElement-" + num;
		var cls = !$(this).attr("class").length ? "" : $(this).attr("class") + " ";
		jQuery(this).attr("class",cls + id)
		.data("tisDefString",jQuery(this).val())
		.data("tisDefType",jQuery(this).attr("type"))
		.bind("focus",function(){
			if(jQuery(this).val() == jQuery(this).data("tisDefString")){
				if(param.hide) {
					jQuery(this).val("");
				} else {
					tmpTimer = setTimeout('$("input[class*=' + id + ']").select();clearTimeout(tmpTimer);',1);
				}
				jQuery(this).removeAttr("style");
			}
		}).bind("blur",function(){
			if(jQuery(this).val() == ""){
				jQuery(this).val(jQuery(this).data("tisDefString"));
				if(param.style.length) {
					jQuery(this).attr("style",param.style);
				}
			}
		});
		if(param.style.length) {
			jQuery(this).attr("style",param.style);
		}
		num++;
	});
};
