var input_clicked_id = '123';
var input_clicked_mat_f_id = '123';

function del_photo()
{
	if(confirm('Удалить фотографию (операция необратима) ?'))	{
		return true;
	}	else {
		return false;
	}
}

function del_album()
{
	if(confirm('Удалить альбом вместе со ВСЕМИ фотографиями в нем (операция необратима) ?'))	{
		return true;
	}	else {
		return false;
	}
}

function confirm_sort()
{
	if(confirm('Порядок фотографий в альбоме будет изменен. Продолжить?'))	{
		return true;
	}	else {
		return false;
	}
}

function chkdel()
{

  if(document.getElementById('mass_action').value == 'del') {
		if(!confirm('Удалить фотографии (операция необратима) ?')) {
			return false;
		}
	}
	return true;
}

function mass_form_select(album_id)
{
	selval = document.getElementById('mass_action').value;

  if(selval == 'move')
  {
		document.getElementById('action_title').innerHTML = '&rarr;&nbsp;в&nbsp;альбом:';
		document.getElementById('action_field').innerHTML = 'Загрузка&nbsp;альбомов&hellip;'
		showLayer('action_title');
		showLayer('action_field');
		showLayer('action_button');
	  var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
	  req.onreadystatechange = function() {
			if (req.readyState == 4) document.getElementById('action_field').innerHTML = req.responseText;
	  }
	  req.open("GET", '/do/load_albums.php?id='+album_id, true);
	  req.send(null);
	}
	else if(selval == 'deltag')
  {
		document.getElementById('action_title').innerHTML = '&rarr;&nbsp;тег:';
		document.getElementById('action_field').innerHTML = 'Загрузка&nbsp;тегов&hellip;'
		showLayer('action_title');
		showLayer('action_field');
		showLayer('action_button');
	  var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
	  req.onreadystatechange = function() {
			if (req.readyState == 4) document.getElementById('action_field').innerHTML = req.responseText;
	  }
	  req.open("GET", '/do/load_tags.php?id='+album_id, true);
	  req.send(null);
	}
	else if(selval == 'addtag')
  {
		document.getElementById('action_field').innerHTML = '<input type="text" name="tag" value="">';
		document.getElementById('action_title').innerHTML = '&rarr;&nbsp;тег:';
		showLayer('action_title');
		showLayer('action_field');
		showLayer('action_button');
	}
	else
	{
		hideLayer('action_title');
		hideLayer('action_field');
		showLayer('action_button');
	}
}

function check_album_form()
{
	if(document.album_form.genre.value == 0 || document.album_form.title.value == '')	{
		alert('Необходимо ввести название альбома и выбрать жанр');
		return false;
	} else  {
		return true;
	}
}

function genpwd()
{
	var np = '';
	var tmp;
  for(k=0; k < 10; k++)	{
		np += String.fromCharCode(Math.round(Math.random()*25) + 97);
  }
	return np;
}

var numselc = 0;
function highlight(id)
{
	var cb = document.getElementById('cb'+id);

	if(cb.checked == true)	{
		document.getElementById('lt'+id).style.background='#ffe59f';
		numselc += 1;
	} else {
		document.getElementById('lt'+id).style.background='#ffffff';
		numselc -= 1;
	}
	if(numselc > 0)	{
		document.getElementById('action_numsel').innerHTML = numselc;
		if(numselc == 1 && cb.checked == true)
		{
			currentOpac('action_cont', 100, 200);
		}	
	}	else	{
		document.getElementById('mass_action').options[0].selected = true;
		hideLayer('action_title');
		hideLayer('action_field');
		hideLayer('action_button');
		document.getElementById('action_numsel').innerHTML = numselc;
		currentOpac('action_cont', 0, 200);
	}
}

function selectAll()
{
	for(var k in allId_arr)
	{
	  document.getElementById('cb'+allId_arr[k]).checked = true;
		document.getElementById('lt'+allId_arr[k]).style.background='#ffe59f';
		numselc += 1;
	}
	document.getElementById('action_numsel').innerHTML = numselc;
	currentOpac('action_cont', 100, 200);
}

function selectNone()
{
	for(var k in allId_arr)
	{
	  document.getElementById('cb'+allId_arr[k]).checked = false;
		document.getElementById('lt'+allId_arr[k]).style.background='#ffffff';
	}
	numselc = 0;
	currentOpac('action_cont', 0, 200);
	document.getElementById('mass_action').options[0].selected = true;
	hideLayer('action_title');
	hideLayer('action_field');
	hideLayer('action_button');
}

