/* show\hide element */
function onContext(){
	if (show_hide_elem("context")) {	
		document.getElementById("img_context").src = base_url + "/img/sysminus.gif";
	} else {
		document.getElementById("img_context").src = base_url + "/img/sysplus.gif";
	}
}

function show_hide_elem(id) {
    var elem = document.getElementById(id);
    
    if ((elem.style.display != 'block') || (elem.style.display == '')) {
        show_elem(id);
		return true;
    } else {
      	hide_elem(id);
		return false;
    }
}

function show_elem(id) {
   var elem = document.getElementById(id);
        
   if (elem) {
       elem.style.visibility = 'visible';
       elem.style.display = 'block';
	   
	   switch(id) {
			case 'search_ext':
			    document.getElementById('search_arrow').innerHTML = '&laquo;';
			break;
			
			case 'project_list':
			    document.getElementById('project_arrow').className = 'project_arrow_on';
			break;
		}
   }
}

function hide_elem(id) {
    var elem = document.getElementById(id);
    
    if (elem) {
      	elem.style.visibility = 'hidden';
        elem.style.display = 'none';

	   switch(id) {
			case 'search_ext':
			    document.getElementById('search_arrow').innerHTML = '&raquo;';
			break;
			
			case 'project_list':
			    document.getElementById('project_arrow').className = 'project_arrow';
			break;			
	   }		
    }
}
	
//загрузка описания проекта
function loadProjectInfo(id) {
	//загружаем инфу по проекту
	ajax_content(base_url + '/ajax_book_tree.php?action=about_project&project_id='+id);
}
	
//загрузка дерева проекта
function loadProjectTree(id, name) {
	//создаем новое дерево для проекта
	a = new dTree("a");
	a.config.useSelection = false;
	
	//прячем список проектов
	hide_elem('project_list');
	
	//меняем название выбранного проекта
	document.getElementById("project_sel").value = name;
	document.getElementById("project_id").value = id;	
	
	//затемняем область
	my_wait("td_tree_content", true);
	
	//загружаем дерево
    JsHttpRequest.query(
        base_url + '/ajax_book_tree.php?action=tree&project_id='+id, // backend
        '',
        // Function is called when an answer arrives. 
        function(result, errors) {
		    for(var i=0; i < result["count"]; i++) {
				//добавляем пункты в дерево
			    a.add(result["items"][i]['id'], result["items"][i]['pid'], result["items"][i]['isbook'], result["items"][i]['author'], result["items"][i]['name'], result["items"][i]['href']);
		    } 
		    
			//выводим дерево
            a.out('td_tree_content'); 
			//осветляем область
			my_wait("td_tree_content", false);
        },
            
        false  // do not disable caching
    );	


}

