var loginbox;
function expand(caller)
{
    $(".selected-item").removeClass("selected-item");
    var listItem = caller.parentNode;
    if ($(listItem).find(".Innerlist").length < 1)
    {
	listItem = $(listItem).find(".Minilist");
    }
    else
    {
	listItem = $(listItem).find(".Innerlist");
    }

    if ($(caller).find('.expanded').length < 1)
    {
        var expander = $(caller).find('.contracted');
        $(expander).addClass('expanded');
	$(expander).addClass('expanded');
        $(expander).removeClass('contracted');
        $(listItem).addClass('showSection');
	addSelected(caller);
    }
    else
    {
        var expander = $(caller).find('.expanded');
        $(listItem).removeClass('showSection');
        $(expander).removeClass('expanded');
        $(expander).addClass('contracted');
    }
}
function show_login(caller)
{
    loginbox = $('#header-login')[0];
    if ($(loginbox).hasClass('hidden'))
    {
        $(loginbox).removeClass('hidden');
        $(caller).addClass('expanded');
        $('#user_login_header').focus();
        $(caller).removeClass('contracted');
    }
        else
    {
        $(caller).removeClass('expanded');
        $(caller).addClass('contracted');
        $(loginbox).addClass('hidden');
    }
}


function addSelected(caller)
{
    $(caller).addClass("selected-item");
}



function remove_unneeded_arrows()
{
    var contracted = $(".contracted");
    jQuery.each(contracted, function() {
	var submenu = $(this.parentNode.parentNode).find(".Innerlist").length + $(this.parentNode.parentNode).find(".Minilist").length
	if (submenu < 1)
	{
	    $(this).removeClass('contracted');
	    $(this).addClass('placeholder');
	}
    });
}

$(document).ready(remove_unneeded_arrows);

function user_select(value)
{
    $(".administrator").parent().attr("style", "display:none");
    $(".doctor").parent().attr("style", "display:none");
    $(".secretary").parent().attr("style", "display:none");
    $(".ward").parent().attr("style", "display:none");
    $(".pharmacy").parent().attr("style", "display:none");
    $("." + value).parent().attr("style", "");
}

$(function()
  {
      $('body').click(function(event)
		      {
			  if ($(loginbox).find(event.target).length == 0 && event.target != $('.header-button.login')[0])
			  {
                              $('.header-button.login').removeClass('expanded');
                              $('.header-button.login').addClass('contracted');
                              $(loginbox).addClass('hidden');
			  }
		      });
  });

function openHeader(caller)
{
    closeMenu();
    $(".selected-item").removeClass("selected-item");
    var hashlink = "#" + $(caller).parent().attr("name");
    var tocItem = $("#TOCDiv").find('a[href="' + hashlink + '"]');
    var expander = $(tocItem).parents(".Innerlist").parent().find(".TOC1")[0];
    $(".Innerlist").removeClass('showSection');
    if (!expander)
    {
	expander =  $(tocItem).parents(".TOC1")[0];
    }
    expand(expander);
    if ($(tocItem).parents(".TOC3").length > 0)
    {
	expander = $(tocItem).parents("ul").parent().find(".TOC2")[0];
	expand($(expander).parent());
    }
    addSelected(tocItem);
}

function openHeaderFromH3(caller)
{
    var h2span = $(caller).siblings("h2").find("span")[0];
    openHeader(h2span);
}


function closeMenu()
{
    var openContents = $(".TOC1").parent().find('.expanded');
    $(openContents).removeClass('expanded');
    $(openContents).addClass('contracted');
}

function addMouseover(caller)
{
    var image = $(caller).children("img");
    var source =$(image).attr("src") ;
    var newsource = source.replace("original", "mouseover");
    $(image).attr("src", newsource);
}


function removeMouseover(caller)
{
    var image = $(caller).children("img");
    var source = ($(image).attr("src"));
    var newsource = source.replace("mouseover", "original");
    $(image).attr("src", newsource);

}

function toggleMenu(selector, caller)
{
    $(".selected").removeClass("selected");
    if (!selector)
    {
	$("#outer-box").animate({width: 'toggle'}, 500);
	setTimeout('$("#MainSection").attr("style", "left: 0px")', 600);
	setTimeout('$("#open-nav").show()', 600);
	setTimeout('$("#Main1").attr("style", "margin-left:50px")', 600);

    }
    else
    {
	$("#TOCDiv").hide();
	$("#TOCSearch").hide();
	$("#Docs").hide();
	if ($("#outer-box:visible").length < 1)
	{
	$("#outer-box").animate({width: 'toggle'}, 500);
	$(selector).animate({width: 'toggle'}, 500);
	}
	else
	{
	    $(selector).show();
	}
	$("#Main1").attr("style", "");
	$("#open-nav").hide();
	$("." + caller.id).addClass("selected");
	$(caller).addClass("selected");
	$("#MainSection").attr("style", "");

    }
}

function search()
{
    removeSearchResults();
    toggleMenu($("#TOCSearch"), $("#search-button"));
    var searchString = $("#searchInput")[0].value;
    var foundin = $('p:Contains("' + searchString + '")');
    var isCaseSensitive = true;
    if (foundin.length < 1)
    {
	isCaseSensitive = false;
	foundin = $('p:contains("' + searchString + '")');
    }
    jQuery.each(foundin, function() {
	var header = getHeader(this);
	var excerpt = getExcerpt(this, searchString);
	var searchResults= "<div class='search-result'>" + header + excerpt +  "</div>";
	if (header && excerpt)
	{
	$("#searchresults").append(searchResults);
	}
    });
    hiliter(searchString, $("#searchresults"), isCaseSensitive);
    if ($("#searchresults").children().length == 0)
    {
        $("#searchresults").append("<div class='no-result'>No search results found</div>");
    }
}	 
      
function KeydownHandler()
{
    if (event.keyCode && event.keyCode == 13){
    search();
    }
}


function removeSearchResults() 
{
    $("#searchresults").children().remove();
}

function hiliter(word, element, caseSensitive) {
    var rgxp;
    if (caseSensitive) {
	rgxp = new RegExp(word, 'g');
    }
    else {
	rgxp = new RegExp(word, 'gi');
    }
    var repl = '<span class="highlight">' + word + '</span>';
    $(element)[0].innerHTML = $(element)[0].innerHTML.replace(rgxp, repl);
}


function getHeader(result)
{
    var section = $(result).parents(".all")[0];
    if (section)
    {
	if ($(section).find("h1").length > 0)
	{
	    var header = $(section).find("h1")[0];
	}
	else
	{
	    var header = $(section).find("h2")[0];
	}
	if (!header){
	    return null;
	}
	var link = $(header).find("a").not('[name^="_Toc"]').attr("name");
	if ($(header).find("span")[0].innerText)
	{
	    var title = $(header).find("span")[0].innerText;
	}
	else
	{
	    var title = $(header).find("span")[0].textContent;
	}
	return "<a href=#" + link + ">" + title + "</a>";
    }
}

function getExcerpt(result, searchterm)
{
    if (result.innerText) 
    {
	var text = result.innerText;
    }
    else
    {
	var text = result.textContent;
    }
    var index = text.indexOf(searchterm);
    var toend = text.length - index;
    if (index < 50)
    {
	var start = 0;
	var end = 100;
    }
    else if (toend < 50)
    {
	var end = text.length;
	var start = end - 100;
    }
    else 
    {
	var start = index - 50;
	var end = index + 50;
    }
    return "<p class='result-excerpt'>..." + text.substring(start, end) + "...</p>";

}



