var fpn_first_key = -1;
var fpn_last_key = -1;
var fpn_current_key = -1;
var fpn_current_row_to_display = 0;
var fpn_max_row_to_display = 20;
var fpn_gathering_topics = 0;

var fpn_max_items = 60;
var fpn_enabled = 0;
var fpn_timer = 2;

function fpn_init(options) {
    fpn_enabled = 1;
    if ( options ) {
        if ( options.max_items > 0 ) {
            fpn_max_items = options.max_items;
        }
        if ( options.max_row_to_display > 0 ) {
            fpn_max_row_to_display = options.max_row_to_display;
        }
        if ( options.timer > 0 ) {
            fpn_timer = options.timer;
        }
    }
    fpn_gather_topics();
}

function fpn_show_next_topic() {
    // make sure it hasn't been disabled.
    if ( !fpn_enabled ) {
        return;
    }
    if ( fpn_current_key == -1 ) {
        fpn_current_key = fpn_first_key;
    }
    else {
        fpn_current_key++;
    }
    
    
    fpn_current_row_to_display++;
    var new_row = document.getElementById('fpn_row'+fpn_current_row_to_display);
    var new_data_row = document.getElementById('fpn_data_row_' + fpn_current_key);
	for (i = (fpn_max_row_to_display - 1); i >= 1; i--) {
	   cell = document.getElementById("fpn_row" + i);
	   cellnext = document.getElementById("fpn_row" + (i + 1));
	   if (cell.innerHTML != "") {
			 cellnext.innerHTML = cell.innerHTML;
	   }
	}
	
	document.getElementById("fpn_row1").innerHTML = new_data_row.innerHTML;
    
    fadeIn('fpn_row1');
    // get the next set
    if ( fpn_enabled > 0 ) {
        if ( fpn_current_key+1 >= fpn_last_key ) {
            fpn_gather_topics();
        }
        else {
            delay(fpn_show_next_topic, fpn_timer);
        }
    }
}

function fpn_gather_topics() {
    var target_url = '/pages/forums/modules/forum_posting_now.php';

    if ( fpn_gathering_topics ) {
        return;
    }
    fpn_gathering_topics = 1;
    if (supportsAjax()) {
        new Ajax (target_url, {method: 'post', postBody: 'current_key=' + fpn_current_key + '&max_items=' + fpn_max_items + '&timer=' + fpn_timer, onComplete: fpn_process_new_topics}).request();
        return true;
    }
    else {
        fpn_enabled = 0;
    }
}

function fpn_process_new_topics(results) {
    fpn_gathering_topics = 0;
    if ( results ) {
        // set the data array to be the response of the ajax
        var json_results = eval( '(' + results + ')' );
    
        if ( !json_results['data'] && fpn_enabled ) {
            fpn_toggle_show_next_topic();
            return;
        }
        else {
            if ( !json_results['template'] && fpn_enabled) {
                fpn_toggle_show_next_topic();
                return;
            }
        }
    
        if ( fpn_enabled ) {
            fpn_first_key = json_results['first_key'];
            fpn_last_key = json_results['last_key'];
            
            var topic_data = document.getElementById('fpn_data_holding_pen');
            topic_data.innerHTML = json_results['template'];
            
            delay(fpn_show_next_topic, fpn_timer);
        }
    }
    else {
        if ( fpn_enabled ) {
            fpn_toggle_show_next_topic();
            return;
        }
    }
    
}

function fpn_toggle_show_next_topic() {
   var playimg = document.getElementById("vsplay");
   var pauseimg = document.getElementById("vspause");
   if ( !fpn_enabled ) {
        fpn_enabled = 1;
        fpn_current_key = -1;
        fpn_gather_topics();
//        document.getElementById('toggle_link_text').innerHTML = "Pause";
        playimg.style.display="none";
        pauseimg.style.display="block";    
    }
    else {
        fpn_enabled = 0;
//        document.getElementById('toggle_link_text').innerHTML = "Start";
        pauseimg.style.display="none";
        playimg.style.display="block";    
    }
} 