function chk_genre(id)
{
  if(document.genre_form.rubric.value == 3)
  {
    showLayer('country_label');
    showLayer('country_sel');
		document.getElementById('country_label').innerHTML = 'Страна:&nbsp;';
		document.getElementById('country_sel').innerHTML = '<span class="dgr">Загрузка...</span>';
	  var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
	  req.onreadystatechange = function() {
			if (req.readyState == 4) document.getElementById('country_sel').innerHTML = req.responseText;
	  }
	  req.open("GET", '/do/load_countries.php?id='+id, true);
	  req.send(null);
	}
	else
	{
    hideLayer('country_label');
    hideLayer('country_sel');
		document.getElementById('country_sel').innerHTML = '';
	}
}

function cont_scroll(id)
{
	document.getElementById(id).style.top = document.body.scrollTop;
}

// #################################################### 
var toggleForm = new Hash();
function vB_keypress(obj, id, formobj)  // нужно, чтобы при изменении значения поля, менялся статус на "изменено"
{
	//alert('Нажата клавиша');
	//var id = obj.options[obj.selectedIndex].value;
	//obj.value = '33';
	// найти параметры в форме...
	//alert(formobj);
	this.id = obj.id.substr(obj.id.lastIndexOf('::')+2);  // уникальный номерок строки
	//alert(this.id)
	if (formobj.length>0)  //  если id формы передано через параметры
	{
		this.formobj = fetch_object(formobj);
	}
	else {  // иначе найти объект формы двигаясь вверх по структуре HTML
		var i, out = "";
		lpparent = obj.parentNode;  // 1-ый спан
		while (lpparent.nodeName != 'FORM')
		{
			out += i+': '+lpparent.nodeName + "\n";
			lpparent = lpparent.parentNode;  // двигаемся вверх по структуре HTML
		}
		//alert(out);
		this.formobj = fetch_object(lpparent.id);
	}
	
	for (var i=0; i < this.formobj.elements.length; i++)
	{
		var elm = this.formobj.elements[i];
		//if (elm.type == 'select-one' || elm.type == 'text' || elm.type == 'hidden')
		//{
			//alert(elm.value);
		//}
		if ((elm.type == 'text' || elm.type == 'hidden') && elm.name == 'edit_'+this.id)
		{
			//alert(elm.value);
			if (elm.value == 0) 
			{
				if(!toggleForm.hasItem(formobj+this.id)) 
				{
					toggleForm.setItem(formobj+this.id, obj.value);
				}
				//alert(toggleForm.getItem(formobj+id).length);
				if (toggleForm.getItem(formobj+this.id).length >0)  // проверка на пустое поле на начало ввода...
				{
					elm.value = 2;
				}
				else elm.value = 1;
			}
		}

	}
	return;
}

// задать параметр на удаление
var toggleForm4 = new Hash();
function switch_del(obj, id) {

// иначе найти объект формы двигаясь вверх по структуре HTML
	var i, out = "";
	lpparent = obj.parentNode;  // 1-ый спан
	while (lpparent.nodeName != 'FORM')
	{
		out += i+': '+lpparent.nodeName + "\n";
		lpparent = lpparent.parentNode;  // двигаемся вверх по структуре HTML
	}
	//alert(out);
	this.formobj = fetch_object(lpparent.id);

	for (var i=0; i < this.formobj.elements.length; i++)
	{
		var elm = this.formobj.elements[i];
		//if (elm.type == 'select-one' || elm.type == 'text' || elm.type == 'hidden')
		//{
			//alert(elm.value);
		//}
		if ((elm.type == 'text' || elm.type == 'hidden') && elm.name == 'edit_'+id)
		{
			//alert(obj.checked);
			if (obj.checked) 
			{
				if(!toggleForm4.hasItem(formobj+id)) 
				{
					toggleForm4.setItem(formobj+id, elm.value);
				}
				elm.value = 3;
			}
			else {
				elm.value = toggleForm4.getItem(formobj+id);
				toggleForm4.removeItem(formobj+id);
			}
		}

	}
	return;
}

// #############################################################################
// vB_AJAX   Работа с редактором
// #############################################################################


function vB_wait()
{
	return '<IMG SRC="images/load.gif" BORDER="0">загрузка...';
}

