function checkForm(frm)
{	
	var strError = "";
	for (var i = 0; i < frm.elements.length; i++) 
		if (null != frm.elements[i].getAttribute("required"))
			if ((frm.elements[i].value)=="") 
				strError += " " + frm.elements[i].getAttribute("displayed") + "\n";
	
	if ("" != strError) {
		alert("Не были заполнены следующие поля:\n\n" + strError);
		return false;
	}

	return true;
}

function checkFormSearch(frm)
{	
	var strError = "";
	for (var i = 0; i < frm.elements.length; i++) 
		if (null != frm.elements[i].getAttribute("required"))		
			if ((frm.elements[i].value.length)< 3) 
				strError += " " + frm.elements[i].getAttribute("displayed") + "\n";
	
	if ("" != strError) {
	    alert("Длина строки поиска должна быть не менее 2-х символов");
	    return false;
	}else{
	    return true;
	}
}


function ChangeImg() {
	 if(document.images) { 
	 	eval("document."+ChangeImg.arguments[0]+ ".src=('"+ChangeImg.arguments[1]+"')"); 
	 }
} 

function ChangeBtn() {
	var el = document.getElementById(ChangeBtn.arguments[0]);
	if (null != el) 
		el.src=ChangeBtn.arguments[1]; 
} 
function preload(){
	 if (document.images) {
	 	var imgsrc = preload.arguments; arr=new Array(imgsrc.length);
	 	for (var j=0; j<imgsrc.length; j++){
	 		arr[j] = new Image;
	 		arr[j].src = imgsrc[j]; 
	 	} 
	 } 
}
function block_show_hide(id_area1,id_area2) {
	var obj=document.getElementById(id_area1);
	if (obj.style) { obj=obj.style;}
  obj.display='inline';
  obj=document.getElementById(id_area2);
	if (obj.style) { obj=obj.style;}
  obj.display='none';
}

function menu_show(id_area) {
	var obj=document.getElementById('menu'+id_area);
	if (obj.style) { obj=obj.style;}
	obj.visibility='visible';
}
function menu_hide(id_area) {
	var obj=document.getElementById('menu'+id_area);
	if (obj.style) { obj=obj.style;}
	obj.visibility='hidden';
}

var current_item='tovar';
var params = new Array(2);
  params['tovar']=new Array(3);
  params['tovar']['btn_alt']='поиск товара';
  params['tovar']['extend_alt']='расширенный поиск товаров';
  params['tovar']['catalog_alt']='каталог товаров';
  params['firm']=new Array(3);
  params['firm']['btn_alt']='поиск фирмы';
  params['firm']['extend_alt']='расширенный поиск фирм';
  params['firm']['catalog_alt']='каталог фирм';

function rename_in_form(item,script_name) {
  current_item=item;
  document.getElementById('text_form').name=current_item;
if(item =="firm")
  document.getElementById('SearchButton').value="Найти фирму";
else
  document.getElementById('SearchButton').value="Найти товар";
}
function form_show_extend() {
	var obj=document.getElementById('form_' + current_item);
	if (obj.style) { obj=obj.style;}
  obj.display='inline';
  obj=document.getElementById('form_search');
	if (obj.style) { obj=obj.style;}
  obj.display='none';
  document.getElementById('text_extend_' + current_item).value = document.getElementById('text_form').value;
}
function form_hide_extend() {
	var obj=document.getElementById('form_' + current_item);
	if (obj.style) { obj=obj.style;}
  obj.display='none';
  obj=document.getElementById('form_search');
	if (obj.style) { obj=obj.style;}
  obj.display='inline';
  document.getElementById('text_form').value = document.getElementById('text_extend_' + current_item).value;
}


function toggle(e, node, anchor)
{

		var ul = document.getElementById("ul"+node);
		var img = document.getElementById("img"+node);
		var div1 = document.getElementById("adCnt"+node);

		


		if (null != ul) {

			str = ''+img.src;
			
			ul.className = ul.className == "expanded" ? "toc" : "expanded";
			ul.style.display = ul.className == "expanded" ? "" : "none";				
			
			if (ul.className == "expanded") 
				img.src = str.substr(0, str.length-5)+"o.gif";
			else {
				img.src = str.substr(0, str.length-5)+"c.gif";
				if (anchor != null) anchor.href="javascript:;";
			}

			if (null != div1) {
				div1.style.display = ul.className == "expanded" ? "" : "none";				
			}

			if (ul.innerHTML == "") 
				ul.innerHTML = "<div class=loadMsg>&nbsp;Загрузка,&nbsp;пожалуйста,&nbsp;подождите...&nbsp;</div>";
			

			if (anchor != null && "object" == typeof(anchor) && top.length > 0){
				anchor.target = 'dummyFrame';
			}
		}

	e.cancelBubble = true;
}


function reset() {
var x = document.tovar.elements.length;
for (i=0; i<x; i++) {

if (document.tovar.elements[i].type == "text" ||
document.tovar.elements[i].type == "textarea") {
document.tovar.elements[i].value = "";
}
else if (document.tovar.elements[i].type == "select-one") {
document.tovar.elements[i].selectedIndex = 0;
}
else if ( (document.tovar.elements[i].type == "radio"
 && document.tovar.elements[i].name!="item" 
)||
document.tovar.elements[i].type == "checkbox") {
document.tovar.elements[i].checked = false;
}
}
} 

function showtd(e, tdid1,tdid2)
{		
	
	tabdata1 = document.getElementById(tdid1);
	tabdata1.style.display = "";		
	tabdata2 = document.getElementById(tdid2);
	tabdata2.style.display = "none";		
}

