// from multiplechoice.tpl
var countGoodResponse = 0 ;
function synchFormElements()
{
    var synchElement = document.getElementById( synchFormElements.arguments[0] );
    if( synchElement != null )
    {
        var synchArgsLength = synchFormElements.arguments.length ;
        var tag = synchElement.tagName.toLowerCase();
        var synchPolarity = synchFormElements.arguments[ arguments.length - 1 ];
        var inputArray = new Array();
        var currentSelectedOptionID = synchFormElements.arguments[ 0 ] ;
        var questionID = synchFormElements.arguments[ synchArgsLength - 2 ] ;
        var pageBreakID = synchFormElements.arguments[ synchArgsLength - 1 ] ;
        var currentSelectedOptionValue = $( '#' + currentSelectedOptionID ).val() ;
        var currentSelectName = $( '#' + currentSelectedOptionID ).attr( 'name' ) ;
        // ajax request to store in session current responses
        var req = 'questionID='+ questionID + '&selectName=' +currentSelectName+ '&selectedOptionID=' + currentSelectedOptionID + '&selectedValue=' + currentSelectedOptionValue + '&pageBreakID=' + pageBreakID ;
        console.log( 'requete ajax : ' + req ) ;
        jQuery.ajax({
                        type: 'POST',
                        url : '/response/store/',
                        data : req,
                        dataType: "html",
                        success: function(msg){
                            if (msg)
                            {
                               console.log(msg);
                            }
                        }
                    });
        for ( var x = 0; x < ( synchFormElements.arguments.length - 2 ); x++ )
        {
            inputArray[x] = synchFormElements.arguments[ x + 1 ];
            var currentAttributeID = inputArray[x] ;
        }
        if ( ( tag == 'input' && ( ( synchElement.checked && synchPolarity ) || ( !synchElement.checked && !synchPolarity ) ) ) || ( tag == 'option' && ( ( synchElement.selected && synchPolarity ) || ( !synchElement.selected && !synchPolarity ) ) ) )
        {
            setFormElements( inputArray, true );
        }
        else
        {
            setFormElements( inputArray, false );
        }
    }
}

function setFormElements( inputArray, enabled )
{
    var modeString = '';

    if ( !enabled )
    {
        modeString = 'disabled';
    }

    for ( var x = 0; x < inputArray.length; x++ )
    {
        var inputElement = document.getElementById( inputArray[x] );
        if( inputElement != null )
        {
            inputElement.disabled = modeString;
            if ( modeString == 'disabled' )
            {
                setClass( inputElement, 'disabled' );
            }
            else
            {
                removeClass( inputElement, 'disabled' );
            }
        }
    }
}

function readClassArray( element )
{
    if ( typeof( element ) == 'string' )
    {
        element = document.getElementById( element );
    }

    var classString = element.className;
    var classArray = classString.split( ' ' );
    return classArray;
}

function writeClassArray( element, classArray )
{
    if ( typeof( element ) == 'string' )
    {
        element = document.getElementById( element );
    }

    var classString = classArray.join( ' ' );
    element.className = classString;
}

function setClass( element, className )
{
    if ( !checkClass( element, className ) )
    {
        var classArray = readClassArray( element );
        classArray[ classArray.length ] = className;
        writeClassArray( element, classArray );
    }
}

function checkClass( element, className )
{
    var classArray = readClassArray( element );

    for ( x = 0; x < classArray.length; x++ )
    {
        if ( classArray[ x ] == className )
        {
            return true;
        }
    }

    return false;
}

function removeClass( element, className )
{
    var classArray = readClassArray( element );

    for ( x = 0; x < classArray.length; x++ )
    {
        if ( classArray[ x ] == className )
        {
            classArray[ x ] = '';
        }
    }

    writeClassArray( element, classArray );
}
/** ----------------------------------------------------------------------------

    extension:  AFM
    author:     INTERNETHIC

    summary:    =DOCUMENT READY

----------------------------------------------------------------------------- */