function switch_mode_table(mpp)  // переключить режим отображения таблицы
{
	document.getElementById('mpp_switch_mode_table').innerHTML = 'загрузка...';
	var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
  req.onreadystatechange = function() {
		if (req.readyState == 4)
		{
			location.reload();
			//document.getElementById('mpp_switch_mode_table').innerHTML = req.responseText;
		}	
  }
  req.open("GET", '/store/ajax.php?do=switch_mode_table&hid='+mpp, true);
  req.send(null);		
}

function test(mpp)
{   //alert('123'+mpp);
	document.getElementById(mpp).innerHTML = vB_wait();
	var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
  req.onreadystatechange = function() {
		if (req.readyState == 4 && req.status == 200)
		{
			//location.reload();
			document.getElementById(mpp).innerHTML = req.responseText;
		}	
  }
	today = new Date();
	intSeconds = today.getSeconds();
	timeString = intSeconds;
	//alert(timeString);
  req.open("GET", '/store/ajax.php?do=test&time='+timeString, true);
  //req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  req.send(null);	
}

// добавление нового элемента
function new_nal_add(mpp, ajaxdo, hid, nal_id, par)
{   //alert('123'+mpp);
	document.getElementById(mpp).innerHTML = vB_wait();
	var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
  req.onreadystatechange = function() {
		if (req.readyState == 4 && req.status == 200)
		{
			//location.reload();
			document.getElementById(mpp).innerHTML = req.responseText;
			//alert('new_nal_add');
			vB_AJAX_QuickEdit_Init('store_area');
			vB_AJAX_QuickEdit_Init('content');
			jquery_edit_init('edit_nal_');
		}	
  }
	today = new Date();
	intSeconds = today.getSeconds();
	timeString = intSeconds;
	//alert(timeString);
  req.open("GET", '/store/ajax.php?do='+ajaxdo+'&hid='+hid+'&nal_id='+nal_id+'&time='+timeString+'&par='+PHP.urlencode(par), true);
  req.send(null);	
}

// добавление нового элемента
function vB_new_nal_add(mpp, ajaxdo, hid, nal_id, par)
{	
	//alert('123');

	this.textobj = fetch_object(mpp);  // куда будет грузиться результат

	this.xml_sender = null;

	this.textobj.innerHTML = vB_wait();

	/**
	* Function to switch the open/closed state of a thread / thread status icon
	*/
	this.toggle = function toggle_openclose()
	{
		this.xml_sender = new vB_AJAX_Handler(true);
		this.xml_sender.onreadystatechange(this.onreadystatechange);
		this.xml_sender.send('/store/ajax.php', 'do=' + ajaxdo + '&hid='+hid+'&nal_id='+nal_id + '&par=' + PHP.urlencode(par));
		//req.open("GET", '/store/ajax.php?do='+ajaxdo+'&hid='+hid+'&nal_id='+nal_id+'&time='+timeString, true);
	}

	var me = this;

	/**
	* OnReadyStateChange callback. Uses a closure to keep state.
	* Remember to use me instead of this inside this function!
	*/
	this.onreadystatechange = function()
	{
		if (me.xml_sender.handler.readyState == 4 && me.xml_sender.handler.status == 200 && me.xml_sender.handler.responseText)
		{
			me.textobj.innerHTML = me.xml_sender.handler.responseText;
			//alert('123');
			vB_AJAX_QuickEdit_Init('store_area');
			vB_AJAX_QuickEdit_Init('content'); // добавил , иначе не находит подгружаемые блоки, выходящие за пределы store_area
	
			if (is_ie)
			{
				me.xml_sender.handler.abort();
			}
		}
	}

	// send the data
	this.toggle();
}

// выдать список параметров при смене типа материала для добавления
function switch_form(obj, postobj) {
	//alert(postobj);
	this.obj = obj;

	this.postobj = postobj;

	//this.textobj = fetch_object(this.postobj);  // имя выполняемого действия
	
	//this.textobj.innerHTML = vB_wait();

	var id = obj.options[obj.selectedIndex].value;

	if (id == "")
	{
		return;
	}

	new_nal_add(this.postobj, this.postobj, id, 0);

}