function showsearch(tdid1)
{			
//смена картинки плюс-минус

	tabdata1 = document.getElementById(tdid1);
	exs = document.getElementById('ext_search');
		if (tabdata1.style.display=="none"){
		ChangeBtn('extsearch_img','/images/all/nsearch_minus.gif');
			tabdata1.style.display = "";		
			exs.value="1";
		}else{
		ChangeBtn('extsearch_img','/images/all/nsearch_plus.gif');
			tabdata1.style.display = "none";		
			exs.value="0";
		}
//переключатель доп полей для расшир поиска фирм/товаров
	var elname = document.getElementById('text_form');
	var firm_el = document.getElementById('tdsearchfirm');
	var tov_el = document.getElementById('tdsearchtovar');
	var tov_www = document.getElementById('tdwwwitem');
	var tov_text = document.getElementById('tdwwwtext');

	if (elname.name=="firm") {
		firm_el.style.display = "";		
		tov_el.style.display = "none";		
		tov_www.style.display = "";		
		tov_text.style.display = "";		
  	} else {
		tov_el.style.display = "";		
		firm_el.style.display = "none";		
		tov_www.style.display = "none";		
		tov_text.style.display = "none";		
  	}


}

function showsearch_avto(tdid1)
{			
//смена картинки плюс-минус

	tabdata1 = document.getElementById(tdid1);
	exs = document.getElementById('ext_search');
		if (tabdata1.style.display=="none"){
		ChangeBtn('extsearch_img','/images/bis_avto/all/nsearch_minus.gif');
			tabdata1.style.display = "";		
			exs.value="1";
		}else{
		ChangeBtn('extsearch_img','/images/bis_avto/all/nsearch_plus.gif');
			tabdata1.style.display = "none";		
			exs.value="0";
		}
//переключатель доп полей для расшир поиска фирм/товаров
	var elname = document.getElementById('text_form');
	var firm_el = document.getElementById('tdsearchfirm');
	var tov_el = document.getElementById('tdsearchtovar');
	var tov_www = document.getElementById('tdwwwitem');
	var tov_text = document.getElementById('tdwwwtext');

	if (elname.name=="firm") {
		firm_el.style.display = "";		
		tov_el.style.display = "none";		
		tov_www.style.display = "";		
		tov_text.style.display = "";		
  	} else {
		tov_el.style.display = "";		
		firm_el.style.display = "none";		
		tov_www.style.display = "none";		
		tov_text.style.display = "none";		
  	}


}

		function bookmark()
		
//Добавление в закладки

		{
			var title = "Бизнес Информационная система Новосибирск";
			var url = "http://192.168.0.101/";

			if (window.sidebar)
				window.sidebar.addPanel(title, url, "");
			else if(window.opera && window.print)
			{ 
				var elem = document.createElement('a');
				elem.setAttribute('href',url);
				elem.setAttribute('title',title);
				elem.setAttribute('rel','sidebar');
				elem.click();
			} 
			else if(document.all)
				window.external.AddFavorite(url, title);
			else
				alert("Попробуйте добавить вручную");

			return false;
		}




function change_action(){
	var form_p = document.getElementById('frm');
	var sel_p = document.getElementById('selcity');	
	if(sel_p.value.length>3){		
		form_p.action=sel_p.value;
	}

}

//--------------------------
function Load_Town(value) {
    // Create new JsHttpRequest object.
    var req = new JsHttpRequest();
    // Code automatically called on load finishing.
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
        	if(!req.responseJS.out){        	
				req.responseJS.out = '<select name="exs_town" id="town" onchange="Load_District(document.frm.exs_town.value)">';
				req.responseJS.out = req.responseJS.out + '<option value="0">Все города</option>';
				req.responseJS.out = req.responseJS.out + '</select>';
        	}
            // Write result to page element (_RESULT becomes responseJS). 
            document.getElementById('div_town').innerHTML = req.responseJS.out;
            // Write debug information too (output becomes responseText).
            //document.getElementById('district_debug').innerHTML = req.responseText;
        	
        }
    }
    // Prepare request object (automatically choose GET or POST).
    req.open(null, '/include/exsearch/extsearch_area.php', true);
    // Send data to backend.
    req.send( { q: value } );
}

