addEventListener("load", function()
{
    setTimeout(checkOrient, 0);
    setTimeout(checkHash, 0);    
    setTimeout(function()
    {
        window.scrollTo(0, 1);
    }, 100);            
}, false);

var currentWidth = 0;
var currentHash = location.hash;
var pageHistory = [];
var currentFontSize = "";
var scrollMode = 0;
var navClickCount = 0;

// Needed to add lastIndexOf support
if (!Array.prototype.lastIndexOf)
{
    Array.prototype.lastIndexOf = function(elt /*, from*/)
    {
        var len = this.length;

        var from = Number(arguments[1]);
        if (isNaN(from))
        {
            from = len - 1;
        }
        else
        {
            from = (from < 0)
            ? Math.ceil(from)
            : Math.floor(from);
            if (from < 0)
                from += len;
            else if (from >= len)
                from = len - 1;
        }

        for (; from > -1; from--)
        {
            if (from in this &&
                this[from] === elt)
            return from;
        }
        return -1;
    };
}

function getParameter(parameterName, urlString)
{
  var regexS = "[\\?&]" + parameterName + "=([^&#']*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(urlString);

  if(results == null)
    return "";
  else
    return results[1];
}

function checkHash()
{
    if ((currentHash != "#") && (location.Hash != "#") && (location.hash != currentHash))
    {
        var hashPubID = getParameter("p", location.hash);
        var hashBookID = getParameter("b", location.hash);
        var hashPageNum = getParameter("n", location.hash);
        var hashPageAnchor = getParameter("a", location.hash);

        if ((hashPubID != "") && (hashBookID != "") && (hashPageNum != ""))
        {
            currentHash = location.hash
            loadPageWithHash('pageviewer.asp', 'content');
        }
    }
}

setInterval(checkHash, 400);

function checkOrient()
{
	if (window.innerWidth != currentWidth)
	{
		currentWidth = window.innerWidth;
		currentHeight = window.innerHeight;

		var menuOne = document.getElementById("menu_one");
		var menuTwo = document.getElementById("menu_two");
		var menuThree = document.getElementById("menu_three");
		var menuLandscapeOne = document.getElementById("menu_landscape_one");
		var menuLandscapeTwo = document.getElementById("menu_landscape_two");    
        var menuResultItems = document.getElementById("menu_result_items");
		var menuOneText = document.getElementById("menu_one_text");
		var menuTwoText = document.getElementById("menu_two_text");
		var menuThreeText = document.getElementById("menu_three_text");
		var menuLandscapeOneText = document.getElementById("menu_landscape_one_text");
		var menuLandscapeTwoText = document.getElementById("menu_landscape_two_text");        
        var menuResultItemsText = document.getElementById("menu_result_items_text");

		var orient = currentHeight >= currentWidth ? "portrait" : "landscape";
		document.body.setAttribute("orient", orient);

        // New Safari 4 and iPhone OS 3 don't like custom attributes, so we need this to change screen size

        // document.getElementById("container").style.height = (currentHeight + 61) + "px";

        if (orient == "portrait")
        {
           document.getElementById("container").style.height = "417px";    
        }
        else
        {
            document.getElementById("container").style.height = "270px";
        }

		if (currentWidth < 420)
		{
    
            // Check to see if program was using results menu or regular menu
            if (menuResultItems.style.display == "block")
            {
            
			    // Hide menu one
    	        menuOne.style.display = "none";
    	        menuOneText.style.display = "none";
	            // Hide menu two
	            menuTwo.style.display = "none";
    	        menuTwoText.style.display = "none";
	            // Hide menu three
	            menuThree.style.display = "none";
	            menuThreeText.style.display = "none";
			    // Hide landscape menu one
			    menuLandscapeOne.style.display = "none";
			    menuLandscapeOneText.style.display = "none";
			    // Hide landscape menu two
			    menuLandscapeTwo.style.display = "none";
			    menuLandscapeTwoText.style.display = "none";
                // Display result items menu
                menuResultItems.style.display = "block";
                menuResultItemsText.style.display = "block";

    		}
	    	else
		    {

			    // Display menu one
    	        menuOne.style.display = "block";
    	        menuOneText.style.display = "block";
	            // Hide menu two
	            menuTwo.style.display = "none";
    	        menuTwoText.style.display = "none";
	            // Hide menu three
	            menuThree.style.display = "none";
	            menuThreeText.style.display = "none";
			    // Hide landscape menu one
			    menuLandscapeOne.style.display = "none";
			    menuLandscapeOneText.style.display = "none";
			    // Hide landscape menu two
			    menuLandscapeTwo.style.display = "none";
			    menuLandscapeTwoText.style.display = "none";
                // Hide result items menu
                menuResultItems.style.display = "none";
                menuResultItemsText.style.display = "none";

            }

		}
		else
		{

            // Check to see if program was using results menu or regular menu
            if (menuResultItems.style.display == "block")
            {

    			// Hide menu one
	            menuOne.style.display = "none";
    	        menuOneText.style.display = "none";            
	            // Hide menu two
	            menuTwo.style.display = "none";
    	        menuTwoText.style.display = "none";         
	            // Hide menu three
	            menuThree.style.display = "none";
    	        menuThreeText.style.display = "none";            
			    // Hide landscape menu one
			    menuLandscapeOne.style.display = "none";
                menuLandscapeOneText.style.display = "none";
			    // Hide landscape menu two
			    menuLandscapeTwo.style.display = "none";
    	        menuLandscapeTwoText.style.display = "none";            
                // Display result items menu
                menuResultItems.style.display = "block";
                menuResultItemsText.style.display = "block";

    		}
	    	else
		    {

    			// Hide menu one
	            menuOne.style.display = "none";
    	        menuOneText.style.display = "none";            
	            // Hide menu two
	            menuTwo.style.display = "none";
    	        menuTwoText.style.display = "none";         
	            // Hide menu three
	            menuThree.style.display = "none";
    	        menuThreeText.style.display = "none";            
			    // Display landscape menu one
			    menuLandscapeOne.style.display = "block";
                menuLandscapeOneText.style.display = "block";
			    // Hide landscape menu two
			    menuLandscapeTwo.style.display = "none";
    	        menuLandscapeTwoText.style.display = "none";            
                // Hide result items menu
                menuResultItems.style.display = "none";
                menuResultItemsText.style.display = "none";

            }

        }			
		
		setTimeout(function()
		{
			window.scrollTo(0, 1);
		}, 100);            
	}
}

