Вход Регистрация
Файл: upload/module/quiz/static/jscript/add.js
Строк: 518
<?php
$Behavior
.quizAddQuestionClick = function()
{
    $(
'#js_add_question').click(function()
    {
        
$Core.quiz.addQuestion();
        
        return 
false;
    });
    
    $(
'.add_class').click(function()
    {
        
/* $(this).parents('.answer_holder:first .answer_parent').each(function()        {}); */

        
var iCnt 0;
        $(
'.answer_holder:first .answer_parent').each(function()
        {
            
iCnt++;
        });

        $(
this).parents('.answer_holder:first').append('<div class="answer_parent"><input type="text" class="answer" value="' oTranslations['quiz.answer'] + ' ' + (iCnt 1) + '..." /> <a href="#" class="remove_class">' oTranslations['quiz.delete'] + '</a></div>');

        return 
false;
    });

    $(
'.remove_class').click(function()
    {
        $(
this).parents('.answer_parent:first').remove();

        var 
iCnt 0;
        $(
'.answer_holder:first .answer_parent').each(function()
        {
            
iCnt++;
            $(
this).find('.answer').val('' oTranslations['quiz.answer'] + ' ' iCnt '...');
        });

        return 
false;
    });    
}

$Core.quiz =
{
    
aParams: {},
    
iTotalQuestions 1,

    
init: function(aParams)
    {
        
this.aParams aParams;        
        if (
$Core.quiz.aParams.isAdd == true)
        {
            $(
document).ready(function()
            {
                if (
$Core.quiz.aParams.bErrors == false)
                {
                    for (
0$Core.quiz.aParams.iMinQuestionsi++)
                    {
                        
$Core.quiz.addQuestion();
                    }                    
                }                
            });
        }
    },

    
build: function()
    {

    },

    
addQuestion: function()
    {
        var 
iCntQuestions 0;
        $(
'.full_question_holder').each(function(){
            
iCntQuestions++;
        });
        
/* this conter has to be fixed in account of the hidden full_question_holder */
        
iCntQuestions iCntQuestions 1;
        if (
iCntQuestions >= $Core.quiz.aParams.iMaxQuestions)
        {
            
alert(oTranslations['quiz.you_have_reached_the_maximum_questions_allowed_per_quiz']);
            return 
false;
        }

        
/* append the full question */
        
$('#hiddenQuestion').find(':text').each(function(){
            $(
this).val('');
        });

        $(
'#js_quiz_container').append('' + $('#hiddenQuestion').html() + '');

        
$Core.quiz.fixQuestionsIndexes();
        
        $(
'.full_question_holder:last').find('.hdnCorrectAnswer:first').val('1');
        $(
'.full_question_holder:last').find('.p_2:first').addClass('correctAnswer');            
        

        return 
false;
    },

    
submitForm : function()
    {
        $(
'#js_quiz_layout_default').html('');
        return 
true;
    },

    
fixQuestionsIndexes : function()
    {
        var 
iCntQuestions 1;
        
/*
         * When editing a quiz, if you add another question this function breaks the
         * relation between the question id and the question text
         **/
         
var oDate = new Date();
         
// loop through every question:
        
$('#js_quiz_container').find('.full_question_holder').each(function(){
            
/* Count the answers inside this question */
            
var iCntAnswers 0;

            
/* change the name of the question input */
            
$(this).find('.question_title').attr('name''val[q][' + (iCntQuestions) + '][question]');

            
/* Fix values inside each answer */
            
$(this).find('.answer_parent').each(function()
            {
                
// set the name of the text input="text" properly                
                
$(this).find('.answer').attr('name''val[q][' + (iCntQuestions) + '][answers]['+iCntAnswers+'][answer]');
                $(
this).find('.hdnCorrectAnswer').attr('name''val[q][' iCntQuestions '][answers][' iCntAnswers '][is_correct]');
                $(
this).find('.answer').attr('name''val[q]['+iCntQuestions+'][answers]['+iCntAnswers+'][answer]');
                $(
this).find('.hdnAnswerId').attr('name''val[q]['+iCntQuestions+'][answers]['+iCntAnswers+'][answer_id]');
                $(
this).find('.hdnQuestionId').attr('name''val[q]['+iCntQuestions+'][answers]['+iCntAnswers+'][question_id]');
                if ($(
this).find('.hdnQuestionId').val() == undefined)
                {
                    $(
this).find('.hdnQuestionId').val(iCntQuestions iCntAnswers '123321');
                }
                
iCntAnswers++;
            });
            
/* fix the name for the title */
            
$(this).find('.question_title').attr('name''val[q]['+iCntQuestions+'][question]');
            
/* change the Question # for the current question number:
             this has to be after the increment of the questions counter*/
            
if (iCntQuestions <= $Core.quiz.aParams.iMinQuestions)
            {
                $(
this).find('.question_number_title').html($Core.quiz.aParams.sRequired oTranslations['quiz.question_count'].replace('{count}'iCntQuestions));
            }
            else
            {
                $(
this).find('.question_number_title').html(oTranslations['quiz.question_count'].replace('{count}'iCntQuestions));                
                $(
this).find("#removeQuestion").show();
            }
            
/* increase the counter for the questions*/
            
iCntQuestions++;
        }); 
/* end of looping through questions*/
        /* Set the tab index properly*/
        
var tabIndex 1;
        $(
'.full_question_holder').each(function() {
            $(
':input',this).not('input[type=hidden]').each(function() {
                if ($(
this).attr('type') == 'text' || $(this).attr('type') == 'textarea')
                {
                    $(
this).attr('tabindex'tabIndex);
                    
tabIndex++;
                }
            });
        });
        
        
    },
    
removeQuestion: function(oObj)
    {

        var 
iCntQuestions 0;
        $(
'.full_question_holder').each(function(){
            
iCntQuestions++;
        });
        
        
/* this counter is tweaked because there is a hidden full_question_holder: */
        
iCntQuestions iCntQuestions 1;
        if (
iCntQuestions <= $Core.quiz.aParams.iMinQuestions)
        {
            var 
sAlert '<div>' oTranslations['quiz.you_are_required_a_minimum_of_total_questions'].replace('{total}'$Core.quiz.aParams.iMinQuestions)+ '</div>';
            
sAlert =  $(sAlert).text();
            
alert(sAlert);
            return 
false;
        }
        
$Core.quiz.iTotalQuestions iCntQuestions;

        $(
oObj).parents('.full_question_holder:first').remove();
        
$Core.quiz.fixQuestionsIndexes();
        return 
false;
    },

    
appendAnswer: function(oObj)
    {
        var 
iCnt 0;
        var 
iTime = new Date();
        $(
oObj).parent('.answer_parent').parent('.answer_holder').find('.answer_parent').each(function(){
            
iCnt++;
        });
        if (
iCnt >= $Core.quiz.aParams.iMaxAnswers)
        {
            
alert(oTranslations['quiz.you_have_reached_the_maximum_answers_allowed_per_question']);
            return 
false;
        }
        
        var 
parentLast = $(oObj).parents('.answers_holder').find('.answer_parent:first').clone();
        if (
true)
        {
            
/* now we re-set the info for the new answer */
            
var iQuestionId parentLast.find('.hdnQuestionId').val();            
            var 
iNextAnswer iQuestionId parentLast.find('.hdnAnswerId').val() + '' 123 '' iTime.getMilliseconds();
            
            
parentLast.find('.hdnAnswerId').attr('name''val[q][' iQuestionId '][answers]['+iNextAnswer+'][answer_id]');
            
parentLast.find('.answer').attr('name''val[q][' iQuestionId '][answers]['+iNextAnswer+'][answer]');
            var 
sAnswerValue parentLast.find('.answer').val();
            
parentLast.find('.answer').val(' ');
            
parentLast.find('.hdnQuestionId').attr('name''val[q][' iQuestionId '][answers]['+iNextAnswer+'][question_id]');
            
parentLast.find('.hdnCorrectAnswer').attr('name''val[q][' iQuestionId '][answers]['+iNextAnswer+'][is_correct]');
            
parentLast.find('.hdnAnswerId').remove();
            
parentLast.find('.hdnCorrectAnswer').val('0');
        }

        
parentLast parentLast.html();
        if (
$Core.quiz.aParams.isAdd == false)
        {
            
parentLast.replace('"'+sAnswerValue+'"''');
        }
        
iCnt++;        
        $(
oObj).parent('.answer_parent').after('<div class="p_2 answer_parent" id="sample_' iNextAnswer '">' parentLast '</div>');
        $(
'#sample_' iNextAnswer).find('.answer').val(' ');
        
this.fixQuestionsIndexes();
        return 
false;
    },

    
deleteAnswer: function(oObj)
    {
        var 
iCnt 0;

        $(
oObj).parent('.answer_parent').parent('.answer_holder').find('.answer_parent').each(function(){
            
iCnt++;
        });

        if (
iCnt <= $Core.quiz.aParams.iMinAnswers)
        {
            var 
sAlert '<div>' oTranslations['quiz.you_are_required_a_minimum_of_total_answers_per_question'].replace('{total}'$Core.quiz.aParams.iMinAnswers) + '</div>';
            
sAlert =  $(sAlert).text();
            
alert(sAlert);
            return 
false;
        }
        $(
oObj).parents('.answer_parent:first').remove();
        return 
false;
    },

    
setCorrect: function(oObj)
    {
        $(
oObj).parent('.answer_parent').parent('.answer_holder').find('.answer_parent').each(function(){
            $(
this).removeClass('correctAnswer');
            $(
this).find('.hdnCorrectAnswer').attr('value'0);
        });


        $(
oObj).parent('.answer_parent').find('.hdnCorrectAnswer').val(1);
        $(
oObj).parent('.answer_parent').addClass('correctAnswer');

        return 
false;
    },

    
checkGetFriends : function(oObj)
    {
        
        if ($(
'#privacy').val() == 4)
        {
            
$Core.getFriends({
                
input'allow_list'
            
});
        }
    },

    
deleteImage : function(iQuiz)
    {
        if (
confirm(oTranslations['quiz.are_you_sure']))
        {
            $.
ajaxCall('quiz.deleteImage''iQuiz=' iQuiz);
        }
        return 
false;
    }
}

function 
plugin_addFriendToSelectList()
{
    $(
'#js_allow_list_input').show();
}
?>
Онлайн: 1
Реклама