//--------------------------
function Load_District(value) {
    // Create new JsHttpRequest object.
    var req = new JsHttpRequest();
    // Code automatically called on load finishing.
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
        	if(!req.responseJS.out){        	
				req.responseJS.out = '<select name="exs_distr" id="distr" onchange="Load_Street(this.frm.exs_distr.value)">';
				req.responseJS.out = req.responseJS.out + '<option value="0">Все районы</option>';
				req.responseJS.out = req.responseJS.out + '</select>';
        	}
            // Write result to page element (_RESULT becomes responseJS). 
            document.getElementById('div_district').innerHTML = req.responseJS.out;
            // Write debug information too (output becomes responseText).
            //document.getElementById('district_debug').innerHTML = req.responseText;
        	
        }
    }
    // Prepare request object (automatically choose GET or POST).
    req.open(null, '/include/exsearch/extsearch_town.php', true);
    // Send data to backend.
    req.send( { q: value } );
}
//--------------------------
function Load_Street(value1,value2) {
    // Create new JsHttpRequest object.
    var req = new JsHttpRequest();
    // Code automatically called on load finishing.
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
        	if(!req.responseJS.out){        	
				req.responseJS.out = '<select name="exs_street" id="street">';
				req.responseJS.out = req.responseJS.out + '<option value="0">Все районы</option>';
				req.responseJS.out = req.responseJS.out + '</select>';
        	}
            // Write result to page element (_RESULT becomes responseJS). 
            document.getElementById('div_street').innerHTML = req.responseJS.out;
            // Write debug information too (output becomes responseText).
            //document.getElementById('district_debug').innerHTML = req.responseText;
     	

            
        }
    }
    
    
    // Prepare request object (automatically choose GET or POST).
    req.open(null, '/include/exsearch/extsearch_district.php', true);
    // Send data to backend.
    req.send( { t: value1, dr: value2 } );
    
}
//----------------------------------
function HideTowns(id){
	  var item = null;
	  if (document.getElementById) {
		item = document.getElementById(id);
	  } else if (document.all){
		item = document.all[id];
	  } else if (document.layers){
		item = document.layers[id];
	  }
	  if (!item) {
	  }
	  else if (item.style) {
		if (item.style.display == "none"){ item.style.display = ""; }
		else {item.style.display = "none"; }
	  }else{ item.visibility = "show"; }

}
function get_href(idgroup,el){
	
 var txt_item = null;
 var tovf_item = null;
 var cnt=0;
 txt_item = getobjbyid('text_form');
 tovf_item = getobjbyid('stf');
 
for (Count = 0; Count < 2; Count++) {
	if (document.frm.item[Count].checked)
		break;
}
	if(txt_item.value) cnt=cnt+1;
	if(Count) 
		txt_item='&item=firm&firm='+txt_item.value;
	else
		txt_item='&item=tovar&tovar='+txt_item.value;
	
	var txt_town = getobjbyid('selcity');		
if(txt_town){
	if(txt_town.value>0) cnt = cnt+1;
	txt_town = '&town='+txt_town.value
}else txt_town='';	
	var txt_area = getobjbyid('area');		
	if(txt_area.value>0) cnt = cnt+1;
	txt_area = '&exs_area='+txt_area.value
	
	var txt_etown = getobjbyid('town');		
	if(txt_etown.value>0) cnt = cnt+1;
	txt_etown = '&exs_town='+txt_etown.value
	
	var txt_distr = getobjbyid('distr');		
	
	if(txt_distr.value>0) {cnt = cnt+1;
	
	txt_distr = '&exs_district='+txt_distr.value
	}
	
	var txt_street= getobjbyid('street');		
	if(txt_street.value>0) cnt = cnt+1;
	txt_street = '&exs_street='+txt_street.value
	
	var txt_part = getobjbyid('part');		
	if(txt_part.value) cnt = cnt+1;
	txt_part = '&exs_part='+txt_part.value
	
	var txt_curren = getobjbyid('curren');		
	if(txt_curren.value) cnt = cnt+1;	
	txt_curren = '&exs_currency='+txt_curren.value
	
	var txt_prfrom = getobjbyid('prfrom');		
	if(txt_prfrom.value) cnt = cnt+1;
	txt_prfrom = '&exs_prfrom='+txt_prfrom.value
	
	
	var txt_prto = getobjbyid('prto');		
	if(txt_prto.value) cnt = cnt+1;
	txt_prto = '&exs_prto='+txt_prto.value
	
	var txt_home = getobjbyid('home');		
	if(txt_home.value) cnt = cnt+1;
	txt_home = '&exs_home='+txt_home.value
	
	var txt_office = getobjbyid('office');		
	if(txt_office.value) cnt = cnt+1;
	txt_office = '&exs_office='+txt_office.value
	
	var txt_phones = getobjbyid('phones');		
	if(txt_phones.value) cnt = cnt+1;
	txt_phones= '&exs_phones='+txt_phones.value
	
 if(cnt>0)
	el.href='index.php?action=search'+txt_item+'&cat_str=+'+idgroup+txt_town+txt_area+txt_etown+txt_distr+txt_street+txt_part+txt_curren+txt_prfrom+txt_prto+txt_home+txt_office+txt_phones;
	//alert(el.href);
	
}
function getobjbyid(id){
	  var item = null;
	  if (document.getElementById) {
		item = document.getElementById(id);
	  } else if (document.all){
		item = document.all[id];
	  } else if (document.layers){
		item = document.layers[id];
	  }
	return item;
}

function checkAllNodes(parentElName,checkElType,checkElTop){

	var topEl = document.getElementById(parentElName);
	var ctopEl = document.getElementById(checkElTop);	
	var checkedTop;
	if(topEl && ctopEl){
		if(ctopEl.checked==true) {checkedTop=true;} else {checkedTop=false;}
		var elems = div.getElementsByTagName(checkElType); 
		for(var i=0; i<elems.length; i++) elems[i].checked=checkedTop;
	}
}

function rename_in_form_ext(item,script_name) {
  current_item=item;  
  document.getElementById('ext_text_form').name=current_item;
	if(item =="firm"){
  		document.getElementById('SearchButton').value="Найти фирму";
	}
	else{
  		document.getElementById('SearchButton').value="Найти товар";    		
	}
}

function change_ext_row(item) {
//переключатель доп полей для расшир поиска фирм/товаров
//при выборе фирмы/товара в основной форме поиска

	var firm_el1 = document.getElementById('exs_phone');
	var firm_el2 = document.getElementById('exs_email');
	var firm_el3 = document.getElementById('exs_www');
	var firm_el7 = document.getElementById('exs_is_email');
	var firm_el8 = document.getElementById('exs_is_www');
	var firm_el10 = document.getElementById('firm1');
	var firm_el11 = document.getElementById('firm2');
	
	

	var firm_el4 = document.getElementById('exs_curren');
	var firm_el5 = document.getElementById('exs_prfrom');
	var firm_el6 = document.getElementById('exs_prto');
	var firm_el9 = document.getElementById('exs_is_photo');
	var firm_el12 = document.getElementById('tovar1');
	var firm_el13 = document.getElementById('tovar2');
	

	if (item=="firm") {
		firm_el1.style.background = "#ffffff";
		firm_el1.disabled = "";

		firm_el2.style.background = "#ffffff";
		firm_el2.disabled = "";		

		firm_el3.style.background = "#ffffff";
		firm_el3.disabled = "";

		firm_el7.style.background = "#ffffff";
		firm_el7.disabled = "";
		
		firm_el8.style.background = "#ffffff";
		firm_el8.disabled = "";
		
		firm_el10.style.display = "";
		firm_el11.style.display = "";

		firm_el4.style.background = "#cccccc";
		firm_el4.disabled = "disabled";
		firm_el4.value = "";
		
		firm_el5.style.background = "#cccccc";
		firm_el5.disabled = "disabled";
		firm_el5.value = "";

		firm_el6.style.background = "#cccccc";
		firm_el6.disabled = "disabled";
		firm_el6.value = "";

		firm_el9.style.background = "#cccccc";
		firm_el9.disabled = "disabled";
		firm_el9.checked = false;

		firm_el12.style.display = "none";
		firm_el13.style.display = "none";

			
  	} else {
				
		firm_el1.style.background = "#cccccc";
		firm_el1.disabled = "disabled";
		firm_el1.value = "";
		
		firm_el2.style.background = "#cccccc";
		firm_el2.disabled = "disabled";
		firm_el2.value = "";

		firm_el3.style.background = "#cccccc";
		firm_el3.disabled = "disabled";
		firm_el3.value = "";

		firm_el7.style.background = "#cccccc";
		firm_el7.disabled = "disabled";
		firm_el7.checked = false;

		firm_el8.style.background = "#cccccc";
		firm_el8.disabled = "disabled";
		firm_el8.checked = false;

		firm_el10.style.display = "none";
		firm_el11.style.display = "none";

		firm_el4.style.background = "#ffffff";
		firm_el4.disabled = "";

		firm_el5.style.background = "#ffffff";
		firm_el5.disabled = "";		

		firm_el6.style.background = "#ffffff";
		firm_el6.disabled = "";

		firm_el9.style.background = "#ffffff";
		firm_el9.disabled = "";

		firm_el12.style.display = "";
		firm_el13.style.display = "";

  	}




}

