

if (window.addEventListener) {
    window.addEventListener('load', tree, false); 
}
else { /* IE */ 
    window.attachEvent('onload', tree);
}

function createCookie(name,value,days) {
    if (days) {
	var date = new Date();
	date.setTime(date.getTime()+(days*24*60*60*1000));
	var expires = "; expires="+date.toGMTString();
    }
    else { 
	var expires = "";
    } 

    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');

    for(var i=0;i < ca.length;i++) {
	var c = ca[i];
	while (c.charAt(0)==' ') c = c.substring(1,c.length);
	if (c.indexOf(nameEQ) == 0) 
	    return c.substring(nameEQ.length,c.length);
    }

    return null;
}

function isIE6() { 
    //test for MSIE x.x;
    if ( /MSIE (\d+\.\d+);/.test(navigator.userAgent) ) { 
	var ieversion=new Number(RegExp.$1); // capture x.x portion and store as a number

	if (ieversion>=6 && ieversion < 7)
	    return true; 
    }

    return false; 
} 

function showoptions(v) { 
    var optionbarwrap = document.getElementById('optionbarwrap');

    var optionbarshow = document.getElementById('optionbarshow'); 
    var optionbarhide = document.getElementById('optionbarhide'); 

    if (!(optionbarwrap && optionbarshow && optionbarhide)) {
        return;  
    }

    optionbarshow.className = optionbarhide.className = 
	optionbarwrap.className = (v ? 'showingoptionbar' : 'hidingoptionbar');
} 

function showoptions_ie6(v)
{
    // IE6 can't handle class selectors on id selectors 
    var optionbarwrap = document.getElementById('optionbarwrap');	

    var optionbarshow = document.getElementById('optionbarshow'); 
    var optionbarhide = document.getElementById('optionbarhide'); 

    if (!(optionbarwrap && optionbarshow && optionbarhide)) {
        return;  
    }

    if (v) { 	
	optionbarwrap.style.display = 'block'; 
	optionbarshow.style.display = 'none'; 
	optionbarhide.style.display = 'block';
    } 
    else { 
	optionbarwrap.style.display = 'none'; 
	optionbarshow.style.display = 'block'; 
	optionbarhide.style.display = 'none';
    }
} 

function showslicelist(v) { 
    // Everyone except IE6 (IE < 6.0 is unsupported) 
    var slicehide = document.getElementById('slicehide'); 
    var sliceshow = document.getElementById('sliceshow'); 
    var right = document.getElementById('right'); 
    var left = document.getElementById('left'); 

    if (!(slicehide && sliceshow && right && left)) {
        return; 
    } 

    right.className = left.className = 
	sliceshow.className = slicehide.className = 
	(v ? 'showingslicelist' : 'hidingslicelist'); 

    createCookie('showslicelist', v ? 'True' : 'False');
} 

function showslicelist_ie6(v)
{
    // IE6 can't handle class selectors on id selectors 
    var slicehide = document.getElementById('slicehide'); 
    var sliceshow = document.getElementById('sliceshow'); 
    var right = document.getElementById('right'); 
    var left = document.getElementById('left'); 
    var slicebox = document.getElementById('slicebox');
    var frame = document.getElementById('frame'); 

    if (!(slicehide && sliceshow && right && left)) {
        return; 
    } 

    if (v) { 
	sliceshow.style.display = 'none'; 
	slicehide.style.display = 'inline'; 
	right.style.display = 'block';

        if (frame.className == "large_frame") { 
            slicebox.style.width='1665px'; // frame width - max image width - v-scroll bar width
        }
        else { 
            slicebox.style.width='665px'; // frame width - max image width - v-scroll bar width
        } 
    } 
    else { 
	sliceshow.style.display = 'inline'; 
	slicehide.style.display = 'none'; 
	right.style.display = 'none';  
	slicebox.style.width = '100%';
    } 

    createCookie('showslicelist', v ? 'True' : 'False');
} 

var showslicelist_f = isIE6() ? showslicelist_ie6 : showslicelist; 
var showoptions_f = isIE6() ? showoptions_ie6 : showoptions; 

function toggle_folder(expander) 
{ 
    expander.parentNode.className = (expander.parentNode.className == 'tree_folder_open') ?
        'tree_folder_closed' : 'tree_folder_open';

    if (expander.parentNode.className == 'tree_folder_open') {
        expander.title = 'Click to collapse';
        expander.firstChild.nodeValue = '\u25BC ';
    }
    else {
        expander.title= 'Click to expand';
        expander.firstChild.nodeValue = '\u25BA ';

    } 
} 

function expander_clicked(e) {
 
    if (e) {
        if (this != e.target) { return; }
    } 
    else { 
        if (this != window.event.srcElement) { return; } // IE 
    } 

    toggle_folder(this) 

    if (e) { 
        e.stopPropagation();
    }
    else { 
        window.event.cancelBubble = true; // IE
    }  
}

function make_folder_toggler(expander) {

    function expander_clicked(e) {
 
        if (e) {
            if (this != e.target) { return; }
        } 
        else { 
            if (this != window.event.srcElement) { return; } // IE 
        } 

        toggle_folder(expander) 

        if (e) { 
            e.stopPropagation();
        }
        else { 
            window.event.cancelBubble = true; // IE
        }  
    }

    return expander_clicked
} 

function tree() {
 
    // Setup expand/collapse 

    var spans = document.getElementsByTagName('span');

    for (i=0; i < spans.length; i++) {
	if (spans[i].className == 'tree_expander') { 
            var expander = spans[i]; 

            expander.onclick = expander_clicked; 
            if (expander.nextSibling.className == 'folder_item') {
                expander.nextSibling.onclick = make_folder_toggler(expander) 
            }
        }
    }	 
}