setInterval(checkOrient, 400);

function loadPageWithHash(page, targetdiv)
{
    var hashPubID = getParameter("p", location.hash);
    var hashBookID = getParameter("b", location.hash);
    var hashPageNum = getParameter("n", location.hash);
    var hashPageAnchor = getParameter("a", location.hash);

    if ((hashPubID != "") && (hashBookID != "") && (hashPageNum != ""))
    {
        loadPage(page + "?pubid=" + hashPubID + "&bookid=" + hashBookID + "&pagenum=" + hashPageNum + "&pageanchor=" + hashPageAnchor, targetdiv);        
    }
    else
    {
        loadPage(page, targetdiv);
    }
}

var timeStartLoadPage
var timePageReceived
var timePageDone

function loadPage(page, targetdiv) 
{
timeStartLoadPage = new Date();

	// Set up request varible
	try {xmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");}  catch (e) { alert("Error: Could not load page.");}

	// Show page is loading
    document.getElementById("loading_page").style.display = "block";

    if (scrollMode == 1)
    {
        document.getElementById("float_loading_page").style.display = "block";
    }

	// Send data
	xmlhttp.onreadystatechange = function()
		{
			// Check page is completed and there were no problems.
			if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200))
			{

				if (xmlhttp.responseText.indexOf("<page_text>") > 0)
				{
timePageReceived = new Date();

					// Write data returned to page

					var pageText = getPageInfo("page_text", xmlhttp.responseText);

					document.getElementById(targetdiv).innerHTML = pageText;
                    
					// Set font size if needed
					var fontSize = getPageInfo("font_size", xmlhttp.responseText);
                    var contentBlock = document.getElementById("content");
					
					if (fontSize != "")
					{
            	        contentBlock.style.fontSize = fontSize + "px";
                        currentFontSize = fontSize
					}

                    // Set font size for non-book pages as needed
                    if (document.getElementById("usernote") && currentFontSize != "") document.getElementById("usernote").style.fontSize = currentFontSize + "px";
                    if (document.getElementById("notetext") && currentFontSize != "") document.getElementById("notetext").style.fontSize = currentFontSize + "px";

                    // Set scroll mode if not already set
                    if (scrollMode == 0)
                    {
    					scrollMode = getPageInfo("scroll_mode", xmlhttp.responseText);

                        if (scrollMode == 1) changeScrollMode("nowarning");
                    }

					// Write browser title to browser
					var browserTitle = getPageInfo("browser_title", xmlhttp.responseText);
					
					if (browserTitle != "")
					{
						document.title = browserTitle;
					}

                    // Add to previous link history and set back button
					var abbreviatedPageTitle = getPageInfo("abbreviated_page_title", xmlhttp.responseText);
					if (abbreviatedPageTitle != "")
					{
						abbreviatedPageTitle = "<abbreviated_page_title>" + abbreviatedPageTitle + "</abbreviated_page_title>"
					}

					var pageLink = getPageInfo("page_link", xmlhttp.responseText);
					if (pageLink != "")
					{
                        var hashPubID = getParameter("pubid", pageLink);
                        var hashBookID = getParameter("bookid", pageLink);
                        var hashPageNum = getParameter("pagenum", pageLink);
                        var hashPageAnchor = getParameter("pageanchor", pageLink);

                        if ((hashPubID != "") && (hashBookID != "") && (hashPageNum != ""))
                        {
                            location.hash = "&p=" + hashPubID + "&b=" + hashBookID + "&n=" + hashPageNum + "&a=" + hashPageAnchor;
                            currentHash = location.hash
                        }

						pageLink = "<page_link>" + pageLink + "</page_link>"
					}

                    if ((abbreviatedPageTitle != "") && (pageLink != ""))
                    {
                        var index = pageHistory.lastIndexOf(abbreviatedPageTitle + pageLink);
                    }
                    else
                    {
                        var index = -1
                    }
                    
                    var indexPrevOne = pageHistory.lastIndexOf(pageHistory[pageHistory.length-1]);
                    var indexPrevTwo = pageHistory.lastIndexOf(pageHistory[pageHistory.length-2]);                    

                    var backwards = index != -1;

                    if (backwards && ((index == indexPrevOne) || (index == indexPrevTwo)))
                    {
                        pageHistory.splice(index, pageHistory.length);
                    }

                    if ((abbreviatedPageTitle != "") && (pageLink != ""))
                    {
                        pageHistory.push(abbreviatedPageTitle + pageLink);
                        var prevPage = pageHistory[pageHistory.length-2];
                    }
                    else
                    {
                        var prevPage = pageHistory[pageHistory.length-1];
                    }

                    if (prevPage)
                    {
                        // Write back button information
                        var prevTitle = getPageInfo("abbreviated_page_title", prevPage);
                        var prevLink = getPageInfo("page_link", prevPage);

                        if ((prevTitle != "") && (prevLink != ""))
                        {
                            document.getElementById("prev_button").innerHTML = prevTitle;
                            document.getElementById("prev_button").href = prevLink;
                            document.getElementById("prev_button_float").innerHTML = prevTitle;
                            document.getElementById("prev_button_float").href = prevLink;
                        }

                        // Display previous link button if link exists
                        document.getElementById("prev_button").style.display = "block";
                        document.getElementById("prev_button_float").style.display = "block";
                    }
                    else
                    {
                        document.getElementById("prev_button").style.display = "none";
                        document.getElementById("prev_button_float").style.display = "none";
                    }    
                    
					// Write title to page
					var pageTitle = getPageInfo("page_title", xmlhttp.responseText);
					if (pageTitle != "")
					{
						document.getElementById("page_title").innerHTML = pageTitle;
                        document.getElementById("menu_float_page_title").innerHTML = pageTitle;
					}

					// Show result items menu if asked for
					var resultItemsMenu = getPageInfo("result_items_menu", xmlhttp.responseText);
					if (resultItemsMenu == "true")
					{
                        showResultItemsMenu();
					}
                    else
                    {
                        if ((document.getElementById("menu_result_items").style.display == "block") || (document.getElementById("menu_float_result_items").style.display == "block"))
                        {
                            hideResultItemsMenu();
                        }
                    }

					// Write link to first page link button of result items menu
					var firstPageLink = getPageInfo("first_page_link", xmlhttp.responseText);
					
					if (firstPageLink != "")
					{
						document.getElementById("button_first_item").href = firstPageLink;
						document.getElementById("button_float_first_item").href = firstPageLink;
					}

					// Write link to previous page link button of result items menu
					var prevPageLink = getPageInfo("prev_page_link", xmlhttp.responseText);
					
					if (prevPageLink != "")
					{
						document.getElementById("button_previous_item").href = prevPageLink;
						document.getElementById("button_float_previous_item").href = prevPageLink;
					}

					// Write link to next page link button of result items menu
					var nextPageLink = getPageInfo("next_page_link", xmlhttp.responseText);
					
					if (nextPageLink != "")
					{
						document.getElementById("button_next_item").href = nextPageLink;
						document.getElementById("button_float_next_item").href = nextPageLink;
					}

					// Write link to last page link button of result items menu
					var lastPageLink = getPageInfo("last_page_link", xmlhttp.responseText);
					
					if (lastPageLink != "")
					{
						document.getElementById("button_last_item").href = lastPageLink;
                        document.getElementById("button_float_last_item").href = lastPageLink;
					}

                    // Write previous find buttons for portrait and landscape button bars
					var prevFindLink = getPageInfo("prev_find_link", xmlhttp.responseText);
					
					if (prevFindLink != "")
					{
						document.getElementById("button_menu_two_previous_find").href = prevFindLink;
						document.getElementById("button_menu_landscape_two_previous_find").href = prevFindLink;
                        document.getElementById("button_float_menu_previous_find").href = prevFindLink;
					}

                    // Write next find buttons for portrait and landscape button bars
					var nextFindLink = getPageInfo("next_find_link", xmlhttp.responseText);
					
					if (nextFindLink != "")
					{
						document.getElementById("button_menu_two_next_find").href = nextFindLink;
						document.getElementById("button_menu_landscape_two_next_find").href = nextFindLink;
                        document.getElementById("button_float_menu_next_find").href = nextFindLink;
					}

					// Find page anchor and scroll
					var pageAnchor = getPageInfo("page_anchor", xmlhttp.responseText);
					
					if (pageAnchor != "" && document.getElementById(pageAnchor)) 
					{
                        if (scrollMode != 1)
						{
						    document.getElementById(targetdiv).scrollTop = document.getElementById(pageAnchor).offsetTop;
                        }
                        else
                        {
                            window.scrollTo(0, document.getElementById(pageAnchor).offsetTop);
                        }
					} else {
                        if (scrollMode != 1)
						{
                            document.getElementById(targetdiv).scrollTop = 0;
                        }
                        else
                        {
                            window.scrollTo(0, 1);
                        }
					}

				}
				else
				{
                    // If http = login then redirect to login.asp
                    if (xmlhttp.responseText == "login")
                    {
                        window.location = "login.asp";
                    }                      

                    var prevPage = pageHistory[pageHistory.length-1];

                    if (prevPage)
                    {
                        // Write back button information
                        var prevTitle = getPageInfo("abbreviated_page_title", prevPage);
                        var prevLink = getPageInfo("page_link", prevPage);

                        if ((prevTitle != "") && (prevLink != ""))
                        {
                            document.getElementById("prev_button").innerHTML = prevTitle;
                            document.getElementById("prev_button").href = prevLink;
                            document.getElementById("prev_button_float").innerHTML = prevTitle;
                            document.getElementById("prev_button_float").href = prevLink;
                        }

                        // Display previous link button if link exists
                        document.getElementById("prev_button").style.display = "block";
                        document.getElementById("prev_button_float").style.display = "block";
                    }
                    else
                    {
                        document.getElementById("prev_button").style.display = "none";
                        document.getElementById("prev_button_float").style.display = "none";
                    }    
                    
					// Write data returned to page
					document.getElementById(targetdiv).innerHTML = xmlhttp.responseText;

                    // Scroll page to top
                    if (scrollMode != 1)
                    {
                        document.getElementById(targetdiv).scrollTop = 0;
                    }
                    else
                    {
                        window.scrollTo(0, 1);
                    }
                    
					// Turn off page loading sign
					document.getElementById("loading_page").style.display = "none";
					document.getElementById("float_loading_page").style.display = "none";
				}

				// Turn off page loading sign
				document.getElementById("loading_page").style.display = "none";
				document.getElementById("float_loading_page").style.display = "none";                
timePageDone = new Date();
// alert("Load time = " + (timePageReceived.valueOf() - timeStartLoadPage.valueOf()) + " msec.\nProcessing time = " + (timePageDone.valueOf() - timePageReceived.valueOf()) + "msec.");
			}
		}
        
	xmlhttp.open("GET", page);
    
	xmlhttp.send(null);
    
    // If we are in single finger mode, we have to test to see if the page height changed and reset the clickable margins
    if (scrollMode == 1)
    {
        setTimeout(updateScrollMargin, 500);
        setTimeout(updateScrollMargin, 1000);
        setTimeout(updateScrollMargin, 4000);
        setTimeout(updateScrollMargin, 8000);
    }

}