//--------------------------
function BeginViewCat() {
  document.getElementById('begin_cat').style.display = 'none';  // убираем ссылку "выбрать"
  var vars = new Object;
  vars['cat_groups'] = document.ext_frm.idcat.value;  
  vars['item'] = catalog_item = 'catalog';
  getItems(vars,'catalog_in','cat_replace',true);
  return false;
}
//--------------------------
function getItems(vars,php_action,block_name,is_cach,txt,is_inner) {
  if (txt == null) {txt = '<p>Пожалуйста, подождите...</p>';}
  if (is_inner == null) {is_inner = true;}
  o = document.getElementById(block_name);
  if (is_inner && o) {o.innerHTML = txt;}
    var req = new JsHttpRequest();
      req.onreadystatechange = function() {
//        alert(php_action + ' ' + req.readyState);
        if (req.readyState == 4) {
          if (req.responseJS) {
            var str = '';

            if (req.responseJS.err_mess) {
              str = '<p><kbd class="err" id="err_mess">' + req.responseJS.err_mess + '</kbd></p>';
            }
            if (req.responseJS.good_mess) {
              str += req.responseJS.good_mess;
            }
            if (is_inner && o) {o.innerHTML = str;}
            else {o.outerHTML = str;}
          }
          o_debug = document.getElementById('debug');
          if (o_debug) {o_debug.innerHTML = req.responseText;}
        }
      }
//      alert('send');
      req.caching = is_cach;
      req.open('POST','/ps/lib/JsHttpRequest/this.php',true);
      vars['action'] = php_action;
      req.send(vars);
}

//--------------------------
function ViewCat(idcat,idchild,str_cat) {
  var img = document.getElementById('img' + idcat);
  var o_child = document.getElementById('c' + idchild);
  if (img.innerHTML == '+') {
    if (o_child) {o_child.className = 'view';}
    else {
      var vars = new Object;
      vars['cat_str'] = str_cat;
      vars['item'] = catalog_item;
      if (document.ext_frm != null) { // 4advert
        vars['cat_groups'] = document.ext_frm.idcat.value;
        if (document.ext_frm.c) {vars['spec'] = (document.ext_frm.c.checked) ? 1 : 0;}
      }
      getItems(vars,'catalog_in','ins' + idcat,true);
    }
    img.innerHTML = '-';
    img.title = title_minus;
  } else if (img.innerHTML == '-') {
    if (o_child) {o_child.className = 'no_view';}
    img.innerHTML = '+';
    img.title = title_plus;
  }
}
//--------------------------
var title_plus = 'раскрыть';
var title_minus = 'скрыть';

//--------------------------
function AddCat(id_cat,str_cat) {
  if (IsRepeatCat(id_cat)) {return false;}
  var o_link = document.getElementById('l' + id_cat);
  var img_del = '<img src="/ps/icons/del.gif" class="icons" title="удалить группу" onClick="DelCat(' + id_cat  + ',' + "'" + str_cat + "')" + '" alt="удалить">';
  var cat = '<div id="str' + id_cat + '">' + o_link.innerHTML + img_del + '</div>';
  document.getElementById('cat_name').innerHTML += '<div id="str' + id_cat + '">' + o_link.innerHTML + img_del + '</div>';     // название категории
  document.ext_frm.idcat.value += ' ' + id_cat;  // ID категории
  document.ext_frm.cat_str.value += ' ' + str_cat;  // STR категории
  clearReqFieldsExsForm();
  checkExtSearchForm(document.ext_frm,0);

    o_link.className = 'now';
    o_link.title = '';
    
  return false;
}
//--------------------------
function IsRepeatCat(id_cat) {
  var str = document.ext_frm.idcat.value;
  var r = str.split(/ /);
  for (var i = 0; i < r.length; i++) {
    if (r[i] == id_cat) {return true;}
  }
  return false;
}
//--------------------------
function CloseCat() {
  if (document.getElementById('c0')) {document.getElementById('c0').style.display = 'none';}    // скрываем каталог
  
    document.getElementById('begin_cat').style.display = 'block'; // показываем ссылку "добавить"
  
}

//--------------------------
function DelCat(id_cat,str_cat) {
  del_cat_from_input(id_cat,str_cat);
  clearReqFieldsExsForm();
  checkExtSearchForm(document.ext_frm,0);
  CloseCat();
}
//--------------------------
function del_cat_from_input(id_cat,str_cat) {
  var o_view = document.getElementById('str' + id_cat);
  var block_parent = o_view.parentNode;
  block_parent.removeChild(o_view);  // удаляем элемент

  var o_input = document.ext_frm.idcat;
  o_input.value = str_find_and_del(o_input.value,id_cat);
  var o_input2 = document.ext_frm.cat_str;
  o_input2.value = str_find_and_del(o_input2.value,str_cat);
}
//--------------------------
//--------------------------
function str_find_and_del(str,del) {
  var r = str.split(/ /);
  var i,new_str = '';
  for (i = 0; i < r.length; i++) {
    if (r[i] == del) {continue;}
    if (i) {new_str += ' ';}
    new_str += r[i];
  }
  return new_str;
}

