var base_kr=new Array();//элементами этого массива будут объекты-предприниматели книжного рынка
var base_rr=new Array();//элементами этого массива будут объекты-предприниматели радио рынка
var f=new Array();//этот массив создан для упрощения конкретизации обЪектов
var g=new Array();//массив unik_key свойств объектов превью фасадов которых загружены. Используется в ф-ции change5
var unik_rek=new Array();//уникальные рекламные ячейкки
unik_rek[0]="<td>пустая ячейка</td>";//так удобнее
unik_rek[1]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_serega_2.html' class='a_rek' title='здесь много фонарей' target='_self');return false'><img src='reklama/rek_serega_foto/rek_big_nl12_3aa_68ma.jpg' class='img_rek_big' title='здесь много фонарей' alt='Фонарь спелеолога' /><br />Свети головой <br />Работай руками</a></td>";//Серега 2
unik_rek[2]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_kr_0184_000_06.html' class='a_rek' title='пазлы опт розница' target='_self'><img src='reklama/rek_kr_0184_000_foto/rek_big_c_150618.jpg' class='img_rek_big' title='пазлы опт розница' alt='Castorland' /><br />Пазлы<br />Новое поступление</a></td>";//Поваляев 6
unik_rek[3]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_serega_7.html' class='a_rek' title='мужские часы' target='_self'><img src='reklama/rek_serega_foto/rek_big_qqexe_6434_111.jpg' class='img_rek_big' title='мужские часы' alt='часы Q&Q' /><br />Мужские <br />Часы</a></td>";//Серега 7 Новая show_reklama_1()
unik_rek[4]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_andrei_01.html' class='a_rek' title='садовый инструмент' target='_self'><img src='reklama/rek_rr_0155_019_foto/rek_big_balens_bl_1338_ep.jpg' class='img_rek_big' title='садовый инструмент' alt='Balens BL 1338 EP' /><br />Газонокосилки <br />Мотокосы</a></td>";//Андрей 1
unik_rek[5]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_serega_4.html' class='a_rek' title='DVD плееры' target='_self'><img src='reklama/rek_serega_foto/rek_big_portable_dvd_tv_9_2.jpg' class='img_rek_big' title='DVD плееры' alt='9.2 Portable DVD TV' /><br />DVD плеер плюс<br />TFT телевизор</a></td>";//Серега 4
unik_rek[6]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_andrei_03.html' class='a_rek' title='электрогенегаторы' target='_self'><img src='reklama/rek_andrei_foto/rek_big_einhell_ste_5500.jpg' class='img_rek_big' title='электрогенераторы' alt='Einhell STE 5500' /><br />Автономная <br />Электроэнергия</a></td>";//Андрей 3
unik_rek[7]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_serega_8.html' class='a_rek' title='резервная батарея' target='_self'><img src='reklama/rek_serega_foto/rek_big_vst7059t.jpg' class='img_rek_big' title='резервная батарея' alt='электронные будильники' /><br />Электронные будильники <br />Настольные Настенные </a></td>";//Серега 8
unik_rek[8]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_andrei_01.html' class='a_rek' title='генераторы' target='_self'><img src='reklama/rek_rr_0155_019_foto/rek_big_green_field_lt_5_fg_lded.jpg' class='img_rek_big' title='генераторы' alt='Green Field LT 5 FG LDED' /><br />Миниэлектростанции на<br />бензине Газе дизтопливе</a></td>";//Андрей 1
unik_rek[9]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_andrei_03.html' class='a_rek' title='гравер бормашина минидрель' target='_self'><img src='reklama/rek_andrei_foto/rek_big_wintech_wct_200.jpg' class='img_rek_big' title='гравер бормашина минидрель' alt='WinTech WCT-200' /><br />Гравер Бормашина <br />Минишлифмашина</a></td>";//Андрей 3
unik_rek[10]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_kr_0184_000_04.html' class='a_rek' title='пазлы' target='_self'><img src='reklama/rek_kr_0184_000_foto/rek_big_b_50970.jpg' class='img_rek_big' title='пазлы' alt='Castorland B-50970' /><br />Собери<br />Мечту</a></td>";//Поваляев 4
unik_rek[11]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_serega_5.html' class='a_rek' title='DVD плееры' target='_self'><img src='reklama/rek_serega_foto/rek_big_kw9000p.jpg' class='img_rek_big' title='DVD плееры' alt='KW-9000P' /><br />DVD плеер <br />с поворотным экраном</a></td>";//Серега 5
unik_rek[12]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_andrei_01.html' class='a_rek' title='сварка' target='_self'><img src='reklama/rek_rr_0155_019_foto/rek_big_michel_zx_7_200.jpg' class='img_rek_big' title='сварка' alt='Сварка' /><br />Инверторная<br />сварка</a></td>";//Андрей 1
unik_rek[13]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_kr_0184_000_07.html' class='a_rek' title='конструкторы игры логика' target='_self'><img src='reklama/rek_kr_0184_000_foto/rek_big_unt195.jpg' class='img_rek_big' title='конструкторы игры логика' alt='Конструктор Юный техник' /><br />Интересные<br />Детские конструкторы</a></td>";//Поваляев 7 Новая show_reklama_1()
unik_rek[14]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_serega_6.html' class='a_rek' title='женские часы' target='_self'><img src='reklama/rek_serega_foto/rb3_sput_20027.jpg' class='img_rek_big' title='женские часы' alt='часы Спутник' /><br />Женские часы <br />Огромный Ассортимент </a></td>";//Серега 6 Новая show_reklama_1()
unik_rek[15]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_serega_3.html' class='a_rek' title='здесь много фонарей' target='_self'><img src='reklama/rek_serega_foto/rek_big_fo3p1_6in1_black_2aaa.jpg' class='img_rek_big' title='здесь много фонарей' alt='Фонарь отвертка' /><br />Фонарь отвертка <br />6 в одном</a></td>";//Серега 3
unik_rek[16]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_andrei_01.html' class='a_rek' title='стабилизаторы' target='_self'><img src='reklama/rek_rr_0155_019_foto/rek_big_luxeon_kdr_10000_va.jpg' class='img_rek_big' title='стабилизаторы' alt='Luxeon KDR-10000 VA' /><br />Стабилизаторы Преобразователи <br />Инверторы напряжения</a></td>";//Андрей 1

var comb_rek=new Array();//сочетания рекламных ячеек по четыре
comb_rek[0]="<td>пустая ячейка</td>";//так удобнее
comb_rek[1]=unik_rek[1]+"<td></td>"+unik_rek[2]+"<td></td>"+unik_rek[3]+"<td></td>"+unik_rek[4];
comb_rek[2]=unik_rek[5]+"<td></td>"+unik_rek[6]+"<td></td>"+unik_rek[7]+"<td></td>"+unik_rek[8];
comb_rek[3]=unik_rek[9]+"<td></td>"+unik_rek[10]+"<td></td>"+unik_rek[11]+"<td></td>"+unik_rek[12];
comb_rek[4]=unik_rek[13]+"<td></td>"+unik_rek[14]+"<td></td>"+unik_rek[15]+"<td></td>"+unik_rek[16];