// загрузить на экран форму для редактирования материала
var toggleForm3 = new Hash();
function switch_edit(obj, postobj, nal_id) {
	//alert(postobj);
	this.postobj = postobj;

	if(toggleForm3.hasItem(nal_id)) 
	{
		toggleForm3.removeItem(nal_id);
		//this.textobj = fetch_object(this.postobj + nal_id);  
		dir_attach = 'dump';
		hideLayer(this.postobj + nal_id);
		return;
	}
	toggleForm3.setItem(nal_id, '1');
	dir_attach = 'shop';
	showLayer(this.postobj + nal_id);
	//$('#dialog').dialog({
	//});
	$('#'+this.postobj + nal_id).draggable({
		start: function() {
			$("input[id^='edit_nal_']").blur();
		}
	});
	$('#'+this.postobj + nal_id).position({
		of: $(obj),
		my: "right top",
		at: "left middle",
		offset: "80 30"
    });
	//$('#'+this.postobj + nal_id).css("z-index", 1000);
	this.obj = obj;

	//this.textobj = fetch_object(this.postobj);  // имя выполняемого действия
	
	//this.textobj.innerHTML = vB_wait();

	//var id = obj.id;
	var id = obj.id.substr(0, obj.id.lastIndexOf('::'));
	//alert(id);

	if (id == "")
	{
		return;
	}

	new_nal_add(this.postobj + nal_id, this.postobj, id, nal_id);
}

function jquery_edit_init(id_str) {
	// jQuery
 $(".btn-slide").css(
   { color: "red", background: "blue" }
 );

  $(".btn-slide").attr('id', 'ffffffff');

	/*$("input[id^='edit_nal_']").click(function(){  
         $(this).next("p").slideToggle("slow")  
         .siblings("p:visible").slideUp("slow");  
         $(this).toggleClass("active");  
         $(this).siblings("h3").removeClass("active");  
     });  */
$("input[id^="+id_str+"]").focus(function(){
					//$('#dialog').dialog('open');
					//alert($(this).attr("name"));
					input_clicked_id = $(this).attr("name");
					input_clicked_mat_f_id = $(this).attr("mat_f_id");
					return false;
				});
$("input[id^="+id_str+"]").autocomplete("/store/ajax.php?do=get_sprav_jquery", {
					extraParams: {
						hid: function() {  
							return input_clicked_mat_f_id;
						},
						nal_id: function() {//"hid::1019",
							today = new Date();
							intSeconds = today.getSeconds();
							//return input_clicked_id+' '+intSeconds;
							return input_clicked_id;
						},
						maxRows: 24
					},
					minChars: 0,
					max: 24,
					highlight: false,
					multiple: false,
					multipleSeparator: " ",
					scroll: true,
					scrollHeight: 300
				})
$("input[id^="+id_str+"]").result(function(event, data, formatted) {
	//if(window.console) console.debug(data[0]);
	if (data) {
		//if(window.console) console.debug($(this).attr("id"));
		id = $(this).attr("id");
		c = id.substr(id.lastIndexOf('::')+2);  // уникальный номерок строки
		vB_keypress(this, c, '');
		//if(window.console) console.debug(c);
	}
});
$("<button>&nbsp;</button>")
				.insertAfter("input[id^="+id_str+"]")
				.button({
					icons: {
						primary: "ui-icon-triangle-1-s"
					},
					text: false
				}).removeClass("ui-corner-all")
				.addClass("ui-corner-right ui-button-icon")
				.css("top", "")
				.click(function() {
					//var source = $(this).prev().autocomplete('option', 'source');
					//input_clicked_id = $(this).prev().attr("id");
					input_clicked_id = $(this).prev().attr("name");
					input_clicked_mat_f_id = $(this).prev().attr("mat_f_id");
					//alert(source);
					// close if already visible
					//if ($(this).prev().autocomplete("widget").is(":visible")) {
					//	$(this).prev().autocomplete("close");
					//	return false;
					//}
					//alert($(this).prev().sss().start);
  					$(this).prev().ss();
					//if(window.console) { console.debug($(this).prev().ss()); } else { alert($(this).prev().ss());  }
					if(window.console) console.debug($(this).prev().attr("ss"));
					if ($(this).prev().attr("ss")  > 0 ) {
						$(this).prev().blur();
						$(this).prev().ss();
						return false;
					}
					//ssss = $(this).prev().setOptions();
					 $(this).prev().setOptions({
						scrollHeight: 200
					});
					// pass empty string as value to search for, displaying all results
					//$(this).prev().autocomplete("search", "");
					$(this).prev().focus();
					$(this).prev().focus();
					//$(this).prev().search();
					//$(this).prev().click();
					$(this).prev().click();
					//input.val("yy");
					//alert (input.val());
					//$("input[id^='edit_nal_']").val(input.val());
					//input.attr('readonly', true);
					return false;
				});

	// для старого выпадающего справочника привязывает положение и ширину к input'у базовому
	$.each( $("input[id*="+id_str+"]"), function(i, n){
		//n.className = 'bar';
		//if(window.console) console.debug(n.id);
		c = n.id.substr(n.id.lastIndexOf('::')+2);  // уникальный номерок строки
		//if(window.console) console.debug(c);
		c2 = n.id.substr(0, n.id.lastIndexOf('_new_par_i'));  // уникальный номерок строки
		//if(window.console) console.debug('mpp_selector'+c2+c);

		//if(window.console) console.debug($('input#'+n.id).offset().left);
		//if(window.console) console.debug($('input#'+n.id+':first').html());
		//if(window.console) console.debug($("input[id="+n.id+"]:first").width());
		var w = $("input[id="+n.id+"]:first").width();

		//if(window.console) console.debug($("input[id="+n.id+"]:first").position().left);
		var p = $("input[id="+n.id+"]:first").position().left;

		//$("div[id^=mpp_selector]").html('33');
		//$("div[id^=mpp_selector]").css({ left: "400px" } );

		// по левому краю нужно выравнивать только когда форма через Ajax вызывается, нужно для IE
		//if(window.console) console.debug($("input[id="+n.id+"]:first").parents("span.ui-draggable:first"));
		//if($("input[id="+n.id+"]:first").parents("span.ui-draggable:first").width()>0) {
		if(w>0) {
			$("div[id^=mpp_selector"+c2+c+"]").css({ left: p, width: w } );
		}

		/*$("div[id^=mpp_selector"+c2+c+"]").position({
			of: $("input[id="+n.id+"]:first"),
			my: "left top",
			at: "left bottom",
			offset: "0 0"
		});*/
	  
	 }
	);


}

