(function ($){
	$.fn.setDefaultInputValue = function (callSettings){
		// пробегаем по всем заданным полям формы в json-объекте
		var formSelector = this.selector;
		$.each(callSettings, function(field, title){
			// проверяем тип поля title, если текст, то все так и оставляем, если массив, то проверяем поля массива и меняем логику для паролей
			var isPass = false;
			if ((typeof title) == "object")
			{
				if (title.type == "pass")
				{
					isPass = true;
					var classPass = $(formSelector+" #"+field).attr("class");
					var idPass = field;
					var valPass = $(formSelector+" #"+field).attr("value");
					var namePass = $(formSelector+" #"+field).attr("name");
					var parentField = $(formSelector+" #"+field).parent();
				}
				title = title.title;
			}
			// при загрузке проверяем значение поля, если стоит по-умолчанию, то добавляем класс non-active
			if ($(formSelector+" #"+field).val() == title)
			{
				$(formSelector+" #"+field).addClass("non-active");
			}
			// если у нас тип поля пароль, то мы сначала подменяем его тип на текстовый в HTML
			if (isPass && ($(formSelector+" #"+field).val() == title))
			{
				/*var parentField = $(formSelector+" #"+field).parent();
				$(formSelector+" #"+field).remove();
				$(parentField).prepend('<input type="text" id="'+idPass+'" class="'+classPass+'" value="'+valPass+'" name="'+namePass+'" />');
				$(formSelector+" #"+field).addClass("non-active");
				$(formSelector).validateForm;*/
				var parentField = $(formSelector+" #"+field).parent();
				$(formSelector+" #"+field).val('').addClass('no-display non-active');
				$(parentField).prepend('<input type="text" id="'+idPass+'-txt" value="'+valPass+'" />');
				$(formSelector+" #"+field+"-txt").addClass("non-active");
				/*$(formSelector).setDefaultInputValue({
					idPass+"-txt" : {"type" : "txt-pass", "title" : title}
				});*/
			}
			// при фокусе на поле проверяем
			if (isPass)
				field = idPass+"-txt";
			$(formSelector+" #"+field).live("focus", function(){
				// если тип поля у нас пароль, то подменяем тип поля в HTML на password
				if (isPass)
				{
					/*if ($(this).val() == title)
						valPass = '';
					$(this).remove();
					$(parentField).prepend('<input type="password" id="'+idPass+'" class="'+classPass+'" value="'+valPass+'" name="'+namePass+'" />');
					$(formSelector+" #"+idPass).trigger("focus");*/
					if ($(this).val() == title)
						valPass = '';
					$(this).remove();
					$(formSelector+" #"+idPass).val(valPass).removeClass("no-display non-active");
					$(formSelector+" #"+idPass).trigger("focus");
				}
				// если поле по-умолчанию совпадает с текущим значением поля
				// то удаляем текущее значение поля и удаляем класс неактивности поля
				if ($(this).val() == title)
				{
					$(this).val("").removeClass("non-active");
				}
			});
			
			if (isPass)
				field = idPass;
			// при потере фокуса проверяем
			$(formSelector+" #"+field).live("blur", function(){
				// если поле пустое, то заполняем его значением по-умолчанию
				// и добавляем класс неактивности поля
				if ($(this).val() == '')
				{
					// если тип поля пароль, то меняем тип поля в HTML опять на text
					if (isPass)
					{
						/*$(this).remove();
						$(parentField).prepend('<input type="text" id="'+idPass+'" class="'+classPass+' non-active" value="'+title+'" name="'+namePass+'" />');*/
						var parentField = $(this).parent();
						$(this).addClass('no-display non-active').val("").trigger("change");
						$(parentField).prepend('<input type="text" id="'+idPass+'-txt" value="'+title+'" />');
						$(formSelector+" #"+field+"-txt").addClass("non-active");
					}
					else
					{
						$(this).val(title).addClass("non-active");
					}
				}
			});
			// alert(field+' '+title);
		});
	};
})(jQuery);
