/******** Начало файла globals.js ********/

/* ======== Глобальные переменные ======= */
var Ramka=0; // видимость рамки таблицы, =0 в рабочем режиме
			 // = 1 в тестовом режиме
	// Папки на сервере написаны с заглавной, это существенно!!
var PathKrat="..\/Izdan_krat\/"; // путь от раздела до js-файлов краткой информации
var Img_krat="..\/Izdimg\/";     // путь от раздела до малых картинок
var Img_cartPath="..\/Izdimg\/"; // путь от раздела до картинок корзины

var Lang=0; // переменная управляет выдачей "г." в блоках краткой информации 
			//(в англ. "г." нет". Переменная определена в globals.js

// все глобальные переменные должны впоследствии иметь строковый тип
var BookFile="fileName"; /* базовое имя файла. Введено после 25.05.07 из-за необходимости
						корректной обработки корзины английского сайта. Определение
						конкретного значения введено во все файлы краткой информации */
var Prompt="Prompt";	/* текст всплывающей подсказки для гиперссылки перехода
			   на страницу подробной информации */
var DetFile="DetFile.htm"; 	//имя htm-файла с подробной информацией и расширением htm
var ImFile="sport70.gif"; 	//имя файла маленького фото с расширением
var ImH="79"; // число высоты маленького фото в пкс как строка, например, "85"
var BookAuthor="Book Author&nbsp"; // имя(-на) автора(-ов)
var BookName= "Book name"; // название книги
var BookYear="2004"; // год издания
var BookText="Book text"; // текст краткой информации
var OglW="490"; // Ширина окна оглавления "Оратории"
var OglH="480"; // Высота окна оглавления "Оратории"
var BookSold="0"; // 0 - не продана

/*************************************************************
	Ниже следуют переменные для последующей
	индикации значения счетчика после "наезда" мышкой на
	замещающий элемент Ball. В программе формируется два 
	изображения: постоянно присутствующее Ball и изображение
	счетчика Counter. При "наезде" мышкой происходит подмена
	свойства src с Ball.src на Counter.src. При "отъезде"
	происходит обратная подмена. Это в месте расположения 
	счетчика делает фрагмент HTML-кода:
		<a href="javascript://"
   			onMouseOver="document.images.picCnt.src=Counter.src"
   			onMouseOut="document.images.picCnt.src=Ball.src" >
		<img src="ball183sss.gif" name="picCnt" border=0></a>
	
**************************************************************/

        // Параметры сроки-запроса счетчика
        var CntImg = "http://counter.co.kz/counter.cgi?page=www.liki-rossii.ru_";
        var CntPar = "&style=awg01&digits=4&trans=255,255,255";

        /*Определение имени htm-файла путем выделения
          фрагмента после последненго слэша-разделителя.
          В зависимости от браузера это может быть прямой
          или обратный слэш. Имя файла используется как
          параметр запроса значения счетчика */
        
        var fname=document.location.pathname;
        var i1=fname.lastIndexOf('\\');
        var i2=fname.lastIndexOf('\/');
        var i=(i1>i2)?i1:i2; // определение, какой из разделителей используется
        var PageName=fname.substring(i+1, fname.length);
        // Теперь PageName имя текущего файла
        
        // Формирование изображения счетчика по запросу 
        // CntImg+PageName+CntPar с сайта counter.co.kz
        counter = new Image();
        counter.src= CntImg+PageName+CntPar;
        // Изображение шарика - основной элемент, замещаемый счетчиком
        ball=new Image();
        ball.src="../../Liki_img/ball183sss.gif";


/* ======== Глобальные функции ======= */