// выдать список параметров при смене типа материала для добавления
var toggleForm2 = new Hash();
function switch_par_id(obj, inputobj) {
	//alert(obj);
	this.obj = obj;
	//alert(obj.value);
	//alert(inputobj);

	this.textobj = fetch_object(inputobj);  // найти id , где менять вид поля ввода
	this.textobj.innerHTML = vB_wait();

	//this.threadid = this.obj.name.substr(this.obj.name.lastIndexOf('::') + 2);
	this.c = this.textobj.id.substr(this.textobj.id.lastIndexOf('::') + 2);
	this.ajaxdo = this.textobj.id.substr(0, this.textobj.id.lastIndexOf('::'))
	//alert(this.ajaxdo);

	// подмена поля ввода
	//new_nal_add(inputobj, this.ajaxdo, this.c, obj.value);
	openclose = new vB_new_nal_add(inputobj, this.ajaxdo, this.c, obj.value, hid);

	// + выдать ещё одну строку для нового ввода
	// обрабатывать только первыю смену типа поля, для предотвращения многократного добавления
	if(toggleForm2.hasItem(inputobj)) 
	{
		return;
	}
	toggleForm2.setItem(inputobj, this.c);
	//alert(this.ajaxdo);
	this.container = fetch_object(this.ajaxdo);  // 2-ой спан
	//this.container.innerHTML = 'dddd';
	lpparent = this.container.parentNode;  // 1-ый спан	
	newdiv = document.createElement('div');

	today = new Date();
	intSeconds = today.getSeconds();
	timeString = intSeconds;
	newdiv.id = timeString;

	var postbit = lpparent.insertBefore(newdiv, this.container);
	postbit.innerHTML = 'test';

	//new_nal_add(newdiv.id, this.ajaxdo+'_next', this.c, 0);
	openclose = new vB_new_nal_add(newdiv.id, this.ajaxdo+'_next', this.c, 0);

		//var postbit = lpparent.insertBefore(newdiv, lp);
		// var postbit = lpparent.appendChild(newdiv);
		// this.container.removeChild(this.editobj);
		//lp=me.obj;					// 2-ой спан
		//lpparent = lp.parentNode;  // 1-ый спан
			//lpparent = lp.parentNode;
			//lpparent3 = lp.ChildNode;
}

// #############################################################################
// vB_AJAX   работа со картинками
// #############################################################################

