//
// Contractible Headers
//

// <a href="#" onclick="bd_expandcontent('bd_categorycontent');return false;"><span class="smallitalic">more...</span></a>
// <div id="bd_categorycontent" style="display:block;"> Content </div>
// <div id="bd_categorycontent" style="display:none;"> Content </div>
// <div class="bd_switchcontent" id="bd_categorycontent"> Content </div>

// class="bd_switchcontent" remembers last state, OR force state by adding style="display:none;" or style="display:block;" without class statement 

var bd_defaultstate="block"; // Enable saving state of content structure using session cookies? (none/block)
var bd_enablepersist="on"; // Enable saving state of content structure using session cookies? (on/off)
var bd_collapseprevious="no"; // Collapse previously open content when opening present? (yes/no)
var bd_ccollect = new Array();

/*
if (document.getElementById)
{
    document.write('<style type="text/css">');
    document.write('.bd_switchcontent{display:none;}');
    document.write('</style>');
};
*/

function bd_getelementbyclass(classname)
{
    var inc  = 0;
    var alltags = document.all ? document.all : document.getElementsByTagName("*");

    for (i = 0;i < alltags.length; i++)
    {
        if (alltags[i].className == classname)
        {
            bd_ccollect[inc++] = alltags[i];
        }
    }
};

function bd_contractcontent(omit)
{
    var inc=0;

    while (bd_ccollect[inc])
    {
        if ((bd_ccollect[inc].id != omit) && (bd_ccollect[inc].style.display != "none") && (bd_ccollect[inc].style.display != "block")) 
        {
            bd_ccollect[inc].style.display = bd_defaultstate;
        }

        inc++;
    }

	return false;
};

function bd_contractspecific(id)
{
    var inc=0;

    while (bd_ccollect[inc])
    {	
        if (bd_ccollect[inc].id == id)
        {
            if (bd_getobj(cid).style.display != "none")
            {
                new Effect.SlideUp(bd_ccollect[inc].id, {duration:0.7});
            }
        
            // bd_ccollect[inc].style.display = "none";

			return true;
        }

        inc++;
    }

	return false;
};

function bd_expandcontent(cid,force)
{
    if (typeof bd_ccollect != "undefined")
    {
        if (bd_collapseprevious == "yes")
        {
            bd_contractcontent(cid);
        }
        
        if (bd_getobj(cid))
        {
            if (force != 1)
            {
                if (bd_getobj(cid).style.display != "none")
                {
                    new Effect.SlideUp(cid, {duration:0.7});
                }
                else
                {
                    new Effect.SlideDown(cid, {duration:0.7});
                }
            }
            else
            {
                bd_getobj(cid).style.display = (bd_getobj(cid).style.display != "block") ? "block" : "none";
            }
        }
    }

	return false;
};

function bd_revivecontent()
{
    bd_selecteditem = bd_get_cookie("ch");

    if (bd_selecteditem)
    {
        bd_selectedcomponents = bd_selecteditem.split("|");

        for (i = 0;i < bd_selectedcomponents.length - 1; i++)
        {
            selres = bd_selectedcomponents[i].split("=");

            obj = bd_getobj(selres[0]);

            if (obj)
            {
                // onload: slide open or instant open 
                if (0)
                {
                    // Onload, slide everything open that was previously open
                    if (selres[1] == '1')
                    {
                        // Don't slide if already open
                        if (obj.style.display == 'none')
                        {
                            new Effect.SlideDown(obj.id, {duration:0.7});
                        }   
                    }
                    else
                    {                    
                        // Don't slide if already closed
                        if (obj.style.display != 'none')
                        {
                            new Effect.SlideUp(obj.id, {duration:0.7});
                        }
                    }
                }
                else
                {
                    // Instant open looks better actuall
                    obj.style.display = (selres[1] == '1') ? "block" : "none";
                }
            }
        }
    }
};

function bd_saveswitchstate()
{
    var inc = 0, bd_selecteditem = "";
    var bd_selectedcomponents = new Array();

    bd_selecteditem = bd_get_cookie("ch");
    bd_selectednew  = '';

    if (bd_selecteditem)
    {
        ar = bd_selecteditem.split("|");

        for (i = 0;i < ar.length - 1; i++)
        {
            selres = ar[i].split("=");

            if (selres[0] != '')
            {
                bd_selecteditem += selres[0] + '=' + selres[1] + '|';
            }
        }
    } 

    while (bd_ccollect[inc])
    {
        if (bd_ccollect[inc].id != '')
        {
            if (bd_ccollect[inc].style.display != "none")
            {
                bd_selectednew += bd_ccollect[inc].id + '=1|';
            }
            else
            {
                bd_selectednew += bd_ccollect[inc].id + '=0|';
            }
        }

        inc++;
    }

    bd_set_cookie("ch",bd_selectednew,100);
};

function bd_setonload()
{
    bd_getelementbyclass("bd_switchcontent");
};

function bd_expandonload()
{
    bd_getelementbyclass("bd_switchcontent");

    bd_contractcontent("omitnothing");

    // If page says handles this through PHP, don't do by javascipt
    if (bd_enablepersist == "on" && typeof bd_ccollect != "undefined" && typeof bd_dontexpandcontent == 'undefined')
    {
        bd_revivecontent();
    }
};

// window.onload = bd_setonload; // This will just set in place the expandable content, but not actually expand the boxes
if (typeof bd_safeaddonload != 'undefined')
{
    bd_safeaddonload(bd_expandonload);
}
else
{
    window.onload = bd_expandonload;
};

if (bd_enablepersist=="on" && document.getElementById)
{
    window.onunload = bd_saveswitchstate;
};

