Création de script Cgi

Fermé
cap10 - 15 juin 2008 à 09:37
 eric - 5 août 2008 à 21:17
Bonjour,
Je suis enseignant, mais pas informaticien. Je tente de mettre en place le Cms Joomla et de réaliser un site interactif pour mes élèves. Je voudrais utiliser la fonctionnalité Mail de mon Hotpotatoes 6.2 (C'est un générateur de QCM qui peut automatiquement s'adresser à un script Cgi pour m'envoyer des résultats). Je suis hébergé chez Céleonet, Php 5, Cgi... Le service technique m'a dit, aprés avoir compris ma requête, qu'il était possible de faire fonctionner HotPotatoes. Il m'a créé un répertoire cgi/bin, mais il est vide !
J'en fais quoi ?

J'ai paramétré HotPot avec: http://cap10.celeonet.fr/cgi-bin/FormMail.pl, mais c'est un peu au hasard !
Je comprendrais très bien de ne pas obtenir de réponse, vous avez certainement mieux et beaucoup à faire... Alors pardon d'avance ! Mais qui ne tente rien n'a rien. Et je voudrais réussir pour mes élèves, juste parvenir à ce qu'ils remplissent l'invite et que je recoive le résultat ! dur...

Pour info, mon hébergeur me dit: Pour utiliser des scripts CGI, Ils doivent être placés dans le répertoire cgi-bin de votre compte FTP.
Pour pouvoir exécuter un script CGI, il est nécessaire de changer les permissions sur les fichiers en faisant un CHMOD 755.

Je sais faire pour le chmod, mais avant d'utiliser ce fameux script, il faut le créer. Je ne sais pas faire. Il faut le placer quelque part. Où ? Il faut s'y adresser, comment ?

Pardon, je lance probablement ce mail dans le vide...

Et si vous le lisez seulement, merci.

Cap10.
A voir également:

2 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
15 juin 2008 à 11:07
Salut,

regarde ici par exemple
https://ent2d.ac-bordeaux.fr/disciplines/ses/
http://www.kanazawa-gu.ac.jp

Voir la page 30
0
Merci beaucoup de cette 1ere réponse. Tout de même pas facile de réellement trouver ce fameux scrip cgi, puis de faire que tout fonctionne... Des tas de pb subsistent, rien pour les spécialistes, pas évident pour moi !

J'essaie,

Je me répète, un grand merci initial...
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
15 juin 2008 à 13:20
En fait ce que je t'ai donné te permettra de configurer ton HotPotatoes qu'il cherche le script sur un autre site.
Donc dans les liens que je t'ai donné tu verras que tu n'as pas besoin de script sur ton server, puisqu'il sera chercher sur un serveur externe.

Sinon, je pourrais bien écrire un script cgi Perl pour envoyer un mail, mais je n'ai pas les champs du formulaire.
0
Merci,

disons que j'aimerais bien utiliser mon serveur (celeonet) pour moins dépendre de l'extérieur !
Je crois comprendre que cela m'impose, mais je me trompe peut-être:
1_ un script cgi adapté "déposé" dans le cgi-bin de mon serveur
2_ le chmod en 755 je crois...
3_ le "bon" paramétrage de mon logiciel de QCM
4_ Le bon usage de "tous" les chemin donnés par mon Hébergeur...

Tout cela, plus ce que j'oublie certainement, est compliqué... Pour moi ! Et fastidieux probablement pour qui sait faire !

Mais je suis perdu !

Pardon !

*************************************************************************
Les paramètres de mon hébergeur celeonet:

Serveur FTP : ftp3.celeonet.fr
FTP anonyme : ftp://downloads.votredomaine.com/rmnggflw
Accès public au FTP anonyme : http://www.lagoo.com

Serveur SQL : mysql6.celeonet.fr
Serveur POP : pop.celeonet.fr
Serveur IMAP : imap.celeonet.fr
Serveur SMTP : smtp.celeonet.fr

Système d'exploitation : Linux 2.4.20-28.9
Version d'Apache : 2.0.54 (Unix)
Version de MySQL : 4.1.21
Version de PHP : 4.4.8 / 5.2.5
» PHPinfo : PHP 4 / PHP 5
» PEARinfo : Cliquez ici
Version de GD : 2.0.28
Chemin Sendmail /usr/local/bin/sendmail -t -i
Chemin Perl usr/bin/perl
Chemin ImageMagick /usr/local/bin/convert
Chemin absolu : /home/www/cap10
Serveurs dns : dns1.celeonet.com 193.25.197.100 dns2.celeonet.com 193.25.197.104



*************************************************************************
A tout hasard, la source d'une page créé avec ce logiciel de QCM, mais ce logiciel comprend un champ à renseigner pour s'adresser au script !!!
Un autre champ pour donner l'adresse d'envoi...



<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en"><head><meta name="author" content="Created with Hot Potatoes by Half-Baked Software, registered to alain jan."></meta><meta name="keywords" content="Hot Potatoes, Hot Potatoes, Half-Baked Software, Windows, University of Victoria"></meta>

<link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
<meta name="DC:Creator" content="alain jan" />
<meta name="DC:Title" content="Généralités sur l'échauffement" />


<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>
Généralités sur l'échauffement
</title>

<!-- Made with executable version 6.2 Release 1 Build 0 -->

<!-- The following insertion allows you to add your own code directly to this head tag from the configuration screen -->



<style type="text/css">


/* This is the CSS stylesheet used in the exercise. */
/* Elements in square brackets are replaced by data based on configuration settings when the exercise is built. */

/* BeginCorePageCSS */

/* Made with executable version 6.2 Release 1 Build 0 */


/* Hack to hide a nested Quicktime player from IE, which can't handle it. */
* html object.MediaPlayerNotForIE {
display: none;
}

body{
font-family: Geneva,Arial;
background-color: #c0c0c0;
color: #000000;
background-image: url(image.gif);
margin-right: 5%;
margin-left: 5%;
font-size: small;
}

p{
text-align: left;
margin: 0px;
font-size: 100%;
}

table,div,span,td{
font-size: 100%;
color: #000000;
}

div.Titles{
padding: 0.5em;;
text-align: center;
color: #000000;
}

button{
font-family: Geneva,Arial;
font-size: 100%;
display: inline;
}

.ExerciseTitle{
font-size: 140%;
color: #000000;
}

.ExerciseSubtitle{
font-size: 120%;
color: #000000;
}

div.StdDiv{
background-color: #75c761;
text-align: center;
font-size: 100%;
color: #000000;
padding: 0.5em;
border-style: solid;
border-width: 1px 1px 1px 1px;
border-color: #000000;
margin-bottom: 1px;
}

/* EndCorePageCSS */

.RTLText{
text-align: right;
font-size: 150%;
direction: rtl;
font-family: "Simplified Arabic", "Traditional Arabic", "Times New Roman", Geneva,Arial;
}

.CentredRTLText{
text-align: center;
font-size: 150%;
direction: rtl;
font-family: "Simplified Arabic", "Traditional Arabic", "Times New Roman", Geneva,Arial;
}

button p.RTLText{
text-align: center;
}

.RTLGapBox{
text-align: right;
font-size: 150%;
direction: rtl;
font-family: "Times New Roman", Geneva,Arial;
}

.Guess{
font-weight: bold;
}

.CorrectAnswer{
font-weight: bold;
}

div#Timer{
padding: 0.25em;
margin-left: auto;
margin-right: auto;
text-align: center;
color: #000000;
}