function getPageInfo(pageReq, pageInfo)
{
	if (pageInfo.length > 0)
	{
		infoStart = pageInfo.indexOf("<" + pageReq + ">");
	
			if (infoStart != -1)
		    { 
				infoStart = infoStart + pageReq.length + 2;

				infoEnd = pageInfo.indexOf("</" + pageReq + ">", infoStart);

				if (infoEnd == -1 ) infoEnd = pageInfo.length

				// 10/18/07 I changed this to not call unescape()
				// in an attempt to improve speed. At a minimum,
				// we shouldn't unescape the page_text block, because
				// it doesn't need it.

				//return unescape(pageInfo.substring(infoStart, infoEnd));
				return pageInfo.substring(infoStart, infoEnd);
		    } 
	}
	return "";
}

function searchFormSubmit()
{
	// Get search form fields
	var searchspec = document.getElementById('searchspec').value;

	var querystring = 'searchresult.asp?searchspec=' + escape(searchspec);

	if (document.getElementById('optionsAll').checked)
	{
		querystring = querystring + '&options=all';
	}
	else if (document.getElementById('optionsExact').checked)
	{
		querystring = querystring + '&options=exact';
	}
	else
	{
		// Make this the default. Something should always be checked, though
		querystring = querystring + '&options=any';
	}

	if (document.getElementById('beginnings').checked)
	{
		querystring = querystring + '&beginnings=any';
	}

	if (document.getElementById('endings').checked)
	{
		querystring = querystring + '&endings=any';
	}

	// Submit to searchresult.asp
	loadPage(querystring, 'content');
}

