//starts off as 1 - we always select number 1 to begin with
var selected_content_number = 1;
var interval_time = 6000;
var timer = window.setInterval( function(){ dyn_content_next(true); }, interval_time );

function switch_dynamic_content( link_el ) {
    dyn_more_less( true );

    document.getElementById('dyn_content_'+selected_content_number).style.display='none';
    document.getElementById('dyn_content_link_'+selected_content_number).className='dyn_link';

    content_el = document.getElementById(link_el.id.replace('dyn_content_link','dyn_content')); 
    content_el.style.display='block';
    link_el.className='dyn_link selected';

    selected_content_number = Number(link_el.id.replace('dyn_content_link_',''));
    if ( timer ) {
        dyn_play_pause(document.getElementById('dyn_content_play_pause'));
    }
}

function dyn_content_next(rotate) {
    dyn_more_less( true );
    var next_content_number = selected_content_number+1;
    var next_content_el = document.getElementById('dyn_content_'+next_content_number);
    if ( !next_content_el ) {
        if ( rotate ) {
            next_content_el =  document.getElementById('dyn_content_1');
            next_content_number = 1;
        }
        else {
        return;
        }
    }

    document.getElementById('dyn_content_'+selected_content_number).style.display='none';
    document.getElementById('dyn_content_'+next_content_number).style.display='block';

    document.getElementById('dyn_content_link_'+selected_content_number).className='dyn_link';
    document.getElementById('dyn_content_link_'+next_content_number).className='dyn_link selected';

    selected_content_number = next_content_number;

}

function dyn_play_pause(play_pause_button, stay_put) {
    if ( timer ) {
        dyn_pause(play_pause_button);
    } else {
        if(!stay_put) {
            dyn_content_next(true);
        }
        timer = window.setInterval( function(){ dyn_content_next(true); }, interval_time );
        play_pause_button.src="/images/controls_pause_round.gif";
    }
}

function dyn_pause(play_pause_button) {
    window.clearTimeout( timer );
    play_pause_button.src="/images/controls_play_round.gif";
    timer=null;
}

function dyn_content_prev() {
    dyn_more_less(true);
    var prev_content_number = selected_content_number-1;
    var prev_content_el = document.getElementById('dyn_content_'+prev_content_number);
    if ( !prev_content_el ) {

        var link_els = YAHOO.util.Dom.getElementsByClassName('dyn_link');

        for ( var i = 0; i < link_els.length; i++ ) {
            var num = link_els[i].id.replace('dyn_content_link_','') - 0;
            if ( num > prev_content_number ) {
                prev_content_number = num;
            }
        }

    }

    document.getElementById('dyn_content_'+selected_content_number).style.display='none';
    document.getElementById('dyn_content_'+prev_content_number).style.display='block';

    document.getElementById('dyn_content_link_'+selected_content_number).className='dyn_link';
    document.getElementById('dyn_content_link_'+prev_content_number).className='dyn_link selected';

    selected_content_number = prev_content_number;

}

function dyn_more_less( force_less ) {
    var content_el = document.getElementById('dyn_content_content_'+selected_content_number);
    var more_less_link = document.getElementById('dyn_more_less_'+selected_content_number);
    if(!more_less_link) return;

    var is_expanded = content_el.style.overflow == "auto";

    if ( !force_less && ((!is_expanded && timer) || (is_expanded && !timer))) {
        //if we've clicked on "less" when the timer is going, stop the timer, or start it if we've clicked "more"
        dyn_play_pause(document.getElementById('dyn_content_play_pause'), true);
    }

    if ( is_expanded || force_less ) {
        content_el.style.overflow = '';
        content_el.style.height = '';
        more_less_link.innerHTML='more &raquo;';
    } else {
        content_el.style.overflow = "auto";
        content_el.style.height = "auto";
        more_less_link.innerHTML='less &laquo;';
    }

}