span#TimerText{
padding: 0.25em;
border-width: 1px;
border-style: solid;
font-weight: bold;
display: none;
color: #000000;
}

span.Instructions{

}

div.ExerciseText{

}

.FeedbackText, .FeedbackText span.CorrectAnswer, .FeedbackText span.Guess, .FeedbackText span.Answer{
color: #000000;
}

.LeftItem{
font-size: 100%;
color: #000000;
text-align: left;
}

.RightItem{
font-weight: bold;
font-size: 100%;
color: #000000;
}

span.CorrectMark{

}

input, textarea{
font-family: Geneva,Arial;
font-size: 120%;
}

select{
font-size: 100%;
}

div.Feedback {
background-color: #c0c0c0;
left: 33%;
width: 34%;
top: 33%;
z-index: 1;
border-style: solid;
border-width: 1px;
padding: 5px;
text-align: center;
color: #000000;
position: absolute;
display: none;
font-size: 100%;
}




div.ExerciseDiv{
color: #000000;
}

/* JMatch flashcard styles */
table.FlashcardTable{
background-color: transparent;
color: #000000;
border-color: #000000;
margin-left: 5%;
margin-right: 5%;
margin-top: 2em;
margin-bottom: 2em;
width: 90%;
position: relative;
text-align: center;
padding: 0px;
}

table.FlashcardTable tr{
border-style: none;
margin: 0px;
padding: 0px;
background-color: #75c761;
}

table.FlashcardTable td.Showing{
font-size: 140%;
text-align: center;
width: 50%;
display: table-cell;
padding: 2em;
margin: 0px;
border-style: solid;
border-width: 1px;
color: #000000;
background-color: #75c761;
}

table.FlashcardTable td.Hidden{
display: none;
}

/* JMix styles */
div#SegmentDiv{
margin-top: 2em;
margin-bottom: 2em;
text-align: center;
}

a.ExSegment{
font-size: 120%;
font-weight: bold;
text-decoration: none;
color: #000000;
}

span.RemainingWordList{
font-style: italic;
}

div.DropLine {
position: absolute;
text-align: center;
border-bottom-style: solid;
border-bottom-width: 1px;
border-bottom-color: #000000;
width: 80%;
}

/* JCloze styles */

.ClozeWordList{
text-align: center;
font-weight: bold;
}

div.ClozeBody{
text-align: left;
margin-top: 2em;
margin-bottom: 2em;
line-height: 2.0
}

span.GapSpan{
font-weight: bold;
}

/* JCross styles */

table.CrosswordGrid{
margin: auto auto 1em auto;
border-collapse: collapse;
padding: 0px;
background-color: #000000;
}

table.CrosswordGrid tbody tr td{
width: 1.5em;
height: 1.5em;
text-align: center;
vertical-align: middle;
font-size: 140%;
padding: 1px;
margin: 0px;
border-style: solid;
border-width: 1px;
border-color: #000000;
color: #000000;
}

table.CrosswordGrid span{
color: #000000;
}

table.CrosswordGrid td.BlankCell{
background-color: #000000;
color: #000000;
}

table.CrosswordGrid td.LetterOnlyCell{
text-align: center;
vertical-align: middle;
background-color: #ffffff;
color: #000000;
font-weight: bold;
}

table.CrosswordGrid td.NumLetterCell{
text-align: left;
vertical-align: top;
background-color: #ffffff;
color: #000000;
padding: 1px;
font-weight: bold;
}

.NumLetterCellText{
cursor: pointer;
color: #000000;
}

.GridNum{
vertical-align: super;
font-size: 66%;
font-weight: bold;
text-decoration: none;
color: #000000;
}

.GridNum:hover, .GridNum:visited{
color: #000000;
}

table#Clues{
margin: auto;
vertical-align: top;
}

table#Clues td{
vertical-align: top;
}

table.ClueList{
margin: auto;
}

td.ClueNum{
text-align: right;
font-weight: bold;
vertical-align: top;
}

td.Clue{
text-align: left;
}

div#ClueEntry{
text-align: left;
margin-bottom: 1em;
}

/* Keypad styles */

div.Keypad{
text-align: center;
display: none; /* initially hidden, shown if needed */
margin-bottom: 0.5em;
}

div.Keypad button{
font-family: Geneva,Arial;
font-size: 120%;
background-color: #ffffff;
color: #000000;
width: 2em;
}

/* JQuiz styles */

div.QuestionNavigation{
text-align: center;
}

.QNum{
margin: 0em 1em 0.5em 1em;
font-weight: bold;
vertical-align: middle;
}

textarea{
font-family: Geneva,Arial;
}

.QuestionText{
text-align: left;
margin: 0px;
font-size: 100%;
}

.Answer{
font-size: 120%;
letter-spacing: 0.1em;
}

.PartialAnswer{
font-size: 120%;
letter-spacing: 0.1em;
color: #000000;
}

.Highlight{
color: #000000;
background-color: #ffff00;
font-weight: bold;
font-size: 120%;
}

ol.QuizQuestions{
text-align: left;
list-style-type: none;
}

li.QuizQuestion{
padding: 1em;
border-style: solid;
border-width: 0px 0px 1px 0px;
}

ol.MCAnswers{
text-align: left;
list-style-type: upper-alpha;
padding: 1em;
}

ol.MCAnswers li{
margin-bottom: 1em;
}

ol.MSelAnswers{
text-align: left;
list-style-type: lower-alpha;
padding: 1em;
}

div.ShortAnswer{
padding: 1em;
}

.FuncButton {
text-align: center;
border-style: solid;

border-left-color: #bae3b0;
border-top-color: #bae3b0;
border-right-color: #3a6330;
border-bottom-color: #3a6330;
color: #000000;
background-color: #75c761;

border-width: 2px;
padding: 3px 6px 3px 6px;
cursor: pointer;
}

.FuncButtonUp {
color: #75c761;
text-align: center;
border-style: solid;

border-left-color: #bae3b0;
border-top-color: #bae3b0;
border-right-color: #3a6330;
border-bottom-color: #3a6330;

background-color: #000000;
color: #75c761;
border-width: 2px;
padding: 3px 6px 3px 6px;
cursor: pointer;
}

