/*
* DashCoincoin
* Developed and designed by Thenon David
* www.sveetch.biz
* 
* Chargement du moteur DashCoincoin sur mesure pour la tribune web
* Processus :
* 
* - Init de la configuration de base
* - Init du parser sur le format de backend configuré (JSON)
* - Ajout d'éléments de l'interface
* - Analyse des messages déja présents dans le html pour les répertorier dans le 
*   registre interne et leurs assigner les évènements de l'interface
* - Si l'option de refresh n'est pas désactivée, lance le premier refresh 
*   périodique du backend
* - Init des widget du panneau de préférences et MenuSlide
*/

$(document).ready(function(){
    
    // Init des settings au démarrage
    setupParts();
    
    // Init du parser en déclarant le format des préférences
    tribuneParser.set_format();
    
    // Récupère la hauteur du conteneur de la liste scrollée (et pas la 
    // hauteur de la liste) pour des besoins de positionnement sans utiliser 
    // une taille statique
    if( TRIBUNE_HEIGHT == false ) {
        TRIBUNE_HEIGHT = $("#tribune").height()
    }
    // Interception des évènements sur le bouton et l'input de message
    $("#ui_postbutton_id").click( function() {
        HACKBLOCKSTUPIDKONQUEROR = false;
        handle_postSubmit();
        HACKBLOCKSTUPIDKONQUEROR = true;
        return false;
    } );
    $("#id_content").keydown( function(e){
        if(e.keyCode == '13'){
            e.stopPropagation();
            HACKBLOCKSTUPIDKONQUEROR = false;
            handle_postSubmit();
            HACKBLOCKSTUPIDKONQUEROR = true;
            return false;
        }
        return true;
    });
    $("#form_missive").bind("submit", function() { return false; });
    
    // Ajout de la checkbox de control du refresh périodique du backend
    var checkedreloadtrigger = '';
    if( REFRESH_ACTIVED ) checkedreloadtrigger = ' checked="checked"';
    $('#id_content').before('<input type="checkbox" name="reload_trigger" id="ui_postreload_trigger"' +checkedreloadtrigger+ '>');
    $("#ui_postreload_trigger").click( function() {
        if( $(this).attr("checked") ){
            wrapPreference.setPref("refresh_actived", true);
            refreshTimer.setTimer( "backend", 'get_TribuneBackend()', wrapPreference.getPref("refresh_time_shifting") );
        } else {
            wrapPreference.setPref("refresh_actived", false);
            refreshTimer.stopTimer( "backend" );
        }
    } );
    // Ajout des témoins du refresh périodique
    $('#id_content').after('<img id="ui_load_animation" src="'+ medias +'images/ajax-loader.gif" width="16" height="16" style="display:none;" alt="Chargement.."/>');
    $('#id_content').after('<img id="ui_load_error" src="'+ medias +'images/famfam_bullets/bullet_error.png" width="16" height="16" style="display:none;" alt="Erreur lors du chargement ! "/>');
    
    // Ajout de l'input spécifique à l'envoi direct du captcha sans remplir 
    // de post
    $('#id_control').after('<input class="ui-corner-all ui-state-default" id="ui_controlbutton_id" name="controlbutton" type="submit" value="OK" />');
    $("#ui_controlbutton_id").click( function() {
        HACKBLOCKSTUPIDKONQUEROR = false;
        $("#id_content").val('\\_o< coin! coin!');
        handle_postSubmit();
        HACKBLOCKSTUPIDKONQUEROR = true;
        return false;
    } );
    
    // Lance le premier refresh périodique du backend après que la liste HTML 
    // des messages déja en place ait été initialisée.
    if ( Tribune_HTML_Parser.get_backend() && REFRESH_ACTIVED ) {
        refreshTimer.setTimer( "backend", 'get_TribuneBackend()', wrapPreference.getPref("refresh_time_shifting") );
    }
    
    // Configuration de la boite de 'dialog' des options
    ConfigDialog();
    // MenuSlide
    MenuSlider.init_html();
});