/************************ ExecuteFilejs ***************************/
function ExecuteFilejs(filename) 
/* Функция запускает выполнение js-скрипта
   из файла filename путем ввода в поток окна
   директивы загрузки скрипта из внешнего файла
   Это описание можно поместить в секцию HEAD
   Эта функция должна использоваться в отдельном
   закрытом скрипте:
   <SCRIPT language="javascript">
   ExecuteFilejs(filename);
   </SCRIPT>
   потому что вновь присвоенные переменные становятся
   видимыми только в следующем скрипте. Это не позволяет,
   к сожалению использовать эту программу в цикле.
*/
{
document.write("<SCRIPT language='javascript' src="+filename+"> </"+"SCRIPT>");
} // ExecuteFilejs

/************************ WriteTableCell ***************************/
function WriteTableCell() {
/* функция формирует поток данных в виде последовательности тэгов
   текста и переменных параметров книги для вывода содержимого
	краткой информации в виде ячейки таблицы. Предполагается 
   предварительное определение 9 глобальных переменных:
   Prompt, DetFile, ImFile, ImH, BookAuthor, BookName, BookYear,
	BookText, BookSold которые используются внутри функции.
	В последней версии после марта 2007 добавилась корзина
	<a  href=\"javascript:ProcessCart(cartN);\">"
	<img border=0 name=cart src="../Izdimg/into_cart.gif" 
	onmouseout="document.cart.border=0;return true;"
	onmouseover="if (document.cart.src.indexOf('into_cart.gif')!=-1) 
	document.cart.border=1; return true;"></a>
	Имя cartN выделяется из имени файла маленького изображения книги ImFile
	После 25.05.07 введена специальная переменная BookFile
*/
//имя изображения корзины в блоке <img> для данной книги
var cartN=BookFile;
//cartN=ImFile.substring(ImFile.lastIndexOf("/")+1,ImFile.lastIndexOf("70"));

var htm1="<tr><td><table border='" + Ramka +"' width='568' cellspacing='0' cellpadding='0'><tr>",
    htm2="<td colspan='3' width='568' height='10'></td></tr><tr>",	
    htm3="<td width='80' valign='baseline' align='center'><a title='";
// далее ожидается переменная Prompt

var htm4="' href='";
// далее ожидается переменная DetFile 

var htm5="'> <img border='0' src='";
// далее ожидается переменная ImFile 

var htm6="' align='baseline' width='70' height='";
// далее ожидается переменная ImН 

var htm7="'></a></td><td width='5' height='90'></td><td width='461' valign='top'><font size='2' face='Tahoma' color='#CC0000'>";
// далее ожидается переменная BookAuthor 
	
var htm8="</font><font size='2' face='Arial' color='#401818'><a title='";
// далее ожидается переменная Prompt

var htm9="' href='";
// далее ожидается переменная DetFile 

var htm10="'><b>";
// далее ожидается переменная BookName

var htm11="</b></a> ";
// далее ожидается переменная BookYear

var htm12=" г.&nbsp;&nbsp;"; 
// далее идет фрагмент вывода корзины

var htmcart1="<a  href=\"javascript:ProcessCart('"+cartN+"');\">",
//	htmcart1+=".src='../Izdimg/into_cart_added.gif';void(0);\">";
	htmcart0="<img border=0 name="+cartN+" src=\"";
    htmcart2_noadd=htmcart0+Img_cartPath+"/into_cart.gif\" ",
    htmcart2_added=htmcart0+Img_cartPath+"/into_cart_added.gif\" ",
    htmcart2_del=htmcart0+Img_cartPath+"/into_cart_del.gif\" ",
	htmcart3="onmouseout=\"document."+cartN+".border=0;return true;\" ";
	
var htmcart4="onmouseover=\"if (document."+cartN+".src.indexOf('into_cart.gif')!=-1) document.";
	htmcart4+=cartN+".border=1;	return true;\"></a>";

var htmcartsold="<img border=0 src=\"";
    htmcartsold+=Img_cartPath+"/soldbook.gif\">";
	
var htmbt1="<p style=\"word-spacing: 0; text-indent: 0;  margin: 0\" align=\"justify\">",
    htmbt2="<font size=\"2\" face=\"Arial\" color=\"#401818\">";
// далее ожидается переменная BookText

   var htmbt3="</font></td></tr><tr><td colspan=\"3\" width=\"568\" height=\"10\"></td></tr></table></tr>";

var s, s1, s2;
document.write(htm1+htm2+htm3+Prompt+htm4+DetFile+htm5+ImFile); // картинка
document.write(htm6+ImH+htm7+BookAuthor+htm8+Prompt+htm9+DetFile); // автор
document.write(htm10+BookName+htm11+BookYear); // название и год

if (Lang==0) document.write(htm12); // "г.  "
else document.write(".&nbsp;&nbsp;"); // для английского языка

s=getCookie("zakaz");
s1=getCookie("SearchStr");

if (s1=="zakazano") { // попали на страницу отобранных книг
	document.write(htmcart1+htmcart2_del+htmcart3+htmcart4); // корзина "удалить"
}
else { // вывод корзины стандартного вида проданной или не проданной книги
	if (s.indexOf(cartN)==-1){
	  if (BookSold=="0")
		document.write(htmcart1+htmcart2_noadd+htmcart3+htmcart4); // корзина при отсутствии выбора
	  else document.write(htmcartsold); // корзина проданной книги
	  						  }
	else
		document.write(htmcart1+htmcart2_added+htmcart3+htmcart4); // корзина при наличии выбора
}

document.write(htmbt1+htmbt2+BookText+htmbt3); // краткое содержание

} // WriteTableCell

