/* When page loads, function initializelist() executes. It creates drop-down menus in navigation bar and then it invokes writeEvents()
 * writeEvents() writes Javascript Events, functions and anchors in appropriate parts of the page, and then it invokes the function goToPage()
 * goToPage() assignes display:block property to a page with the number, specified in the input field. FOr all the other pages it assigns property display:none
 * checkValues() removes left or right navigation arrow, depeding on the current page number
 */

window.onload = initializelist;

function initializelist(){
      if (document.all && document.getElementById) {
           topRoot = document.getElementById("nav");
           for (i=0; i<topRoot.childNodes.length; i++) {
                nodeAt = topRoot.childNodes[i];
                if (nodeAt.nodeName=="LI") {
                    nodeAt.onmouseover=function() {
                         this.className ="dropdown";
                     }
                     nodeAt.onmouseout=function() {
                           this.className="";
                     }
                }
            }
      }
	  return writeEvents()
}

function writeEvents(){
	total_pages = document.getElementById("text").getElementsByTagName("div").length
	document.getElementById("totalPages").innerHTML = total_pages
	document.getElementById("OK").innerHTML = "<b class='cursor' onClick='assign_page_no()'>OK</b>"		
	document.getElementById("currentPage").onkeyup = function (){
		if (event.keyCode == 13) {
			return assign_page_no()
		}
	}
	if (location.search == "?viewall") {
		return viewall();
	}
	if (!location.search){
		location.search = "?page1"
		return goToPage();
	}
	else {
		return goToPage()
	}
}

function goToPage(){
	total_pages = parseInt(document.getElementById("totalPages").innerHTML, 10);
	current_page = parseInt(location.search.replace("?page",""), 10);
	if (isNaN(current_page)){
		null
	}
	else {
		if (current_page < total_pages+1 && current_page > 0) {
			for(i=1;i<total_pages+1;i++){
				document.getElementById("page"+i).style.display = "none";
				}
			document.getElementById("page"+current_page).style.display = "block";
			document.getElementById("currentPage").value = current_page;
			checkValues();
			}
		else {return false}
	}
}


function checkValues(){
	if(current_page==1){
		document.getElementById("left").innerHTML = "&nbsp;"
		}
	else{
		document.getElementById("left").innerHTML = "<span onclick='pageDown();'>&larr;&nbsp;назад</span>"
	}
 if(current_page==total_pages){
	document.getElementById("right").innerHTML = "&nbsp;"
	}
 else{
 	document.getElementById("right").innerHTML = "<span onclick='pageUp();'>вперед&nbsp;&rarr;</span>"
	}
}

function assign_page_no () {
	page_no_to_assign = parseInt(document.getElementById("currentPage").value, 10);
	total_pages = parseInt(document.getElementById("totalPages").innerHTML, 10);
	if (page_no_to_assign < total_pages +1 && page_no_to_assign >0){
			location.search = "?page" + page_no_to_assign
		return goToPage()
	}
	else {return false}
}

function pageUp(){
	current_page = parseInt(location.search.replace("?page",""), 10);
	new_page = current_page + 1
	location.search = "?page" + new_page
	return goToPage()
}

function pageDown(){
	current_page = parseInt(location.search.replace("?page",""), 10);
	new_page = current_page - 1
	location.search = "?page" + new_page
	return goToPage()
}

function viewall(){
	for (i=1;i<total_pages+1;i++){
		document.getElementById("page"+i).style.display = "block"
		}
	document.getElementById("currentPage").value = 1
    return checkValues()
}