	var IE=/*@cc_on!@*/false;
	
	state_vis='visible'; state_hide='hidden';
	if (navigator.userAgent.indexOf("Ope")!=-1) {
		state_vis=state_vis.toUpperCase();
		state_hide=state_hide.toUpperCase();
	}

document.write('<div id="div_popup_xdb_win"></div>');
document.write('<div id="div_popup_xdb_win_pic"></div>');
document.write('<div id="div_popup_xdb_win_page"></div>');

function xdb_ch_sel_val (ajax_sys_dir, div_id, form_name) {
	form=document.forms[form_name];
	
	if ($('ch_sel_'+div_id).style.visibility.toLowerCase()=='hidden') {
		$('ch_bt_'+div_id).innerHTML='<a href="javascript:xdb_ch_sel_val(\''+ajax_sys_dir+'\', \''+div_id+'\', \''+form_name+'\')"><img src="'+ajax_sys_dir+'img/bt_ch_sel_val.gif" border="0" border="0" vspace="0" hspace="2" align="left" title="Ввести другое значение"></a>';
		$('ch_sel_'+div_id).style.visibility='visible';
		$('ch_val_'+div_id).style.visibility='hidden';
		form['fl_alt_val_'+div_id].value=0;
	}
	else {
		form['fl_alt_val_'+div_id].value=1;
		$('ch_bt_'+div_id).innerHTML='<a href="javascript:xdb_ch_sel_val(\''+ajax_sys_dir+'\', \''+div_id+'\', \''+form_name+'\')"><img src="'+ajax_sys_dir+'img/bt_ch_sel_ed.gif" border="0" border="0" vspace="0" hspace="2" align="left" title="Выбрать значение из базы данных"></a>';
		$('ch_sel_'+div_id).style.visibility='hidden';
		$('ch_val_'+div_id).style.visibility='visible';
	}
}

function popup_xdb_win (ajax_sys_dir, script_fn, div_id, param, w, h, fl_view)
{
	if (fl_view==1) {
		$vis(div_id, 1);
		$(div_id).innerHTML='Loading ...';

		xdb_win_set_size (div_id, w,h);

		if (ajax_sys_dir.length>0 && ajax_sys_dir.charAt (ajax_sys_dir.length-1)!='/') ajax_sys_dir+='/';
		param+="&win_w="+w+"&win_h="+h+"&ajax_sys_dir="+ajax_sys_dir;

		ajax_send(ajax_sys_dir+script_fn, param, div_id);
	}
	else {
		//document.body.onscroll=null;
		$vis(div_id, 0);
	}
}

function xdb_win_item_save (form_name, script_fn, div_id)
{
	form=document.forms[form_name]; param="";

	ajax_sys_dir=form['ajax_sys_dir'].value;
	
	ajax_send_form (form_name, ajax_sys_dir+script_fn, div_id);
}

function xdb_item_save (form_name) { 
	xdb_win_item_save (form_name, 'admin_db_item.php', 'div_popup_xdb_win');
}

function xdb_item_pic_save (form_name) { 
	xdb_win_item_save (form_name, 'xdb_admin_pic.php', 'div_popup_xdb_win_pic');
}

function xdb_item_del_multi (form_name, name, item_id) { 
	if (confirm ("Удалить ?"))
		xdb_item_save_and_com2(form_name, name, 'del_from_list', item_id);
}

function xdb_item_save_and_edit (form_name, s, xdb_el_form_name) 
{ 
	document.forms[form_name].xdb_redirect.value=s;
	document.forms[form_name].xdb_el_form_name.value=xdb_el_form_name;
	xdb_win_item_save (form_name, 'admin_db_item.php', 'div_popup_xdb_win');
}
function xdb_item_save_and_add (form_name, s, xdb_el_form_name) 
{ 
	//document.forms[form_name].xdb_redirect.value=s;
	//document.forms[form_name].xdb_el_form_name.value=xdb_el_form_name;
	document.forms[form_name].xdb_com2.value="add";
	xdb_win_item_save (form_name, 'admin_db_item.php', 'div_popup_xdb_win');
}
function xdb_item_save_and_edit_pic (form_name, s, xdb_el_form_name) 
{ 
	document.forms[form_name].xdb_redirect.value=s;
	document.forms[form_name].xdb_el_form_name.value=xdb_el_form_name;
	xdb_win_item_save (form_name, 'xdb_admin_pic.php', 'div_popup_xdb_win');
}
function xdb_item_save_and_com2 (form_name, xdb_el_form_name, com2, com2param)
{ 
	document.forms[form_name].xdb_com2.value=com2;
	document.forms[form_name].xdb_el_form_name.value=xdb_el_form_name;
	document.forms[form_name].xdb_com2param.value=com2param;
	xdb_win_item_save (form_name, 'admin_db_item.php', 'div_popup_xdb_win');
}

