window.onload=LoadPage;
window.onresize=ResizeWindow;
window.onbeforeprint = set_to_print;
window.onafterprint = reset_form;

var scrollPos = 0;

// Initialize array of collapsed section image IDs

var collapsedSections = new Array();
var collapsedSectionsInitialized = false;

function filterFor(text)
{
	var sQuestion = "question";
	var o = document.getElementById(sQuestion);
	if ( text.length == 0 )
	{
		while ( o != null )
		{
			o.style.display = "block";
			o = o.nextSibling;
			if ( o != null )
				if ( o.id != sQuestion )
					break;
		}
	}
	else
	{
		//  Shows only the items that match
		text = text.toLowerCase();
		var rgText = text.split(" ");
		var l = rgText.length;
		if ( l > 0 )
		{
			while ( o != null )
			{
				var s = o.innerText.toLowerCase();
				var j = 0;
				for ( j = 0; j < l; j++ )
					if ( s.indexOf(rgText[j]) == -1 )
						break;
				o.style.display = j < l ? "none" : "block";

				o = o.nextSibling;
				if ( o != null )
					if ( o.id != sQuestion )
						break;
			}
		}
	}
}

function wait()
{
}
					    
function InitCollapsedSections()
{
    var i = 0;
    var imageId = Load("imageValue" + i);
		
    while (imageId != null)
    {
    	collapsedSections[imageId] = "not expanded";
	i++;
	imageId = Load("imageValue" + i);
    }
}

var noReentry = false;

function OnLoadImage()
{
    if (noReentry) 
	return;
    if (!collapsedSectionsInitialized)
    {
	InitCollapsedSections();
	collapsedSectionsInitialized = true; 
    }
    
    elem = event.srcElement;
        
    if (ShouldExpand(elem))
    {
        noReentry = true;
        
        try
        {
    	    elem.src = collapseImage.src;
	    ExpandSection(elem);
  	    RemoveCollapsedItem(elem.id);
	    collapsedSections[elem.id] = "expanded";
        }
        catch (e)
        {
        }
        
        noReentry = false;
    }
}

function ShouldExpand(elem)
{
    return (collapsedSections[elem.id] == null) || (Load("IsFirstPage") == null);
}


/*	
**********
**********   Begin
**********
*/

function LoadPage()
{
    if ( true )
    {
	SetCollapseAll();
	if ( window.navigator.appName == "Microsoft Internet Explorer" )
	    ExpandCollapseAll( document.getElementById("toggleAllImage") );
	else
	    document.getElementById("bottomTable").style.display = "none";
    }
    else
		SetToggleAllLabel( false );
    
    //ResizeWindow();
	
    // vs70.js did this to allow up/down arrow scrolling, I think
    try { mainSection.setActive(); } catch(e) { }

    // make body visible, now that we're ready to render
    document.body.style.display = "";

    //set the scroll position
    try{mainSection.scrollTop = scrollPos;}
    catch(e){}
}

function ResizeWindow()
{
    if (document.body.clientWidth==0) return;
    var header = document.all.item("header");
    var mainSection = document.all.item("mainSection");
    if (mainSection == null) return;

	
    document.body.scroll = "no"
    mainSection.style.overflow= "auto";
    header.style.width= document.body.offsetWidth - 2;
    //mainSection.style.paddingRight = "20px"; // Width issue code
    mainSection.style.width= document.body.offsetWidth - 4;
    mainSection.style.top=0;  
    if (document.body.offsetHeight > header.offsetHeight + 10)
    	mainSection.style.height= document.body.offsetHeight - (header.offsetHeight + 10);
    else
	mainSection.style.height=0;
	
    try
    {
    	mainSection.setActive();
    }
    catch(e)
    {
    }
}

function Load(key)
{
    userDataCache.load("docSettings");
    var value = userDataCache.getAttribute(key);
    return value;
}

function Save(key, value)
{
    userDataCache.setAttribute(key, value);
    userDataCache.save("docSettings");
}

function RemoveAttribute(key)
{
    userDataCache.removeAttribute(key);
    userDataCache.save("docSettings");
}

function set_to_print()
{
    //breaks out of divs to print
    var i;
    if (window.text)document.all.text.style.height = "auto";
			
    for (i=0; i < document.all.length; i++)
    {
        wait();
    	if (document.all[i].tagName == "body")
    	{
    	    document.all[i].scroll = "yes";
	}
	if (document.all[i].id == "header")
	{
	    document.all[i].style.margin = "0px 0px 0px 0px";
	    document.all[i].style.width = "100%";
	}
	if (document.all[i].id == "mainSection")
	{
	    document.all[i].style.overflow = "visible";
	    document.all[i].style.top = "5px";
	    document.all[i].style.width = "100%";
	    document.all[i].style.padding = "0px 10px 0px 30px";
	}
    }
}

