jQuery.fn.forma=function()
{
	var _this=$(this);
	var form_name=$(this).attr('name');
	$(this).find(".form_errors").hide();
		
		// Vipad
			$(this).find(".vipad").each(function () { $(this).forma_vipad(); });
		// Vipad End
		
		// _text
			$(this).find(".input[_text]").each(function (i,input)
			{
				if ($(input).attr('value')=='')
				{
					$(input).attr('value', $(input).attr('_text'));
					$(input).focus(function()
					{
						if ($(input).attr('value')==$(input).attr('_text'))
						{
							$(input).attr('value', '');
						}
					});
					$(input).blur(function()
					{
						if ($(input).attr('value')=='')
						{
							$(input).attr('value', $(input).attr('_text'));
						}
					});
				}
			});
		// _text End
		
		// Video Params
			$(this).find(".input_video_params").find(".input_video_convert").change(function ()
			{
				if ($(this).is(":checked"))
				{
					$(this).closest(".input_video_params").find(".convert_div_class").removeClass("hid").slideDown(200);
				}
				else
				{
					$(this).closest(".input_video_params").find(".convert_div_class").slideUp(200);
				}
			});
		// Video Params End
	
		// DATA
		$(this).find("input[tip=data]").each(
				function (i, input)
				{
					if ($(input).attr("period"))
					{
						$(input).attachDatepicker({
								rangeSelect: true,
								firstDay: 1
											   });
					}
					else if ($(input).attr("period_y"))
					{
						$(input).attachDatepicker({
								rangeSelect: true,
								yearRange: input.attr("period"), // Через :
								firstDay: 1
											   });
					}
					else
					{
						$(input).attachDatepicker();
					}
				}
		);
		// DATA END
		
		// Скрытые поля
		$(this).find(".forma_hidden_blok").each( function (i, blok) {
			$(blok).find("a.forma_hidden_blok_a").click(function () {
				blok_hidden=$(blok).find("div.forma_hidden_blok_hidden");
				if ($(blok_hidden).is(".hid")) { $(blok_hidden).hide().removeClass('hid'); }
				if ($(blok_hidden).is(":hidden"))
				{
					$(blok_hidden).slideDown(200);
				}
				else
				{
					$(blok_hidden).slideUp(200);
				}
				return false;
			});
		});
		// Скрытые поля End
		
		/*// FCK
		if ($.fck)
		{
			 $.fck.config = {
			  //toolbar: 'Basic',
			  path: 'fck/',
			  height: 300,
			  width:500
			 };
			$(this).find("textarea[tip=fck]").fck();
		}
		// FCK END*/
		
		// Tini
		if ($.fn.tini)
		{
			$(this).find("textarea.tini").tini();
		}
		// Tini END
		
		// File
			$(this).find("input[tip=input_file]").each(
				function (i, input)
				{
					$(input).input_file();
				}
			);
		// File END
		
		// Скрытие пустых названий файлов
			$(this).find("div.input_file_sost_text_ok").each(
				function (i, div)
				{
					if ($(div).html()=='')
					{
						$(div).hide();
					}
				}
			);
		// Скрытие пустых названий файлов END

		// Скрытие параметров для фоток
			$(this).find("div.input_foto_wh").each(
				function (i, div)
				{
					$(div).hide();
				}
			);
		// Скрытие параметров для фоток END
		
	// CANCEL
	$(this).find("input[tip=cancel]").each(function(i, cancel)
		{
			$(this).click(function()
				{
					if ($(_this).attr('_ajax')=='1')
					{
						$.post($(_this).attr('action'), {'cancel':'1'}, function (ob) { form_to_tr(_this, ob); } , "json");
					}
					if ($(_this).attr('_updown')=='1')
					{
						top_buttons_form_hide(form_name);
					}
				}
			);
		}
	);
	// CANCEL END
		
	// SUBMIT
	$(this).submit(
		function()
		{
			// _text
				$(this).find(".input[_text]").each(function (i,input)
				{
					if ($(input).attr('value')==$(input).attr('_text'))
					{
						$(input).attr('value', '');
					}
				});
			// _text End
			
			$(this).find(".form_errors").slideUp(300);
			
			// File Upload
				_stop=false;
				$(this).find("input[tip=input_file]").each(
					function(i, input)
					{
						id=$(input).attr("id");
						//value_to_upload=$("#"+id+"_text").attr("value");
						value_to_upload=$(input).parent().find("input.input_file_text").attr('value');
						// Upload File
							if ((value_to_upload!='')&&(value_to_upload!=undefined))
							{
								input_file_arr[id].submit();
								_stop=true;
								return false;
							}
						// Upload File
					}
				);
				if (_stop) { return false; }
			// File Upload END
			
			// Nado
				forma_ok=true;
				$.each($(this).find("[nado]"),
					function(i,input)
					{
						// File
							if ($(input).attr("nado")=='file')
							{
								id=$(input).attr("id");
							}
						// File End
						
						// Kod
							if ($(input).is(".input_kod"))
							{
								if ($(input).val()=='??')
								{
									$(input).parents("div[nado_sost]").attr("class", "forma_err");
									forma_ok=false;
								}
								else
								{
									$(input).parents("div[nado_sost]").attr("class", "forma_ok");
								}
							}
						// Kod End
						
						// Check
							if ($(input).attr("nado")=='check')
							{
								if (!$(input).attr("checked"))
								{
									$(input).parents("div[nado_sost]").attr("class", "forma_err");
									forma_ok=false;
								}
								else
								{
									$(input).parents("div[nado_sost]").attr("class", "forma_ok");
								}
							}
						// Check End
						
						// Input
							else
							{
								if ($(input).val()=='')
								{
									$(input).parents("div[nado_sost]").attr("class", "forma_err");
									forma_ok=false;
								}
								else
								{
									$(input).parents("div[nado_sost]").attr("class", "forma_ok");
								}
							}
						// Input END
					}
				);
				
				if (!forma_ok)
				{
					if ($(this).attr("_alert")!='')
					{
						alert($(this).attr("_alert"));
					}
					else
					{
						alert('Поля, помеченные *, обязательны для заполнения!');
					}
					return false;
				}
			// Nado END
			
			// Ajax
				if ($(this).attr('_ajax')=='1')
				{
					//$.fck.update();
					var forma=$(this);
					var serialize=$(forma).serialize();
					$.post($(forma).attr('action'), serialize, function (ob) { form_to_tr(forma, ob); } , "json");
					return false;
				}
			// Ajax END
			
			return true;
		}
	);
	// SUBMIT END

	return this;
};