var darom_rek=new Array();//неиспользуемые рекламные ячейки - дописываются, если монитор широкий
darom_rek[0]="<td>пустая ячейка</td>";//так удобнее
darom_rek[1]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_andrei_03.html' class='a_rek' title='электрогенегаторы' target='_self'><img src='reklama/rek_andrei_foto/rek_big_stern_gy_2500_l.jpg' class='img_rek_big' title='электрогенераторы' alt='Stern GY 2500 L' /><br />Автономная <br />Электроэнергия</a></td>";//Андрей 3
darom_rek[2]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_kr_0184_000_02.html' class='a_rek' title='пазлы игры логика' target='_self'><img src='reklama/rek_kr_0184_000_foto/rek_big_c_100576.jpg' class='img_rek_big' title='пазлы игры логика' alt='Castorland' /><br />Мозаика Castorland<br />для девочек</a></td>";//Поваляев 2
darom_rek[3]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_vadim_3.html' class='a_rek' title='рюкзаки сумки' target='_self'><img src='reklama/rek_vadim_foto/rek_big_umbro_u_969.jpg' class='img_rek_big' title='рюкзаки сумки' alt='Umbro U-969' /><br />Рюкзаки <br />Сумки</a></td>";//Вадим 3
darom_rek[4]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_andrei_01.html' class='a_rek' title='генераторы' target='_self'><img src='reklama/rek_rr_0155_019_foto/rek_big_firman_fpg_48000_m.jpg' class='img_rek_big' title='генераторы' alt='Firman FPG 4800 M' /><br />Миниэлектростанции на<br />бензине Газе дизтопливе</a></td>";//Андрей 1
darom_rek[5]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_kr_0184_000_03.html' class='a_rek' title='пазлы опт розница' target='_self'><img src='reklama/rek_kr_0184_000_foto/rek_big_c_101450.jpg' class='img_rek_big' title='пазлы опт розница' alt='Castorland' /><br />Пазлы<br />Мужская тема</a></td>";//Поваляев 3
darom_rek[6]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_kr_0184_000_05.html' class='a_rek' title='пазлы игры логика' target='_self'><img src='reklama/rek_kr_0184_000_foto/rek_big_c_150335.jpg' class='img_rek_big' title='пазлы игры логика' alt='Castorland' /><br />Петродворец<br />Санкт-Петербург</a></td>";//Поваляев 5
darom_rek[7]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_andrei_03.html' class='a_rek' title='автономная электроэнергия' target='_self'><img src='reklama/rek_andrei_foto/rek_big_einhell_ste_2500.jpg' class='img_rek_big' title='автономная электроэнергия' alt='Einhell STE 2500' /><br />Einhell STE 2500 <br />2,2KBт МАХ 45 кг</a></td>";//Андрей 3
darom_rek[8]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_andrei_02.html' class='a_rek' title='электрогенегаторы' target='_self'><img src='reklama/rek_andrei_foto/rek_big_firman_spg_1500.jpg' class='img_rek_big' title='электрогенераторы' alt='Firman SPG 1500' /><br />Firman SPG 1500 <br />1,3KBт МАХ <br />26 кг</a></td>";//Андрей 2
darom_rek[9]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_vadim_2.html' class='a_rek' title='рюкзаки сумки' target='_self'><img src='reklama/rek_vadim_foto/rek_big_stardragon.jpg' class='img_rek_big' title='рюкзаки сумки' alt='StarDragon' /><br />Рюкзаки <br />Сумки</a></td>";//Вадим 2
darom_rek[10]="<td class='td_reklama' onmouseover='change(1,this)' onmouseout='change(0,this)'><a href='reklama/rek_vadim_4.html' class='a_rek' title='фоторамки' target='_self'><img src='reklama/rek_vadim_foto/rek_big_vitrag_50960.jpg' class='img_rek_big' title='фоторамки' alt='фоторамки' /><br />Фоторамки <br />Розница и Опт</a></td>";//Вадим 4
var darom_est=new Array();//номера неиспользуемых рекламных ячеек, которые уже вписаны, используется только в ф-ции write_darom()
var num_rek=1;//сюда запишется значение num_rek из cookie, глобальное состояние рекламных таблиц на сайте