function optionsFormSubmit()
{
	// Get option form fields
	var prefBible = document.getElementById('prefbible').value;
    var prefComm = document.getElementById('prefcomm').value;
    var prefDevo = document.getElementById('prefdevo').value;
    var prefDict = document.getElementById('prefdict').value;
    var numListItems = document.getElementById('numlistitems').value;
    var numSearchItems = document.getElementById('numsearchitems').value;    
    var numBookmarks = document.getElementById('numbookmarks').value;
    var prefFontSize = document.getElementById('fontsize').value;

	if (document.getElementById('onefingerscrollmode').checked)
	{
        var prefScrollMode = document.getElementById('onefingerscrollmode').value;

        if (scrollMode != 1)
        {
            changeScrollMode()
        }
	}
	else
	{
        var prefScrollMode = document.getElementById('twofingerscrollmode').value;
        if (scrollMode != 2)
        {
            changeScrollMode()
        }
	}

    var querystring = 'options.asp?' + prefBible + prefComm + prefDevo + prefDict + numListItems + numSearchItems + numBookmarks + prefFontSize + prefScrollMode;

	// Submit to searchresult.asp
	loadPage(querystring, 'content');
}

function highlightFormSubmit()
{
	// Get form fields
	var highlightcolor = document.getElementById('highlightcolor').value;
    
    var querystring = 'highlight.asp?' + highlightcolor;

	// Submit to highlight.asp
	loadPage(querystring, 'content');
}

