/*
* Widget de gestion de ses préférences 
*/
CONFIGDIALOG_HTML = '<div id="ui_config_dialog" title="'+ i18n_PreferencesConfig_label +'">'+
'<form>'+
'<div class="inputs_row inline_inputs">'+
    '<label for="refresh_time" class="subtitle">'+ i18n_PreferencesConfig_refresh_time_label +'</label>'+
    '<input type="text" name="refresh_time" id="refresh_time" class="number ui-widget-content ui-corner-all" />'+
    '<input type="checkbox" name="refresh_active" id="refresh_active" class="ui-widget-content ui-corner-all" />'+
    '<label for="refresh_active">'+ i18n_PreferencesConfig_refresh_active_label +'</label>'+
'</div>'+
'<div class="inputs_row solid_inputs">'+
    '<label for="totoz_server" class="subtitle">'+ i18n_PreferencesConfig_totoz_server_label +'</label>'+
    '<input type="text" name="totoz_server" id="totoz_server" value="" class="text ui-widget-content ui-corner-all" />'+
'</div>'+
'<div class="inputs_row solid_inputs">'+
    '<label class="subtitle">'+ i18n_PreferencesConfig_interface_label +'</label>'+
    '<div class="inline_inputs">'+
        '<input type="checkbox" name="submenu_shower" id="submenu_shower" class="ui-widget-content ui-corner-all" />'+
        '<label for="submenu_shower">'+ i18n_PreferencesConfig_submenu_shower_label +'</label>'+
    '</div>'+
    '<div class="inline_inputs">'+
        '<input type="checkbox" name="urlopenblank" id="urlopenblank" class="ui-widget-content ui-corner-all" />'+
        '<label for="urlopenblank">'+ i18n_PreferencesConfig_urlopenblank_shower_label +'</label>'+
    '</div>'+
'</div>'+
'<div class="inputs_row inline_inputs" id="ui_config_dialog_save_field">'+
    '<input type="checkbox" name="save_active" id="save_active" class="ui-widget-content ui-corner-all" />'+
    '<label for="save_active">'+ i18n_PreferencesConfig_save_check_label +'</label>'+