// включение/выключение отображения материала
function click_enable(obj, name_id_img, nal_id, mat_id) {
	//alert('enable');
	$.post("/store/ajax.php", {
		"do":"click_enable",
		hid: name_id_img,
		nal_id: nal_id,
		mat_id: mat_id,
		src: $("img[id^="+name_id_img+"]").attr('src')
	  }, function(response){
		$("img[id^="+name_id_img+"]").fadeOut();
		$("img[id^="+name_id_img+"]").attr('src', '/store/images/load.gif');
		//$(".btn-slide").attr('id', 'ffffffff');
		setTimeout("finishAjax_enable('"+name_id_img+"', '"+escape(response)+"')", 400);
	});
	
	return false;
}

function finishAjax_enable(id, response) {
	//alert('enable2');
	$("img[id^="+id+"]").attr('src', unescape(response));
	$("img[id^="+id+"]").fadeIn();
} //finishAjax

// Полный просмотр картинок из превьюшек
function click_img(obj, name_id_img) {
	//alert('img');
	toggleLayer_inline(name_id_img);
	openclose = new vB_new_nal_add(name_id_img, name_id_img, '', '', '');

	return false;
}

// #############################################################################
// vB_AJAX   работа со справочниками
// #############################################################################

function get_sprav(input, flag, inputobj, mat_f_id) {
	//alert(flag);
	this.input=input;
	this.name=input.name;
	this.text=input.value;


	//input_clicked_mat_f_id = mat_f_id;
	//input_clicked_id = this.name;

	if (document.getElementById(inputobj) != null) {
		//alert(document.getElementById(inputobj));
	  if(flag == 1)  
	  {
		toggleMenu(inputobj);
		//showLayer_inline(inputobj);
		if(window.console) console.debug($(input).attr("id"));

		/*$('#'+inputobj).position({
			of: $(input),
			my: "left top",
			at: "left bottom",
			offset: "0 0"
		});*/
		this.ajaxdo = 'get_sprav';
		//alert(this.input.offsetWidth);
		//alert(this.input.offsetLeft);

		openclose = new vB_new_nal_add(inputobj, this.ajaxdo, mat_f_id, this.name, input.value);

	  }
	  else 	{
		toggleMenu(inputobj);
	  }
	}
	//else
		//$calert(inputobj);
}

//-------------------
function click_sprav(obj, test) {
	this.container = obj;
	//alert(this.container.name);

	//this.container = fetch_object(ajax_div);  // куда записать значение из первого поля
	lmparent = this.container.parentNode;  // обрамляющий div
	lmparent2 = lmparent.parentNode;  // обрамляющий div
	//newdiv = document.createElement('span');
	//var postbit = lpparent.insertBefore(newdiv, this.container);
	var tds = fetch_tags(lmparent2, 'input');
	//alert(tds.length);

	this.pos = this.container.innerHTML.lastIndexOf('#');
	//alert(this.pos);
	if (this.pos >=0)
		str = this.container.innerHTML.substr(this.pos);  // для справочников
	else
		str = this.container.innerHTML;			// для текста

	for (var i = 0; i < tds.length; i++)
		{
			if (tds[i].size > 5) {
				tds[i].value = str;
				vB_keypress(tds[i], '', '');  // обновить служебные поля
			}

		}
	//while (this.tek_node = lpparent2.ChildNode.lenght)
	//	{
	//		this.tek_node.removeNode;
	//	}
	//var postbit = lpparent.appendChild(newdiv);
	//postbit.innerHTML = test;

	if (this.pos >=0) {  // если это был справочник, дальше двигаться по иерархии вниз
		this.ajaxdo = 'get_sprav';
		openclose = new vB_new_nal_add(lmparent.id, this.ajaxdo, this.container.name, test, this.container.name); //если 1 и 3-й параметр равно, значит там id базы справочника 
	}
	else // если выбор из текста, то просто закрыть suggest
		toggleMenu(lmparent.id);
}

// для регионов, значение из выбора заносится в поле ввода
function switch_sprav(obj, obj2, id) {
	this.obj = obj;
	//alert(obj.value);
	this.textobj = fetch_object(obj2);  // куда записать значение из первого поля
	this.textobj.value = this.obj.value;
	vB_keypress(obj, id, '');  // обновить служебные поля

	// подготовим ajax сектор для следующей загрузки затирания предыдущей
	var ajax_div = 'region_'+id+'_next';
	this.container = fetch_object(ajax_div);  // куда записать значение из первого поля

	lpparent = this.container.parentNode;  // 1-ый спан	
	newdiv = document.createElement('span');

	today = new Date();
	intSeconds = today.getSeconds();
	timeString = intSeconds;
	newdiv.id = timeString;

	var postbit = lpparent.insertBefore(newdiv, this.container);
	postbit.innerHTML = this.container.innerHTML;
	this.container.innerHTML = 'загрузка...';


	//new_nal_add(inputobj, this.ajaxdo, this.c, obj.value);
	next_level = new vB_new_nal_add(ajax_div, 'switch_sprav', this.obj.value, id);
}