function bookmarkFormSubmit()
{
	// Get form fields
	var bmcategory = document.getElementById('bookmarkcategories').value;
    
    var querystring = 'setbookmark.asp?sc=1&' + bmcategory;

	// Submit to setbookmark.asp
	loadPage(querystring, 'content');
}

function clearBookmarkFormSubmit()
{
	// Get form fields
	var bmcategory = document.getElementById('clearbookmarkcategories').value;
    
    var querystring = 'setbookmark.asp?sc=0&' + bmcategory;

	// Submit to setbookmark.asp
	loadPage(querystring, 'content');
}

function bookmarkListFormSubmit()
{
	// Get form fields
	var bmcategory = document.getElementById('bookmarkcategories').value;
    
    var querystring = 'bookmarks.asp?' + bmcategory;

	// Submit to highlight.asp
	loadPage(querystring, 'content');
}

function readingGoToFormSubmit()
{
	var month = document.getElementById('month').value;
	var day = document.getElementById('day').value;
    var pubid = document.getElementById('pubid').value;
	var bookid = document.getElementById('bookid').value;

    var querystring = 'readingprogress.asp?action=goto&month=' + month + '&day=' + day + '&pubid=' + pubid + '&bookid=' + bookid;

	// Submit to highlight.asp
	loadPage(querystring, 'content');
}

function readingClearProgressFormSubmit()
{
    if (window.confirm('Are you sure you want to delete your reading progress? Select OK to delete.'))
	{
		// Get form fields
		var pubid = document.getElementById('pubid').value;
		var bookid = document.getElementById('bookid').value;

		var querystring = 'readingprogress.asp?action=clearprogress&pubid=' + pubid + '&bookid=' + bookid;

		// Submit to highlight.asp
		loadPage(querystring, 'content');
	}
}

function readingStartDateSubmit()
{
	// Get form fields.
	// Can't call devotionalFormSubmit because there are times when
	// this is the only form on the screen and other fields like
	// month and day are not defined

	var startmonth = document.getElementById('startmonth').value;
	var startday = document.getElementById('startday').value;
    var pubid = document.getElementById('pubid').value;
	var bookid = document.getElementById('bookid').value;

    var querystring = 'readingprogress.asp?action=setstartdate&startmonth=' + startmonth + '&startday=' + startday + '&pubid=' + pubid + '&bookid=' + bookid;

	// Submit to highlight.asp
	loadPage(querystring, 'content');
}

function lookupFormSubmit()
{
	// Get form fields
	var word = document.getElementById('word').value;
    
    var querystring = 'lookup.asp?word=' + escape(word);

	// Submit to highlight.asp
	loadPage(querystring, 'content');
}

function editNoteFormSubmit()
{
	var querystring = 'editnote.asp?t=' + document.getElementById('t').value;
	querystring = querystring + '&b=' + document.getElementById('b').value;
	querystring = querystring + '&c=' + document.getElementById('c').value;
	querystring = querystring + '&v=' + document.getElementById('v').value;
	querystring = querystring + '&notetext=' + escape(document.getElementById('notetext').value);
	querystring = querystring + '&action=' + document.getElementById('action').value;

	loadPage(querystring, 'content');
}

function addCategoryFormSubmit()
{
	var newcat = document.getElementById('addcategory').value;
	if (newcat == '')
	{
		alert('Enter a new category name then select Add New');
	}

	loadPage('editcategories.asp?action=Add&newcat=' + escape(newcat), 'content');
}

function renameCategoryFormSubmit()
{
	var newcat = document.getElementById('renamecategory').value;
	var oldcat = document.getElementById('bookmarkcategories').value;

	if (newcat == '' && oldcat == '')
	{
		alert('Select a category, enter a new name for the category, then select Rename button');
	}
	else if (newcat == '')
	{
		alert('Enter a new name for the selected category, then select Rename button');
	}
	else if (oldcat == '')
	{
		alert('Select a category to rename');
	}

	loadPage('editcategories.asp?action=Rename&newcat=' + escape(newcat) + '&oldcat=' + escape(oldcat), 'content');
}