//--------------------------
function count_cat_num() {
  var str = document.ext_frm.idcat.value;
  var r = str.split(/ /);
  var i,j = 0;
  for (i = 0; i < r.length; i++) {
    if (!r[i]) {continue;}
    j++;
  }
  return j;
}

//--------------------------
function OpenHideGroup(o_img) {
  var is_open = (o_img.title == 'раскрыть группу');
  var open_style = (ie) ? 'block' : 'table-row';
  var o_tr = o_img.parentNode.parentNode;
  var class_name = '';
  while (class_name != 'h_group' && o_tr) {
    o_tr = nextNode(o_tr.nextSibling);
    if (!o_tr) {break;}
    class_name = o_tr.className;
    if (class_name == 'h_group') {break;}
    o_tr.style.display = (is_open) ? open_style : 'none';
  }
  o_img.src = (is_open) ? '/ps/icons/minus.gif' : '/ps/icons/plus.gif';
  o_img.title = (is_open) ? 'скрыть группу' : 'раскрыть группу';
}
//--------------------------
function SubmitCityGroupSearchForm(frm,submitForm){	
	var sform = document.getElementById(frm);		
	if(submitForm && sform){
		//alert(typeof(d));
		if(typeof(d) != "undefined"){
			form_groups('allgroups','selgroups','allclasses','selclasses',d);
		}
		form_towns('alltowns','seltowns','townslist','input');
		SetElValue('secondstep','1');
		sform.submit();
	}
}
//--------------------------
function SetElValue(ElId,val) {
	var el = document.getElementById(ElId);
	if(el){		
		el.value = val;
	}
	
}
//-----------------------------------------------------
function showHideElem(ElId){
	var el = document.getElementById(ElId);	
	if(el.style.display=='none'){
		el.style.display = '';
	}else{
		el.style.display='none';
	}
}
//---------------------------------------------------------
function putSelGroups(elFromId,ElToId){		
	var elFrom = document.getElementById(elFromId);	
	var elTo = document.getElementById(ElToId);	
	if(elFrom && elTo){	
		elTo.value = elFrom.value.replace(/_/g," ");	
	}
	
}
//---------------------------------------------------------
function putSelGroups(elFromId,ElToId){		
	var elFrom = document.getElementById(elFromId);	
	var elTo = document.getElementById(ElToId);	
	if(elFrom && elTo){	
		elTo.value = elFrom.value.replace(/_/g," ");	
	}
	
}
//------------------------------------------------------------------
function saveSSearchParams(){
		var divId = 'divtest';
	var divel = document.getElementById(divId);
	divel.innerHTML = '111111<script language=\"JavaScript\" src=\"/test.js\"></script>';
}
//------------------------------------------------------------------
function getSessValues(val){
	var xmlhttp = getXmlHttp();
xmlhttp.open('GET', 'testgs.php?str='+val, false);
xmlhttp.send(null);
if(xmlhttp.status == 200) {
  alert(xmlhttp.responseText+'111');
}
	
}
//------------------------------------------------------------------

//saveToSess();
function changeFormItem(elName,elValue){
	//alert(elValue);
	sSFormParams ='';
	if(elName == "item"){
		sSFormParams = '&item=' + elValue;
	}
	if(elName == "town"){
		sSFormParams = sSFormParams+'&town=' + elValue;
	}
	
	if(sSFormParams){
		saveToSess();
	}
}