'</div>'+
'</form>'+
'</div>';
function ConfigDialog() {
    
    // Ajout du lien html à cliquer pour ouvrir le dialog
    jQuery('#ui_wikitoolbar').prepend('<a href="#" id="ui_config_link"></a>');
    
    // Ajout du html du dialog
    jQuery('body').prepend( CONFIGDIALOG_HTML );
    if( USER_USERNAME.length == 0 ){
        $('#ui_config_dialog_save_field').remove();
    }
    
    // Configuration de la boite de 'dialog' des options
    jQuery("#ui_config_dialog").dialog({
        'autoOpen': false,
        'draggable': false,
        'resizable': false,
        'bgiframe': true,
        'width': 450,
        'modal': true,
        'position': 'top',
        'buttons': {
            'Accepter': function() {
                update_settings();
                jQuery(this).dialog('close');
            },
            'Abandonner': function() {
                jQuery(this).dialog('close');
            }
        },
        // A l'ouverture on stop le timer si besoin et on update le formulaire 
        // avec les valeurs actuelles
        'open': function() {
            if( wrapPreference.getPref("refresh_actived") ){
                refreshTimer.stopTimer( "backend" );
            }
            jQuery("#refresh_time").val( wrapPreference.getPref("refresh_time_shifting") );
            if ( wrapPreference.getPref("refresh_actived") ){
                jQuery("#refresh_active").attr( "checked", "checked" );
            } else {
                jQuery("#refresh_active").removeAttr( "checked", "" );
            }
            jQuery("#totoz_server").val( wrapPreference.getPref("smileys_host_url") );
            if ( wrapPreference.getPref("submenu_showed") ){
                jQuery("#submenu_shower").attr( "checked", "checked" );
            } else {
                jQuery("#submenu_shower").removeAttr( "checked", "" );
            }
            if ( wrapPreference.getPref("tribune_urlopen_blank") ){
                jQuery("#urlopenblank").attr( "checked", "checked" );
            } else {
                jQuery("#urlopenblank").removeAttr( "checked", "" );
            }
        },
        // A la fermeture on rallume le timer si besoin
        'close': function() {
            if( wrapPreference.getPref("refresh_actived") ){
                refreshTimer.setTimer( "backend", 'get_TribuneBackend()', wrapPreference.getPref("refresh_time_shifting") );
            }
        }
    });
    
    jQuery("#ui_config_link").click(function() {
        jQuery("#ui_config_dialog").dialog("open");
        return false;
    });
        
    /*
    / Update des options d'après le formulaire
    */
    function update_settings() {
        // Délai du rafraichissement si le champs est pas vide et pas 
        // inférieur à 1000ms
        if( jQuery("#refresh_time").val().length > 0 && parseInt(jQuery("#refresh_time").val()) >= 1000 ) {
            wrapPreference.setPref("refresh_time_shifting", jQuery("#refresh_time").val());
        }
        
        // URL du serveur de totoz, requiert un url à peu près valide
        var totoz_server = jQuery.trim(jQuery("#totoz_server").val());
        if( totoz_server.length > 0 ) {
            if( ( totoz_server.substr(0,7) == "http://" || totoz_server.substr(0,8) == "https://" ) && totoz_server[totoz_server.length-1]=="/"){
                wrapPreference.setPref("smileys_host_url", totoz_server );
            }
        }
        
        // Activation/désactivation du refresh
        if( jQuery("#refresh_active").attr( "checked" ) ) {
            wrapPreference.setPref("refresh_actived", true);
            jQuery("#ui_postreload_trigger").attr( "checked", "checked" );
        } else {
            wrapPreference.setPref("refresh_actived", false);
            jQuery("#ui_postreload_trigger").removeAttr( "checked", "" );
        }
        
        // Affichage/Masquage du sous menu
        if( jQuery("#submenu_shower").attr( "checked" ) ) {
            wrapPreference.setPref("submenu_showed", true);
            MenuSlider.show();
        } else {
            wrapPreference.setPref("submenu_showed", false);
            MenuSlider.hide();
        }
        
        // Ouverture des liens dans une nouvelle fenêtre
        if( jQuery("#urlopenblank").attr( "checked" ) ) {
            wrapPreference.setPref("tribune_urlopen_blank", true);
        } else {
            wrapPreference.setPref("tribune_urlopen_blank", false);
        }
        
        // Sauvegarde la config dans le profil utilisateur
        if( USER_USERNAME.length > 0 && jQuery("#save_active").attr( "checked" ) ){
            jQuery.ajax({
                type: "POST",
                global: false,
                dataType: "json",
                url: "/tribune/config/post/",
                data: {
                    'refresh_time': wrapPreference.getPref("refresh_time_shifting"),
                    'refresh_actived': wrapPreference.getPref("refresh_actived"),
                    'smileys_host_url': wrapPreference.getPref("smileys_host_url"),
                    'submenu_showed': wrapPreference.getPref("submenu_showed"),
                    'urlopen_blank': wrapPreference.getPref("tribune_urlopen_blank")
                }
            });
        }
    };
}

/*
* Widget du bouton de slide du sous-menu
*/
MENUSLIDE_HTML = '<span class="ui_submenu_slidebutton ui-state-default ui-corner-all">'+
'<span class="ui_submenu_hider ui-icon ui-icon-arrowstop-1-w">'+ i18n_MenuSlider_show_label +'</span>'+
'<span class="ui_submenu_shower ui-icon ui-icon-arrowstop-1-e">'+ i18n_MenuSlider_hide_label +'</span>'+
'</span>';
MenuSlider = {
    init_html : function() {
        
        // Ajout du html contenant les boutons
        jQuery('#body_content').prepend( MENUSLIDE_HTML );
        
        // Contrôle des évènements sur les boutons
        jQuery('span.ui_submenu_shower, span.ui_submenu_hider').mouseover( function() {
            jQuery(this).parent().toggleClass('ui-state-hover');
            return false;
        } );
        jQuery('span.ui_submenu_shower, span.ui_submenu_hider').mouseout( function() {
            jQuery(this).parent().toggleClass('ui-state-hover');
            return false;
        } );
        jQuery('span.ui_submenu_hider').click( function() {
            MenuSlider.hide();
            return false;
        } );
        jQuery('span.ui_submenu_shower').click( function() {
            MenuSlider.show();
            return false;
        } );
        
        // Affichage/masquage en fonction des preferences
        if( wrapPreference.getPref("submenu_showed") ) {
            MenuSlider.show();
        } else {
            MenuSlider.hide();
        }
    },
    
    hide : function() {
        wrapPreference.setPref("submenu_showed", false);
        jQuery('span.ui_submenu_hider').hide();
        jQuery('span.ui_submenu_shower').show();
        jQuery('body').attr('id', 'board_dashcc_mobile_tpl');
    },
    
    show : function() {
        wrapPreference.setPref("submenu_showed", true);
        jQuery('span.ui_submenu_hider').show();
        jQuery('span.ui_submenu_shower').hide();
        jQuery('body').attr('id', 'board_dashcc_tpl');
    }
};