function popup_win_item (ajax_sys_dir, param, w, h, fl_view)
{
	$('div_popup_xdb_win_pic').innerHTML="";
	$vis('div_popup_xdb_win_pic', 0);
	$('div_popup_xdb_win_page').innerHTML="";
	$vis('div_popup_xdb_win_page', 0);
	popup_xdb_win (ajax_sys_dir, 'admin_db_item.php', 'div_popup_xdb_win', param, w, h, fl_view);
}

function popup_win_pic (ajax_sys_dir, param, w, h, fl_view)
{
	popup_xdb_win (ajax_sys_dir, 'xdb_admin_pic.php', 'div_popup_xdb_win_pic', param, w, h, fl_view);
}
function popup_win_pic_hide () {
	$vis('div_popup_xdb_win_pic', 0);
}

function popup_win_pic_return (div_return, return_val)
{
	if (div_return.length>0)
		$(div_return).innerHTML=return_val;
	$vis('div_popup_xdb_win_pic', 0);
	$('div_popup_xdb_win_pic').innerHTML="";
}

function popup_win_filter (ajax_sys_dir, param, img_filter, fl_view)
{
	div_id="div_popup_xdb_win_pic";
	script_fn='admin_db_item_filter.php';
	
	if (fl_view==1) {
		$vis(div_id, 1);
		$(div_id).innerHTML='Loading ...';
		
		pos=absPosition ($(img_filter));
		$(div_id).style.left=pos.x;
		$(div_id).style.top=pos.y;
		
		$(div_id).style.width=500;
		$(div_id).style.height=50;

		if (ajax_sys_dir.length>0 && ajax_sys_dir.charAt (ajax_sys_dir.length-1)!='/') ajax_sys_dir+='/';
		param+="&ajax_sys_dir="+ajax_sys_dir;

		ajax_send(ajax_sys_dir+script_fn, param, div_id);
	}
	else {
		$vis(div_id, 0);
	}
}

function xdb_item_update_filter (form_item_filter, form_name)
{
	form_f=document.forms[form_item_filter];
	form=document.forms[form_name];
	for (var i = 0; i < form_f.length; i++) {
		for (var j = 0; j < form.length; j++)
			if (form[j].name==form_f[i].name) form[j].value=form_f[i].value;
	}

	popup_win_pic_hide();
	xdb_item_save(form_name);
}

function absPosition(obj) { 
      var x = y = 0;
      while(obj) {
            x += obj.offsetLeft;
            y += obj.offsetTop;
            obj = obj.offsetParent;
      }
      return {x:x, y:y};
}

//--------------------------------------------------------------------- set font size ---------------------
var xdb_ed_font_size='0';
var xdb_ed_font_color='0';
function xdb_editor_set_font_size (s) { 
	xdb_ed_font_size=s;
	
	ins_size=""; ins_color="";
	if (xdb_ed_font_size!=0 && xdb_ed_font_size!='0')  ins_size=' size="'+xdb_ed_font_size+'"';
	if (xdb_ed_font_color!=0 && xdb_ed_font_color!='0')  ins_color=' color="'+xdb_ed_font_color+'"';
	
	$('xdb_editor_fon_res').innerHTML='<font'+ins_size+ins_color+'>Выбраный стиль текста (0123456789 аА бБ вВ гГ дД)</font>';
}
function xdb_editor_set_font_color (s) { 
	xdb_ed_font_color=s;
	
	ins_size=""; ins_color="";
	if (xdb_ed_font_size!=0 && xdb_ed_font_size!='0')  ins_size=' size="'+xdb_ed_font_size+'"';
	if (xdb_ed_font_color!=0 && xdb_ed_font_color!='0')  ins_color=' color="'+xdb_ed_font_color+'"';
	
	$('xdb_editor_fon_res').innerHTML='<font'+ins_size+ins_color+'>Выбраный стиль текста (0123456789 аА бБ вВ гГ дД)</font>';
}