function deleteCategoryFormSubmit()
{
	var oldcat = document.getElementById('bookmarkcategories').value;
	var action;

	if (oldcat == '')
	{
		alert('Select a category to delete, then select Delete button');
		action = 'Ignore';
	}
	else
	{
		if (window.confirm('Are you sure you want to delete this category? Select OK to delete.'))
		{
			action = 'Delete';
		}
		else
		{
			action = 'Ignore';
			oldcat = '';
		}
	}

	loadPage('editcategories.asp?action=' + action + '&oldcat=' + escape(oldcat), 'content');
}

function onEditNoteDelete()
{
	// editNoteFormSubmit() is going to be called right after this. Set the
	// action to Delete.

	if (window.confirm('Are you sure you want to delete this note? Select OK to delete.'))
		document.getElementById('action').value = 'Delete';
	else
		document.getElementById('action').value = 'Ignore';
}

function onEditNoteCancel()
{
	// editNoteFormSubmit() is going to be called right after this. Set the
	// action to Cancel.

	if (window.confirm('Are you sure you want to exit without saving changes? Select OK to exit and lose changes.'))	
		document.getElementById('action').value = 'Cancel';
	else
		document.getElementById('action').value = 'Ignore';
}

function showHideMenu()
{
	// This is the ID of the three portrait menu levels and the two landscape levels
	var menuOne = document.getElementById("menu_one");
	var menuTwo = document.getElementById("menu_two");
	var menuThree = document.getElementById("menu_three");
	var menuLandscapeOne = document.getElementById("menu_landscape_one");
	var menuLandscapeTwo = document.getElementById("menu_landscape_two");
    var menuResultItems = document.getElementById("menu_result_items");
	var menuOneText = document.getElementById("menu_one_text");
	var menuTwoText = document.getElementById("menu_two_text");
	var menuThreeText = document.getElementById("menu_three_text");
	var menuLandscapeOneText = document.getElementById("menu_landscape_one_text");
	var menuLandscapeTwoText = document.getElementById("menu_landscape_two_text");
    var menuResultItemsText = document.getElementById("menu_result_items_text");
	var currentWidth = window.innerWidth;

    if (menuThree.style.display == "block" && currentWidth < 420)
	{
		// Display menu one
        menuOne.style.display = "block";
        menuOneText.style.display = "block";
        // Hide menu two
        menuTwo.style.display = "none";
        menuTwoText.style.display = "none";
        // Hide menu three
	    menuThree.style.display = "none";
	    menuThreeText.style.display = "none";
		// Hide landscape menu one
		menuLandscapeOne.style.display = "none";
		menuLandscapeOneText.style.display = "none";
		// Hide landscape menu two
		menuLandscapeTwo.style.display = "none";
		menuLandscapeTwoText.style.display = "none";
        // Hide result items menu
        menuResultItems.style.display = "none";
        menuResultItemsText.style.display = "none";
	}
    else if (menuOne.style.display == "block" && currentWidth < 420)
	{
		// Hide menu one
        menuOne.style.display = "none";
        menuOneText.style.display = "none";
        // Display menu two
        menuTwo.style.display = "block";
        menuTwoText.style.display = "block";
        // Hide menu three
	    menuThree.style.display = "none";
	    menuThreeText.style.display = "none";
		// Hide landscape menu one
		menuLandscapeOne.style.display = "none";
		menuLandscapeOneText.style.display = "none";
		// Hide landscape menu two
		menuLandscapeTwo.style.display = "none";
		menuLandscapeTwoText.style.display = "none";
        // Hide result items menu
        menuResultItems.style.display = "none";
        menuResultItemsText.style.display = "none";
	}
    else if (menuTwo.style.display == "block" && currentWidth < 420)
	{
		// Hide menu one
        menuOne.style.display = "none";
        menuOneText.style.display = "none";
        // Hide menu two
        menuTwo.style.display = "none";
        menuTwoText.style.display = "none";
        // Display menu three
	    menuThree.style.display = "block";
	    menuThreeText.style.display = "block";
		// Hide landscape menu one
		menuLandscapeOne.style.display = "none";
		menuLandscapeOneText.style.display = "none";
		// Hide landscape menu two
		menuLandscapeTwo.style.display = "none";
		menuLandscapeTwoText.style.display = "none";
        // Hide result items menu
        menuResultItems.style.display = "none";
        menuResultItemsText.style.display = "none";
	}
	else if (menuLandscapeOne.style.display != "block" && currentWidth > 420)
	{
		// Hide menu one
        menuOne.style.display = "none";
        menuOneText.style.display = "none";
        // Hide menu two
        menuTwo.style.display = "none";
        menuTwoText.style.display = "none";
        // Hide menu three
	    menuThree.style.display = "none";
	    menuThreeText.style.display = "none";
		// Display landscape menu one
		menuLandscapeOne.style.display = "block";
		menuLandscapeOneText.style.display = "block";
		// Hide landscape menu two
		menuLandscapeTwo.style.display = "none";
		menuLandscapeTwoText.style.display = "none";
        // Hide result items menu
        menuResultItems.style.display = "none";
        menuResultItemsText.style.display = "none";
	}
	else
	{
		// Hide menu one
        menuOne.style.display = "none";
        menuOneText.style.display = "none";
        // Hide menu two
        menuTwo.style.display = "none";
        menuTwoText.style.display = "none";
        // Hide menu three
	    menuThree.style.display = "none";
	    menuThreeText.style.display = "none";
		// Hide landscape menu one
		menuLandscapeOne.style.display = "none";
		menuLandscapeOneText.style.display = "none";
		// Display landscape menu two
		menuLandscapeTwo.style.display = "block";
		menuLandscapeTwoText.style.display = "block";
        // Hide result items menu
        menuResultItems.style.display = "none";
        menuResultItemsText.style.display = "none";
	}
}