var conf=new String("требуемый оптовый прайс\nзащищен Паролем на открытие\n [OK] - продолжить скачивание\n [Отмена-Cancel] - отменить скачивание");//сообщение в окне предупреждения если прайс-опт защищен паролем
var str_reg_exp=null;//если в URL передана poisk станет объектом RegExp
var str_poisk=new String("");//поможет выделить искомые буквосочитания, см. pisat_sebia_div()
if((window.location.href.indexOf("poisk")!=-1)&&(window.location.href.indexOf("?")!=-1))//смотри строку выше
{str_poisk=unescape(window.location.search.slice(7));
 str_reg_exp=new RegExp(str_poisk,"ig");//непредсказуемо работает в Mozilla
}
window.name="boss";
function predpren(unik_key,nom,name,excel_rozn_size,zip_rozn_size,date_rozn,flag,url_excel,url_zip,excel_opt_size,zip_opt_size,date_opt,opisanie,kategoria,url_rek,url_site)//центровой объект-предприниматель
{this.unik_key=unik_key;//уникальный ключ, указывает рынок и номер места
 this.nom=nom;//номер домика
 this.name=name;//кто, чем торгует или название, кратко
 this.excel_rozn_size=excel_rozn_size;//размер розничного прайса в Excel
 this.zip_rozn_size=zip_rozn_size;//размер розничного прайса в Zip
 this.date_rozn=date_rozn;//дата обновления розничного прайса
 this.flag=flag;//флаг. Пока используется как индикатор наличия оптовых и розничных цен в одном розничном прайсе. Или наличия пароля на открытие в оптовом прайсе
 this.url_excel=url_excel;//полный адрес прайса в Excel в сети, если загружать со стороннего сайта
 this.url_zip=url_zip;//полный адрес прайса в Zip в сети, если загружать со стороннего сайта
 this.excel_opt_size=excel_opt_size;//размер оптового прайса в Excel
 this.zip_opt_size=zip_opt_size;//размер оптового прайса в Zip
 this.date_opt=date_opt;//дата обновления оптового прайса
 this.opisanie=opisanie;//подробное описание, чем занимается
 this.kategoria=kategoria;//слово для сортировки по категориям
 this.url_rek=url_rek;//полный адрес рекламной страницы
 this.url_site=url_site;//полный адрес стороннего сайта
 //ФУНКЦИИ
 this.pisat_sebia_table=pisat_sebia_table;//вписывает себя в таблицу прайсов
 this.pisat_sebia_div=pisat_sebia_div;//вписывает себя в раздел сайта с описанием
}
function pisat_sebia_table()
{document.write("<tr><td style='background-color:#f0f0f0' title='номер домика на рынке'>"+this.nom+"</td>");
 document.write("<td><a class='a_table' href='#"+this.unik_key+"' title='перейти к описанию' onclick='create_vidno(\""+this.unik_key+"\");return true'>"+this.name+"</a></td>");
 document.write("<td style='background-color:#ff0000'>&nbsp;</td>");//разделитель между описанием и прайсами
//розничный и оптовый с сайта
 if(this.excel_rozn_size!="non"&&this.excel_opt_size!="non"&&this.url_excel=="non"&&this.url_zip=="non")
 {document.write("<td><a class='a_table' type='application/msexcel' href='price/rozn_excel/"+this.unik_key+"_rozn_excel.xls' target='"+this.unik_key+"_rozn_excel' title='скачать прайс-розница в Excel'>"+this.excel_rozn_size+"</a></td>");//ячейка с розничным прайсом в Excel
  document.write("<td title='дата обновления'>"+this.date_rozn+"</td>");//ячейка -  дата обновления розничного прайса
  document.write("<td><a class='a_table' type='application/zip' href='price/rozn_zip/"+this.unik_key+"_rozn_zip.zip' target='"+this.unik_key+"_rozn_zip' title='скачать прайс-розница в ZIP архиве'>"+this.zip_rozn_size+"</a></td>");//ячейка с розничным прайсом в ZIP
  document.write("<td style='background-color:#ff0000'>&nbsp;</td>");//разделитель между розничным и оптовым прайсом
  document.write("<td><a class='a_table' type='application/msexcel' href='price/opt_excel/"+this.unik_key+"_opt_excel.xls' target='"+this.unik_key+"_opt_excel' ");//начало ячейки оптового прайса в Excel
  if(this.flag=="pass"){document.write("title='прайс защищен паролем' onclick='return confirm(conf)'>")}//если прайс-опт запаролен вывести окно предупреждения
  else{document.write("title='скачать прайс-опт в Excel'>")}//если пароля нет
  document.write(this.excel_opt_size);
  document.write("</a></td>");//конец ячейки оптового прайса в Excel
  document.write("<td title='дата обновления'>"+this.date_opt+"</td>");//ячейка -  дата обновления оптового прайса
  document.write("<td><a class='a_table' type='application/zip' href='price/opt_zip/"+this.unik_key+"_opt_zip.zip' target='"+this.unik_key+"_opt_zip' ");//начало ячейки оптового прайса в ZIP
  if(this.flag=="pass"){document.write("title='прайс защищен паролем' onclick='return confirm(conf)'>")}//если прайс-опт запаролен вывести окно предупреждения
  else{document.write("title='скачать прайс-опт в ZIP архиве'>")}//если пароля нет
  document.write(this.zip_opt_size);
  document.write("</a></td>");//конец ячейки оптового прайса в ZIP
 }
//розничный с сайта опта нет либо оптовые цены в розничном прайсе
 if(this.excel_rozn_size!="non"&&this.excel_opt_size=="non"&&this.url_excel=="non"&&this.url_zip=="non")
 {document.write("<td><a class='a_table' type='application/msexcel' href='price/rozn_excel/"+this.unik_key+"_rozn_excel.xls' target='"+this.unik_key+"_rozn_excel' title='скачать прайс-розница в Excel'>"+this.excel_rozn_size+"</a></td>");//ячейка с розничным прайсом в Excel
  document.write("<td title='дата обновления'>"+this.date_rozn+"</td>");//ячейка -  дата обновления розничного прайса
  document.write("<td><a class='a_table' type='application/zip' href='price/rozn_zip/"+this.unik_key+"_rozn_zip.zip' target='"+this.unik_key+"_rozn_zip' title='скачать прайс-розница в ZIP архиве'>"+this.zip_rozn_size+"</a></td>");//ячейка с розничным прайсом в ZIP
  document.write("<td style='background-color:#ff0000'>&nbsp;</td>");//разделитель между розничным и оптовым прайсом
  if(this.flag=="opt_v_rozn")
  {document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//стрелки влево если
   document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//оптовые цены опубликованы
   document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//в розничном прайсе
  }
  else
  {document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//ячейки 
   document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//оптового прайса
   document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//пусты
  }
 }
//розничного нет оптовый с сайта
 if(this.excel_rozn_size=="non"&&this.excel_opt_size!="non"&&this.url_excel=="non"&&this.url_zip=="non")
 {document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//ячейки 
  document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//розничного прайса
  document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//пусты
  document.write("<td style='background-color:#ff0000'>&nbsp;</td>");//разделитель между розничным и оптовым прайсом
  document.write("<td><a class='a_table' type='application/msexcel' href='price/opt_excel/"+this.unik_key+"_opt_excel.xls' target='"+this.unik_key+"_opt_excel' ");//начало ячейки оптового прайса в Excel
  if(this.flag=="pass"){document.write("title='прайс защищен паролем' onclick='return confirm(conf)'>")}//если прайс-опт запаролен вывести окно предупреждения
  else{document.write("title='скачать прайс-опт в Excel'>")}//если пароля нет
  document.write(this.excel_opt_size);
  document.write("</a></td>");//конец ячейки оптового прайса в Excel
  document.write("<td title='дата обновления'>"+this.date_opt+"</td>");//ячейка -  дата обновления оптового прайса
  document.write("<td><a class='a_table' type='application/zip' href='price/opt_zip/"+this.unik_key+"_opt_zip.zip' target='"+this.unik_key+"_opt_zip' ");//начало ячейки оптового прайса в ZIP
  if(this.flag=="pass"){document.write("title='прайс защищен паролем' onclick='return confirm(conf)'>")}//если прайс-опт запаролен вывести окно предупреждения
  else{document.write("title='скачать прайс-опт в ZIP архиве'>")}//если пароля нет
  document.write(this.zip_opt_size);
  document.write("</a></td>");//конец ячейки оптового прайса в ZIP
 }
//Excel со стороннего сайта ZIP со стороннего сайта
 if(this.excel_rozn_size!="non"&&this.excel_opt_size=="non"&&this.url_excel!="non"&&this.url_zip!="non")
 {document.write("<td><a class='a_table' type='application/msexcel' href='"+this.url_excel+"' target='"+this.unik_key+"_rozn_excel' title='скачать прайс-розница в Excel'>"+this.excel_rozn_size+"</a></td>");//ячейка с розничным прайсом в Excel
  document.write("<td title='дата обновления'>"+this.date_rozn+"</td>");//ячейка -  дата обновления розничного прайса
  document.write("<td><a class='a_table' type='application/zip' href='"+this.url_zip+"' target='"+this.unik_key+"_rozn_zip' title='скачать прайс-розница в ZIP архиве'>"+this.zip_rozn_size+"</a></td>");//ячейка с розничным прайсом в ZIP
  document.write("<td style='background-color:#ff0000'>&nbsp;</td>");//разделитель между розничным и оптовым прайсом
  if(this.flag=="opt_v_rozn")
  {document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//стрелки влево если
   document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//оптовые цены опубликованы
   document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//в розничном прайсе
  }
  else
  {document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//ячейки 
   document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//оптового прайса
   document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//пусты
  }
 }
//Excel со стороннего сайта ZIP нет
 if(this.excel_rozn_size!="non"&&this.excel_opt_size=="non"&&this.url_excel!="non"&&this.url_zip=="non")
 {document.write("<td><a class='a_table' type='application/msexcel' href='"+this.url_excel+"' target='"+this.unik_key+"_rozn_excel' title='скачать прайс-розница в Excel'>"+this.excel_rozn_size+"</a></td>");//ячейка с розничным прайсом в Excel
  document.write("<td title='дата обновления'>"+this.date_rozn+"</td>");//ячейка -  дата обновления розничного прайса
  document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//ZIP ячейка пуста
  document.write("<td style='background-color:#ff0000'>&nbsp;</td>");//разделитель между розничным и оптовым прайсом
  if(this.flag=="opt_v_rozn")
  {document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//стрелки влево если
   document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//оптовые цены опубликованы
   document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//в розничном прайсе
  }
  else
  {document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//ячейки 
   document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//оптового прайса
   document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//пусты
  }
 }
//Excel нет ZIP со стороннего сайта
 if(this.excel_rozn_size=="non"&&this.excel_opt_size=="non"&&this.url_excel=="non"&&this.url_zip!="non")
 {document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//Excel ячейка пуста
  document.write("<td title='дата обновления'>"+this.date_rozn+"</td>");//ячейка -  дата обновления розничного прайса
  document.write("<td><a class='a_table' type='application/zip' href='"+this.url_zip+"' target='"+this.unik_key+"_rozn_zip' title='скачать прайс-розница в ZIP архиве'>"+this.zip_rozn_size+"</a></td>");//ячейка с розничным прайсом в ZIP
  document.write("<td style='background-color:#ff0000'>&nbsp;</td>");//разделитель между розничным и оптовым прайсом
  if(this.flag=="opt_v_rozn")
  {document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//стрелки влево если
   document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//оптовые цены опубликованы
   document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//в розничном прайсе
  }
  else
  {document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//ячейки 
   document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//оптового прайса
   document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//пусты
  }
 }
 document.write("</tr>");
}//конец ф-ции pisat_sebia_table()
function pisat_sebia_div()
{var s1=new String("");//облегчит работу по вписыванию ссылки на рекламу
 var s2=new String("");//облегчит работу по вписыванию ссылки на сайт
 s1=this.url_rek.toLowerCase();//переводим URL в нижний регистр
 s2=this.url_site.toLowerCase();//переводим URL в нижний регистр
 document.write("<a name='"+this.unik_key+"'></a>");//анкер описания конкретного предпринимателя
 if(str_reg_exp!=null)//переменная poisk передана в URL
 {if(str_reg_exp.test(this.opisanie))
  {document.write("<div id='"+this.unik_key+"_div' class='div_opisanie'>")}//буквосочитание есть в описании
  else
  {document.write("<div id='"+this.unik_key+"_div' class='div_opisanie' style='display:none'>")}//буквосочитания нет в описании
 }else{document.write("<div id='"+this.unik_key+"_div' class='div_opisanie'>")}//poisk не передана
 document.write("<table class='table_opisanie'><tr>");
 if(s1!="non")//если предприниматель заказал рекламу по клику на имени
 {document.write("<td style='background-color:#fff1d7;width:200px;text-align:center'><a href='foto_fasad_b/b21_"+this.unik_key+".jpg' onclick='show_big_foto_1(\""+this.unik_key+"\",\""+this.name+"\",1);return false'><img src='foto_fasad_m/m11_"+this.unik_key+".jpg' class='img_fasad_mini1' alt='фасад' title='крупное фото' /></a></td>")//ячейка с мини фото фасада
 }else//если предприниматель рекламу по клику на имени не заказывал
 {document.write("<td style='background-color:#f0f0f0;width:200px;text-align:center'><a href='foto_fasad_big/big_"+this.unik_key+".jpg' onclick='change5(\""+this.unik_key+"\",\""+this.name+"\",this);return false'><img src='notate.gif' class='img_fasad_mini2' alt='клик для минифото' title='клик для минифото' /></a></td>")//ячейка с мини фото фасада
 }
 document.write("<td style='width:10px'>&nbsp;</td>");//раздел между фото и описанием
 document.write("<td>");
 if (s1=="non")//предприниматель рекламу по клику на имени не заказывал
 {document.write("<p class='p_opis_name'>домик № "+this.nom+"&nbsp;&nbsp;&nbsp;");
  document.write("<strong>"+this.name+"</strong></p><hr class='hr_opis' />")
 }
 if(s1.indexOf("http://rik.dn.ua")!=-1)//если предприниматель заказал рекламу по клику на имени
 {document.write("<table class='table_div_rek'><tr>");
  document.write("<td class='td_div_rek1'>домик № "+this.nom+"</td>");
  document.write("<td class='td_div_rek2'>");
  document.write("<a href='"+s1.slice(17)+"' class='a_opis_rek' type='text/html' title='смотреть рекламу' target='_self'>"+this.name+"</a>");//ссылка на рекламу
  document.write("</td>");
  document.write("</tr></table>");
 }
 if(str_reg_exp!=null)//переменная poisk передана в URL. Начало вывода абзаца с подробным описанием
 {this.opisanie=this.opisanie.replace(str_reg_exp,"<span style='color:#ff0000; font-weight:bold'>"+str_poisk+"</span>");//выделяем цветом буквосочитания
  document.write("<p class='p_opis'>"+this.opisanie+"</p><hr class='hr_opis' />")
 }
 else
 {document.write("<p class='p_opis'>"+this.opisanie+"</p><hr class='hr_opis' />")}//вывод подробного описания, если poisk не передана
 if(s2!="non")//если у предпринимателя есть сайт
 {document.write("Сайт : : <a href='"+s2+"' class='a_site' target='_blank' title='перейти на сайт предпринимателя'>"+this.url_site.slice(7)+"</a><hr class='hr_opis' />");}//ссылка на его сайт, this.url_site.slice(7) чтобы впереди не было "http://"
 if(this.excel_rozn_size!="non"||this.zip_rozn_size!="non"||this.excel_opt_size!="non"||this.zip_opt_size!="non")//если хоть какой нибудь прайс существует
 {document.write("<p class='p_opis_price'>");
  if(this.url_rek!="non")document.write("<table class='table_price1'>")//предприниматель заказал рекламу
  else document.write("<table class='table_price2'>")//у предпринимателя нет рекламы
//розничный и оптовый с сайта
  if(this.excel_rozn_size!="non"&&this.excel_opt_size!="non"&&this.url_excel=="non"&&this.url_zip=="non")
  {document.write("");
   document.write("");
   document.write("");
   document.write("<tr><td style='background-color:#f0f0f0'>: : Прайс - РОЗНИЦА : :</td>");//начало розница
   document.write("<td><a class='a_table' type='application/msexcel' href='price/rozn_excel/"+this.unik_key+"_rozn_excel.xls' target='"+this.unik_key+"_rozn_excel' title='скачать прайс-розница в Excel'>"+this.excel_rozn_size+"</a></td>");//ячейка с розничным прайсом в Excel
   document.write("<td title='дата обновления'>"+this.date_rozn+"</td>");//ячейка -  дата обновления розничного прайса
   document.write("<td><a class='a_table' type='application/zip' href='price/rozn_zip/"+this.unik_key+"_rozn_zip.zip' target='"+this.unik_key+"_rozn_zip' title='скачать прайс-розница в ZIP архиве'>"+this.zip_rozn_size+"</a></td>");//ячейка с розничным прайсом в ZIP
   document.write("</tr>");//конец розница
   document.write("<tr><td style='background-color:#f0f0f0'>: : Прайс - ОПТ : :</td>");//начало опт
   document.write("<td><a class='a_table' type='application/msexcel' href='price/opt_excel/"+this.unik_key+"_opt_excel.xls' target='"+this.unik_key+"_opt_excel' ");//начало ячейки оптового прайса в Excel
   if(this.flag=="pass"){document.write("title='прайс защищен паролем' onclick='return confirm(conf)'>")}//если прайс-опт запаролен вывести окно предупреждения
   else{document.write("title='скачать прайс-опт в Excel'>")}//если пароля нет
   document.write(this.excel_opt_size);
   document.write("</a></td>");//конец ячейки оптового прайса в Excel
   document.write("<td title='дата обновления'>"+this.date_opt+"</td>");//ячейка -  дата обновления оптового прайса
   document.write("<td><a class='a_table' type='application/zip' href='price/opt_zip/"+this.unik_key+"_opt_zip.zip' target='"+this.unik_key+"_opt_zip' ");//начало ячейки оптового прайса в ZIP
   if(this.flag=="pass"){document.write("title='прайс защищен паролем' onclick='return confirm(conf)'>")}//если прайс-опт запаролен вывести окно предупреждения
   else{document.write("title='скачать прайс-опт в ZIP архиве'>")}//если пароля нет
   document.write(this.zip_opt_size);
   document.write("</a></td>");//конец ячейки оптового прайса в ZIP
   document.write("</tr>")//конец опт
  }
//розничный с сайта опта нет либо оптовые цены в розничном прайсе
  if(this.excel_rozn_size!="non"&&this.excel_opt_size=="non"&&this.url_excel=="non"&&this.url_zip=="non")
  {document.write("<tr><td style='background-color:#f0f0f0'>: : Прайс - РОЗНИЦА : :</td>");//начало розница
   document.write("<td><a class='a_table' type='application/msexcel' href='price/rozn_excel/"+this.unik_key+"_rozn_excel.xls' target='"+this.unik_key+"_rozn_excel' title='скачать прайс-розница в Excel'>"+this.excel_rozn_size+"</a></td>");//ячейка с розничным прайсом в Excel
   document.write("<td title='дата обновления'>"+this.date_rozn+"</td>");//ячейка -  дата обновления розничного прайса
   document.write("<td><a class='a_table' type='application/zip' href='price/rozn_zip/"+this.unik_key+"_rozn_zip.zip' target='"+this.unik_key+"_rozn_zip' title='скачать прайс-розница в ZIP архиве'>"+this.zip_rozn_size+"</a></td>");//ячейка с розничным прайсом в ZIP
   document.write("</tr>");//конец розница
   document.write("<tr><td style='background-color:#f0f0f0'>: : Прайс - ОПТ : :</td>");//начало опт
   if(this.flag=="opt_v_rozn")
   {document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//стрелки влево если
    document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//оптовые цены опубликованы
    document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//в розничном прайсе
   }
   else
   {document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//ячейки 
    document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//оптового прайса
    document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//пусты
   }
   document.write("</tr>");//конец опт
  }
//розничного нет оптовый с сайта
  if(this.excel_rozn_size=="non"&&this.excel_opt_size!="non"&&this.url_excel=="non"&&this.url_zip=="non")
  {document.write("<tr><td style='background-color:#f0f0f0'>: : Прайс - РОЗНИЦА : :</td>");//начало розница
   document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//ячейки 
   document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//розничного прайса
   document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//пусты
   document.write("</tr>");//конец розница
   document.write("<tr><td style='background-color:#f0f0f0'>: : Прайс - ОПТ : :</td>");//начало опт
   document.write("<td><a class='a_table' type='application/msexcel' href='price/opt_excel/"+this.unik_key+"_opt_excel.xls' target='"+this.unik_key+"_opt_excel' ");//начало ячейки оптового прайса в Excel
   if(this.flag=="pass"){document.write("title='прайс защищен паролем' onclick='return confirm(conf)'>")}//если прайс-опт запаролен вывести окно предупреждения
   else{document.write("title='скачать прайс-опт в Excel'>")}//если пароля нет
   document.write(this.excel_opt_size);
   document.write("</a></td>");//конец ячейки оптового прайса в Excel
   document.write("<td title='дата обновления'>"+this.date_opt+"</td>");//ячейка -  дата обновления оптового прайса
   document.write("<td><a class='a_table' type='application/zip' href='price/opt_zip/"+this.unik_key+"_opt_zip.zip' target='"+this.unik_key+"_opt_zip' ");//начало ячейки оптового прайса в ZIP
   if(this.flag=="pass"){document.write("title='прайс защищен паролем' onclick='return confirm(conf)'>")}//если прайс-опт запаролен вывести окно предупреждения
   else{document.write("title='скачать прайс-опт в ZIP архиве'>")}//если пароля нет
   document.write(this.zip_opt_size);
   document.write("</a></td>");//конец ячейки оптового прайса в ZIP
   document.write("</tr>")//конец опт
  }
//Excel со стороннего сайта ZIP со стороннего сайта
  if(this.excel_rozn_size!="non"&&this.excel_opt_size=="non"&&this.url_excel!="non"&&this.url_zip!="non")
  {document.write("<tr><td style='background-color:#f0f0f0'>: : Прайс - РОЗНИЦА : :</td>");//начало розница
   document.write("<td><a class='a_table' type='application/msexcel' href='"+this.url_excel+"' target='"+this.unik_key+"_rozn_excel' title='скачать прайс-розница в Excel'>"+this.excel_rozn_size+"</a></td>");//ячейка с розничным прайсом в Excel
   document.write("<td title='дата обновления'>"+this.date_rozn+"</td>");//ячейка -  дата обновления розничного прайса
   document.write("<td><a class='a_table' type='application/zip' href='"+this.url_zip+"' target='"+this.unik_key+"_rozn_zip' title='скачать прайс-розница в ZIP архиве'>"+this.zip_rozn_size+"</a></td>");//ячейка с розничным прайсом в ZIP
   document.write("</tr>");//конец розница
   document.write("<tr><td style='background-color:#f0f0f0'>: : Прайс - ОПТ : :</td>");//начало опт  
   if(this.flag=="opt_v_rozn")
   {document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//стрелки влево если
    document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//оптовые цены опубликованы
    document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//в розничном прайсе
   }
   else
   {document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//ячейки 
    document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//оптового прайса
    document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//пусты
   }
   document.write("</tr>");//конец опт
  }
//Excel со стороннего сайта ZIP нет
  if(this.excel_rozn_size!="non"&&this.excel_opt_size=="non"&&this.url_excel!="non"&&this.url_zip=="non")
  {document.write("<tr><td style='background-color:#f0f0f0'>: : Прайс - РОЗНИЦА : :</td>");//начало розница
   document.write("<td><a class='a_table' type='application/msexcel' href='"+this.url_excel+"' target='"+this.unik_key+"_rozn_excel' title='скачать прайс-розница в Excel'>"+this.excel_rozn_size+"</a></td>");//ячейка с розничным прайсом в Excel
   document.write("<td title='дата обновления'>"+this.date_rozn+"</td>");//ячейка -  дата обновления розничного прайса
   document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//ZIP ячейка пуста
   document.write("</tr>");//конец розница
   document.write("<tr><td style='background-color:#f0f0f0'>: : Прайс - ОПТ : :</td>");//начало опт
   if(this.flag=="opt_v_rozn")
   {document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//стрелки влево если
    document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//оптовые цены опубликованы
    document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//в розничном прайсе
   }
   else
   {document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//ячейки 
    document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//оптового прайса
    document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//пусты
   }
   document.write("</tr>")//конец опт
  }
//Excel нет ZIP со стороннего сайта
  if(this.excel_rozn_size=="non"&&this.excel_opt_size=="non"&&this.url_excel=="non"&&this.url_zip!="non")
  {document.write("<tr><td style='background-color:#f0f0f0'>: : Прайс - РОЗНИЦА : :</td>");//начало розница
   document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//Excel ячейка пуста
   document.write("<td title='дата обновления'>"+this.date_rozn+"</td>");//ячейка -  дата обновления розничного прайса
   document.write("<td><a class='a_table' type='application/zip' href='"+this.url_zip+"' target='"+this.unik_key+"_rozn_zip' title='скачать прайс-розница в ZIP архиве'>"+this.zip_rozn_size+"</a></td>");//ячейка с розничным прайсом в ZIP
   document.write("<tr><td style='background-color:#f0f0f0'>: : Прайс - ОПТ : :</td>");//начало опт
   if(this.flag=="opt_v_rozn")
   {document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//стрелки влево если
    document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//оптовые цены опубликованы
    document.write("<td title='оптовые цены в розничном прайсе'>&laquo;&nbsp;&laquo;&nbsp;&laquo;&nbsp;</td>");//в розничном прайсе
   }
   else
   {document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//ячейки 
    document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//оптового прайса
    document.write("<td style='background-color:#f0f0f0'>&nbsp;</td>");//пусты
   }
   document.write("</tr>")//конец опт
  }
  document.write("</p></table>")//конец таблицы с прайсами в описании
 }
 document.write("</td>");//конец ячейки с описанием деятельности и прайсами (если публикует)
 if(s1!="non")//если предприниматель заказал рекламу по клику на имени добовляем ему ячейку с превью
 {document.write("<td style='width:5px'>&nbsp;</td>");//раздел между фото и описанием
  document.write("<td style='background-color:#fff1d7;width:180px;text-align:center'><a href='foto_fasad_b/b22_"+this.unik_key+".jpg' onclick='show_big_foto_1(\""+this.unik_key+"\",\""+this.name+"\",2);return false'><img src='foto_fasad_m/m12_"+this.unik_key+".jpg' class='img_fasad_mini1' alt='фасад' title='крупное фото' /></a></td>");//ячейка с мини фото общий план
  if(window.screen.width>=1152)//если предприниматель заказал рекламу и у посетителя широкий монитор, дописываем третью ячейку с Яндекс картой
  {document.write("<td style='background-color:#fff1d7;width:180px;text-align:center'><a href='foto_fasad_b/b23_"+this.unik_key+".jpg' onclick='show_big_foto_1(\""+this.unik_key+"\",\""+this.name+"\",3);return false'><img src='foto_fasad_m/m13_"+this.unik_key+".jpg' class='img_fasad_mini1' alt='фасад' title='крупное фото' /></a></td>");//ячейка с мини фото Яндекс карт
  }
 }
 document.write("</tr></table></div>")
}//конец функции pisat_sebia_div()