/*********************** ProcessCart **************************
	Заносит в cookie zakaz имя cartName 
***************************************************************/
function ProcessCart(cartName) {
	var s, s1, first, last;

s1=getCookie("SearchStr");
//alert(cartName);

if (s1!="zakazano") { // не попали на страницу отобранных книг
	s=eval("document."+cartName+".src"); // установленная иконка
	if (s.indexOf("into_cart_added")!=-1) return;
	eval("document."+cartName+".src='"+Img_cartPath+"/into_cart_added.gif';");
	s=getCookie("zakaz");
	if (s=="") s+=cartName;
	else s+=" "+cartName;
	setCookie("zakaz",s,0);
}
else { // страница заказано, велено удалить
	s=eval("document."+cartName+".src"); // установленная иконка
	if (s.indexOf("into_cart_deleted")!=-1) return;
	eval("document."+cartName+".src='"+Img_cartPath+"/into_cart_deleted.gif';");
	s=getCookie("zakaz");

	while (s.indexOf(cartName)!=-1) {
		first=s.indexOf(cartName);
		s1=s.substring(0,first);
		last=first+cartName.length+1;
		s1+=s.substring(last,s.length);
		s=s1;
	}
	while(s.substr(0,1)==" ") {// удаление начальных пробелов
		s=s.substr(1);
	}
	setCookie("zakaz",s,0);
	/* Установить флаг, говорящий, что на странице "Заказано" 
	   было удаление. Используется для принудительной перезагрузки 
	   всех страниц, кроме "zakazano" в начале файла "displayBooks.htm"
	*/
	document.location.reload(true);
}	

}// ProcessCart

/*********************** ProcessCartDet **************************
	Заносит в cookie zakaz имя cartName со страницы подробной
	информации. В отличие от ProcessCart() вначале нейтрализует
	cookie SearchStr=zakazano, а потом восстанавливает его 
***************************************************************/
function ProcessCartDet(cartName) {
var sc=getCookie("SearchStr");
	if (sc=="zakazano") setCookie("SearchStr","",0);
	ProcessCart(cartName);
	setCookie("SearchStr",sc,0);

} // ProcessCartDet