function xdb_editor_set_teg_font () {
	ins_size=""; ins_color="";
	if (xdb_ed_font_size!=0 && xdb_ed_font_size!='0')  ins_size=' size="'+xdb_ed_font_size+'"';
	if (xdb_ed_font_color!=0 && xdb_ed_font_color!='0')  ins_color=' color="'+xdb_ed_font_color+'"';
	
	popup_win_pic_hide ();
	ins_str ('[font'+ins_size+ins_color+'][/font]');
}

function popup_win_font (ajax_sys_dir, param, w, h, fl_view)
{
	popup_xdb_win (ajax_sys_dir, 'xdb_page_editor_font.php', 'div_popup_xdb_win_pic', param, w, h, fl_view);
}

//------------------------------------------------------------------------- win page -------------------
function popup_win_page (ajax_sys_dir, param, w, h, fl_view)
{
	popup_xdb_win (ajax_sys_dir, 'xdb_page_editor.php', 'div_popup_xdb_win_page', param, w, h, fl_view);
}
function xdb_page_save (ajax_sys_dir, form_name) {
	ajax_send_form (form_name, ajax_sys_dir+'xdb_page_editor.php', 'div_popup_xdb_win_page');
}
function xdb_page_com2 (ajax_sys_dir, form_name, com2) {
	document.forms[form_name].xdb_com2.value=com2;
	ajax_send_form (form_name, ajax_sys_dir+'xdb_page_editor.php', 'div_popup_xdb_win_page');
}
function xdb_page_back () {
	$vis('div_popup_xdb_win_page', 0);
	$('div_popup_xdb_win_pic').innerHTML="";
	$vis('div_popup_xdb_win_pic', 0);
}

function popup_win_page_return (div_return, return_val)
{
	$(div_return).innerHTML=return_val;
	$('div_popup_xdb_win_page').innerHTML="";
	$vis('div_popup_xdb_win_page', 0);
}

function xdb_win_page_del_pic (s)
{
	if (confirm("Dы уверены, что хотите удалить фото ?")) location=s;
}
function xdb_win_page_pic_align (s) { document.form_pic_br_type.pic_align.value=s; }
function xdb_win_page_add_pic (fn)
{
	ins_str ("pic_"+document.upload_form.pic_align.value+"("+fn+")");
//	document.form_edit_page.new_page.focus ();
}
function xdb_pic_to_page (s)
{
	ins_str ('pic_'+document.form_pic_br_type.pic_align.value+'('+s+')');
	popup_win_pic_hide ();
}
//...........................................................

function checkbox_click (form_name, name)
{
	form=document.forms[form_name];
	fl=form[name].value;
	if (fl==1) fl=0; else fl=1;
	form[name].value=fl;
}

function xdb_win_set_size (div_id, w,h)
{
	if (w.charAt (w.length-1)=='%') {
		p=w.substr (0,w.length-1); kf=getClientCenterX()/100;
		x=(getClientCenterX()-(p*kf))/2;
	} else x=getClientCenterX()-w/2; 
		
	if (h.charAt (h.length-1)=='%') {
		p=h.substr (0,h.length-1);
	} else {
		kf=getClientHeight()/100;
		p=100-((getClientHeight()-h)/kf);
	}

	yp=(getClientHeight()/100)/2; border_prc=100-p;
	y=getBodyScrollTop()+(yp*border_prc);
	
	if (x<0) x=0;
	if (y<0) y=0;
	$(div_id).style.left=x;
	$(div_id).style.top=y;
	$(div_id).style.width=w;
	$(div_id).style.height=h;
}

function xdb_item_back () {
	$vis('div_popup_xdb_win', 0);
	$('div_popup_xdb_win_pic').innerHTML="";
	$vis('div_popup_xdb_win_pic', 0);
	$('div_popup_xdb_win_page').innerHTML="";
	$vis('div_popup_xdb_win_page', 0);
}