function showResultItemsMenu()
{
    // Show results menu and hide all others
    var menuOne = document.getElementById("menu_one");
    var menuTwo = document.getElementById("menu_two");
    var menuThree = document.getElementById("menu_three");
    var menuLandscapeOne = document.getElementById("menu_landscape_one");
    var menuLandscapeTwo = document.getElementById("menu_landscape_two");    
    var menuResultItems = document.getElementById("menu_result_items");
    var menuOneText = document.getElementById("menu_one_text");
    var menuTwoText = document.getElementById("menu_two_text");
    var menuThreeText = document.getElementById("menu_three_text");
    var menuLandscapeOneText = document.getElementById("menu_landscape_one_text");
    var menuLandscapeTwoText = document.getElementById("menu_landscape_two_text");        
    var menuResultItemsText = document.getElementById("menu_result_items_text");
    var floatMenuRowOne = document.getElementById("menu_float_row_one");
    var floatMenuRowTwo = document.getElementById("menu_float_row_two");
    var floatMenuResultItems = document.getElementById("menu_float_result_items");
    var floatMenuRowOneText = document.getElementById("menu_float_row_one_text");
    var floatMenuRowTwoText = document.getElementById("menu_float_row_two_text");    
    var floatMenuResultItemsText = document.getElementById("menu_float_result_items_text");

    // Hide menu one
    menuOne.style.display = "none";
    menuOneText.style.display = "none";
    // Hide menu two
    menuTwo.style.display = "none";
    menuTwoText.style.display = "none";
    // Hide menu three
    menuThree.style.display = "none";
    menuThreeText.style.display = "none";
    // Hide landscape menu one
    menuLandscapeOne.style.display = "none";
    menuLandscapeOneText.style.display = "none";
    // Hide landscape menu two
    menuLandscapeTwo.style.display = "none";
    menuLandscapeTwoText.style.display = "none";
    // Display result items menu
    menuResultItems.style.display = "block";
    menuResultItemsText.style.display = "block";
    // Hide float menu row one
    floatMenuRowOne.style.display = "none";
    floatMenuRowOneText.style.display = "none";
    // Hide float menu row one
    floatMenuRowTwo.style.display = "none";
    floatMenuRowTwoText.style.display = "none";
    // Display float menu result items
    floatMenuResultItems.style.display = "block";
    floatMenuResultItemsText.style.display = "block";
}

function hideResultItemsMenu()
{
    // Hide results menu and return to normal menus
    var menuOne = document.getElementById("menu_one");
    var menuTwo = document.getElementById("menu_two");
    var menuThree = document.getElementById("menu_three");
    var menuLandscapeOne = document.getElementById("menu_landscape_one");
    var menuLandscapeTwo = document.getElementById("menu_landscape_two");    
    var menuResultItems = document.getElementById("menu_result_items");
    var menuOneText = document.getElementById("menu_one_text");
    var menuTwoText = document.getElementById("menu_two_text");
    var menuThreeText = document.getElementById("menu_three_text");
    var menuLandscapeOneText = document.getElementById("menu_landscape_one_text");
    var menuLandscapeTwoText = document.getElementById("menu_landscape_two_text");        
    var menuResultItemsText = document.getElementById("menu_result_items_text");
    var floatMenuRowOne = document.getElementById("menu_float_row_one");
    var floatMenuRowTwo = document.getElementById("menu_float_row_two");
    var floatMenuResultItems = document.getElementById("menu_float_result_items");
    var floatMenuRowOneText = document.getElementById("menu_float_row_one_text");
    var floatMenuRowTwoText = document.getElementById("menu_float_row_two_text");    
    var floatMenuResultItemsText = document.getElementById("menu_float_result_items_text");

    if (window.innerWidth < 420)
    {
        // Display menu one
        menuOne.style.display = "block";
        menuOneText.style.display = "block";
        // Hide menu two
        menuTwo.style.display = "none";
        menuTwoText.style.display = "none";
        // Hide menu three
        menuThree.style.display = "none";
        menuThreeText.style.display = "none";
        // Hide landscape menu one
        menuLandscapeOne.style.display = "none";
        menuLandscapeOneText.style.display = "none";
        // Hide landscape menu two
        menuLandscapeTwo.style.display = "none";
        menuLandscapeTwoText.style.display = "none";
        // Hide result items menu
        menuResultItems.style.display = "none";
        menuResultItemsText.style.display = "none";
    }
    else
    {
        // Hide menu one
        menuOne.style.display = "none";
        menuOneText.style.display = "none";
        // Hide menu two
        menuTwo.style.display = "none";
        menuTwoText.style.display = "none";
        // Hide menu three
        menuThree.style.display = "none";
        menuThreeText.style.display = "none";
        // Display landscape menu one
        menuLandscapeOne.style.display = "block";
        menuLandscapeOneText.style.display = "block";
        // Hide landscape menu two
        menuLandscapeTwo.style.display = "none";
        menuLandscapeTwoText.style.display = "none";
        // Hide result items menu
        menuResultItems.style.display = "none";
        menuResultItemsText.style.display = "none";
    }        

    // Hide float menu row one
    floatMenuRowOne.style.display = "block";
    floatMenuRowOneText.style.display = "block";
    // Hide float menu row one
    floatMenuRowTwo.style.display = "block";
    floatMenuRowTwoText.style.display = "block";
    // Display float menu result items
    floatMenuResultItems.style.display = "none";
    floatMenuResultItemsText.style.display = "none";
}