/*********************** ShowCartDet **************************
	Выводит изображение корзины над книгой в подробной
	информации и обрабатывает щелчки мыши через вызов
	ProcessCartDet()
	Заносит в cookie zakaz имя cartName со страницы подробной
	информации.  
***************************************************************/
function ShowCartDet(cartName) {
          
var	htmcart0="<img border=0 name="+cartN+" src=\"",
	htmcart1="<a  href=\"javascript:ProcessCartDet('"+cartN+"');\">",
    htmcart2_noadd=htmcart0+Img_cartPath+"/into_cart.gif\" ",
    htmcart2_added=htmcart0+Img_cartPath+"/into_cart_added.gif\" ",
    htmcart2_del=htmcart0+Img_cartPath+"/into_cart_del.gif\" ",
	htmcart3="onmouseout=\"document."+cartN+".border=0;return true;\" ";
	
var htmcart4="onmouseover=\"if (document."+cartN+".src.indexOf('into_cart.gif')!=-1)document.";
	htmcart4+=cartN+".border=1; return true;\"><\/a>";

var htmcartsold="<img border=0 src=\"";
    htmcartsold+=Img_cartPath+"/soldbook.gif\">";
				
var s=getCookie("zakaz");

// вывод корзины стандартного вида
	if (s.indexOf(cartN)==-1){
	  if (BookSold=="0")
		document.write(htmcart1+htmcart2_noadd+htmcart3+htmcart4); // корзина при отсутствии выбора
	  else document.write(htmcartsold); // корзина проданной книги
	  						  }
	else {
		document.write(htmcart1+htmcart2_added+htmcart3+htmcart4); // корзина при наличии выбора
	}

} // ShowCartDet

/************************ ShowBookParms ***************************
	Выводит на экран значения восьми текущих параметров книги;
	используется для тестовых целей
*******************************************************************/
function ShowBookParms() {

document.write ("<p>Book Author:&nbsp<b>"+BookAuthor+"</b><br>");
document.write ("Prompt:&nbsp<b>"+Prompt+"</b><br>");
document.write ("Book Name:&nbsp<b>"+BookName+"</b><br>");
document.write ("Detailed file:&nbsp<b>"+DetFile+"</b><br>");
document.write ("Image file:&nbsp<b>"+ImFile+"</b><br>");
document.write ("Image vertical size:&nbsp<b>"+ImH+"</b><br>");
document.write ("Year:&nbsp<b>"+BookYear+"</b><br>");
document.write ("Book text:&nbsp<i>"+BookText+"</i><br>");

} //ShowBookParms

/************************ ShowNewBook **************************
   Функция выводит в секцию новых книг изображение и ссылку 
   на новую книгу из предварительного подготовленного блока
   данных из js-файла книги при вертикальном расположении блока. 
   Используется в файлах gotov00.htm и izdan00.htm
****************************************************************/
function ShowNewBook() {
   
var ht1="<tr><td width='100%'><p align='center'><a title='Последние новинки' href='";
var ht2="'><img border='0' src='";
var ht3="' width='70' height='";
var ht4="'></a></td></tr>";
document.write(ht1+DetFile+ht2+ImFile+ht3+ImH+ht4);
      
} //ShowNewBook

/************************ ShowNewBookN ***********************
	Функция выводит в секцию новых книг изображение и ссылку 
   на новую книгу из предварительного подготовленного блока
   данных из js-файла книги. Используется при горизонтальном 
   расположении новых книг в файле displayBooks.htm
**************************************************************/
function ShowNewBookN() {
   
var ht1="<td width='100%'><p align='center'><a title='Последние новинки' href='";
var ht2="'><img border='0' src='";
var ht3="' width='70' height='";
var ht4="'></a></td>";
document.write(ht1+DetFile+ht2+ImFile+ht3+ImH+ht4);
      
} //ShowNewBookN