.FuncButtonDown {
color: #75c761;
text-align: center;
border-style: solid;

border-left-color: #3a6330;
border-top-color: #3a6330;
border-right-color: #bae3b0;
border-bottom-color: #bae3b0;
background-color: #000000;
color: #75c761;

border-width: 2px;
padding: 3px 6px 3px 6px;
cursor: pointer;
}

/*BeginNavBarStyle*/

div.NavButtonBar{
background-color: #75c761;
text-align: center;
margin: 2px 0px 2px 0px;
clear: both;
font-size: 100%;
}

.NavButton {
border-style: solid;

border-left-color: #bae3b0;
border-top-color: #bae3b0;
border-right-color: #3a6330;
border-bottom-color: #3a6330;
background-color: #75c761;
color: #000000;

border-width: 2px;
cursor: pointer;
}

.NavButtonUp {
border-style: solid;

border-left-color: #bae3b0;
border-top-color: #bae3b0;
border-right-color: #3a6330;
border-bottom-color: #3a6330;
color: #75c761;
background-color: #000000;

border-width: 2px;
cursor: pointer;
}

.NavButtonDown {
border-style: solid;

border-left-color: #3a6330;
border-top-color: #3a6330;
border-right-color: #bae3b0;
border-bottom-color: #bae3b0;
color: #75c761;
background-color: #000000;

border-width: 2px;
cursor: pointer;
}

/*EndNavBarStyle*/

a{
color: #0000ff;
}

a:visited{
color: #0000cc;
}

a:hover{
color: #0000ff;
}

div.CardStyle {
position: absolute;
font-family: Geneva,Arial;
font-size: 100%;
padding: 5px;
border-style: solid;
border-width: 1px;
color: #000000;
background-color: #75c761;
left: -50px;
top: -50px;
overflow: visible;
}

.rtl{
text-align: right;
font-size: 140%;
}


</style>

<script type="text/javascript">

//<![CDATA[

<!--




function Client(){
//if not a DOM browser, hopeless
this.min = false; if (document.getElementById){this.min = true;};

this.ua = navigator.userAgent;
this.name = navigator.appName;
this.ver = navigator.appVersion;

//Get data about the browser
this.mac = (this.ver.indexOf('Mac') != -1);
this.win = (this.ver.indexOf('Windows') != -1);

//Look for Gecko
this.gecko = (this.ua.indexOf('Gecko') > 1);
if (this.gecko){
this.geckoVer = parseInt(this.ua.substring(this.ua.indexOf('Gecko')+6, this.ua.length));
if (this.geckoVer < 20020000){this.min = false;}
}

//Look for Firebird
this.firebird = (this.ua.indexOf('Firebird') > 1);

//Look for Safari
this.safari = (this.ua.indexOf('Safari') > 1);
if (this.safari){
this.gecko = false;
}

//Look for IE
this.ie = (this.ua.indexOf('MSIE') > 0);
if (this.ie){
this.ieVer = parseFloat(this.ua.substring(this.ua.indexOf('MSIE')+5, this.ua.length));
if (this.ieVer < 5.5){this.min = false;}
}

//Look for Opera
this.opera = (this.ua.indexOf('Opera') > 0);
if (this.opera){
this.operaVer = parseFloat(this.ua.substring(this.ua.indexOf('Opera')+6, this.ua.length));
if (this.operaVer < 7.04){this.min = false;}
}
if (this.min == false){
alert('Your browser may not be able to handle this page.');
}

//Special case for the horrible ie5mac
this.ie5mac = (this.ie&&this.mac&&(this.ieVer<6));
}

var C = new Client();

//for (prop in C){
// alert(prop + ': ' + C[prop]);
//}



//CODE FOR HANDLING NAV BUTTONS AND FUNCTION BUTTONS

//[strNavBarJS]
function NavBtnOver(Btn){
if (Btn.className != 'NavButtonDown'){Btn.className = 'NavButtonUp';}
}

function NavBtnOut(Btn){
Btn.className = 'NavButton';
}

function NavBtnDown(Btn){
Btn.className = 'NavButtonDown';
}
///strNavBarJS

function FuncBtnOver(Btn){
if (Btn.className != 'FuncButtonDown'){Btn.className = 'FuncButtonUp';}
}

function FuncBtnOut(Btn){
Btn.className = 'FuncButton';
}

function FuncBtnDown(Btn){
Btn.className = 'FuncButtonDown';
}

function FocusAButton(){
if (document.getElementById('CheckButton1') != null){
document.getElementById('CheckButton1').focus();
}
else{
if (document.getElementById('CheckButton2') != null){
document.getElementById('CheckButton2').focus();
}
else{
document.getElementsByTagName('button')[0].focus();
}
}
}




//CODE FOR HANDLING DISPLAY OF POPUP FEEDBACK BOX

var topZ = 1000;

function ShowMessage(Feedback){
var Output = Feedback + '<br /><br />';
document.getElementById('FeedbackContent').innerHTML = Output;
var FDiv = document.getElementById('FeedbackDiv');
topZ++;
FDiv.style.zIndex = topZ;
FDiv.style.top = TopSettingWithScrollOffset(30) + 'px';

FDiv.style.display = 'block';

ShowElements(false, 'input');
ShowElements(false, 'select');
ShowElements(false, 'object');
ShowElements(true, 'object', 'FeedbackContent');

//Focus the OK button
setTimeout("document.getElementById('FeedbackOKButton').focus()", 50);

//
}

function ShowElements(Show, TagName, ContainerToReverse){
// added third argument to allow objects in the feedback box to appear
//IE bug -- hide all the form elements that will show through the popup
//FF on Mac bug : doesn't redisplay objects whose visibility is set to visible
//unless the object's display property is changed

//get container object (by Id passed in, or use document otherwise)
TopNode = document.getElementById(ContainerToReverse);
var Els;
if (TopNode != null) {
Els = TopNode.getElementsByTagName(TagName);
} else {
Els = document.getElementsByTagName(TagName);
}

for (var i=0; i<Els.length; i++){
if (TagName == "object") {
//manipulate object elements in all browsers
if (Show == true){
Els[i].style.visibility = 'visible';
//get Mac FireFox to manipulate display, to force screen redraw
if (C.mac && C.gecko) {Els[i].style.display = '';}
}
else{
Els[i].style.visibility = 'hidden';
if (C.mac && C.gecko) {Els[i].style.display = 'none';}
}
}
else {
// tagName is either input or select (that is, Form Elements)
// ie6 has a problem with Form elements, so manipulate those
if (C.ie) {
if (C.ieVer < 7) {
if (Show == true){
Els[i].style.visibility = 'visible';
}
else{
Els[i].style.visibility = 'hidden';
}
}
}
}
}
}