function form_to_tr(forma, ob)
{
	if (ob.error)
	{
		$(forma).find(".form_errors").html(ob.errors);
		$(forma).find(".form_errors").slideDown(300);
	}
	else
	{
		//$(forma).closest('tr').find('.td_buts>div').slideUp(300);
		$(forma).parent().slideUp(300, function() {
			var tr=$(this).closest("tr");
			var new_tr=$(ob.html);
			$(tr).replaceWith($(new_tr));
			$(new_tr).children("td:empty").html("&nbsp;");
			$(new_tr).children("td").each(function (i, td)
				{
					$(td).html("<div>"+$(td).html()+"</div>");
					$(td).children("div").hide();
					$(td).children("div").slideDown(300);
				}
			);
			build_buttons($(new_tr));
		});
	}

}

$(document).ready(function ()
{
		$(".forma_button_hidden").hide().removeClass("hid");
		$(".forma_button_button").click(
			function()
			{
				if ($(this).parent().find(".forma_button_hidden").is(":hidden"))
				{
					$(this).parent().find(".forma_button_hidden").slideDown(200);
				}
				else
				{
					$(this).parent().find(".forma_button_hidden").slideUp(200);
				}
			}
		);
		
		$(".forma_button_close").click(
			function ()
			{
				$(this).parents(".forma_button_hidden").fadeOut('fast');
			}
		);
});