/************************ LastModified **********************
	 Продублирована в counter.js. Вставляет дату и время 
	 последнего изменения файла. Выводит ссылку на сайт с
	 панорамными фото.
*************************************************************/
function LastModified() {

 var docdatetime = new Date(document.lastModified);
 var mins = docdatetime.getMinutes();
 if (mins<10) mins='0'+mins;
 var hours = docdatetime.getHours();
 if (hours<10) hours='0'+hours;
 var date = docdatetime.getDate();
 var month = docdatetime.getMonth();
 switch (month) {
  case 0:month='января';break;
  case 1:month='февраля';break;
  case 2:month='марта';break;
  case 3:month='апреля';break;
  case 4:month='мая';break;
  case 5:month='июня';break;
  case 6:month='июля';break;
  case 7:month='августа';break;
  case 8:month='сентября';break;
  case 9:month='октября';break;
  case 10:month='ноября';break;
  case 11:month='декабря';break;
 }
 var year = docdatetime.getFullYear();
 if (year<100) {
 // Y2K! Не забудьте обновить скрипт после 2050 года!
  if (year<50) {
   year='20'+year;
  } else {
   year='19'+year;
  }
 }
 var p=window.location.pathname;

 document.write("<font size=1 face=Tahoma color='#993333'>");
 document.write('&nbsp;'+'Последнее изменение: '+date+' '+month+' '+year+' г. в '+hours+':'+mins);
 if (p.indexOf("_det")==-1 && p.indexOf("kontakt")==-1) { 
 // выводится не страница с подробной информацией и не контактная информация
   document.write(".&nbsp;&nbsp;&nbsp;Использованы панорамные фото с сайта");
   document.write(" <b> http://www.panphoto.spb.ru</b>");
 }
 document.write("<\/font>");

} //LastModified

/************************ SetCounter ***************************
	Используется для установки видимого счетчика в файлах
	разделов FileName (первых страниц _01): albom, istoria и т.д.
	Счетчик устанавливается в правый столбец таблицы и 
	регистрируется с именем www.liki-rossii.ru_<FileName>.htm
****************************************************************/

function SetCounter(FileName) {

    // Параметры строки-запроса счетчика
    var CntImg = "http://counter.co.kz/counter.cgi?page=www.liki-rossii.ru_";
    var CntPar = ".htm&style=awg01&digits=4&trans=255,255,255";
	var CntFull = CntImg+FileName+CntPar;
	var PreA = "<a href='http:\/\/counter.co.kz' target='_blank'><img src='"
    var PostA = "'alt='Counter CO.KZ' border=0></a>";
	document.write(PreA+CntFull+PostA);
	
} // SetCounter 

/************************ NewWindow ***************************
	Открытие нового окна (с меню разделов и подразделов)
	с загрузкой содержимого файла mypage. Окно получает 
	внутреннее имя window.name = myname, имеет ширину w, 
	высоту h и признак полосы прокрутки scroll. При вызове
	функции должен быть определен дескриптор win=null.
	Если происходит повторный вызов функции для уже 
	существующего она (win != null), то существующее окно
	win вытаскивается наверх.
****************************************************************/
function NewWindow(mypage,myname,w,h,scroll){
  
	if (win == null || win.closed) { // открытие нового окна
		LeftPosition =10;
		TopPosition = 10;
		settings =
'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',resizable'
		win = window.open(mypage,myname,settings)
	} 
	else {
		//alert (win.name);
		win.focus(); // перенос фокуса на существующее
	}
/* !!!!!!!!!!
	Чтобы перенос фокуса корректно работал как в IE так и в Netscape-Mozilla,
	в создаваемом окне "NewMenu" в начале должен присутствовать код переноса
	фокуса "сам на себя": window.focus()
!!!!!!!!!! */
} //NewWindow


/********** Группа программ обслуживания английской части **********/

