function JS_ModalForm(obj_fp,fn_os) {
	var $frm = $('<form/>').attr({'method':'post','action':obj_fp['action'],'autocomplete':'off'});
	if (fn_os) {
		$frm.submit(function(){ return fn_os($frm.get(0),$.modal); });
	}
	if (obj_fp.hidden)
	for (var i=0;i<obj_fp.hidden.length;i++) {
		var $inp = $('<input/>').attr({'type':'hidden','name':obj_fp.hidden[i][0],'value':obj_fp.hidden[i][1]});
		$frm.append($inp);
	}
	var $tbl = $('<table/>');
	for (var i=0;i<obj_fp.fields.length;i++) {
		var $row = $('<tr/>');
		var str_type = obj_fp.fields[i][0];
		var str_titl = obj_fp.fields[i][1];
		var str_name = obj_fp.fields[i][2];
		if (str_type == 'text') {
			$row.append($('<td/>').append($('<label/>').attr({'for':str_name}).text(str_titl)));
			$row.append($('<td/>').append($('<input/>').attr({'id':str_name,'name':str_name,'value':obj_fp.fields[i][3]}).addClass('text')));
		} else
		if (str_type == 'drop') {
			$row.append($('<td/>').append($('<label/>').attr({'for':str_name}).text(str_titl)));
			var $sel = $('<select/>').attr({'id':str_name,'name':str_name});
			var arr_o = obj_fp.fields[i][3];
			for (var j=0;j<arr_o.length;j++) $sel.append($('<option/>').attr({'value':arr_o[j].v}).attr((arr_o[j].d)?{'selected':'selected'}:{}).text(arr_o[j].n));
			$row.append($('<td/>').append($sel));
		}
		$tbl.append($row);
	}
	$tbl.append(
		$('<tr/>').addClass('buttons')
		.append($('<td/>').append($('<div/>').addClass('cancel').attr({'align': 'left'})))
		.append($('<td/>').append($('<div/>').attr({'align':'right'}).append($('<button type="submit" />').addClass('button').addClass('submit').append($('<span/>').text('Submit')))))
	);
	if (obj_fp.btn_close) $tbl.find('.cancel').append($('<button/>').addClass('button').append($('<span/>').text('Cancel')).click($.modal.close));
	$frm.append($tbl);
	var $div = $('<div/>')
	.css({'display':'none'})
	.append(
		$('<div/>')
		.addClass('content')
		.append($('<h2/>').text(obj_fp.title))
		.append($frm)
	)
	.append($('<a/>').attr('href','#').addClass('close'));
	if (obj_fp.className) $div.find('.content').addClass(obj_fp.className);
	$('body').append($div);
	$('a.close').click(function(){ $.modal.close();return false; });
	$div.modal({overlayCss:{backgroundColor:'#000',cursor:'wait'},opacity:80});
	$('#simplemodal-container table input').get(0).focus();
}