function HideFeedback(){
document.getElementById('FeedbackDiv').style.display = 'none';
ShowElements(true, 'input');
ShowElements(true, 'select');
ShowElements(true, 'object');
if (Finished == true){
Finish();
}
}


//GENERAL UTILITY FUNCTIONS AND VARIABLES

//PAGE DIMENSION FUNCTIONS
function PageDim(){
//Get the page width and height
this.W = 600;
this.H = 400;
this.W = document.getElementsByTagName('body')[0].clientWidth;
this.H = document.getElementsByTagName('body')[0].clientHeight;
}

var pg = null;

function GetPageXY(El) {
var XY = {x: 0, y: 0};
while(El){
XY.x += El.offsetLeft;
XY.y += El.offsetTop;
El = El.offsetParent;
}
return XY;
}

function GetScrollTop(){
if (typeof(window.pageYOffset) == 'number'){
return window.pageYOffset;
}
else{
if ((document.body)&&(document.body.scrollTop)){
return document.body.scrollTop;
}
else{
if ((document.documentElement)&&(document.documentElement.scrollTop)){
return document.documentElement.scrollTop;
}
else{
return 0;
}
}
}
}

function GetViewportHeight(){
if (typeof window.innerHeight != 'undefined'){
return window.innerHeight;
}
else{
if (((typeof document.documentElement != 'undefined')&&(typeof document.documentElement.clientHeight !=
'undefined'))&&(document.documentElement.clientHeight != 0)){
return document.documentElement.clientHeight;
}
else{
return document.getElementsByTagName('body')[0].clientHeight;
}
}
}

function TopSettingWithScrollOffset(TopPercent){
var T = Math.floor(GetViewportHeight() * (TopPercent/100));
return GetScrollTop() + T;
}

//CODE FOR AVOIDING LOSS OF DATA WHEN BACKSPACE KEY INVOKES history.back()
var InTextBox = false;

function SuppressBackspace(e){
if (InTextBox == true){return;}
if (C.ie) {
thisKey = window.event.keyCode;
}
else {
thisKey = e.keyCode;
}

var Suppress = false;

if (thisKey == 8) {
Suppress = true;
}

if (Suppress == true){
if (C.ie){
window.event.returnValue = false;
window.event.cancelBubble = true;
}
else{
e.preventDefault();
}
}
}

if (C.ie){
document.attachEvent('onkeydown',SuppressBackspace);
window.attachEvent('onkeydown',SuppressBackspace);
}
else{
if (window.addEventListener){
window.addEventListener('keypress',SuppressBackspace,false);
}
}

function ReduceItems(InArray, ReduceToSize){
var ItemToDump=0;
var j=0;
while (InArray.length > ReduceToSize){
ItemToDump = Math.floor(InArray.length*Math.random());
InArray.splice(ItemToDump, 1);
}
}

function Shuffle(InArray){
var Num;
var Temp = new Array();
var Len = InArray.length;

var j = Len;

for (var i=0; i<Len; i++){
Temp[i] = InArray[i];
}

for (i=0; i<Len; i++){
Num = Math.floor(j * Math.random());
InArray[i] = Temp[Num];

for (var k=Num; k < (j-1); k++) {
Temp[k] = Temp[k+1];
}
j--;
}
return InArray;
}

function WriteToInstructions(Feedback) {
document.getElementById('InstructionsDiv').innerHTML = Feedback;

}