// #############################################################################
// vB_AJAX   Закачка на сервер файла и вставка ссылки на него в редактор
// #############################################################################
var toggleFormFile = new Hash();
vB_AJAX_QuickEditor.prototype.upload = function(obj, inputobj)

{
	this.windows = new Array();
	var hash = 'Attach';


	if (typeof(this.windows[hash]) != 'undefined' && this.windows[hash].closed == false)
	{
		this.windows[hash].focus();
	}
	else
	{
		toggleFormFile.setItem(0, inputobj);
		toggleFormFile.setItem(1, obj);
		//this.windows[hash] = openWindow('/includes/newattachment.php?do=attach&dir_attach=shop', 400, 200, 'Attach');
		this.windows[hash] = openWindow('/includes/newattachment.php?do=attach&dir_attach=' + dir_attach, 400, 200, 'Attach');
	}

	//vB_QuickEditor.pending = true;
};

/**
* Reset the attachments array
*/
vB_AJAX_QuickEditor.prototype.add_shop = function(id, filename)
{
	//var objtext = fetch_object(vB_QuickEditor.editorid + '_textarea');
	//var newtext = objtext.innerHTML;
	//objtext.innerHTML = newtext + filename;
	if(!toggleFormFile.hasItem(0)) 
	{
		return;
	}

	//alert(toggleFormFile.getItem(0));
	var objtext = fetch_object(toggleFormFile.getItem(0));
	objtext.focus();
	//var text = filename;
	objtext.value = id;  // сюда положим Id на картинку
	toggleFormFile.getItem(1).src = filename; // а тут будет ссылка на картинку
	//toggleFormFile.getItem(1).onclick = ''; // обнуление вызова функции

	var i, out = "";
	lpparent = objtext.parentNode;  // 1-ый спан
	this.c = lpparent.id.substr(lpparent.id.lastIndexOf('::') + 2);  // уникальный номерок строки

	out += '4-1:'+ '  this.c=' + this.c + ' lpparent4.id=' + lpparent.id + "\n";
	//alert(out);
	vB_keypress(objtext, this.c, '')  // нужно, чтобы при изменении значения поля, менялся статус на "изменено"

	//toggleFormFile.removeItem(inputobj);

};

// #############################################################################
// vB_AJAX   Init
// #############################################################################


function vB_AJAX_QuickEdit_Init(postobj)
{
	if (ajax_compatible)
	{
		if (typeof postobj == 'string')
		{
			postobj = fetch_object(postobj);
		}
		var anchors = fetch_tags(postobj, 'a');
		var postid = 0;
		for (var i = 0; i < anchors.length; i++)
		{
			if (anchors[i].name && anchors[i].name.indexOf('vB::QuickDel::') != -1)
			{
				anchors[i].onclick = vB_AJAX_ThreadList_Events_Store.prototype.threadicon_click;
			}
			if (anchors[i].name && anchors[i].name.indexOf('vB::QuickAdd::') != -1)
			{
				anchors[i].onclick = vB_AJAX_ThreadList_Events_Store.prototype.addicon_click;
				//alert('-----'+anchors[i].name);
			}

		}
	}
}

// #############################################################################
// vB_AJAX_OpenClose      Vote
// #############################################################################


/**
* Class to handle opening and closing of threads from forumdisplay with XML-HTTP
*
* @param	object	The clickable status icon image for the thread
*/
function vB_AJAX_OpenClose(obj)
{	
	//alert('123');
	this.obj = obj;
	this.threadid = this.obj.name.substr(this.obj.name.lastIndexOf('::') + 2);
	//alert(this.threadid);
	//alert(this.obj.id);

	
	this.id = this.obj.id;  // номер hid текущего склада
	//alert(this.id);

	this.textobj = fetch_object(this.threadid+this.id);  // имя выполняемого действия
	//alert(this.textobj.id)

	this.xml_sender = null;

	if (!confirm('Удалить предмет?')) return false;
	
	
	this.textobj.innerHTML = vB_wait();

	/**
	* Function to switch the open/closed state of a thread / thread status icon
	*/
	this.toggle = function toggle_openclose()
	{
		this.xml_sender = new vB_AJAX_Handler(true);
		this.xml_sender.onreadystatechange(this.onreadystatechange);
		this.xml_sender.send('/store/ajax.php', 'do=' + this.threadid + '&hid=' + this.id);
	}

	var me = this;

	/**
	* OnReadyStateChange callback. Uses a closure to keep state.
	* Remember to use me instead of this inside this function!
	*/
	this.onreadystatechange = function()
	{
		if (me.xml_sender.handler.readyState == 4 && me.xml_sender.handler.status == 200 && me.xml_sender.handler.responseText)
		{
			me.textobj.innerHTML = me.xml_sender.handler.responseText;
	
			if (is_ie)
			{
				me.xml_sender.handler.abort();
			}
		}
	}

	// send the data
	this.toggle();
}