//------------------------------------------------------------------
function saveToSess(){
	
	/*
    var req = new JsHttpRequest();
    // Code automatically called on load finishing.
    
    // Prepare request object (automatically choose GET or POST).
    req.open(null, 'save_sess_params.php?'+sSFormParams, true);
    // Send data to backend.
    req.send(null);
    */
	var xmlhttp = getXmlHttp();
	//xmlhttp.open('GET', 'save_sess_params.php?'+sSFormParams, true);
	xmlhttp.open('GET', 'save_sess_params.php?'+sSFormParams, true);
	xmlhttp.send(null);
	//alert('save_sess_params.php?'+sSFormParams);    
	
	//setTimeout('saveToSess()',500);
}
//------------------------------------------------------------------
//------------------------------------------------------------------
function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}
//---------------------------------------------------------------------
//Encode URI - преобразование символов в UTF-8
function urlEncode(str) {
    // Простая проверка
    if (!str || typeof(str) == "undefined") return;
    // Создаем хеш для хранения символов, где ключ - сам символ,
    // а значение - его шестнадцатеричеый эквивалент
    var utf8Array = {};
    // Сначала добавляем стандартные 255 символов
    var i = j = j2 = 0;
    for (i = 0; i <= 255; i++) {
        j = parseInt(i/16); var j2 = parseInt(i%16);
        utf8Array[String.fromCharCode(i)] = ('%' + j.toString(16) + j2.toString(16)).toUpperCase();
    }
    // И отдельно проработаем кириллицу
    var rusAdditional = {
        '_' : '%5F', 'А' : '%C0', 'Б' : '%C1', 'В' : '%C2', 'Г' : '%C3', 'Д' : '%C4', 'Е' : '%C5',
        'Ж' : '%C6', 'З' : '%C7', 'И' : '%C8', 'Й' : '%C9', 'К' : '%CA', 'Л' : '%CB', 'М' : '%CC',
        'Н' : '%CD', 'О' : '%CE', 'П' : '%CF', 'Р' : '%D0', 'С' : '%D1', 'Т' : '%D2', 'У' : '%D3',
        'Ф' : '%D4', 'Х' : '%D5', 'Ц' : '%D6', 'Ч' : '%D7', 'Ш' : '%D8', 'Щ' : '%D9', 'Ъ' : '%DA',
        'Ы' : '%DB', 'Ь' : '%DC', 'Э' : '%DD', 'Ю' : '%DE', 'Я' : '%DF', 'а' : '%E0', 'б' : '%E1',
        'в' : '%E2', 'г' : '%E3', 'д' : '%E4', 'е' : '%E5', 'ж' : '%E6', 'з' : '%E7', 'и' : '%E8',
        'й' : '%E9', 'к' : '%EA', 'л' : '%EB', 'м' : '%EC', 'н' : '%ED', 'о' : '%EE', 'п' : '%EF',
        'р' : '%F0', 'с' : '%F1', 'т' : '%F2', 'у' : '%F3', 'ф' : '%F4', 'х' : '%F5', 'ц' : '%F6',
        'ч' : '%F7', 'ш' : '%F8', 'щ' : '%F9', 'ъ' : '%FA', 'ы' : '%FB', 'ь' : '%FC', 'э' : '%FD',
        'ю' : '%FE', 'я' : '%FF', 'ё' : '%B8', 'Ё' : '%A8'
    }
    for (i in rusAdditional) utf8Array[i] = rusAdditional[i];
    // Посимвольно заменяем символы на их шестнадцатиречные эквиваленты
    var res = "";
    for(i = 0; i < str.length; i++) {
        var simbol = str.substr(i,1);
        res += typeof utf8Array[simbol] != "undefined" ? utf8Array[simbol] : simbol;
    }
    // Пробелы заменяем на плюсы
    res = res.replace(/\s/g, "+");
    return res;
}
//----------------------------------------------------------------------------------
function DumpArray(d,l) {
    if (l == null) l = 1;
    var s = '';
    if (typeof(d) == "object") {
        s += typeof(d) + " {\n";
        for (var k in d) {
            for (var i=0; i<l; i++) s += "  ";
            s += k+": " + DumpArray(d[k],l+1);
        }
        for (var i=0; i<l-1; i++) s += "  ";
        s += "}\n"
    } else {
        s += "" + d + "\n";
    }
    return s;
}
//--------------------------------------------------------------
function form_towns(elemAll,elemSel,parentObjId,tagname){
	
	//Удалить из строки все буквы, оставить только цифровой код
	var re = /\D/g;	
	var intcode;


	
	var checked_nodes;

	var parentObj = document.getElementById(parentObjId);
	var iarr = parentObj.getElementsByTagName(tagname);
	
	var AllElem = document.getElementById(elemAll);
	var SelElem = document.getElementById(elemSel);
	if(AllElem && SelElem){
		AllElem.value = '';SelElem.value = '';
		for(i = 0; i < iarr.length; i++) {		
			intcode = iarr[i].id.replace(re, "");
			if (iarr[i].checked == true) {
				SelElem.value = SelElem.value + '_' + intcode;			
			}
        	AllElem.value = AllElem.value + '_' + intcode;		
     	}
	}
	//alert(SelElem.value+'\n'+AllElem.value);
}

/**
 * заносим/удаляем фирму в/из блокнот(а)
 *
 * @param string type [firm_add], [firm_del]
 * @param integer idf
 * @param integer how_much
 * @param integer page
 */
function NotepadFirm(type, idf, how_much, page){
	var session_var = 'Загрузка';
	var xmlhttp = getXmlHttp();
	switch (type)
  	{
  		case 'firm_add':
  			xmlhttp.onreadystatechange = function()  
		    {
			  if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
			  {
			  	session_var = xmlhttp.responseText;
			  	if (session_var != 'Блокнот переполнен')
			  	{
			  		document.getElementById('notepad_img_'+idf).src = '/images/icons/notepad_in.gif';
			  		document.getElementById('notepad_href_'+idf).href = "javascript: alert('этота фирма уже в вашем списке');";
			  		var notepad_vars = session_var.split('}{');
				  	document.getElementById('firm_in_notepad').innerHTML = notepad_vars[0];
				  	document.getElementById('tovar_in_notepad').innerHTML = notepad_vars[1];
				  	document.getElementById('notepad_firm_and_prod').title = "Фирм: "+notepad_vars[0]+" / Товаров: "+notepad_vars[1];
			  	}else{
			  		alert (session_var);
			  	}
			  	document.getElementById('show_notepad').src = '/images/icons/notepad.gif';
			  }
		    };
  			break;
  			
  		case 'firm_del':
  			xmlhttp.onreadystatechange = function()  
		    {
			  if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
			  {
			  	session_var = xmlhttp.responseText;
			  	var notepad_vars = session_var.split('}{');
			  	document.getElementById('notepad_firm').innerHTML = notepad_vars[2];
			  	document.getElementById('firm_in_notepad').innerHTML = notepad_vars[0];
			  	document.getElementById('tovar_in_notepad').innerHTML = notepad_vars[1];
			  	document.getElementById('show_notepad').src = '/images/icons/notepad.gif';
			  	document.getElementById('notepad_firm_and_prod').title = "Фирм: "+notepad_vars[0]+" / Товаров: "+notepad_vars[1];
			  	
			  	var href_print = '/prints.php?action=notepad&item=';
			  	var htef_excel = '/excel.php?type=notepad&content=';
			  	
			  	if (notepad_vars[0] == '0' && notepad_vars[1] != '0')
			  	{
			  		href_print = href_print+'prod';
			  		htef_excel = htef_excel+'prod';
					
			  	}else if (notepad_vars[0] != 0){
			  		href_print = href_print+'firms';
			  		htef_excel = htef_excel+'firms';
			  	}else if (notepad_vars[1] == '0'){
			  			href_print = '';
			  			htef_excel = '';
			  	}
			  	
			  	document.getElementById('print_notepad').href = href_print;
				document.getElementById('excel_notepad').href = htef_excel;
			  }
		    };
  			break;
  		
  	}
	var url = '/include/ajax_notepad.php?type='+type+'&idf='+idf+'&item=firms&how_much='+how_much+'&page='+page;
	xmlhttp.open('GET', url, true);
	xmlhttp.send(null);
	document.getElementById('show_notepad').src = '/images/icons/loding.gif';
	
	var notepad_loding = document.getElementById('notepad_img_'+idf);
	if (notepad_loding)
		notepad_loding.src = '/images/icons/loding.gif';
}