function EscapeDoubleQuotes(InString){
return InString.replace(/"/g, '"')
}

function TrimString(InString){
var x = 0;

if (InString.length != 0) {
while ((InString.charAt(InString.length - 1) == '\u0020') || (InString.charAt(InString.length - 1) == '\u000A') || (InString.charAt(InString.length - 1) == '\u000D')){
InString = InString.substring(0, InString.length - 1)
}

while ((InString.charAt(0) == '\u0020') || (InString.charAt(0) == '\u000A') || (InString.charAt(0) == '\u000D')){
InString = InString.substring(1, InString.length)
}

while (InString.indexOf(' ') != -1) {
x = InString.indexOf(' ')
InString = InString.substring(0, x) + InString.substring(x+1, InString.length)
}

return InString;
}

else {
return '';
}
}

function FindLongest(InArray){
if (InArray.length < 1){return -1;}

var Longest = 0;
for (var i=1; i<InArray.length; i++){
if (InArray[i].length > InArray[Longest].length){
Longest = i;
}
}
return Longest;
}

//UNICODE CHARACTER FUNCTIONS
function IsCombiningDiacritic(CharNum){
var Result = (((CharNum >= 0x0300)&&(CharNum <= 0x370))||((CharNum >= 0x20d0)&&(CharNum <= 0x20ff)));
Result = Result || (((CharNum >= 0x3099)&&(CharNum <= 0x309a))||((CharNum >= 0xfe20)&&(CharNum <= 0xfe23)));
return Result;
}

function IsCJK(CharNum){
return ((CharNum >= 0x3000)&&(CharNum < 0xd800));
}

//SETUP FUNCTIONS
//BROWSER WILL REFILL TEXT BOXES FROM CACHE IF NOT PREVENTED
function ClearTextBoxes(){
var NList = document.getElementsByTagName('input');
for (var i=0; i<NList.length; i++){
if ((NList[i].id.indexOf('Guess') > -1)||(NList[i].id.indexOf('Gap') > -1)){
NList[i].value = '';
}
if (NList[i].id.indexOf('Chk') > -1){
NList[i].checked = '';
}
}
}

//EXTENSION TO ARRAY OBJECT
function Array_IndexOf(Input){
var Result = -1;
for (var i=0; i<this.length; i++){
if (this[i] == Input){
Result = i;
}
}
return Result;
}
Array.prototype.indexOf = Array_IndexOf;

//IE HAS RENDERING BUG WITH BOTTOM NAVBAR
function RemoveBottomNavBarForIE(){
if ((C.ie)&&(document.getElementById('Reading') != null)){
if (document.getElementById('BottomNavBar') != null){
document.getElementById('TheBody').removeChild(document.getElementById('BottomNavBar'));
}
}
}




//HOTPOTNET-RELATED CODE

var HPNStartTime = (new Date()).getTime();
var SubmissionTimeout = 30000;
var Detail = ''; //Global that is used to submit tracking data

function Finish(){
//If there's a form, fill it out and submit it
if (document.store != null){
Frm = document.store;
Frm.starttime.value = HPNStartTime;
Frm.endtime.value = (new Date()).getTime();
Frm.mark.value = Score;
Frm.detail.value = Detail;
Frm.submit();
}
}





//JQUIZ CORE JAVASCRIPT CODE

var CurrQNum = 0;
var CorrectIndicator = 'vrai';
var IncorrectIndicator = 'Faux';
var YourScoreIs = 'Votre score est:';
var ContinuousScoring = true;
var CorrectFirstTime = 'Réponse trouvée du premier coup !';
var ShowCorrectFirstTime = false;
var ShuffleQs = true;
var ShuffleAs = true;
var DefaultRight = 'C\'est exact!';
var DefaultWrong = 'Désolé. Essayez de nouveau.';
var QsToShow = 10;
var Score = 0;
var Finished = false;
var Qs = null;
var QArray = new Array();
var ShowingAllQuestions = false;
var ShowAllQuestionsCaption = 'Afficher toutes les questions';
var ShowOneByOneCaption = 'Afficher les questions une à une';
var State = new Array();
var Feedback = '';
var TimeOver = false;
var strInstructions = '';
var Locked = false;

//The following variable can be used to add a message explaining that
//the question is finished, so no further marking will take place.
var strQuestionFinished = '';

function CompleteEmptyFeedback(){
var QNum, ANum;
for (QNum=0; QNum<I.length; QNum++){
//Only do this if not multi-select
if (I[QNum][2] != '3'){
for (ANum = 0; ANum<I[QNum][3].length; ANum++){
if (I[QNum][3][ANum][1].length < 1){
if (I[QNum][3][ANum][2] > 0){
I[QNum][3][ANum][1] = DefaultRight;
}
else{
I[QNum][3][ANum][1] = DefaultWrong;
}
}
}
}
}
}

function SetUpQuestions(){
var AList = new Array();
var QList = new Array();
var i, j;
Qs = document.getElementById('Questions');
while (Qs.getElementsByTagName('li').length > 0){
QList.push(Qs.removeChild(Qs.getElementsByTagName('li')[0]));
}
var DumpItem = 0;
if (QsToShow > QList.length){
QsToShow = QList.length;
}
while (QsToShow < QList.length){
DumpItem = Math.floor(QList.length*Math.random());
for (j=DumpItem; j<(QList.length-1); j++){
QList[j] = QList[j+1];
}
QList.length = QList.length-1;
}
if (ShuffleQs == true){
QList = Shuffle(QList);
}
if (ShuffleAs == true){
var As;
for (var i=0; i<QList.length; i++){
As = QList[i].getElementsByTagName('ol')[0];
if (As != null){
AList.length = 0;
while (As.getElementsByTagName('li').length > 0){
AList.push(As.removeChild(As.getElementsByTagName('li')[0]));
}
AList = Shuffle(AList);
for (j=0; j<AList.length; j++){
As.appendChild(AList[j]);
}
}
}
}

for (i=0; i<QList.length; i++){
Qs.appendChild(QList[i]);
QArray[QArray.length] = QList[i];
}

//Show the first item
QArray[0].style.display = '';

//Now hide all except the first item
for (i=1; i<QArray.length; i++){
QArray[i].style.display = 'none';
}
SetQNumReadout();

SetFocusToTextbox();
}

function SetFocusToTextbox(){
//if there's a textbox, set the focus in it
if (QArray[CurrQNum].getElementsByTagName('input')[0] != null){
QArray[CurrQNum].getElementsByTagName('input')[0].focus();
//and show a keypad if there is one
if (document.getElementById('CharacterKeypad') != null){
document.getElementById('CharacterKeypad').style.display = 'block';
}
}
else{
if (QArray[CurrQNum].getElementsByTagName('textarea')[0] != null){
QArray[CurrQNum].getElementsByTagName('textarea')[0].focus();
//and show a keypad if there is one
if (document.getElementById('CharacterKeypad') != null){
document.getElementById('CharacterKeypad').style.display = 'block';
}
}
//This added for 6.0.4.11: hide accented character buttons if no textbox
else{
if (document.getElementById('CharacterKeypad') != null){
document.getElementById('CharacterKeypad').style.display = 'none';
}
}
}
}

function ChangeQ(ChangeBy){
//The following line prevents moving to another question until the current
//question is answered correctly. Uncomment it to enable this behaviour.
// if (State[CurrQNum][0] == -1){return;}
if (((CurrQNum + ChangeBy) < 0)||((CurrQNum + ChangeBy) >= QArray.length)){return;}
QArray[CurrQNum].style.display = 'none';
CurrQNum += ChangeBy;
QArray[CurrQNum].style.display = '';
//Undocumented function added 10/12/2004
ShowSpecialReadingForQuestion();
SetQNumReadout();
SetFocusToTextbox();
}

var HiddenReadingShown = false;
function ShowSpecialReadingForQuestion(){
//Undocumented function for showing specific reading text elements which change with each question
//Added on 10/12/2004
if (document.getElementById('ReadingDiv') != null){
if (HiddenReadingShown == true){
document.getElementById('ReadingDiv').innerHTML = '';
}
if (QArray[CurrQNum] != null){
//Fix for 6.0.4.25
var Children = QArray[CurrQNum].getElementsByTagName('div');
for (var i=0; i<Children.length; i++){
if (Children[i].className=="HiddenReading"){
document.getElementById('ReadingDiv').innerHTML = Children[i].innerHTML;
HiddenReadingShown = true;
//Hide the ShowAllQuestions button to avoid confusion
if (document.getElementById('ShowMethodButton') != null){
document.getElementById('ShowMethodButton').style.display = 'none';
}
}
}
}
}
}

function SetQNumReadout(){
document.getElementById('QNumReadout').innerHTML = (CurrQNum+1) + ' / ' + QArray.length;
if ((CurrQNum+1) >= QArray.length){
if (document.getElementById('NextQButton') != null){
document.getElementById('NextQButton').style.visibility = 'hidden';
}
}
else{
if (document.getElementById('NextQButton') != null){
document.getElementById('NextQButton').style.visibility = 'visible';
}
}
if (CurrQNum <= 0){
if (document.getElementById('PrevQButton') != null){
document.getElementById('PrevQButton').style.visibility = 'hidden';
}
}
else{
if (document.getElementById('PrevQButton') != null){
document.getElementById('PrevQButton').style.visibility = 'visible';
}
}
}

var I=new Array();
I[0]=new Array();I[0][0]=100;
I[0][1]='';
I[0][2]='0';
I[0][3]=new Array();
I[0][3][0]=new Array('Pour maintenir 37,5 degr\u00E9s dans l\'organisme.','',0,0,1);
I[0][3][1]=new Array('Pour se fatiguer avant l\'effort.','',0,0,1);
I[0][3][2]=new Array('Pour augmenter l\'efficacit\u00E9 et la s\u00E9curit\u00E9.','',1,100,1);
I[1]=new Array();I[1][0]=100;
I[1][1]='';
I[1][2]='0';
I[1][3]=new Array();
I[1][3][0]=new Array('5%.','',0,0,1);
I[1][3][1]=new Array('40%.','',0,0,1);
I[1][3][2]=new Array('20%.','',1,100,1);
I[1][3][3]=new Array('Elle augmente peu.','',0,0,1);
I[2]=new Array();I[2][0]=100;
I[2][1]='';
I[2][2]='0';
I[2][3]=new Array();
I[2][3][0]=new Array('39\u00B0. ','',1,100,1);
I[2][3][1]=new Array('37,5\u00B0. ','',0,0,1);
I[2][3][2]=new Array('38\u00B0. ','',0,0,1);
I[3]=new Array();I[3][0]=100;
I[3][1]='';
I[3][2]='0';
I[3][3]=new Array();
I[3][3][0]=new Array('D\'augmenter la pr\u00E9cision des gestes. ','',0,0,1);
I[3][3][1]=new Array('De diminuer la pr\u00E9cision des gestes. ','',0,0,1);
I[3][3][2]=new Array('D\'\u00EAtre plus pr\u00E9cis durant l\'effort et de mieux r\u00E9cup\u00E9rer apr\u00E8s l\'effort. ','',1,100,1);
I[4]=new Array();I[4][0]=100;
I[4][1]='';
I[4][2]='0';
I[4][3]=new Array();
I[4][3][0]=new Array('S\'\u00E9tirer avant tout. ','',0,0,1);
I[4][3][1]=new Array('Pratiquer d\'abord une activit\u00E9 comme la course ou le saut \u00E0 la corde par exemple. ','',1,100,1);
I[4][3][2]=new Array('Faire seulement des abdominaux. ','',0,0,1);
I[5]=new Array();I[5][0]=100;
I[5][1]='';
I[5][2]='0';
I[5][3]=new Array();
I[5][3][0]=new Array('5 minutes. ','',0,0,1);
I[5][3][1]=new Array('30 secondes. ','',1,100,1);
I[5][3][2]=new Array('2 minutes. ','',0,0,1);
I[6]=new Array();I[6][0]=100;
I[6][1]='';
I[6][2]='0';
I[6][3]=new Array();
I[6][3][0]=new Array('Lent et associ\u00E9 \u00E0 la respiration. ','',1,100,1);
I[6][3][1]=new Array('Rapide en bloquant la respiration. ','',0,0,1);
I[6][3][2]=new Array('Rapide en soufflant. ','',0,0,1);
I[7]=new Array();I[7][0]=100;
I[7][1]='';
I[7][2]='0';
I[7][3]=new Array();
I[7][3][0]=new Array('Rester peu couvert. ','',0,0,1);
I[7][3][1]=new Array('Suer \u00E9norm\u00E9ment. ','',0,0,1);
I[7][3][2]=new Array('Se couvrir en fonction de la temp\u00E9rature ext\u00E9rieure, pour permettre l\'augmentation de temp\u00E9rature du corps. ','',1,100,1);
I[8]=new Array();I[8][0]=100;
I[8][1]='';
I[8][2]='0';
I[8][3]=new Array();
I[8][3][0]=new Array('Se fatiguer avant l\'effort. ','',0,0,1);
I[8][3][1]=new Array('Augmenter sa s\u00E9curit\u00E9 et son efficacit\u00E9 pour l\'effort \u00E0 venir.','',1,100,1);
I[8][3][2]=new Array('Avoir soif. ','',0,0,1);
I[9]=new Array();I[9][0]=100;
I[9][1]='';
I[9][2]='0';
I[9][3]=new Array();
I[9][3][0]=new Array('R\u00E9sister \u00E0 l\'envie de boire. ','',0,0,1);
I[9][3][1]=new Array('Avoir soif. ','',0,0,1);
I[9][3][2]=new Array('Boire r\u00E9guli\u00E8rement, mais en petite quantit\u00E9. ','',1,100,1);


function StartUp(){
RemoveBottomNavBarForIE();

//If there's only one question, no need for question navigation controls
if (QsToShow < 2){
document.getElementById('QNav').style.display = 'none';
}

//Stash the instructions so they can be redisplayed
strInstructions = document.getElementById('InstructionsDiv').innerHTML;




GetUserName();




CompleteEmptyFeedback();

SetUpQuestions();
ClearTextBoxes();
CreateStatusArray();


setTimeout('StartTimer()', 50);


//Check search string for q parameter
if (document.location.search.length > 0){
if (ShuffleQs == false){
var JumpTo = parseInt(document.location.search.substring(1,document.location.search.length))-1;
if (JumpTo <= QsToShow){
ChangeQ(JumpTo);
}
}
}
//Undocumented function added 10/12/2004
ShowSpecialReadingForQuestion();
}

function ShowHideQuestions(){
FuncBtnOut(document.getElementById('ShowMethodButton'));
document.getElementById('ShowMethodButton').style.display = 'none';
if (ShowingAllQuestions == false){
for (var i=0; i<QArray.length; i++){
QArray[i].style.display = '';
}
document.getElementById('Questions').style.listStyleType = 'decimal';
document.getElementById('OneByOneReadout').style.display = 'none';
document.getElementById('ShowMethodButton').innerHTML = ShowOneByOneCaption;
ShowingAllQuestions = true;
}
else{
for (var i=0; i<QArray.length; i++){
if (i != CurrQNum){
QArray[i].style.display = 'none';
}
}
document.getElementById('Questions').style.listStyleType = 'none';
document.getElementById('OneByOneReadout').style.display = '';
document.getElementById('ShowMethodButton').innerHTML = ShowAllQuestionsCaption;
ShowingAllQuestions = false;
}
document.getElementById('ShowMethodButton').style.display = 'inline';
}

function CreateStatusArray(){
var QNum, ANum;
//For each item in the item array
for (QNum=0; QNum<I.length; QNum++){
//Check if the question still exists (hasn't been nuked by showing a random selection)
if (document.getElementById('Q_' + QNum) != null){
State[QNum] = new Array();
State[QNum][0] = -1; //Score for this q; -1 shows question not done yet
State[QNum][1] = new Array(); //answers
for (ANum = 0; ANum<I[QNum][3].length; ANum++){
State[QNum][1][ANum] = 0; //answer not chosen yet; when chosen, will store its position in the series of choices
}
State[QNum][2] = 0; //tries at this q so far
State[QNum][3] = 0; //incrementing percent-correct values of selected answers
State[QNum][4] = 0; //penalties incurred for hints
State[QNum][5] = ''; //Sequence of answers chosen by number
}
else{
State[QNum] = null;
}
}
}



function CheckMCAnswer(QNum, ANum, Btn){
//if question doesn't exist, bail
if (State[QNum].length < 1){return;}

//Get the feedback
Feedback = I[QNum][3][ANum][1];

//Now show feedback and bail if question already complete
if (State[QNum][0] > -1){
//Add an extra message explaining that the question
// is finished if defined by the user
if (strQuestionFinished.length > 0){Feedback += '<br />' + strQuestionFinished;}
//Show the feedback
ShowMessage(Feedback);
return;
}

//Hide the button while processing
Btn.style.display = 'none';

//Increment the number of tries
State[QNum][2]++;

//Add the percent-correct value of this answer
State[QNum][3] += I[QNum][3][ANum][3];

//Store the try number in the answer part of the State array, for tracking purposes
State[QNum][1][ANum] = State[QNum][2];
if (State[QNum][5].length > 0){State[QNum][5] += ' | ';}
State[QNum][5] += String.fromCharCode(65+ANum);

//Should this answer be accepted as correct?
if (I[QNum][3][ANum][2] < 1){
//It's wrong

//Mark the answer
Btn.innerHTML = IncorrectIndicator;

//Remove any previous score unless exercise is finished (6.0.3.8+)
if (Finished == false){
WriteToInstructions(strInstructions);
}

//Check whether this leaves just one MC answer unselected, in which case the Q is terminated
var RemainingAnswer = FinalAnswer(QNum);
if (RemainingAnswer > -1){
//Behave as if the last answer had been selected, but give no credit for it
//Increment the number of tries
State[QNum][2]++;

//Calculate the score for this question
CalculateMCQuestionScore(QNum);

//Get the overall score and add it to the feedback
CalculateOverallScore();
if ((ContinuousScoring == true)||(Finished == true)){
Feedback += '<br />' + YourScoreIs + ' ' + Score + '%.';
WriteToInstructions(YourScoreIs + ' ' + Score + '%.');
}
}
}
else{
//It's right
//Mark the answer
Btn.innerHTML = CorrectIndicator;

//Calculate the score for this question
CalculateMCQuestionScore(QNum);

//Get the overall score and add it to the feedback
if (ContinuousScoring == true){
CalculateOverallScore();
if ((ContinuousScoring == true)||(Finished == true)){
Feedback += '<br />' + YourScoreIs + ' ' + Score + '%.';
WriteToInstructions(YourScoreIs + ' ' + Score + '%.');
}
}
}

//Show the button again
Btn.style.display = 'inline';

//Finally, show the feedback
ShowMessage(Feedback);

//Check whether all questions are now done
CheckFinished();
}

function CalculateMCQuestionScore(QNum){
var Tries = State[QNum][2] + State[QNum][4]; //include tries and hint penalties
var PercentCorrect = State[QNum][3];
var TotAns = GetTotalMCAnswers(QNum);
var HintPenalties = State[QNum][4];

//Make sure it's not already complete

if (State[QNum][0] < 0){
//Allow for Hybrids
if (HintPenalties >= 1){
State[QNum][0] = 0;
}
else{
//This line calculates the score for this question
if (TotAns == 1){
State[QNum][0] = 1;
}
else{
State[QNum][0] = ((TotAns-((Tries*100)/State[QNum][3]))/(TotAns-1));
}
}
//Fix for Safari bug added for version 6.0.3.42 (negative infinity problem)
if ((State[QNum][0] < 0)||(State[QNum][0] == Number.NEGATIVE_INFINITY)){
State[QNum][0] = 0;
}
}
}

function GetTotalMCAnswers(QNum){
var Result = 0;
for (var ANum=0; ANum<I[QNum][3].length; ANum++){
if (I[QNum][3][ANum][4] == 1){ //This is an MC answer
Result++;
}
}
return Result;
}

function FinalAnswer(QNum){
var UnchosenAnswers = 0;
var FinalAnswer = -1;
for (var ANum=0; ANum<I[QNum][3].length; ANum++){
if (I[QNum][3][ANum][4] == 1){ //This is an MC answer
if (State[QNum][1][ANum] < 1){ //This answer hasn't been chosen yet
UnchosenAnswers++;
FinalAnswer = ANum;
}
}
}
if (UnchosenAnswers == 1){
return FinalAnswer;
}
else{
return -1;
}
}





function CalculateOverallScore(){
var TotalWeighting = 0;
var TotalScore = 0;

for (var QNum=0; QNum<State.length; QNum++){
if (State[QNum] != null){
if (State[QNum][0] > -1){
TotalWeighting += I[QNum][0];
TotalScore += (I[QNum][0] * State[QNum][0]);
}
}
}
if (TotalWeighting > 0){
Score = Math.floor((TotalScore/TotalWeighting)*100);
}
else{
//if TotalWeighting is 0, no questions so far have any value, so
//no penalty should be shown.
Score = 100;
}
}

function CheckFinished(){
var FB = '';
var AllDone = true;
for (var QNum=0; QNum<State.length; QNum++){
if (State[QNum] != null){
if (State[QNum][0] < 0){
AllDone = false;
}
}
}
if (AllDone == true){

//Report final score and submit if necessary
CalculateOverallScore();
FB = YourScoreIs + ' ' + Score + '%.';
if (ShowCorrectFirstTime == true){
var CFT = 0;
for (QNum=0; QNum<State.length; QNum++){
if (State[QNum] != null){
if (State[QNum][0] >= 1){
CFT++;
}
}
}
FB += '<br />' + CorrectFirstTime + ' ' + CFT + '/' + QsToShow;
}
WriteToInstructions(FB);

Finished == true;

window.clearInterval(Interval);




TimeOver = true;
Locked = true;


setTimeout('SendResults(' + Score + ')', 50);


Finished = true;
Detail = '<?xml version="1.0"?><hpnetresult><fields>';
for (QNum=0; QNum<State.length; QNum++){
if (State[QNum] != null){
if (State[QNum][5].length > 0){
Detail += '<field><fieldname>Question #' + (QNum+1) + '</fieldname><fieldtype>question-tracking</fieldtype><fieldlabel>Q ' + (QNum+1) + '</fieldlabel><fieldlabelid>QuestionTrackingField</fieldlabelid><fielddata>' + State[QNum][5] + '</fielddata></field>';
}
}
}
Detail += '</fields></hpnetresult>';
setTimeout('Finish()', SubmissionTimeout);
}

}


function TimesUp(){
document.getElementById('Timer').innerHTML = 'Votre temps s\'est écoulé!';

TimeOver = true;
Finished = true;
ShowMessage('Votre temps s\'est écoulé!');

//Set all remaining scores to 0
for (var QNum=0; QNum<State.length; QNum++){
if (State[QNum] != null){
if (State[QNum][0] < 0){
State[QNum][0] = 0;
}
}
}
CheckFinished();
}








//CODE FOR HANDLING TIMER
//Timer code
var Seconds = 3;
var Interval = null;

function StartTimer(){
Interval = window.setInterval('DownTime()',1000);
document.getElementById('TimerText').style.display = 'inline';
}

function DownTime(){
var ss = Seconds % 60;
if (ss<10){
ss='0' + ss + '';
}

var mm = Math.floor(Seconds / 60);

if (document.getElementById('Timer') == null){
return;
}

document.getElementById('TimerText').innerHTML = mm + ':' + ss;
if (Seconds < 1){
window.clearInterval(Interval);
TimeOver = true;
TimesUp();
}
Seconds--;
}







//CODE FOR HANDLING SENDING OF RESULTS

var UserName = '';
var StartTime = (new Date()).toLocaleString();

var ResultForm = '<html><body><form name="Results" action="http://usr/local/bin/convert/cgi-bin/formmail-vf.pl" method="post" enctype="x-www-form-encoded">';
ResultForm += '<input type="hidden" name="recipient" value="cap10cap10@gmail.com"></input>';
ResultForm += '<input type="hidden" name="subject" value="Généralités sur l\'échauffement"></input>';
ResultForm += '<input type="hidden" name="Exercise" value="Généralités sur l\'échauffement"></input>';
ResultForm += '<input type="hidden" name="realname" value=""></input>';
ResultForm += '<input type="hidden" name="Score" value=""></input>';
ResultForm += '<input type="hidden" name="Start_Time" value=""></input>';
ResultForm += '<input type="hidden" name="End_Time" value=""></input>';
ResultForm += '<input type="hidden" name="title" value="Thanks!"></input>';
ResultForm += '<input type="hidden" name="bgcolor" value="#c0c0c0"></input>';
ResultForm += '<input type="hidden" name="text_color" value="#000000"></input>';
ResultForm += '<input type="hidden" name="sort" value="order:realname,Exercise,Score,Start_Time,End_Time"></input>';
ResultForm += '</form></body></html>';

function GetUserName(){
UserName = prompt('Veuillez entrer votre nom.','');
UserName += '';
if ((UserName.substring(0,4) == 'null')||(UserName.length < 1)){
UserName = prompt('Veuillez entrer votre nom.','');
UserName += '';
if ((UserName.substring(0,4) == 'null')||(UserName.length < 1)){
history.back();
}
}
}

function SendResults(Score){
var today = new Date;
var NewName = '' + today.getTime();
var NewWin = window.open('', NewName, 'toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no,,width=400,height=300');

//If user has prevented popups, no way to proceed -- exit
if (NewWin == null){
return;
}

NewWin.document.clear();
NewWin.document.open();
NewWin.document.write(ResultForm);
NewWin.document.close();
NewWin.document.Results.Score.value = Score + '%';
NewWin.document.Results.realname.value = UserName;
NewWin.document.Results.End_Time.value = (new Date()).toLocaleString();
NewWin.document.Results.Start_Time.value = StartTime;
NewWin.document.Results.submit();
}



//-->

//]]>

</script>


</head>

<body onload="StartUp()" id="TheBody" >

<!-- BeginTopNavButtons -->



<!-- EndTopNavButtons -->

<div class="Titles">
<h2 class="ExerciseTitle">Généralités sur l'échauffement</h2>

<h3 class="ExerciseSubtitle">Cliquer sur la bonne réponse</h3>


<div id="Timer"><span id="TimerText">  </span></div>


</div>

<div id="InstructionsDiv" class="StdDiv">
<div id="Instructions">Il faut cliquer sur la bonne réponse !</div>
</div>




<div id="MainDiv" class="StdDiv">

<div id="QNav" class="QuestionNavigation">

<p style="text-align: right;">
<button id="ShowMethodButton" class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="ShowHideQuestions(); return false;">Afficher toutes les questions</button>
</p>

<div id="OneByOneReadout">
<button id="PrevQButton" class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="ChangeQ(-1); return false;"><=</button>

<span id="QNumReadout" class="QNum"> </span>

<button id="NextQButton" class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="ChangeQ(1); return false;">=></button>
<br />
</div>

</div>

<ol class="QuizQuestions" id="Questions">
<li class="QuizQuestion" id="Q_0" style="display: none;"><div class="QuestionText">Pourquoi faut-il s'échauffer ?</div><ol class="MCAnswers"><li id="Q_0_0"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_0_0_Btn" onclick="CheckMCAnswer(0,0,this)">  ?  </button>  Pour maintenir 37,5 degrés dans l'organisme.</li><li id="Q_0_1"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_0_1_Btn" onclick="CheckMCAnswer(0,1,this)">  ?  </button>  Pour se fatiguer avant l'effort.</li><li id="Q_0_2"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_0_2_Btn" onclick="CheckMCAnswer(0,2,this)">  ?  </button>  Pour augmenter l'efficacité et la sécurité.</li></ol></li>
<li class="QuizQuestion" id="Q_1" style="display: none;"><div class="QuestionText">Lorsque la température du corps augmente de 2°, la vitesse de contraction augmente de:</div><ol class="MCAnswers"><li id="Q_1_0"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_1_0_Btn" onclick="CheckMCAnswer(1,0,this)">  ?  </button>  5%.</li><li id="Q_1_1"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_1_1_Btn" onclick="CheckMCAnswer(1,1,this)">  ?  </button>  40%.</li><li id="Q_1_2"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_1_2_Btn" onclick="CheckMCAnswer(1,2,this)">  ?  </button>  20%.</li><li id="Q_1_3"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_1_3_Btn" onclick="CheckMCAnswer(1,3,this)">  ?  </button>  Elle augmente peu.</li></ol></li>
<li class="QuizQuestion" id="Q_2" style="display: none;"><div class="QuestionText">Le rendement maximum des muscles et des tendons est obtenu à:<br /><br /></div><ol class="MCAnswers"><li id="Q_2_0"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_2_0_Btn" onclick="CheckMCAnswer(2,0,this)">  ?  </button>  39°.<br /></li><li id="Q_2_1"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_2_1_Btn" onclick="CheckMCAnswer(2,1,this)">  ?  </button>  37,5°.<br /></li><li id="Q_2_2"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_2_2_Btn" onclick="CheckMCAnswer(2,2,this)">  ?  </button>  38°.<br /></li></ol></li>
<li class="QuizQuestion" id="Q_3" style="display: none;"><div class="QuestionText">L'échauffement permet:</div><ol class="MCAnswers"><li id="Q_3_0"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_3_0_Btn" onclick="CheckMCAnswer(3,0,this)">  ?  </button>  D'augmenter la précision des gestes.<br /></li><li id="Q_3_1"><button class="FuncB
0
Pour envoyer le e-mail il faut payer la license à HOTPOT. Voir dans le menu Help (Aide).
Je m'excuse si j'ai fait des fautes de français.

Eric
0