function show_big_foto(unik_key, name)//выводит большое фото 600х530рх в отдельном окне.
{new_win=window.open("", unik_key, "width=602,height=530,resizable=1,left=2,top=1");
 new_win.document.write("<head><title>"+name+"</title></head>");
 new_win.document.write("<body style='margin:0px'><img src='foto_fasad_big/big_"+unik_key+".jpg' style='width:600px;height:530px' alt='"+name+"' title='"+name+"' /></body>");
 new_win.focus();
 new_win.document.close();
}
function show_big_foto_1(unik_key, name, nomer_foto)//выводит большое фото 879х777рх или 600х530рх в зависимости от высоты экрана в рх, в отдельном окне. Используется у рекламодателей. Модернизированная 24.11.2009 show_big_foto(). nomer_foto это номер фотографии, НЕ забывать, что он передается в ф-цию show_big_foto_1() как ЧИСЛО. Для упрощения записи
{var param=new String("width=602,height=530,resizable=1,left=2,top=1");//малый экран или, если window.screen.width не распознается
 var style_foto=new String("style='width:600px;height:530px'");//малый экран или, если window.screen.width не распознается
 var b=new String("b1");//объявляется локальная переменная b. Начало имени фото (например b11_kr_0192_001.jpg) примет значение b2 если монитор большой
 if(window.screen.height>=900)//для TFT мониторов - большая фотография 879*777
 {param="width=881,height=777,resizable=1,left=2,top=1";
  style_foto="style='width:879px;height:777px'";
  b="b2"
 }
 new_win=window.open("", unik_key, param);
 new_win.document.write("<head><title>"+name+"</title></head>");
 new_win.document.write("<body style='margin:0px'><img src='foto_fasad_b/"+b+nomer_foto+"_"+unik_key+".jpg' "+style_foto+" alt='"+name+"' title='"+name+"' /></body>");
 new_win.focus();
 new_win.document.close();
}
function show_reklama(url,unik_key)//используется для показа рекламных страниц в отдельном окне
{var param=new String("width=395,height=495,status=0,menubar=1,resizable=1,scrollbars=1,left=410,top=1");//экран 800*600 или меньше,в случае если window.screen.width не распознается, если menubar=0 то height=542, если menubar=1 то height=495
 if(window.screen.height>=768)param="width=395,height=660,status=0,menubar=1,resizable=1,scrollbars=1,left=615,top=1";//экран 1024*768 или больше, если menubar=0 то height=705, если menubar=1 то height=660
 if(window.screen.height>=864)param="width=395,height=710,status=0,menubar=1,resizable=1,scrollbars=1,left=615,top=1";
 if(window.screen.height>=1024)param="width=395,height=840,status=0,menubar=1,resizable=1,scrollbars=1,left=615,top=1";//для TFT мониторов
 new_win=window.open(url, unik_key+"_reklama", param);//имя окна unik_key используется при выводе большой фото фасада, поэтому unik_key+"_reklama"
//new_win.focus();
//new_win.location.href=url;//странно, но только такая конструкция позволяет в IE
//new_win.document.close()//передать фокус рекламному окну при повторном нажатии на ссылку
}
function show_reklama_1(url,unik_key)//модернизированная show_reklama(), используется для показа рекламных страниц в отдельном окне, для крупных фотографий двух типоразмеров 600*530 и 879*777
{var param=new String("width=395,height=495,status=0,menubar=1,resizable=1,scrollbars=1,left=410,top=1");//экран 800*600 или меньше,в случае если window.screen.width не распознается, если menubar=0 то height=542, если menubar=1 то height=495
 if(window.screen.height>=768)param="width=395,height="+(window.screen.height-108)+",status=0,menubar=1,resizable=1,scrollbars=1,left=615,top=1";//экран 1024*768 или больше, если menubar=0 то height=705, если menubar=1 то height=660
 if(window.screen.height>=900)param="width=395,height="+(window.screen.height-108)+",status=0,menubar=1,resizable=1,scrollbars=1,left=895,top=1";//для TFT мониторов
 new_win=window.open(url, unik_key+"_reklama", param);//имя окна unik_key используется при выводе большой фото фасада, поэтому unik_key+"_reklama"
//new_win.focus();
//new_win.location.href=url;//странно, но только такая конструкция позволяет в IE
//new_win.document.close()//передать фокус рекламному окну при повторном нажатии на ссылку
}