/**
 * =DOCUMENT READY
----------------------------------------------------------------------------- */
var surveyPages = 1;
var currentPage = 1;
jQuery(document).ready(function() {
    // Page break survey system
    if( surveyPages > 1 )
    {
        for( i=2; i<=surveyPages; i++ )
        {
            $('#survey-page'+i).hide();
        }
        $('#survey-pagination').show();
    }
    $('.toggle-button').show();
    $('.toggle-button').each(function(){
        var number = $(this).attr('id').substr(7);
        toggleQuestion(number);
    });
    // Slide show
    $('#titre_plan_site a').addClass('ferme');
    $('#plan_affiche').hide();
    $('#titre_plan_site a').click(function() {
        $('#plan_affiche').slideToggle();
        $('#titre_plan_site a').toggleClass('ferme');
        return false;
    });
    $(".slideshow").height(330);
    $('.slideshow')
        .before('<div id="btn_defilement">')
        .cycle({
            fx: 'fade',
            timeout: 10000,
            pager:  '#btn_defilement',
            pagerAnchorBuilder: function(idx, slide) {
                return '<a href="#"></a>';
            }
        });

    $('.boucle .commentaire h4 span').addClass('ferme');
    $('.boucle .commentaire p').hide();
    $('.commentaire').click(function() {
        $('.boucle .commentaire p').slideToggle();
        $('.boucle .commentaire h4 span').toggleClass('ferme');
        return false;
    });
});

function switchPage( page, countPagebreak, pagebreakRequiredAnswersArguments, pagebreakIdArguments )
{
    pagin( page, countPagebreak, pagebreakRequiredAnswersArguments, pagebreakIdArguments ) ;
}

function pagin( page, countPagebreak, pagebreakRequiredAnswersArguments, pagebreakIdArguments )
{
    $('#survey-page'+currentPage).hide();
    currentPage = page;
    $('#survey-page'+currentPage).show();
    var pagination = 'Page ' + page + ' of ' + surveyPages + '<br />';
    if( currentPage < surveyPages )
    {
        pagination += '<a class="BtnSuivantTest" href="javascript://" onclick="switchPage(' + (page+1) + ',' + countPagebreak + ',' + pagebreakRequiredAnswersArguments + ',' + pagebreakIdArguments + ')">Suivante</a>';
    }
     if( currentPage > 1 )
    {
        pagination += '<a href="javascript://" onclick="switchPage(' + (page-1) +  ',' + countPagebreak + ',' + pagebreakRequiredAnswersArguments + ',' + pagebreakIdArguments + ')">Précédente</a> &nbsp; ';
    }
    $('#survey-pagination').html( pagination );
}

function ajaxCorrection()
{
    var message = 'Vous n\'avez pas comptabilisé assez de bonnes réponses pour passer à l\'étape suivante' ;
    var button = '<a href="/teste-jmo/Questionnaire">Retentez le questionnaire</a>' ;
    jQuery.ajax({
                type: 'POST',
                url : '/response/correction/',
                dataType: "html",
                success: function(msg){
                    if (msg)
                    {
                        console.log(msg);
                        message += '<br />' + msg ;
                        if( console )console.log( message ) ;
                        $('.class-test_survey').html( message + button ) ;
                        if( $('#DisableLogoutButtonHeader').length )
                        {
                            $('#DisableLogoutButtonHeader').attr( 'id', 'LogoutButtonHeader' ) ;
                            activeLogoutUserHeaderListener() ;
                        }
                    }
                }
            });
}

function checkSubmit()
{
    //make sure we can't submit a survey from other than the last page
    if( currentPage != surveyPages )
    {
        return false;
    }
    return true;
}

function toggleQuestion( question )
{
    $('#question-container-'+question).toggle();
    if( $('#question-container-'+question).is(":visible") )
    {
        $('#toggle-'+question).html( 'Hide question ' + question );
    } else {
        $('#toggle-'+question).html( 'Show question ' + question );
    }
}


