
var WidgetItems = new Array();

function InitializeSidebarItems() {

    var mainList = document.getElementById(fp_sidebarcollapse_sidebarListID);

		if(mainList) {

			var sidebarItems = mainList.getElementsByTagName(fp_sidebarcollapse_sidebarListItemEl);

			for(var i=0; i < sidebarItems.length; i++) {
					if(sidebarItems[i].parentNode==mainList) {
						
						if(sidebarItems[i].className.indexOf(fp_sidebarcollapse_sidebarListItemPartialClassName)!=-1) {
							
							sidebarItems[i].ItemTitle = GetSidebarWidgetItemTitle(sidebarItems[i]);
							
							if(sidebarItems[i].ItemTitle) {

								var toggleLink = document.createElement('a');
								toggleLink.className = "SideBarWidgetToggle-shown";
								sidebarItems[i].ToggleLink = toggleLink;
                var firstItem = sidebarItems[i].ItemTitle.firstChild;
                if (firstItem)
								  sidebarItems[i].ItemTitle.insertBefore(toggleLink, firstItem);
                else
                  sidebarItems[i].ItemTitle.appendChild(toggleLink);

								// Add to array
								WidgetItems.push(sidebarItems[i]);
                
                ShowSidebarWidget(sidebarItems[i].id);
							}
							
						}
					}
			}
			
		}
}

function HideSidebarWidget(widgetID) {
	var widget = GetWidgetByID(widgetID);
	if(widget) {
		for(var i=0; i < widget.childNodes.length; i++) {
			if(widget.childNodes[i]!=widget.ItemTitle) {
				if(widget.childNodes[i].style) {
					
					if(widget.childNodes[i].displaystyle==null) {
						widget.childNodes[i].displaystyle = widget.childNodes[i].style.display;
					}

					widget.childNodes[i].style.display = 'none';
				}
			}
		}
		
    // Link to Show
		while(widget.ToggleLink.hasChildNodes()) {
			widget.ToggleLink.removeChild(widget.ToggleLink.lastChild);
		}
    widget.ToggleLink.setAttribute('class','SideBarWidgetToggle-hidden');
		widget.ToggleLink.setAttribute('href','javascript:ShowSidebarWidget(\'' + widget.id+ '\');');
		widget.ToggleLink.appendChild( document.createTextNode(fp_sidebarcollapse_show) );
	}
}

function ShowSidebarWidget(widgetID) {
	var widget = GetWidgetByID(widgetID);
	if(widget) {
		for(var i=0; i < widget.childNodes.length; i++) {
			if(widget.childNodes[i]!=widget.ItemTitle) {
				if(widget.childNodes[i].style) {
					if(widget.childNodes[i].displaystyle!=null) {
						widget.childNodes[i].style.display = widget.childNodes[i].displaystyle;
					}
				}
			}
		}
		
		// Link to Hide
    while(widget.ToggleLink.hasChildNodes()) {
      widget.ToggleLink.removeChild(widget.ToggleLink.lastChild);
    }
    widget.ToggleLink.setAttribute('class','SideBarWidgetToggle-shown');
    widget.ToggleLink.setAttribute('href','javascript:HideSidebarWidget(\'' + widget.id+ '\');');
    widget.ToggleLink.appendChild( document.createTextNode(fp_sidebarcollapse_hide) );
	}
}

function GetWidgetByID(ID) {
		for(var i = 0; i < WidgetItems.length; i++) {
			if(WidgetItems[i].id==ID) {
				return WidgetItems[i];
			}
		}
		return null;
}

function GetSidebarWidgetItemTitle(item) {
		for(var i=0; i < item.childNodes.length; i++) {
			if(item.childNodes[i].className) {
				if(item.childNodes[i].className.indexOf(fp_sidebarcollapse_sidebarWidgetTitlePartialClassName)!=-1) {
					return item.childNodes[i];
				}
			}
		}
		return null;
}

if(!window.registeredloadfunctions) {
	window.registeredloadfunctions = new Array();
}
function appendInitializeSidebarItemsToOnLoadEvent(func) {
	if(window.registeredloadfunctions[func]==null) {
		window.registeredloadfunctions[func] = true;
		  var oldonload = window.onload;
		  if (typeof window.onload != 'function') {
			window.onload = func;
		  } else {
			window.onload = function() {
			  oldonload();
			  func();
			}
		  }
	}  
}

appendInitializeSidebarItemsToOnLoadEvent(InitializeSidebarItems);
