﻿var collapseClass = "AspNet-TreeView-Collapse";
var expandClass = "AspNet-TreeView-Expand";
var showClass = "AspNet-TreeView-Show";
var hideClass = "AspNet-TreeView-Hide";
var hoverClass = "AspNet-TreeView-Hover";
var nohoverClass = "AspNet-TreeView-NoHover";
var IsOldIE = !IsApplyNewStyles();
var BgColor_Leaf = IsOldIE? "Transparent": "#ddddc9";

function IsApplyNewStyles()
{
var Ver = new String();
Ver =navigator.appVersion;
var ind = Ver.indexOf("MSIE");
if (ind!=-1)
{
Ver = Ver.substring(ind+5,ind+8);
if (Ver>6)
{return true;}
else
{return false;}
}
return true;
} 


function Apply_Leaf_Style(element)
{
var NodeBgColor = "Transparent";

var _className = element.className;
var TextColor = new String();
if (_className.indexOf("AspNet-TreeView-Selected")!=-1)
{
NodeBgColor = "#ddddc9";
TextColor = "#008694";
}
else
{TextColor= "#fff";}
ParentClass = element.parentNode.parentNode.className;
if (ParentClass.indexOf("AspNet-TreeView-Parent")!=-1)
{
if (_className.indexOf("AspNet-TreeView-Selected")!=-1)
{
TextColor = "#008694";
}
else
{TextColor ="#524a2c";}
} 
var divElement = element.getElementsByTagName("div")[0];
var aElement = element.getElementsByTagName("a")[0];
divElement.style.color = TextColor;
aElement.style.color = TextColor;
element.style.backgroundColor = NodeBgColor;
}


function Apply_onload_Styles(elementId)
{
var menu = document.getElementById(elementId);
var ULs  = new Array();
ULs = menu.getElementsByTagName("li");
var Lnght = ULs.length;
for (var i = 0; i<Lnght; i++)
{
var element = ULs[i];

var divElement = element.getElementsByTagName("div")[0];
var aElement = element.getElementsByTagName("a")[0];
var _className = new String();
var _divClassName = new String();
var NodeBgColor = new String();
var NodeTextColor = new String();
NodeTextColor = "#fff";
NodeBgColor = "Transparent";
_divclassName = divElement.className;
_className = element.className;

if (_className.indexOf("AspNet-TreeView-Parent")!=-1)
{
if (_divclassName.indexOf("AspNet-TreeView-Collapse")!=-1)
{
NodeBgColor = "#ddddc9";
NodeTextColor= "#524a2c";
divElement.style.color = NodeTextColor;
aElement.style.color = NodeTextColor;
element.style.backgroundColor = NodeBgColor;
}
else
{
if (_className.indexOf("AspNet-TreeView-Mnu-Selected")!=-1)
{
NodeBgColor = "#ddddc9";
NodeTextColor= "#524a2c";
aElement.style.fontWeight = "bold";
}
divElement.style.color = NodeTextColor;
aElement.style.color = NodeTextColor;
element.style.backgroundColor = NodeBgColor;
}
}
else
{
NodeBgColor = "Transparent";
if (_className.indexOf("AspNet-TreeView-Mnu-Selected")!=-1||_className.indexOf("AspNet-TreeView-Selected")!=-1||_className.indexOf("AspNet-TreeView-ChildSelected")!=-1)
{
NodeTextColor = "#ebab00";

divElement.style.color = NodeTextColor;
aElement.style.color = NodeTextColor;
element.style.backgroundColor = NodeBgColor;
}
else
{
divElement.style.color = NodeTextColor;
aElement.style.color = NodeTextColor;
}
}
if ((_className.indexOf("AspNet-TreeView-Leaf")!=-1))
{
Apply_Leaf_Style(element);
}
}
//document.getElementById("SampleTreeView").style.display = "block";
}


function Handle_Mouse_Over_Root(element)
{
var divElement = element.getElementsByTagName("div")[0];
var aElement = element.getElementsByTagName("a")[0];

divElement.style.color = "#ebab00";
aElement.style.color = "#ebab00";

var  DivClass = new String();
DivClass = divElement.className;
}