function changeScrollMode(warnStatus)
{
    if (warnStatus != "nowarning")
    {
        warnStatus = window.confirm('Change scrolling mode? Select OK to continue.');
    }

    if (warnStatus)
    {   
        var body = document.getElementById("body");
        var content = document.getElementById("content");
        var contentLeftMargin = document.getElementById("content_left_margin");
        var contentRightMargin = document.getElementById("content_right_margin");
        var footer = document.getElementById("footer");
        var footerText = document.getElementById("footer_text");
        var menuFloat = document.getElementById("menu_float");

        if (content.scrollHeight > content.offsetHeight)
        {
            var contentHeight = content.scrollHeight;
        }
        else
        {
            var contentHeight = content.offsetHeight;
        }

        if (contentHeight < 500) contentHeight = 500;

        if ((scrollMode != 1) || (footer.style.display != "none"))
        {
            body.style.overflow = "scroll";
            content.style.bottom = "0px";
            content.style.overflow = "visible";
            contentLeftMargin.style.height = contentHeight + "px";
            contentRightMargin.style.height = contentHeight + "px";
            contentLeftMargin.style.overflow = "visible";
            contentRightMargin.style.overflow = "visible";            
            footer.style.display = "none";
            footerText.style.display = "none";

            scrollMode = 1;
        }
        else
        {
            body.style.overflow = "hidden";
            content.style.bottom = "55px";
            content.style.overflow = "auto";
            contentLeftMargin.style.height = "auto";
            contentRightMargin.style.height = "auto";
            contentLeftMargin.style.overflow = "auto";
            contentRightMargin.style.overflow = "auto";
            footer.style.display = "block";
            footerText.style.display = "block";
            menuFloat.style.display = "none";

            scrollMode = 2

		    window.scrollTo(0, 1);
        }
    }
}

function updateScrollMargin()
{
    var content = document.getElementById("content");
    var contentLeftMargin = document.getElementById("content_left_margin");
    var contentRightMargin = document.getElementById("content_right_margin");

    if (content.scrollHeight > content.offsetHeight)
    {
        var contentHeight = content.scrollHeight;
    }
    else
    {
        var contentHeight = content.offsetHeight;
    }

    if (contentHeight < 500) contentHeight = 500;

    contentLeftMargin.style.height = contentHeight + "px";
    contentRightMargin.style.height = contentHeight + "px";
    contentLeftMargin.style.overflow = "visible";
    contentRightMargin.style.overflow = "visible";
}

function displayFloatMenu(screenPosition)
{
    // Check to see if we are even in single finger scroll mode
    // If not, then let's change modes right now
    if (scrollMode != 1)
    {
        changeScrollMode();
        
        return;
    }

    if (screenPosition > 200) screenPosition = screenPosition - 100;

    var menuFloat = document.getElementById("menu_float");
    var floatLoadingPage = document.getElementById("float_loading_page");

    if (menuFloat.style.display != "block")
    {
        menuFloat.style.position = "absolute";
        menuFloat.style.top = screenPosition + "px";
        floatLoadingPage.style.top = screenPosition + "px";
        menuFloat.style.display = "block";
    }
    else
    {
        menuFloat.style.display = "none";
    }
}

function onClickNavigation(pageDirection)
{
    navClickCount = navClickCount + 1;
    
    if (navClickCount > 1)
    {
        var menuFloat = document.getElementById("menu_float");
        menuFloat.style.display = "none";

        loadPage('pageviewer.asp?moveid=' + pageDirection,'content');
    }
    
    setTimeout(function() {navClickCount = 0}, 1000);
}