function popup_xdb_win_hide (){
	$vis('div_popup_xdb_win', 0);
}

function ajax_send(url, param, div_return) {
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4 && div_return.length>0) {
			document.getElementById(div_return).innerHTML=req.responseJS.ajax_return;
        }
	}
    req.open(null, url, true);
    req.send( { ajax_param: param } );
}

function ajax_send_form (form_name, url, div_return) {
	form=document.forms[form_name]; //вместо -> form=$(form_name);
    var req = new JsHttpRequest();
		req.onreadystatechange = function() {
        if (req.readyState == 4) {
            document.getElementById(div_return).innerHTML=req.responseJS.ajax_return;
        }
    }
    req.open(null, url, true);
    req.send( { ajax_param: form } );
}

function ajax_send_form_com (form_name, script_fn, div, com, param) {
	form=document.forms[form_name];
	form['xdb_com'].value=com;
	form['xdb_param'].value=param;
	ajax_send_form (form_name, form['ajax_sys_dir'].value+script_fn, div);
}

function xdb_item_pic_upload (ajax_sys_dir, form_name) {
	ajax_send_form (form_name, ajax_sys_dir+'xdb_admin_pic.php', 'div_popup_xdb_win_pic');
}

function xdb_item_pic_del (form_name, npic) {
	if (confirm ("Вы уверены что хотите удалить это изображение?")) {
		form=document.forms[form_name];
		form['xdb_com'].value='del_pic';
		form['xdb_param'].value=npic;
		ajax_send_form (form_name, form['ajax_sys_dir'].value+'xdb_admin_pic.php', 'div_popup_xdb_win_pic');
	}
}

function xdb_item_pic_del_big (form_name, npic) {
	if (confirm ("Вы уверены что хотите удалить это изображение?")) {
		form=document.forms[form_name];
		form['xdb_com'].value='del_big_pic';
		form['xdb_param'].value=npic;
		ajax_send_form (form_name, form['ajax_sys_dir'].value+'xdb_admin_pic.php', 'div_popup_xdb_win_pic');
	}
}

function goback (){ window.history.go(-1);}

function $(id) {
	return document.getElementById(id);
}
function $val(id) {
	return document.getElementById(id).value;
}
function $vis (div_id, fl_view) { 
	div=$(div_id);
	if (fl_view==1) div.style.visibility=state_vis; else div.style.visibility=state_hide;
}
function getClientWidth() {
  return document.compatMode=='CSS1Compat' && !window.opera ? document.documentElement.clientWidth : document.body.clientWidth;
}
function getClientHeight() {
  return document.compatMode=='CSS1Compat' && !window.opera ? document.documentElement.clientHeight : document.body.clientHeight;
}
function getBodyScrollTop() {
  return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}
function getBodyScrollLeft() {
  return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}
function getClientCenterX() {
	return parseInt(getClientWidth()/2)+getBodyScrollLeft();
}
function getClientCenterY() {
	return parseInt(getClientHeight()/2)+getBodyScrollTop();
}

function xdb_pg_setup (id, max_it_in_page) {
	
	if (max_it_in_page<10) { k1=-1; k2=1; }
	else 
	if (max_it_in_page==10) { k1=-1; k2=5; }
	else 
	if (max_it_in_page<50) { k1=-5; k2=5; }
	else 
	if (max_it_in_page==50) { k1=-5; k2=10; }
	else 
	if (max_it_in_page<200) { k1=-10; k2=10; }
	else 
	if (max_it_in_page==200) { k1=-10; k2=50; }
	else 
	{ k1=-50; k2=50; }
	
	class_tag_a=$val(id+"_class_tag_a");
	class_tag_sel=$val(id+"_class_tag_sel");
	arrow_left=$val(id+"_arrow_left");
	arrow_right=$val(id+"_arrow_right");
	refresh_img=$val(id+"_refresh");
	itlim=$val(id+"_limit");
	
	$pgs_minus=""; $pgs_plus="";
	if (max_it_in_page+k1>0) pgs_minus='<a href="javascript:xdb_pg_setup (\''+id+'\', '+(max_it_in_page+k1)+')" '+class_tag_a+'><img src="'+arrow_left+'" hspace="2" vspace="0" border="0" align="absmiddle"></a>';
	if (max_it_in_page+k2<=itlim) pgs_plus='<a href="javascript:xdb_pg_setup (\''+id+'\', '+(max_it_in_page+k2)+')" '+class_tag_a+'><img src="'+arrow_right+'" hspace="2" vspace="0" border="0" align="absmiddle"></a>';
		
	$(id+'_pgsetup').innerHTML=pgs_minus+'<span '+class_tag_sel+'>'+max_it_in_page+'</span>'+pgs_plus+
	'<a href="javascript:xdb_pg_setup_refresh (\''+id+'\', '+max_it_in_page+')" id="'+id+'_pgsetup" '+class_tag_a+'><img src="'+refresh_img+'" hspace="2" vspace="0" border="0" align="absmiddle" title="Установить"></a>';
}
function xdb_pg_setup_refresh (id, max_it_in_page) {
	document.location=$val(id+"_pgsetup_param")+'&'+id+'_pgsetup_set='+max_it_in_page;
}