/**
 * заносим/удаляем товар в/из блокнот(а)
 *
 * @param string type [prod_add], [prod_del]
 * @param integer id
 * @param integer ids
 * @param integer idf
 * @param integer how_much
 * @param integer page
 */
function NotepadProd(type, id, ids, idf, how_much, page){
	var session_var = 'Загрузка';
	var xmlhttp = getXmlHttp();
	switch (type)
  	{
  		case 'prod_add':
  			xmlhttp.onreadystatechange = function()  
		    {
			  if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
			  {
			  	session_var = xmlhttp.responseText;
			  	if (session_var != 'Блокнот переполнен')
			  	{
			  		document.getElementById('notepad_img_'+id+'_'+ids+'_'+idf).src = '/images/icons/notepad_in.gif';
			  		document.getElementById('notepad_href_'+id+'_'+ids+'_'+idf).href = "javascript: alert('этот товар уже в вашем списке');";
			  		var notepad_vars = session_var.split('}{');
				  	document.getElementById('firm_in_notepad').innerHTML = notepad_vars[0];
				  	document.getElementById('tovar_in_notepad').innerHTML = notepad_vars[1];
				  	document.getElementById('notepad_firm_and_prod').title = "Фирм: "+notepad_vars[0]+" / Товаров: "+notepad_vars[1];
			  	}else{
			  		alert (session_var);
			  	}
			  	document.getElementById('show_notepad').src = '/images/icons/notepad.gif';
			  }
		    };
  			break;
  		
  		case 'prod_del':
  			xmlhttp.onreadystatechange = function()  
		    {
			  if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
			  {
			  	session_var = xmlhttp.responseText;
			  	var notepad_vars = session_var.split('}{');
			  	document.getElementById('notepad_prod').innerHTML = notepad_vars[2];
			  	document.getElementById('firm_in_notepad').innerHTML = notepad_vars[0];
			  	document.getElementById('tovar_in_notepad').innerHTML = notepad_vars[1];
			  	document.getElementById('show_notepad').src = '/images/icons/notepad.gif';
			  	document.getElementById('notepad_firm_and_prod').title = "Фирм: "+notepad_vars[0]+" / Товаров: "+notepad_vars[1];
			  	
			  	var href_print = '/prints.php?action=notepad&item=';
			  	var htef_excel = '/excel.php?type=notepad&content=';
			  	
			  	if (notepad_vars[1] == '0' && notepad_vars[0] != '0')
			  	{
			  		href_print = href_print+'firms';
			  		htef_excel = htef_excel+'firms';
					
			  	}else if (notepad_vars[1] != 0){
			  		href_print = href_print+'prod';
			  		htef_excel = htef_excel+'prod';
			  	}else if (notepad_vars[0] == '0'){
			  			href_print = '';
			  			htef_excel = '';
			  	}
			  	
			  	document.getElementById('print_notepad').href = href_print;
				document.getElementById('excel_notepad').href = htef_excel;
			  }
		    };
  			break;
  	}
	var url = '/include/ajax_notepad.php?type='+type+'&id='+id+'&ids='+ids+'&idf='+idf+'&item=prod&how_much='+how_much+'&page='+page;
	xmlhttp.open('GET', url, true);
	xmlhttp.send(null);
	document.getElementById('show_notepad').src = '/images/icons/loding.gif';
	var notepad_loding = document.getElementById('notepad_img_'+id+'_'+ids+'_'+idf);
	if (notepad_loding)
		notepad_loding.src = '/images/icons/loding.gif';
}

/**
 * выводим список всех групп, названия которых начинаются с str.
 *
 * @param string str
 */
function SearchGroupInExsearch (id_div,id_text)
{
		var xmlhttp = getXmlHttp();
		var str = document.getElementById(id_text).value;
		if (str.length < 3)
			return false;
		var params = "str="+str;
		var url = '/include/ajax_search_group_in_exsearch.php';
		
		var idcat = document.getElementById('idcat').value.split(' ');
			  	
		xmlhttp.onreadystatechange = function()  
		{
		  if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		  {
			  	document.getElementById(id_div).innerHTML = xmlhttp.responseText;
			  	
			  	// те что выделены раскрашиваются красным и блокируются для раскрывания
			  	var o_link = false;
			  	for(var id_cat in idcat){
			  		o_link = document.getElementById('l' + idcat[id_cat]);
			  		if (o_link){
			  			o_link.className = 'now';
    					o_link.title = '';
			  		}
			  		
			  		// если есть дочерние эл-ты, то закрываем и их
			  		var o_img = document.getElementById('img' + idcat[id_cat])
			  		if (o_img)
				    {
				    	o_img.innerHTML = '·';
				    	o_img.className = "dot";
				    }
			  	}
		  }
		};
		
		xmlhttp.open("POST", url, true);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader("Content-length", params.length);
		xmlhttp.setRequestHeader("Connection", "close");
		xmlhttp.send(params);
		document.getElementById(id_div).innerHTML = "Идёт загрузка...";
}

//--------------------------
function AddCatExSearch(id_cat,str_cat,id_child) {
  if (IsRepeatCat(id_cat)) {return false;}
  var o_link = document.getElementById('l' + id_cat);
  var img_del = '<img src="/ps/icons/del.gif" class="icons" title="удалить группу" onClick="DelCatExSearch(' + id_cat  + ',' + "'" + str_cat + "','"+ id_child +"')" + '" alt="удалить">';
  var cat = '<div id="str' + id_cat + '">' + o_link.innerHTML + img_del + '</div>';
  document.getElementById('cat_name').innerHTML += '<div id="str' + id_cat + '">' + o_link.innerHTML + img_del + '</div>';     // название категории
  document.ext_frm.idcat.value += ' ' + id_cat;  // ID категории
  document.ext_frm.cat_str.value += ' ' + str_cat;  // STR категории
  clearReqFieldsExsForm();
  checkExtSearchForm(document.ext_frm,0);

    o_link.className = 'now';
    o_link.title = '';

    // запрещаем исспользовать дочерние элементы выбранной группы
    var o_img = document.getElementById('img' + id_cat);
    if (o_img)
    {
    	o_img.innerHTML = '·';
    	o_img.className = "dot";
    	var o_child = document.getElementById('c' + id_child);
    	o_child.className = "no_view";
    }
    
  return false;
}