function reset_form()
{
    //returns to the div nonscrolling region after print
     document.location.reload();
}

/*	
**********
**********   End Language Filtering
**********
*/

var collapsedItems = new Array();

function ExpandCollapse(imageItem)
{
    noReentry = true; // Prevent entry to OnLoadImage
    
    if(ItemCollapsed(imageItem.id) == true)
    {
	imageItem.src = collapseImage.src;
	ExpandSection(imageItem);
	RemoveCollapsedItem(imageItem.id);
    }
    else
    {
	imageItem.src = expandImage.src;
	CollapseSection(imageItem);
	AddCollapsedItem(imageItem.id);
    }
	
    SetCollapseAll();

    noReentry = false;
}

function ExpandCollapseAll(imageItem)
{
    noReentry = true; // Prevent entry to OnLoadImage
    
    var imgElements = document.getElementsByName("toggleSwitch");
    var i;
	
    if(ItemCollapsed(imageItem.id) == true)
    {
	imageItem.src = collapseAllImage.src;
	RemoveCollapsedItem(imageItem.id);
	for(i = 0; i < imgElements.length; ++i)
	{
	    wait();
	    imgElements[i].src = collapseImage.src;
	    ExpandSection(imgElements[i]);
	    RemoveCollapsedItem(imgElements[i].id);
	}
	SetToggleAllLabel(false);
    }
    else
    {
	imageItem.src = expandAllImage.src;
	AddCollapsedItem(imageItem.id);
	for(i = 0; i < imgElements.length; ++i)
	{
	    wait();
	    imgElements[i].src = expandImage.src;
	    CollapseSection(imgElements[i]);
	    AddCollapsedItem(imgElements[i].id);
	}
	SetToggleAllLabel(true);
    }
	
    noReentry = false;
}

function ExpandCollapse_CheckKey(imageItem)
{
    if(window.event.keyCode == 13)
    	ExpandCollapse(imageItem);
}

function ExpandCollapseAll_CheckKey(imageItem)
{
    if(window.event.keyCode == 13)
	ExpandCollapseAll(imageItem);
}

function ExpandSection(imageItem)
{
    imageItem.parentElement.parentElement.nextSibling.style.display	= "";
}

function CollapseSection(imageItem)
{
    imageItem.parentElement.parentElement.nextSibling.style.display	= "none";
}

function SetCollapseAll()
{
    var imageElement = document.getElementById("toggleAllImage");
	
    if(imageElement == null)
	return;

    var imgElements = document.getElementsByName("toggleSwitch");
    var allCollapsed = true;
    var i;
		
    for(i = 0; i < imgElements.length; ++i)
    {
        wait();
        allCollapsed = allCollapsed && ItemCollapsed(imgElements[i].id)
    }
	
    if(allCollapsed)
    {
        imageElement.src = expandAllImage.src;
        AddCollapsedItem(imageElement.id);
    }
    else
    {
    	imageElement.src = collapseAllImage.src;
    	RemoveCollapsedItem(imageElement.id);
    }
	
    SetToggleAllLabel(allCollapsed);
}

function SetToggleAllLabel(allCollapsed)
{
    var labelElement;
    labelElement = document.getElementById("collapseAllLabel");

    if(labelElement == null)
    	return;
		
    labelElement.style.display = "none";
	
    labelElement = document.getElementById("expandAllLabel");
    labelElement.style.display = "none";
	
    if(allCollapsed)
    {
    	labelElement = document.getElementById("expandAllLabel");
    	labelElement.style.display = "inline";
    }
    else
    {
	labelElement = document.getElementById("collapseAllLabel");
	labelElement.style.display = "inline";
    }
}

function ItemCollapsed(imageId)
{
    var i;
	
    for(i = 0; i < collapsedItems.length; ++i)
    {
        wait();
        if(imageId == collapsedItems[i])
    	return true;
    }
    return false;
}

function AddCollapsedItem(imageId)
{	
    collapsedItems[collapsedItems.length] = imageId;
}

function RemoveCollapsedItem(imageId)
{
    var i;
	
    for(i = 0; i < collapsedItems.length; ++i)
    {
        wait();
        if(imageId == collapsedItems[i])
	    collapsedItems.splice(i, 1);
    }
}

function OpenSection(imageItem)
{
    if(ItemCollapsed(imageItem.id) == true)
	ExpandCollapse(imageItem);
}