// text edit
function getCursorPos(obj) //getCursorPos(document.formName.textareaName);
{
  obj.focus();
   
  if(obj.selectionStart) return obj.selectionStart;//Gecko
  else if (document.selection)//IE
  {
    var sel = document.selection.createRange();
    var clone = sel.duplicate();
    sel.collapse(true);
    clone.moveToElementText(obj);
    clone.setEndPoint('EndToEnd', sel);
    return clone.text.length;
  }
  return 0;
}

// Скрипт для вставки текста под курсор.
// Author: PHP-DIRECTOR <black@wmtime.ru>
// Протестировано в IE 6.0, FireFox 1.0.4, Opera 8.0, 8.01

// позиция курсора по умолчанию
cursor = 0;

// отслеживаем позицию курсора
function position(name)
{
	str = document.getElementById(name);
	//str.focus();
	if (!document.selection) { cursor = str.selectionStart; }
	else { cursorIE = document.selection.createRange().duplicate(); }
}

// вставляем текст под курсор
function ins_str(text)
{
	search_pos=text.search ("]");
	p=text.length-search_pos-1;
	if (search_pos<1) p=search_pos+1;

	if (typeof(str)!="undefined") {
		if (navigator.userAgent.indexOf('Opera')>=0) {

			cursor=str.selectionStart;
		
			var strFirst = str.value.substr(0, cursor);
			var strEnd   = str.value.substr(cursor, str.value.length);

			str.value = strFirst + text + strEnd;
			cursor_new_pos=strFirst.length+p-1;
			str.setSelectionRange(cursor_new_pos,cursor_new_pos);

			if (str.tagName.toUpperCase()=="TEXTAREA") { str.focus(); }
		}
		else	
		if (document.selection) { // действия для браузера IE
			// создание объектов TextRange
			var input1 = str.createTextRange();
		
			if (typeof(cursorIE)!="undefined") {
				var sel = cursorIE;
			}

			// вставляем строку в текстовое поле
			sel.text += text;
		
			if (text.indexOf("\n\n")!=-1) {
			}
			else {
			}
			
			sel.moveStart("character",sel.text.length-p);
			sel.collapse();
			sel.select();
		}
		else if (str.setSelectionRange) // действия для браузера FireFox, Mozilla
		{
			// разделяем исходную строку на две переменные
			// strFirst - строка ДО вставки текста
			// strEnd - строка ПОСЛЕ вставки текста
			var strFirst = str.value.substr(0, cursor);
			var strEnd   = str.value.substr(cursor, str.value.length);
	
			// формируем новую строку (с вставленным текстом ПО СЕРЕДИНЕ)
			// и полученную строку вставляем в текстовое поле
			str.value = strFirst + text + strEnd;
			// вычисляем новое значение положения курсора
			if (text.indexOf("\n\n")!=-1) {
				cursor = strFirst.length + text.substr(0, text.indexOf("\n\n")).length+1;
			}
			else {
				cursor = strFirst.length + text.length;
			}
			// ставим курсор в текстовое поле сразу после вставленного текста
			str.selectionStart = str.selectionEnd = cursor-p;
			str.focus();
		}
		else { str.value += text+' '; }
	}
}


