window.onload=LoadPage;
var scrollPos = 0;

// Initialize array of collapsed section image IDs

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

function getParam(Param)
{
	var sURL = document.URL.toString();
	if (sURL.indexOf("?") > 0)
	{
		var arrParams = sURL.split("?");
		var arrURLParams = arrParams[1].split("&");
		var arrParamNames = new Array(arrURLParams.length);
		var arrParamValues = new Array(arrURLParams.length);
		var i = 0;
		for (i=0; i < arrURLParams.length; i++)
		{
			var sParam = arrURLParams[i].split("=");
			arrParamNames[i] = sParam[0];
			if (sParam[1] != "")
				arrParamValues[i] = unescape(sParam[1]);
			else
				arrParamValues[i] = "";
		}
		
		for (i=0; i < arrURLParams.length; i++)
		{
			if (arrParamNames[i] == Param)
			{
				return arrParamValues[i]
			}
		}
	}
	else
		return "";
}

function getURLHOWTO()
{
	var sURL = document.URL.toString();
	if ( sURL.indexOf( "mk:@" ) == 0 )
		return "";

	var sIndex = sURL.indexOf("?");
	if ( sIndex > 0 )
		sURL = sURL.substr(0, sIndex );
	if ( sURL.indexOf("/content/products/") >= 0 )
	{
		sURL = sURL.replace("/content/products/","/howto.jsp?product=");
		sURL = sURL.replace("/howto/how_to_do_","&lang=");
		sURL = sURL.replace(".htm","");
	}
	return sURL;
}

function filterFor(text)
{
	var nResults = 0;
	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";
				if ( j >= l )
					nResults++;

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

	var footer = document.getElementById("footerInfo");
	if ( footer != null )
	{
		var info = "", oInfo = "<div id=\"footerInfo\"><p><%INFO%></p></div>";
		if ( nResults == 0 )
		{
			if ( text.length != 0 )
				info = "No results found for '" + text + "'";
		}
		else
			if ( text.length != 0 )
			{
				var nURL = getURLHOWTO();
				if ( nURL.length > 0 )
				{
					nURL += ( nURL.indexOf("?") > 0 ) ? "&" : "?";
					nURL += "F="+ escape(text);
				}
				info = "Filter For: <b>" + text + "</b>, Results: <b>" + nResults.toString() + "</b>";
				if ( nURL.length > 0 )
					info += ", Link: <a href='" + nURL + "' target=\"_blank\">" + nURL + "</a>";
			}
		oInfo = oInfo.replace( "<%INFO%>", info );
		footer.outerHTML = oInfo;
	}


}

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();
        ExpandCollapseAll( document.getElementById("toggleAllImage") );
		var sF = getParam("F");
		if ( sF.length > 0 )
		{
			document.getElementById("Filter").value = sF;
			filterFor(sF);
		}
	}
    else
		SetToggleAllLabel( false );
    
    // 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){}
}

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)
{
    if ( imageItem.parentElement != null )
    {
        var c = imageItem.parentElement.parentElement.childNodes;
        if ( c.length == 2 )
            imageItem.parentElement.nextSibling.style.display	= "";
        else
            c[3].style.display	= "";
    }
}

function CollapseSection(imageItem)
{
    if ( imageItem.parentElement != null )
    {
        var c = imageItem.parentElement.parentElement.childNodes;
        if ( c.length == 2 )
            imageItem.parentElement.nextSibling.style.display	= "none";
        else
            c[3].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);
}