function Handle_Mouse_Out_Root(element)
{
var divElement = element.getElementsByTagName("div")[0];
var aElement = element.getElementsByTagName("a")[0];
var TextColor = "#fff";
var _className = element.className;
var _divclassName  =divElement.className;
if (_className.indexOf("AspNet-TreeView-Mnu-Selected")!=-1||_className.indexOf("AspNet-TreeView-Selected")!=-1||_className.indexOf("AspNet-TreeView-ChildSelected")!=-1)
{
TextColor="#ebab00";
if (_divclassName.indexOf("AspNet-TreeView-Expand")!=-1)
{
TextColor = "#fff";
}
}

divElement.style.color = TextColor;
aElement.style.color = TextColor;
}

function Handle_Mouse_Over_Leaf(element)
{
var NodeBgColor = "#ddddc9";

var TextColor = "#008694";
var ParentClass = new String();
ParentClass = element.parentNode.parentNode.className;

if (ParentClass.indexOf("AspNet-TreeView-Parent")>0)
{
TextColor ="#008694";
} 
var divElement = element.getElementsByTagName("div")[0];
var aElement = element.getElementsByTagName("a")[0];
divElement.style.color = TextColor;
aElement.style.color = TextColor;
element.style.backgroundColor = NodeBgColor;
}



function Handle_Mouse_Out_Leaf(element)
{
var NodeBgColor = "Transparent";
var _className = element.className;
var TextColor = new String();
if (_className.indexOf("AspNet-TreeView-Selected")!=-1)
{
NodeBgColor = "#ddddc9";
TextColor = "#008694";
}
else
{TextColor= "#fff";}
ParentClass = element.parentNode.parentNode.className;
if (ParentClass.indexOf("AspNet-TreeView-Parent")>=0)
{
if (_className.indexOf("AspNet-TreeView-Selected")!=-1)
{
TextColor = "#008694";
}
else
{TextColor ="#524a2c";}
} 
var divElement = element.getElementsByTagName("div")[0];
var aElement = element.getElementsByTagName("a")[0];
divElement.style.color = TextColor;
aElement.style.color = TextColor;
element.style.backgroundColor = NodeBgColor;
}




function Handle_Mouse_Over_Parent(element)
{
element.style.backgroundColor="#ddddc9";
var aElement = element.getElementsByTagName("a")[0];
var divElement = element.getElementsByTagName("div")[0];
var  DivClass = new String();
DivClass = divElement.className;
var ff;
ff = DivClass.indexOf("AspNet-TreeView-Collapse");
if (ff<0)
{
divElement.style.color = "#008694";
aElement.style.color = "#008694";
}
else
{
divElement.style.color = "#524a2c";
aElement.style.color = "#524a2c";
}
}

function Handle_Mouse_Out_Parent(element)
{
var NodeBgColor = "Transparent";
var TextColor = "#fff";
var _className = element.className;
var aElement = element.getElementsByTagName("a")[0];
var divElement = element.getElementsByTagName("div")[0];
var  DivClass = new String();
DivClass = divElement.className;
var ff;
ff = DivClass.indexOf("AspNet-TreeView-Collapse");
if (ff<0)
{
if (_className.indexOf("AspNet-TreeView-Mnu-Selected")!=-1)
{
NodeBgColor = "#ddddc9";
TextColor= "#524a2c";
}
element.style.backgroundColor= NodeBgColor;
divElement.style.color = TextColor;
aElement.style.color = TextColor;
}

}


function IsExpanded__AspNetTreeView(element)
{
    return (HasClass__CssFriendlyAdapters(element, collapseClass));
}