//загрузка узлов дерева
function ajax_tree(id, url) {
	//если узел имеет дочерние узлы
	if (a.hasChild(id)) {
		//открываем узел
		a.openToBookId(id);
		return;
	} 

	//иначе подгружаем дочерние узлы
	//затемняем область
	my_wait("td_tree_content", true);
	
	//загружаем дерево
    JsHttpRequest.query(
        url, // backend
        '',
        // Function is called when an answer arrives. 
        function(result, errors) {
		    for(var i=0; i < result["count"]; i++) {
				//добавляем пункты в дерево
				name = result["items"][i]['name'];
				name = name.replace(/\\"/g, '"');
				name = name.replace(/\\'/g, "'");
			    a.add(result["items"][i]['id'], result["items"][i]['pid'], result["items"][i]['isbook'], result["items"][i]['author'], name, result["items"][i]['href']);
		    } 

			//перевыводим дерево
            a.out('td_tree_content'); 	
	        //открыаем узел
			a.openToBookId(id);	
			
			//осветляем область
			my_wait("td_tree_content", false);

        },
            
        false  // do not disable caching
    );	
}

//
function toolOver(id) {
	var elem = document.getElementById(id);
	if (elem) {
		elem.className = 'toolsOn';
		setElementOpacity(id, 0.7);
	}
}

function toolOut(id) {
	var elem = document.getElementById(id);
	if (elem) {
		elem.className = 'tools';
		setElementOpacity(id, 1);
	}
}

/*********************************************************************
* 			Функции работы со страницами                                                  *
**********************************************************************/

/*
*	Класс "Страница"
*/
function Page(book_id, n) {
	var width = 595;		//ширина по умолчанию (текущая)
	var height = 842;		//высота по умолчанию (текущая)
	
	//оригинальные размеры (для масшатбирования)	
	var original_width = 595;
	var original_height = 842;
	var url = "";			//ссылка на картинку
	var page_no = n;		//номер страницы
	var book_id = book_id;	//id-книги
	var img = new Image();	//объект "изображение", необходим для загрузки картинки
	var loaded = false;		//признак загруженности изображения
	

	display();
	setSize();
	
	
	/*
	* Закрытые методы класса
	*/
	
	//выравнивание по центру страницы
	function moveCenter() {
		if (!isIE) {
			//$("#itempage" + page_no).animate({left: left}, 500,'', function() {alert($("#itempage" + page_no)[0].style.left);});	
			$("#itempage" + page_no).css("left", (parseInt($("#page_content")[0].style.width) / 2) - (width / 2));	
		}
	}
	
	//выравнивание по левому краю страницы
	function moveLeft() {
		$("#itempage" + page_no).css("left", 0);	
	}	
	
	//вывод страницы
	function display() {
		//добавляем страницу
		$("div.page_content").append('<div class="itempage" id="itempage' + page_no + '"></div><br/>');


		$("#itempage" + page_no).append('<div class="page" id="page' + page_no + '"></div>');
    	$("#itempage" + page_no).append('<div class="subpage" id="subpage' + page_no + '"></div>');

		//устанавливаем размеры страницы
		setSize();


		//если картинка уже загружена
		if (loaded) {

			//выводим картинку
			document.getElementById("page" + page_no).appendChild(img);

		} else {
			//показываем статус загрузки
			showLoading();
		}


	}

	//устанавливаем размеры листа
	function setSize() {
		//устанавливаем размеры подложки
		$("#page" + page_no).css("width", width);
		$("#page" + page_no).css("height", height);

		$("#subpage" + page_no).css("width", width);
		$("#subpage" + page_no).css("height", height);

		$("#itempage" + page_no).css("width", width);
		$("#itempage" + page_no).css("height", height);



		$("#img" + page_no).css("width", width - 2);
		$("#img" + page_no).css("height", height - 2);

		
		if (page_allclient) {
			moveCenter();
		} else {
			moveLeft();
		}
	}
	
	function scale_self(scale) {
		width = original_width * scale;
		height = original_height * scale;
		
		//alert(scale + ";" + width + ";" + height);
		setSize();
	}
	
	//вывод статуса загрузки
	function showLoading() {
		$("#page" + page_no).append('<div class="prepage_up">Загрузка страницы ' + page_no + '</div>');
		$("#page" + page_no).append('<div class="prepage_down">Загрузка страницы' + page_no + '</div>');
	}

	
	
	/*
	*	Открытые методы класса
	*/	
	
	//загрузка страницы
	this.load = function() {
		//показываем статус загрузки
		showLoading();
		
		//урл загрузки
		url = base_url + '/ajax_book_tree.php?action=page_by_page&book_id=' + book_id + '&page=' + page_no;


		//по окончании загрузки
		img.onload = function() {
			img.setAttribute("id", "img" + page_no);

			//признак, что картинка загружена
			loaded = true;
			//убираем блок "Загрузка..."
			$("#page" + page_no).empty();

			//если размер картинки не менее размеров по умолчанию
			if (img.width > 500) {
				//сохраняем размеры страницы
				width = img.width;
				height = img.height;
			}
			
			//сохраняем оригинальные размеры
			original_width = img.width;
			original_height = img.height;
			
			//выводим картинку
			document.getElementById("page" + page_no).appendChild(img);
			
			//изменяем размер картинки			
			scale_self(scale);	
		}
		img.src = url;
	}
	
	//отображение страницы
	this.display = function() {
		display();
//        if (width != 54.80000000000001){
            // попробуем нафигачить немного аякса
          if ($("#ctrlex" + page_no).text() == ''){

          $("#ctrlex" + page_no).text('');
               JsHttpRequest.query(
       base_url + '/ajax_book_tree.php?action=get_pdf_page_txt_cnt&book_id=' + book_id + '&page=' + page_no,
        '',
        // Function is called when an answer arrives.
        function(result, errors) {
                if (result['content'] == 'true'){
              //  alert(page_no);
                 $("#itempage"+ page_no).append('<div class="ctrlex" id="ctrlex' + page_no + '"></div><br/>');
                   //	$("#ctrlex" + page_no).css("width", width);
            		$("#ctrlex" + page_no).css("height", 20);
                 	$("#ctrlex" + page_no).append('<p align="left" id="pex'+page_no+'" style="cursor:hand; color:#FFFFFF; font-weight: bold;" onClick="showTXT('+page_no+','+book_id+');">Текст страницы</p>');
                	$("#ctrlex" + page_no).css("display", "block");
                }
           },

               false  // do not disable caching
         );

         }
//	}

    }
	//выравнивание по центру страницы
	this.moveCenter = function() {
		moveCenter();
	}
	
	//выравнивание по левому краю страницы
	this.moveLeft = function() {
		 moveLeft();
	}
	
	this.getH = function() {
		return height;
	}
	
	this.getPageNo = function() {
		return parseInt(page_no);
	}
	
	this.scale = function(scale) {
		scale_self(scale);
	}
}

var init_viewer = false;	//признак инициализации просмотрщика
var page_allclient = false;	//признак раcкрытия на весь экран
var pages = new Array();	//массив страниц
var current_page = 1;		//текущая страница
var scale = 1;				//текущий масштаб [0..2]

//развертывание на весь экран области просмотра
function pageAllClient() {
	//при нажатии кнопки 'На весь экран'
	if (!page_allclient) {
		page_allclient = true;
		
		//скрываем дерево проекта
		document.getElementById("tree_content").style.display = "none";
		
		//позиционируем область контента влево, вверх
		$("#content").css("position", "absolute");
		$("#content").css("top", 0);
		$("#content").css("left", 0);
		$("#content").css("width", 400);
		$("#content").css("height", 300);
		$("#page_content").css("height", 300);	

		//размеры окна
		height_new = getClientHeight();
		width_new = getClientWidth();
		
		//какие-то отступы (для каждого браузера разные)
		var delta = 0;
		if (isIE) delta = 1;
		if (isGecko) delta = 3;
		if (isOpera) delta = 2;		
		
		//..и по вертикали
		$("#content").css("height", height_new);
		$("#content").css("width", width_new);	
		$("#page_content").css("height", height_new - 25 - 20 - delta);
		$("#page_content").css("width", width_new - delta);
		
		//перемещаем страницы в центр
		for (key in pages) {
			pages[key].moveCenter();
		}
					
		//растягиваем область управления
		$("#page_cntl").css("width", width_new);
		//показываем нижнюю панель
		document.getElementById("page_cntl2").style.display = "block";
		$("#page_cntl2").css("width", width_new);	
		$("#page_cntl2td1").css("width", width_new / 2);	
		$("#page_cntl2td2").css("width", width_new / 2);			
		
		//меняем картинку на кнопке
		$("#allClient").attr("class", "btnAllNone");
	} else {
		page_allclient = false;

		//показываем дерево проекта
		document.getElementById("tree_content").style.display = "block";
		//скрываем нижнюю панель
		document.getElementById("page_cntl2").style.display = "none";
		
		$("#content").css("position", "relative");
		$("#content").css("top", 0);
		$("#content").css("left", 0);
		$("#content").css("width", 615);
		//$("#content").css("height", $("#content")[0].parentNode.offsetHeight);
		
		//сужаем область просмотра
		$("#page_content").animate({width: 615}, 10, '', 
			//перемещаем страницы влево	
			function() {
				for (key in pages) {
					pages[key].moveLeft();
				}		
			}
		);

		$("#page_cntl").css("left", 0);
		$("#page_cntl").css("width", 615);	
		
		//меняем картинку на кнопке
		$("#allClient").attr("class", "btnAllClient");
	}
}

//развертывание на весь экран области просмотра
function pageAllClientDJVU() {
	//при нажатии кнопки 'На весь экран'
	if (!page_allclient) {
		page_allclient = true;
		
		//скрываем дерево проекта
		document.getElementById("tree_content").style.display = "none";
		
		//позиционируем область контента влево, вверх
		$("#content").css("position", "absolute");
		$("#content").css("top", 0);
		$("#content").css("left", 0);
		$("#content").css("width", 400);
		$("#content").css("height", 300);

		//размеры окна
		height_new = getClientHeight();
		width_new = getClientWidth();
		
		//какие-то отступы (для каждого браузера разные)
		var delta = 0;
		if (isIE) delta = 1;
		if (isGecko) delta = 3;
		if (isOpera) delta = 2;		

		//..и по вертикали
		$("#content").css("height", height_new);
		$("#content").css("width", width_new);			
		
		//меняем картинку на кнопке
		$("#allClient").attr("class", "btnAllNone");
	} else {
		page_allclient = false;

		//показываем дерево проекта
		document.getElementById("tree_content").style.display = "block";
		
		$("#content").css("position", "relative");
		$("#content").css("top", 0);
		$("#content").css("left", 0);
		$("#content").css("width", 615);
		
		//меняем картинку на кнопке
		$("#allClient").attr("class", "btnAllClient");
	}
}

//при изменении размеров окна изменяем и область просмотрщика
window.onresize = function() {
	if (init_viewer && page_allclient) {
		page_allclient = false;
		pageAllClient();	
	}
}

//масштабирование
function Scale(value) {
	if (value == 1) {
		scale += (scale < 2) ? 0.2 : 0;		
	} else {
		scale -= (scale > 0) ? 0.2 : 0;
	}

	for (key in pages) {
		pages[key].scale(scale);
	}
}

//установка номера страницы в selecte'e
function setPageNo(id) {
	var page_no = document.getElementById(id);
	if (page_no && (page_no.options.length > (current_page - 1))) {
		page_no.selectedIndex = current_page - 1;
	}
}

//переход ко странице
function goto_page(page) {
	var summ_scroll = 0;
	
	for (key in pages) {
		if (pages[key].getPageNo() == page) break;
		summ_scroll += pages[key].getH();
	}
	
	$("#page_content")[0].scrollTop = summ_scroll;
}


function sortPages(a, b) {
	return a.getPageNo() - b.getPageNo();
}

//загрузка страницы
function loadPage(book_id, page) {
	if (page <= 0) page = 1;
	var page_exists = false;
	
	//проверка существования страницы
	for (key in pages) {
		if (pages[key].getPageNo() == page) {
			page_exists = true;
			break;
		}
	}
	
	//если страницы не было - создаем ее
	if (!page_exists) {
		var cnt = pages.length;
		//создаем новую страницу
		pages[cnt] = new Page(book_id, page);
		//загружаем страницу
		pages[cnt].load();
		//удаляем все страницы
		$("#page_content").empty();
		//сортируем страницы

		pages.sort(sortPages);
		
		//выводим страницы
		for (key in pages) {
			pages[key].display();
		}
	}

	//переходим к требуемой с задержкой
	setTimeout("goto_page("+page+")", 100);
	
	//устанавливаем текущую страницу
	current_page = page;
	
	//устанавливаем номер в селекте
	setPageNo("page_no_up");
//     alert(base_url);



    //

}

//загрузка страницы
function loadPageEx(book_id, page) {
	if (page == '-1') {
		loadPage(book_id, parseInt(current_page) - 1);
	} else if (page == '+1') {
		loadPage(book_id, parseInt(current_page) + 1);
	} else {
		loadPage(book_id, parseInt(page));
	}

}

//загрузка просмотрщика страниц
function loadViewer(book_id, page_no) {
	//устанавливаем параметры по умолчанию, для каждой загрузки просмотрщика
	init_viewer = false;
	page_allclient = false;
	pages = new Array();
	current_page = 1;
	scale = 1;

	//затемняем область
	my_wait("content", true);
	
	//загружаем просмотрщик
    JsHttpRequest.query(
        base_url + '/ajax_book_tree.php?action=load_viewer&book_id=' + book_id, // backend
        '',
        // Function is called when an answer arrives.
        function(result, errors) {
			if (document.getElementById('content')) {
				document.getElementById('content').innerHTML = result["content"];
				init_viewer = true;

				if (result["type"] == "pdf") {
					//загрузка первой страницы
					loadPage(book_id, (typeof page_no !== 'undefined') ? page_no : 1);
				}
			}
			//осветляем область
			my_wait("content", false);
        },

        false  // do not disable caching
    );
}
function showTXT(page_no,book_id) {
   $("#pex" + page_no).text("Текст страницы");
 var txt = $("#txt" + page_no).text();

  if (txt == ''){
  $("#pex" + page_no).text("Загрузка...");
 // alert(navigator.userAgent);
  JsHttpRequest.query(
       base_url + '/ajax_book_tree.php?action=get_pdf_page_txt&book_id=' + book_id + '&page=' + page_no,
        '',
        // Function is called when an answer arrives.


        function(result, errors) {
            	$("#pex" + page_no).text("Скрыть текст");
                $("#pex" + page_no).attr("onClick","hideTXT("+page_no+","+book_id+");");
                if (result['content'] != ''){
             	$("#ctrlex" + page_no).append('<div class="txt" id="txt'+page_no+'" align="left"><textarea readonly cols="95" rows="30" class="txtarea" id="txtarea'+page_no+'">'+result['content']+'</textarea></div>');


                }
           },

               false  // do not disable caching
         );

        }else{
          $("#pex" + page_no).attr("onClick","hideTXT("+page_no+","+book_id+");");
      //$("#txt" + page_no).slideToggle("slow");
         $("#pex" + page_no).text("Скрыть текст");

        }
          $("#pex" + page_no).attr("onClick","hideTXT("+page_no+","+book_id+");");



      	$("#txt" + page_no).slideToggle("slow");
      //$("#pex" + page_no).text("Текст страницы");
      // $("#pex" + page_no).attr("onClick","showTXT("+page_no+","+book_id+");");


}
function hideTXT(page_no, book_id) {

  	$("#txt" + page_no).slideUp("slow");
    $("#pex" + page_no).text("Текст страницы");
    $("#pex" + page_no).attr("onClick","showTXT("+page_no+","+book_id+");");


}
function crError  (book_id) {
$("#errsend").slideToggle("normal");
  document.getElementById('mess_txt').value = '';
$("#myerror").click(function (){
var mess_ = document.getElementById('mess_txt').value;
  document.getElementById('mess_txt').value = 'Отправка сообщения..';
// аякс для отправки данных скрипту добавления
// start ajax
 // Create new JsHttpRequest object.
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            // Write result to page element (_RESULT becomes responseJS).
                // здесь код возврата
             document.getElementById('mess_txt').value = req.responseJS.q;
         // document.getElementById('mess_txt').value = 'Сообщение отправлено! Благодарим Вас, за помощь.';




        }
    }
    // Prepare request object (automatically choose GET or POST).
    req.open('POST', 'http://www.biblioclub.ru/find_err_back.php', true);
    // Send data to backend.
    req.send( { q: mess_, bk: book_id } );

//end ajax
});
$("#myclose").click(function (){
 $("#errsend").fadeOut("slow");
   document.getElementById('mess_txt').value = '';
});

}
 // для лит рес
 /*
function loadViewer_ext(book_id, page_no) {
	//устанавливаем параметры по умолчанию, для каждой загрузки просмотрщика
	init_viewer = false;
	page_allclient = false;
	pages = new Array();
	current_page = 1;
	scale = 1;

	//затемняем область
	my_wait("content", true);

	//загружаем просмотрщик
    JsHttpRequest.query(
        base_url + '/ajax_book_tree.php?action=load_viewer&book_id=' + book_id, // backend
        '',
        // Function is called when an answer arrives.
        function(result, errors) {
			if (document.getElementById('content')) {
				document.getElementById('content').innerHTML = result["content"];
				init_viewer = true;

				if (result["type"] == "pdf") {
					//загрузка первой страницы
					loadPage(book_id, (typeof page_no !== 'undefined') ? page_no : 1);
				}
			}
			//осветляем область
			my_wait("content", false);
        },

        false  // do not disable caching
    );
}
*/