// #############################################################################
// vB_AJAX_Add		Добавление элемента-материала на склад
// #############################################################################


/**
* Class to handle opening and closing of threads from forumdisplay with XML-HTTP
*
* @param	object	The clickable status icon image for the thread
*/
function vB_AJAX_Add(obj)
{	
	//alert('123');
	this.obj = obj;
	//alert(obj.id);
	this.ajax_do = this.obj.name.substr(this.obj.name.lastIndexOf('::') + 2);
	//alert(this.threadid);

	//this.id = this.obj.id;  // номер hid текущего склада
	this.id = this.obj.id.substr(0, this.obj.id.lastIndexOf('::'));  // номер hid текущего склада
	//alert(this.id);

	//this.nal_id = this.obj.id.substr(this.obj.id.lastIndexOf('::')+2, this.obj.id.lastIndexOf('_form_sub'));  // nal_id вытаскиваем
	this.nal_id_temp = this.obj.id.substr(0, this.obj.id.lastIndexOf('_form_sub')); 
	this.nal_id = this.nal_id_temp.substr(this.nal_id_temp.lastIndexOf('::')+2);  

	// найти параметры в форме...
	this.par = '';
	this.formobj = fetch_object('form_' + this.ajax_do + this.nal_id);
	for (var i=0; i < this.formobj.elements.length; i++)
	{
		var elm = this.formobj.elements[i];
		if (elm.type == 'select-one' || elm.type == 'text' || elm.type == 'hidden' || elm.type == 'textarea' || elm.type == 'checkbox')
		//if (elm.type == 'text' || elm.type == 'hidden')
		{
			//alert(elm.value);
			this.par = this.par + '|||' + elm.value;
		}
	}

	this.xml_sender = null;

	//this.textobj = fetch_object(this.ajax_do + this.nal_id);  // куда результат поместить
	this.textobj = fetch_object('view_item' + this.nal_id);  // куда результат поместить
	//alert(this.ajax_do + this.nal_id);
	this.textobj.innerHTML = vB_wait();

	/**
	* Function to switch the open/closed state of a thread / thread status icon
	*/
	this.toggle = function toggle_openclose()
	{
		this.xml_sender = new vB_AJAX_Handler(true);
		this.xml_sender.onreadystatechange(this.onreadystatechange);
		this.xml_sender.send('/store/ajax.php', 'do=' + this.ajax_do + '&hid=' + this.obj.id + '&par=' + PHP.urlencode(this.par));
	}

	var me = this;

	/**
	* OnReadyStateChange callback. Uses a closure to keep state.
	* Remember to use me instead of this inside this function!
	*/
	this.onreadystatechange = function()
	{
		if (me.xml_sender.handler.readyState == 4 && me.xml_sender.handler.status == 200 && me.xml_sender.handler.responseText)
		{
			me.textobj.innerHTML = me.xml_sender.handler.responseText;
			
			if (is_ie)
			{
				me.xml_sender.handler.abort();
			}
		}
	}

	// send the data
	this.toggle();
}


// #############################################################################
// Threadlist event handlers

/**
* Class to handle events in the threadlist
*/
function vB_AJAX_ThreadList_Events_Store()
{
}


/**
* Handles double-clicking on thread icon cells to toggle open/close state
*/
vB_AJAX_ThreadList_Events_Store.prototype.threadicon_click = function(e)
{
	//alert('111');
	openclose = new vB_AJAX_OpenClose(this);
	//return false;
};

/**
* Handles double-clicking on thread icon cells to toggle open/close state
*/
vB_AJAX_ThreadList_Events_Store.prototype.addicon_click = function(e)
{
	//alert('222');
	openclose = new vB_AJAX_Add(this);
	//return false;
};