/************************ LastModifiedEn ************************
	Продублирована в counter.js. Вставляет дату и время последнего 
	изменения файла.
*****************************************************************/
function LastModifiedEn() { 
 
 var docdatetime = new Date(document.lastModified);
 var mins = docdatetime.getMinutes();
 if (mins<10) mins='0'+mins;
 var hours = docdatetime.getHours();
 if (hours<10) hours='0'+hours;
 var date = docdatetime.getDate();
 var month = docdatetime.getMonth();
 switch (month) {
  case 0:month='January';break;
  case 1:month='February';break;
  case 2:month='March';break;
  case 3:month='April';break;
  case 4:month='May';break;
  case 5:month='June';break;
  case 6:month='July';break;
  case 7:month='August';break;
  case 8:month='September';break;
  case 9:month='October';break;
  case 10:month='November';break;
  case 11:month='December';break;
 }
 var year = docdatetime.getFullYear();
 if (year<100) {
 // Y2K! Не забудьте обновить скрипт после 2050 года!
  if (year<50) {
   year='20'+year;
  } else {
   year='19'+year;
  }
 }
 var p=window.location.pathname;

 document.write("<font size=1 face=Tahoma color='#993333'>");
 document.write('&nbsp;'+'The recent changes: '+date+' '+month+' '+year+' г. в '+hours+':'+mins);
 if (p.indexOf("_det")==-1 && p.indexOf("kontakt")==-1) { 
 // выводится не страница с подробной информацией и не контактная информация
   document.write(".&nbsp;&nbsp;&nbsp;Used panoramic photos from the site");
   document.write(" <b> http://www.panphoto.spb.ru</b>");
 }
 document.write("<\/font>");


} //LastModifiedEn

/************************ WriteTableCellEn ***********************
	Функция формирует поток данных в виде последовательности тэгов
   	текста и переменных параметров книги для вывода содержимого
	краткой информации в виде ячейки таблицы. Предполагается 
   	предварительное определение 8 глобальных переменных:
   	Prompt, DetFile, ImFile, ImH, BookAuthor, BookName, BookYear,
	BookText, которые используются внутри функции.
******************************************************************/
function WriteTableCellEn() {

var htm1="<tr><td><table border='" + Ramka +"' width='568' cellspacing='0' cellpadding='0'><tr>";
var htm2="<td colspan='3' width='568' height='10'></td></tr><tr>";	
var htm3="<td width='80' valign='baseline' align='center'><a title='";
// далее ожидается переменная Prompt

var htm4="' href='";
// далее ожидается переменная DetFile 

var htm5="'> <img border='0' src='";
// далее ожидается переменная ImFile 

var htm6="' align='baseline' width='70' height='";
// далее ожидается переменная ImН 

var htm7="'></a></td><td width='5' height='90'></td><td width='461' valign='top'><font size='2' face='Tahoma' color='#CC0000'>";
// далее ожидается переменная BookAuthor 
	
var htm8="</font><font size='2' face='Arial' color='#401818'><a title='";
// далее ожидается переменная Prompt

var htm9="' href='";
// далее ожидается переменная DetFile 

var htm10="'><b>";
// далее ожидается переменная BookName

var htm11="</b></a> ";
// далее ожидается переменная BookYear

var htm12=". <p style=\"word-spacing: 0; text-indent: 0;  margin: 0\" align=\"justify\">";
var htm13="<font size=\"2\" face=\"Arial\" color=\"#401818\">";
// далее ожидается переменная BookText

   var htm14="</font></td></tr><tr><td colspan=\"3\" width=\"568\" height=\"10\"></td></tr></table></tr>";


document.write(htm1+htm2+htm3+Prompt+htm4+DetFile+htm5+ImFile);
document.write(htm6+ImH+htm7+BookAuthor+htm8+Prompt+htm9+DetFile);
document.write(htm10+BookName+htm11+BookYear+htm12+htm13+BookText+htm14);

} // WriteTableCelEn

/************************ ShowNewBookEn **********************
	Функция выводит в секцию новых книг изображение и ссылку 
   	на новую книгу из предварительного подготовленного блока
   	данных из js-файла книги.
**************************************************************/
function ShowNewBookEn() {
   
var ht1="<tr><td width='100%'><p align='center'><a title='The latest publishing' href='";
var ht2="'><img border='0' src='";
var ht3="' width='70' height='";
var ht4="'></a></td></tr>";
document.write(ht1+DetFile+ht2+ImFile+ht3+ImH+ht4);
      
} //ShowNewBookEn

/******** Конец файла globals.js ********/