//--------------------------
function DelCatExSearch(id_cat,str_cat,id_child) {
  del_cat_from_input(id_cat,str_cat);
  clearReqFieldsExsForm();
  checkExtSearchForm(document.ext_frm,0);
  CloseCat();
  var o_img = document.getElementById('img' + id_cat);
  if (o_img)
  {
  	o_img.innerHTML = '+';
  	o_img.title="раскрыть";
  	o_img.className = "";
  }
  
  var o_link = document.getElementById('l' + id_cat);
  o_link.className = "";
}

//--------------------------
function DelCatExSearch(id_cat,str_cat,id_child) {
  del_cat_from_input(id_cat,str_cat);
  clearReqFieldsExsForm();
  checkExtSearchForm(document.ext_frm,0);
  CloseCat();
  var o_img = document.getElementById('img' + id_cat);
  if (o_img)
  {
  	o_img.innerHTML = '+';
  	o_img.title="раскрыть";
  	o_img.className = "";
  }
  
  var o_link = document.getElementById('l' + id_cat);
  o_link.className = "";
}

//--------------------------
function CssBisBanner (id_div, id_text, val)
{
	var xmlhttp = getXmlHttp();
	if (val != '') {
		var str = val;
	} else {
	    var str = document.getElementById(id_text).value;
	}
	var params = "id_text=" + id_text + "&str=" + str;
	var url = '/include/ajax_banner.php';
		  	
	xmlhttp.onreadystatechange = function()  
	{
	  if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
	  {
	      var IE='\v'=='v';
             if(IE) {
		      document.getElementById("primenit").style.visibility = "visible";
		  } else {
		      document.getElementById('css-style').innerHTML = xmlhttp.responseText;
		  }
	  }
	};
	
	xmlhttp.open("POST", url, true);
	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp.setRequestHeader("Content-length", params.length);
	xmlhttp.setRequestHeader("Connection", "close");
	xmlhttp.send(params);
}

//--------------------------
function FindMenuType (type, id_div, id_text ,id_set_town, group, action)
{
	var xmlhttp = getXmlHttp();
	if (type != 'product' && type != 'firm' && type != 'yandex' && type != '') {
		type = 'product';
	}
	
	if (id_set_town == '') {
		var set_town = '';
	} else if (document.getElementById(id_set_town)) {
		
		var set_town = document.getElementById(id_set_town).value;
	}
	
	if (id_text == '') {
		var text = '';
	} else {
		var text = document.getElementById(id_text).value;
	}
	
	var params = "type=" + type + "&text=" + text + "&set_town=" + set_town + "&gr=" + group;
	var url = '/include/ajax.find.php';
	
	xmlhttp.onreadystatechange = function()  
	{
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
		{
			if (type != 'product' && type != 'firm' && type != 'yandex' && type != '') {
				type = 'product';
			}
			
			if (type != '') {
				document.getElementById('find_type').value = type;
			}
			
			switch (type) {
				case 'product':
					document.getElementById('find_product').className = 'menutype' + action + '-active';
					document.getElementById('find_firm').className = 'menutype' + action;
					document.getElementById('find_yandex').className = 'menutype' + action;
					
					document.getElementById('find_this').style.display='';
					document.getElementById('find_photo').style.display='';
					document.getElementById('set_town').style.display='';
					break;
					
				case 'firm':
					
					document.getElementById('find_product').className = 'menutype' + action;
					document.getElementById('find_firm').className = 'menutype' + action + '-active';
					document.getElementById('find_yandex').className = 'menutype' + action;
					
					document.getElementById('find_this').style.display='';
					document.getElementById('find_photo').style.display='none';
					document.getElementById('set_town').style.display='';
					document.getElementById('find_photo_checkbox').checked='';
					break;
				
				case 'yandex':
					
					document.getElementById('find_product').className = 'menutype' + action;
					document.getElementById('find_firm').className = 'menutype' + action;
					document.getElementById('find_yandex').className = 'menutype' + action + '-active';
					
					document.getElementById('find_this').style.display='none';
					document.getElementById('find_photo').style.display='none';
					document.getElementById('set_town').style.display='none';
					document.getElementById('find_photo_checkbox').checked='';
					break;
			}
		}
	};
	
	xmlhttp.open("POST", url, true);
	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp.setRequestHeader("Content-length", params.length);
	xmlhttp.setRequestHeader("Connection", "close");
	xmlhttp.send(params);
}
//--------------------------
function tree_toggle(event) {
    event = event || window.event;
    var clickedElem = event.target || event.srcElement;

    if (!hasClass(clickedElem, 'Expand')) {
            return ;// клик не там
    }

    // Node, на который кликнули
    var node = clickedElem.parentNode;
    if (hasClass(node, 'ExpandLeaf')) {
            return ;// клик на листе
    }

    // определить новый класс для узла
    var newClass = hasClass(node, 'ExpandOpen') ? 'ExpandClosed' : 'ExpandOpen';
    // заменить текущий класс на newClass
    // регексп находит отдельно стоящий open|close и меняет на newClass
    var re =  /(^|\s)(ExpandOpen|ExpandClosed)(\s|$)/;
    node.className = node.className.replace(re, '$1'+newClass+'$3');
}
//--------------------------
function hasClass(elem, className) {
    return new RegExp("(^|\\s)"+className+"(\\s|$)").test(elem.className);
}

//--------------------------
function FindMenuTypeT (type, id_div, id_text ,id_set_town, group)
{
	
}