
// Function to pass the current visualiser file (specified in the
// 'hidden_visualiser_controls' form in a hidden input) to the visualiser client
// via a PHP script loaded in a hidden inline frame called 'visualiser_controller_frame'.
function send_file_to_visualiser(force)
{
    if ( ! force && ! automatic_visualiser_updates_enabled() )
        return;
    
    var visualiser_file = get_compatible_element('visualiser_file').value;
    
    var visualiser_command_file = get_compatible_element('visualiser_command_file');
    
    var url = '/php_src/visualiser_controls/send_file_to_visualiser.php?' +
               'visualiser_file=' + visualiser_file;
    
    if ( visualiser_command_file )
        url += "&visualiser_command_file=" + visualiser_command_file.value;
    
    get_compatible_element('visualiser_controller_frame').src = url;
}


// Function to enable automatic visualiser updates (by recording the 'on' setting
// in a cookie).
function toggle_enable_visualiser_updates()
{
    if ( ! automatic_visualiser_updates_enabled() )
        set_visualiser_cookie("on");
}


// Function to disable automatic visualiser updates (by recording the 'off'
// setting in a cookie).
function toggle_disable_visualiser_updates()
{
    if ( automatic_visualiser_updates_enabled() )
        set_visualiser_cookie("off");
}


// Function to toggle the automatic visualiser updates setting according to the
// current value of the checkbox. I.e. if it is now checked, enable the updates,
// otherwise disable them.
function toggle_visualiser_updates(checkbox)
{
    if ( is_checked(checkbox) )
        toggle_enable_visualiser_updates();
    else
        toggle_disable_visualiser_updates();
}


// Helper function to record the specified automatic updates setting in a
// long-term browser cookie. The value should be either 'on' or 'off'.
function set_visualiser_cookie(value)
{
    var next_year = new Date();
    next_year.setFullYear(next_year.getFullYear() + 1); // get date for one year later
    
    document.cookie = "use_relibase_visualiser=" + value +
                      "; expires=" + next_year.toGMTString();
}


// Helper function to determine whether automatic visualiser updates are currently
// enabled or disabled by checking the value in the browser cookie.
function automatic_visualiser_updates_enabled()
{
    if ( get_cookie_value('use_relibase_visualiser') == "on" )
        return true;
    
    return false;
}

// Function to enable embedded visualiser (by recording the 'on' setting
// in a cookie).
function toggle_enable_embedded_visualiser()
{
    if ( ! embedded_visualiser_enabled() )
        set_embedded_visualiser_cookie("on");
}


// Function to disable embedded visualiser (by recording the 'off'
// setting in a cookie).
function toggle_disable_embedded_visualiser()
{
    if ( embedded_visualiser_enabled() )
        set_embedded_visualiser_cookie("off");
}


// Function to toggle the embedded visualiser setting according to the
// current value of the checkbox. I.e. if it is now checked, enable the updates,
// otherwise disable them.
function toggle_embedded_visualiser(checkbox)
{
    if ( is_checked(checkbox) )
        toggle_enable_embedded_visualiser();
    else
        toggle_disable_embedded_visualiser();
    
    window.location.reload(true);
}


// Helper function to record the specified embedded visualiser setting in a
// long-term browser cookie. The value should be either 'on' or 'off'.
function set_embedded_visualiser_cookie(value)
{
    var next_year = new Date();
    next_year.setFullYear(next_year.getFullYear() + 1); // get date for one year later
    
    document.cookie = "use_relibase_embedded_visualiser=" + value +
                      "; expires=" + next_year.toGMTString();
}


// Helper function to determine whether embedded visualiser is currently
// enabled or disabled by checking the value in the browser cookie.
function embedded_visualiser_enabled()
{
    if ( get_cookie_value('use_relibase_embedded_visualiser') == "off" )
        return false;
    
    return true;
}