function TogglePlusMinus__AspNetTreeView(element, showPlus)
{
    if (HasAnyClass__CssFriendlyAdapters(element))
    {
        var showPlusLocal = IsExpanded__AspNetTreeView(element);
        if ((typeof(showPlus) != "undefined") && (showPlus != null))
        {
            showPlusLocal = showPlus;
        }    
        
        var oldClass = showPlusLocal ? collapseClass : expandClass;
        var newClass = showPlusLocal ? expandClass : collapseClass;
        SwapClass__CssFriendlyAdapters(element, oldClass, newClass);
        
        var oldClass1 = showPlusLocal ? nohoverClass : hoverClass;
        var newClass1 = showPlusLocal ? hoverClass : nohoverClass;
        var newelement = element.parentNode;           
        SwapClass__CssFriendlyAdapters(newelement, oldClass1, newClass1);        
        var oldString = showPlusLocal ? "-" : "+";
        var newString = showPlusLocal ? "+" : "-";           
        SwapString__CssFriendlyAdapters(element, oldString, newString);        
    }
}

function ToggleChildrenDisplay__AspNetTreeView(element, collapse)
{
    if ((element != null) && (element.parentNode != null) && (element.parentNode.getElementsByTagName != null))
    {    
        var childrenToHide = element.parentNode.getElementsByTagName("ul");
        var oldClass = collapse ? showClass : hideClass;
        var newClass = collapse ? hideClass : showClass;
    	for (var i=0; i<childrenToHide.length; i++)
    	{
    	    if ((childrenToHide[i].parentNode != null) && (childrenToHide[i].parentNode == element.parentNode))
    	    {
        	    SwapOrAddClass__CssFriendlyAdapters(childrenToHide[i], oldClass, newClass);
        	}
		}
	}
}

function ExpandCollapse__AspNetTreeView(sourceElement)
{
    if (HasAnyClass__CssFriendlyAdapters(sourceElement))
    {    
        var expanded = IsExpanded__AspNetTreeView(sourceElement);
        TogglePlusMinus__AspNetTreeView(sourceElement, expanded);
        ToggleChildrenDisplay__AspNetTreeView(sourceElement, expanded);
    }
}

/*function GetViewState__AspNetTreeView(id)
{
    var retStr = "";
    if ((typeof(id) != "undefined") && (id != null) && (document.getElementById(id) != null))
    {
        var topUL = document.getElementById(id);
        retStr = ComposeViewState__AspNetTreeView(topUL, "");        
    }
    return retStr;
}*/

function ComposeViewState__AspNetTreeView(element, state)
{
    var child = element.firstChild;
    var bConsiderChildren = true;

    //  The following line must be changed if you alter the TreeView adapters generation of
    //  markup such that the first child within the LI no longer is the expand/collapse <span>.
    if ((element.tagName == "li" || element.tagName == "LI") && (child != null))
    {
        var expandCollapseSPAN = null;
        var currentChild = child;
        while (currentChild != null)
        {
            if ((currentChild.tagName == "div") &&
                (currentChild.className != null) &&
                ((currentChild.className.indexOf(collapseClass) > -1) ||
                 (currentChild.className.indexOf(expandClass) > -1)))
            {
                expandCollapseSPAN = currentChild;
                break;
            }
            currentChild = currentChild.nextSibling;
        }
    
        if (expandCollapseSPAN != null)
        {
            if (expandCollapseSPAN.className.indexOf(collapseClass) > -1)
            {
                //  If the "collapse" class is currently being used then the "collapse" icon is, presumably, being shown.
                //  In other words, the node itself is actually expanded at the present moment (which is why you now
                //  have the option of collapsing it.  So we mark it as an "expanded" node for purposes of the view state
                //  we are now accumulating.
                state +=  "e";
            }
            else if (expandCollapseSPAN.className.indexOf(expandClass) > -1)
            {
                //  This part of the tree is collapsed so we don't need to consider its children.
                bConsiderChildren = false;
                state +=  "n";
            }
        }
    }
        
    if (bConsiderChildren && (child != null))
    {
        state = ComposeViewState__AspNetTreeView(child, state);
    }
    
    if (element.nextSibling != null)
    {
        state = ComposeViewState__AspNetTreeView(element.nextSibling, state);
    }
    
    return state;
}