function sort_kategoria(base,kategoria)//оставляет на странице только тех, кто отвечает запрашиваемой kategoria в base
{var obj=null;//переменной присваивается элемент div по id
 if(kategoria.indexOf("--")!=-1){show_reklama("poisk_spravka.html","spravka");return}//если пользователь выбрал, например ------- КНИГИ -------
 for(var i=0;i<base.length;i++)
 {obj=document.getElementById(base[i].unik_key+"_div");
  if(base[i].kategoria.indexOf(kategoria.toLowerCase())==-1)
  {obj.style.display="none"}//если не принадлежит к категории - div невидим
  else
  {obj.style.display="block"}//если принадлежит - div видим
 }
}
function matrix(slovo)//оставляет на странице только тех, кто отвечает запрашиваемому slovo в base
{var adress=new String("");//вспомогательная переменная
 var num_1=window.location.href.indexOf("?");//возможно URL уже содержит переменные (от предыдущего запроса, например)
 var num_2=window.location.href.indexOf("#");//возможно пользователь двигался по анкерам
 var vzlom_1=null;//если через строку поиска пытаются хакнуть
 var vzlom_2=null;//если через строку поиска пытаются хакнуть
 switch(navigator.appName)
 {case "Microsoft Internet Explorer":
  if(parseInt(navigator.appVersion)==4)//IE этой версии считает русские буквы не алфавитно-цифровыми символами
  {vzlom_1=new RegExp("raq|aqu|quo|laq|exec|eval|<br","i");//
   vzlom_2=/\Wbr|br\W|r\W\W|\Wra|\Wla|uo\W/;//
  }break;
  default:
   vzlom_1=new RegExp("raq|aqu|quo|laq|exec|eval|<br","i");
   vzlom_2=/\W/;//только так можно сказать Mozilla искать не алфавитно-цифровые символы, верхний конструктор пригоден для создания буквосочитаний
   break;
 }
 if(slovo.length<3||slovo.length>12)//если длина слова меньше трех символов или больше двенадцати
 {show_reklama("poisk_spravka.html","spravka");
  return false
 }
 //if(vzlom_1.test(slovo)||vzlom_2.test(slovo)) //Закоментирована 4 августа 2009. Простое решение. Теперь в запрос можно вводить пробелы. Будет время - надо улучшить.
 if(vzlom_1.test(slovo))
 {//alert("vzlom_1  "+vzlom_1.exec(slovo)+"\nvzlom_2  "+vzlom_2.exec(slovo));
  show_reklama("poisk_spravka.html","spravka");
  return false
 }
 if((num_1==-1)&&(num_2==-1))adress=window.location.href//Если в URL нет ни переменных ни анкеров
 if((num_1==-1)&&(num_2!=-1))adress=window.location.href.slice(0,num_2)//Нет переменных есть анкер
 if((num_1!=-1)&&(num_2==-1))adress=window.location.href.slice(0,num_1)//Нет анкера есть переменная
 if((num_1!=-1)&&(num_2!=-1)&&(num_1>num_2))adress=window.location.href.slice(0,num_2)//Есть и анкер и переменная. Переменная правее (хотя такого быть не должно - страхуемся)
 if((num_1!=-1)&&(num_2!=-1)&&(num_1<num_2))adress=window.location.href.slice(0,num_1)//Есть и анкер и переменная. Анкер правее
 window.location.href=adress+"?poisk="+escape(slovo)//escape(slovo) преобразует русские буквы в slovo в "хорошие" символы
 return false
}//конец matrix(slovo)

