function hsbbIsContainClassName(elem, name) {
    if (!elem) false;
    var classNames = elem.className.split(' ');
    var classNameLength = classNames.length;
    for (var i = 0; i < classNameLength; i++) if (classNames[i] == name) return true;
    return false;
}

var oldli = null;
function hsbbAppendClassName(elem, name) {
    if (!elem) return;
    var newClassNameStr = '';
    var classNames = elem.className.split(' ');
    var classNameLength = classNames.length;
    for (var i = 0; i < classNameLength; i++) if (classNames[i] == name) return;
    if (classNameLength > 0) elem.className = elem.className + ' ' + name;
    else elem.className = name;
}

function hsbbRemoveClassName(elem, name) {
    if (!elem) return;
    var newClassNameStr = '';
    var classNames = elem.className.split(' ');
    var classNameLength = classNames.length;
    for (var i = 0; i < classNameLength; i++) {
        if (classNames[i] == name) continue;
        if (newClassNameStr != '') newClassNameStr += ' ';
        newClassNameStr += classNames[i];
    }
    elem.className = newClassNameStr;
}

function hsbbSelectPhoto(anchor) {
    var li = anchor.parentNode;
    if (oldli == li) return;
    var img = anchor.firstChild;
    hsbbAppendClassName(li, 'selected');
    hsbbRemoveClassName(oldli, 'selected');
    var src = anchor.href;
    var caption = img.alt;
    document.getElementById('hsbb_photo').src = src;
    document.getElementById('hsbb_photoframe').style.display = 'block';
    document.getElementById('hsbb_photocaption').innerHTML = caption;
    document.getElementById('hsbb_photocaption').style.display = 'block';
    oldli = li;
}

function hsbbAccordionToggle(anchor) {
    var siteElem = anchor.parentNode.parentNode;
    var accoElem = siteElem.getElementsByTagName('div')[1];
    accoElem.style.display = (accoElem.style.display == 'none' ? 'block' : 'none');
    for (var i = 0; i < anchor.childNodes.length; i++) {
        anchor.childNodes[i].style.display = anchor.childNodes[i].style.display == 'none' ? 'inline' : 'none';
    }
}

function hsbbAccordionToggleSwitchWrite(label, altnate) {
    document.write('<p class="hsbb_site_toggleswitch">[<a href="#" onclick="hsbbAccordionToggle(this);return false;"><span>' + label + '</span><span style="display:none;">' + altnate + '</span></a>]</p>');
}