function scroll_window()//скролит окно если страница перегрузилась после ввода ключа, иначе трудно понять, что результат поиска загружен
{if((window.location.href.indexOf("poisk")!=-1)&&(window.location.href.indexOf("?")!=-1))
 window.scrollBy(0,635)
}

function create_vidno(unik_key)//используется при переходе из таблицы прайсов к описанию, делает div видимым на случай если при сортировке он display:none
{var obj=null;//переменной присваивается элемент div по id
 obj=document.getElementById(unik_key+"_div");
 obj.style.display="block"//
}
function create_border()//используется в тандеме со ссылкой на рекламной странице, та передает своеобразный URL, а ф-ция обрисовывает div бордюром
{var obj=null;//переменной присваивается элемент div по id
 window.focus();
 if((window.location.href.indexOf("#")!=-1)&&(window.location.href.indexOf("?")!=-1))
 {obj=window.location.hash.slice(1);
  if(obj=="kr_0184_000"||obj=="kr_0192_001"||obj=="kr_0130_001"||obj=="rr_andrei"||obj=="kr_0007_001")//чтобы бордюром обводились только заказавшие рекламу
  {obj=document.getElementById(obj+"_div");
   obj.style.display="block";
   obj.style.borderColor="#ff0000"
  }
 }
}
function create_table(base)//строит таблицу прайсов переданной base
{for(var i=0;i<base.length;i++)
 {if(base[i].excel_rozn_size!="non"||base[i].zip_rozn_size!="non"||base[i].excel_opt_size!="non"||base[i].zip_opt_size!="non")
  {base[i].pisat_sebia_table()}
 }
}
function create_div(base)//строит все блоки div из base
{for(var i=0;i<base.length;i++)base[i].pisat_sebia_div()
}
function change(n,obj)//меняет цвет border в рекламных блоках
{obj.style.borderColor=n ? "#ed7500" : "#777777";
}
function spisok_nevidim()//сделает невидимым блок div со списком предпринимателей, узкоспециализированная ф-ция
{var obj=null;//переменной присваивается элемент div по id
 obj=document.getElementById("vse_zdes");
 obj.style.display="none";
 obj.style.visibility="hidden";
}
function change5(unik_key,name,obj)//единственный вариант работающий в обоих браузерах, change5 потому что 4 предыдущих работали только в Mozilla. Подгружает превью фасада по клику или выводит крупное фото фасада, если превью уже загружено
{for (var i=0;i<g.length;i++)
 {if (g[i]==unik_key) {show_big_foto(unik_key, name);return}
 }
 g[g.length]=unik_key;//запись в глобальный массив нового обращения
 obj.firstChild.setAttribute("src","foto_fasad_mini/mini_"+unik_key+".jpg");
 obj.firstChild.setAttribute("title","крупное фото в отдельном окне")
}
function set_cookie(name,value,dni)//записывает переменную с именем name и значением value в cookie-набор на срок dni дней
{var time_life=dni*24*60*60*1000;//дней в милисекундах
 var day_zero=new Date();//день удаления записанной переменной - сейчас плюс dni дней
 day_zero.setTime(day_zero.getTime()+time_life);
 document.cookie=name+"="+escape(""+value)+"; expires="+day_zero.toGMTString()+"; path=/";//(""+value) явное преобразование в строку
}
function get_cookie(name)//возвращает значение cookie по его имени, ели не нашла, возвращает null
{name=" "+name+"=";
 var result=null;//сюда будет записано значение переменной с именем name
 var my_cookie=" "+document.cookie+";";//
 var start=my_cookie.indexOf(name);//
 var end;
 if(start!=-1)
 {start+=name.length;
  end=my_cookie.indexOf(";",start);
  result=unescape(my_cookie.slice(start,end))
 }
 return result
}
function num_rek_value()//процедура, работающая только с глобальной переменной
{num_rek=get_cookie("num_rek");//пытаемся прочесть num_rek из cookie
 if((num_rek!=null)&&(num_rek.length==1))num_rek=parseInt(num_rek);//преобразуем считанный из cookie num_rek в целое число
 if(num_rek==null)num_rek=Math.ceil(Math.random()*4);//если в cokie num_rek нет, присваеваем ему случайное число от 1 до 4
 if(typeof(num_rek)!="number"){num_rek=1};//если по каким-то причинам в cookie была записана строка из 1-го символа НеЦифры или из более одного любого символа
 num_rek++;//изменяем глобальное состояние
 if(num_rek>4)num_rek=num_rek-4;//num_rek больше 4 нам не нужен
 set_cookie("num_rek",num_rek,111)//записываем новое значение num_rek в cookie на 111 дней
}
function write_rek(poz)//вписывает в рекламную таблицу сочетание из 4 ячеек, poz позиция таблицы на сайте
{poz=poz+num_rek;//связываем позицию рекламной таблицы с текущим глобальным состоянием
 if(poz>4)poz=poz-4;//у на всего 4 позиции
 document.write(comb_rek[poz]);//вписываем соответствующий элемент
 if(window.screen.width>=1152)write_darom();//если ширина монитора позволяет, дописываем еще одну ячейку
 if(window.screen.width>=1400)write_darom()//аналогично
}
function write_darom()//вписывает одну рекламную ячейку и следит, чтобы она не была вписана ранее
{if(darom_rek.length<=1)return;//если darom_rek[] пуст (в нем только нулевой элемент), такое может быть
 var pusto=new String("<td></td>");
 var k=Math.ceil(Math.random()*(darom_rek.length-1));//в darom_rek[] первый элемент пустой, поэтому (darom_rek.length-1)
 for(var i=0,n=5; i<=n; i++,k=Math.ceil(Math.random()*(darom_rek.length-1)))
 {if(i==n){darom_est[darom_est.length]=k;document.write(pusto+darom_rek[k]);return}//если это последняя итерация - делать нечего, вписываем и выходим
  for(var j=0,est=false; j<darom_est.length; j++){if(darom_est[j]==k){est=true; break}}//проверяем - может ячейка уже вписана, darom_est[] глобальный
  if(!est){darom_est[darom_est.length]=k; document.write(pusto+darom_rek[k]); return}//а если не вписана - вписываем
 }
}
function write_ssilki_niz(kol)//ф-ция вписывает ссылки внизу главной страницы. kol-количество ссылок
{var ssilki=new Array();//массив массивов ссылок. Инициализируется ниже
 ssilki[0]=null;//так удобнее
 var ssilki_est=new Array();//массив случайных чисел от 1 до (ssilki.length-1)
 ssilki_est[0]=null;//так удобнее
 var n=4;//число итераций при вписывании случ.чисел в ssilki_est[]. Если текущее случ.число уже есть в ssilki_est[], производим итерацию еще раз. И так не более n раз. При n=1 все ссылки будут одинаковыми. Рекомендую n=2..5
 ssilki[ssilki.length]=new Array("http://ezotera.ariom.ru/2008/03/09/aids.html","_blank","читать статью","Вирус ВИЧ-СПИД мистификация мирового масштаба?!");//url,target,title,название ссылки
 ssilki[ssilki.length]=new Array("http://www.eurolab.ua/ru/blog/Shane/9456/","_blank","читать статью","СПИД - не проблема врачей и вирусологов, а лженаучный терроризм");//
 ssilki[ssilki.length]=new Array("http://smi.liga.net/articles/IT090077.html","_blank","ваши доллары могут стать просто бумагой","Идеальная капиталистическая война. Америка отменит доллар?");//
 ssilki[ssilki.length]=new Array("http://news.mail.ru/politics/2301207/et","_blank","ответ по Фрейду","Ядерное оружие в Ираке так и не нашли. Дж.Буш:&laquo;А какая разница?&raquo;");//
 ssilki[ssilki.length]=new Array("http://news.mail.ru/politics/2301207/et","_blank","президент и чувство юмора","В конце концов, он (Садам Хусейн) — это парень, который&nbsp;однажды&nbsp;хотел&nbsp;убить&nbsp;моего&nbsp;папу");//
 ssilki[ssilki.length]=new Array("http://expert.ru/printissues/expert/2009/01/prihod_s_proficitom/","_blank","запад и его свободная торговля","Пока Китай остается нацией наркоманов, нам не стоит бояться.. >>");//
 ssilki[ssilki.length]=new Array("http://www.politonline.ru/ventilyator/1246.html","_blank","статья от бывшего работника банка","Исповедь банкира: Как выбивают кредиты в кризис");//
 ssilki[ssilki.length]=new Array("http://www.politonline.ru/ventilyator/1238.html","_blank","читать книги полезно","Безграмотное поколение. Откуда он, &laquo;офисный&nbsp;планктон&raquo;");//
 ssilki[ssilki.length]=new Array("http://www.politonline.ru/ventilyator/1232.html","_blank","резко, но смысл есть","Серой массе посвящается. Это точно не про тебя..");//
 ssilki[ssilki.length]=new Array("http://vlasti.net/news/28503","_blank","готовить в микроволновках вредно","Почему в СССР были запрещены микроволновки");//
 var k=Math.ceil(Math.random()*(ssilki.length-1));//k(случ.число) можно инициализировать только здесь, после инициализации массива ssilki.
 for(var m=1; m<=kol; m++)//заполняем ssilki_est[] случайными числами
 {for(var i=1; i<=n; i++,k=Math.ceil(Math.random()*(ssilki.length-1)))//
  {for(var j=0,est=false; j<ssilki_est.length; j++)//перебор ssilki_est[]. Может текущее значение k в нем уже есть
   {if(ssilki_est[j]==k){est=true; break}}//текущее значение k(случ.число) в ssilki_est[] уже есть
   if(!est){ssilki_est[m]=k; break}//текущее значение k(случ.число) в ssilki_est[] нет. Записываем
   if(est==true&&i==n){ssilki_est[m]=k; break}//Если попытки ( всего n попыток) найти новое случ.число закончились. Вписываем k какое есть. Здесь break, в принципе, лишняя. Так как при i==n следующая итерация уже не выполнится.
  }
 }
 if(ssilki.length<=1)return;//если ссылок нет и в массиве ssilki только нулевой элемент null
 for(var i=1,p=1; i<ssilki_est.length; i++)//Вписываем ссылки в документ. Вообще, (ssilki_est.length-1) должно быть равно kol. переменная p просто для сокращения записи
 {p=ssilki_est[i];
  document.write("<a href='"+ssilki[p][0]+"' class='a_obmen' target='"+ssilki[p][1]+"' title='"+ssilki[p][2]+"'>");//атрибуты <a>
  document.write(ssilki[p][3]);//текст ссылки
  document.write("</a> <br />");
 }
}
function write_statia(kol)//ф-ция вписывает ссылки и анонс статьи. kol-количество ссылок. Скопирована с write_ssilki_niz() с небольшим дополнением в конце
{var statia=new Array();//массив массивов ссылок. Инициализируется ниже
 statia[0]=null;//так удобнее
 var statia_est=new Array();//массив случайных чисел от 1 до (statia.length-1)
 statia_est[0]=null;//так удобнее
 var n=4;//число итераций при вписывании случ.чисел в statia_est[]. Если текущее случ.число уже есть в statia_est[], производим итерацию еще раз. И так не более n раз.
 statia[statia.length]=new Array("st/st01.html","_self","читать статью","USALS + АНТЕННА 0,9 - 1,0 м = простая экономия времени","Увеличение спутниковых каналов, появление новых спутников с мощными сигналами, заставляют людей задуматься над вопросом увеличения каналов и на своем телевизоре. Кое-кто уже оснастил свои антенны дополнительно двумя конверторами и получил возможность принимать сигналы сразу с трех спутников. Самый популярный набор спутникового железа с тремя конверторами позволяет принимать на антенну небольшого размера (до 1 метра в диаметре) сигналы с трех спутников: Sirius, Amos и Hot Bird. Такая связка позволяет получить максимум русскоязычных каналов при минимуме финансовых затрат. При этом получается принимать около 40 различных по содержанию некодированных каналов. ");//url,target,title,текст ссылки,анонс текста статьи
 statia[statia.length]=new Array("st/st02.html","_self","читать статью","Обзор ресивера OPENBOX X-810","OPENBOX X-810 - спутниковый ресивер, для приема открытых и кодированных каналов. В отличие от других моделей этого же ряда (F-300 FTA, X-800 и X-820 CI) приемник имеет существенные изменения, а именно: два встроенных слота -UniCAM, Аудио/Видео коммутатор реализованный на микросхеме Sony, и новый ВЧ блок компании Sharp с возможностью слепого поиска...Цепи видео выхода в этой модели реализованы на микросхеме Sony CXA2161R , чип который редко применяют в бюджетных моделях, в основном он находит свое применение в дорогих аппаратах высокого класса с встроенным жестким диском...Поддержка протоколов DiseqC 2.0, 1.1, 1.2 и системы USALS дает возможность ресиверу поддерживать работу с различными типами приемных антенных систем");//
 statia[statia.length]=new Array("st/st03.html","_self","читать статью","Стабильность во всем. Стабилизаторы напряжения","Они сохраняют номинальное значение выходного напряжения (220В при однофазном подключении, 380В при трехфазном) с заданной точностью, если входное находится в рабочем диапазоне. Вне его границ погрешность возрастает. В большинстве моделей предусмотрено отключение нагрузки, если отклонение достигает некоторого предельного значения...нужа ли вообще защита имеющегося оборудования? Чтобы на него ответить, надо определить качество энергоснабжения. Как уже отмечалось, существуют два негативных фактора: импульсные скачки (их стабилизатор сглаживает лишь частично) и длительные отклонения. О наличии первых свидетельствует мигание света, а чтобы отследить вторые, следует измерять напряжение на протяжении ряда дней по нескольку раз в сутки. На основе полученных результатов выбирают один из следующих вариантов");//
 statia[statia.length]=new Array("st/st04.html","_self","читать статью","Использование гравера. Минидрель, минибормашина","Принципиально конструкция минидрелей предельно проста: блок питания, моторчик и система креплении на его валу различных насадок (сверл, наждачных кругов и т.п.). Разместив движок с простейшим набором управляющей электроники в компактном корпусе, присоединив вал прямо к якорю и проточив на нем посадочное место для цанги с гайкой, производители, по сути, не изобрели ничего нового, а просто довели до ума логичную конструкцию...Инструмент не был бы универсальным, если бы не позволял настраивать частоту вращения вала. К примеру, полировку и тонкую шлифовку пластика, зачистку крашеных поверхностей и другие ответственные операции проводят на малых оборотах, а отрезные работы и заточку, как правило, на максимуме");//
 statia[statia.length]=new Array("st/st05.html","_self","читать статью","Жидкотопливные отопительные котлы","Выбирая котел, нужно ориентироваться на топливо, на котором он будет работать. Пока в нашей стране самым дешевым энергоносителем является газ, электричество - относительно дорого, твердое топливо - не везде доступно. Дизельное топливо занимает средние позиции и по цене, и по распространенности. К тому же установка жикотопливного котла и сопутствующего оборудования требует больших единовременных затрат. Его использование оправданно, если рядом отсутствует газовая магистраль или нужна большая мощность...Жидкотопливные котлы работают на мазуте или солярке (второе чаще используют в быту). Специальный насос подает топливо к горелке под высоким давлением. Проходя через форсунку, солярка распыляется в мельчайшие капли. Эта туманообразная взвесь смешивается с воздухом, нагнетаемым дутьевым вентилятором, в соотношении, необходимом для сгорания, и подается в зону горения, где и воспламеняется. Современные дизельные котлы с хорошо настроенной горелкой работают практически бесшумно и достаточно чисто");//
 statia[statia.length]=new Array("st/st06.html","_self","читать статью","Фильтры питьевой воды","В городских масштабах водозабор бывает речной и артезианский. Первый осуществляют из открытых водоемов - обычно специальных водохранилищ. Правда, граница между ними и судоходными реками довольно условна. Поэтому речная вода, как правило, богата различного рода примесями: механическими, органическими, а также растворенными веществами, состоящими из элементов, почитай, всей менделеевской таблицы и в придачу целым букетом бактерий и микроорганизмов. Артезианскую воду добывают из скважин глубиной от 20 до 200м. Ее химический состав зависит от гидрогеологических условий данной местности...Для этого воду хлорируют, что так знакомо горожанам, особенно по весне. (Озонирование и обработка ультрафиолетом - тоже действенные, но недолгодействующие меры, к тому же дорогие, поэтому муниципальные структуры их не используют.) Регулирование солевого баланса в городских масштабах не проводят - слишком дорогое удовольствие");//
 statia[statia.length]=new Array("st/st07.html","_self","читать статью","Электрические накопительные водонагреватели","В наше время решение вопроса бесперебойного горячего водоснабжения - вполне выполнимая задача. Достаточно установить водонагреватель. Большой популярностью сегодня пользуются электрические накопительные модели. Этим устройствам по силам скрасить ежегодные отключения горячей воды в квартире и обеспечить городской уровень комфрта в загородном коттедже...Основные элементы накопителей, определяющие срок его службы - внутренний бак и нагревательный элемент (ТЭН). Безопасную работу обеспечивают ограничитель нагрева и предохранительный клапан, отключающие электроводонагреватель (ЭВН) в случае перегрева или превышения допустимого уровня давления...Для продления срока службы стальных водонагревателей используются разные способы борьбы с коррозией. Например, изготавливают внутренний бак из нержавейки или покрывают его стеклофарфором либо эмалью. Кроме того, встраивают в бойлер магниевый или активный анод");//
 var k=Math.ceil(Math.random()*(statia.length-1));//k(случ.число) можно инициализировать только здесь, после инициализации массива statia.
 for(var m=1; m<=kol; m++)//заполняем statia_est[] случайными числами
 {for(var i=1; i<=n; i++,k=Math.ceil(Math.random()*(statia.length-1)))//
  {for(var j=0,est=false; j<statia_est.length; j++)//перебор statia_est[]. Может текущее значение k в нем уже есть
   {if(statia_est[j]==k){est=true; break}}//текущее значение k(случ.число) в statia_est[] уже есть
   if(!est){statia_est[m]=k; break}//текущее значение k(случ.число) в statia_est[] нет. Записываем
   if(est==true&&i==n){statia_est[m]=k; break}//Если попытки ( всего n попыток) найти новое случ.число закончились. Вписываем k какое есть. Здесь break, в принципе, лишняя. Так как при i==n следующая итерация уже не выполнится.
  }
 }
 if(statia.length<=1)return;//если ссылок нет и в массиве statia только нулевой элемент null
 for(var i=1,p=1; i<statia_est.length; i++)//Вписываем ссылки в документ. Вообще, (statia_est.length-1) должно быть равно kol. переменная p просто для сокращения записи
 {p=statia_est[i];
  document.write("&nbsp;&nbsp;&nbsp;&nbsp;<a href='"+statia[p][0]+"' class='a_vakans' target='"+statia[p][1]+"' title='"+statia[p][2]+"'>");//атрибуты <a>
  document.write(statia[p][3]);//текст ссылки
  document.write("</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
  document.write(statia[p][4]);//анонс текста статьи
  document.write(" <br />");
 }
}