Merge branch 'master' of github.com:Sankore/Sankore-3.1

preferencesAboutTextFull
shibakaneki 13 years ago
commit 35740755ae
  1. 3
      resources/library/interactive/Anyembed.wgt/index.html
  2. 12
      resources/library/interactive/Anyembed.wgt/js/languages.js
  3. 151
      resources/library/interactive/Anyembed.wgt/js/ubw-main.js
  4. 3
      resources/library/interactive/BlackYellow.wgt/css/basic.css
  5. BIN
      resources/library/interactive/BlackYellow.wgt/images/greySquare.png
  6. BIN
      resources/library/interactive/BlackYellow.wgt/images/greySquare2.png
  7. 1
      resources/library/interactive/BlackYellow.wgt/index.html
  8. 31
      resources/library/interactive/BlackYellow.wgt/scripts/blackYellow.js
  9. 30
      resources/library/interactive/BlackYellow.wgt/scripts/languages.js
  10. BIN
      resources/library/interactive/Choisir.wgt/images/greySquare.png
  11. 1
      resources/library/interactive/Choisir.wgt/index.html
  12. 72
      resources/library/interactive/Choisir.wgt/scripts/languages.js
  13. 78
      resources/library/interactive/Choisir.wgt/scripts/selQuestionApp.js
  14. 4127
      resources/library/interactive/GeoInfo.wgt/GeoInfo.html
  15. 33
      resources/library/interactive/GeoInfo.wgt/js/GeoInfo.js
  16. 18
      resources/library/interactive/GeoInfo.wgt/js/jquery-1.6.2.min.js
  17. 2133
      resources/library/interactive/GeoInfo.wgt/js/languages.js
  18. 687
      resources/library/interactive/Graphme.wgt/Grapheur.xhtml
  19. 534
      resources/library/interactive/Graphme.wgt/JavaScript/Affichage3D.js
  20. 578
      resources/library/interactive/Graphme.wgt/JavaScript/Etude.js
  21. 2
      resources/library/interactive/Graphme.wgt/JavaScript/Sauvegardes.js
  22. 506
      resources/library/interactive/Graphme.wgt/JavaScript/languages.js
  23. 24
      resources/library/interactive/Html.wgt/index.html
  24. 29
      resources/library/interactive/Html.wgt/languages.js
  25. 51
      resources/library/interactive/Html.wgt/markitup/sets/html/set.js
  26. 3
      resources/library/interactive/Stopwatch.wgt/index.html
  27. 76
      resources/library/interactive/Stopwatch.wgt/js/ubw-main.js
  28. 348
      resources/library/interactive/VideoPicker.wgt/index.html
  29. BIN
      resources/library/interactive/VideoPicker.wgt/locales/ru/capture_widget.jpg
  30. 8
      resources/library/interactive/VideoPicker.wgt/locales/ru/error.html
  31. 24
      resources/library/interactive/VideoPicker.wgt/locales/ru/howto.html
  32. 230
      resources/library/interactive/VideoPicker.wgt/scripts/index.html
  33. 12
      resources/library/interactive/VideoPicker.wgt/scripts/languages.js
  34. 48
      resources/library/interactive/WebBrowser.wgt/index.html
  35. 2
      resources/library/interactive/WebBrowser.wgt/locales/en/error.html
  36. 2
      resources/library/interactive/WebBrowser.wgt/locales/en/howto.html
  37. BIN
      resources/library/interactive/WebBrowser.wgt/locales/ru/capture_widget.jpg
  38. 8
      resources/library/interactive/WebBrowser.wgt/locales/ru/error.html
  39. 11
      resources/library/interactive/WebBrowser.wgt/locales/ru/howto.html
  40. 28
      resources/library/interactive/WebBrowser.wgt/scripts/languages.js
  41. 29
      resources/library/interactive/Wikipedia.wgt/index.html
  42. 20
      resources/library/interactive/Wikipedia.wgt/script/languages.js
  43. 23
      resources/library/interactive/Wiktionary.wgt/index.html
  44. 21
      resources/library/interactive/Wiktionary.wgt/script/languages.js
  45. 325
      resources/library/interactive/iCell.wgt/js/textes_descriptifs.js
  46. 8
      resources/library/interactive/iCell.wgt/widget.html

@ -3,10 +3,11 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>ubwidget</title>
<title>AnyEmbed</title>
<script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="js/jquery.disable.text.select.js" type="text/javascript"></script>
<script src="js/languages.js" type="text/javascript"></script>
<script src="js/ubw-main.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/ubwidget.css" />

@ -0,0 +1,12 @@
var sankoreLang = {
"en":{
"embed": "Embed"
},
"ru":{
"embed": "Вставить"
},
"fr":{
"embed": "Intégrer"
}
};

@ -14,84 +14,101 @@
*/
function init(){
var embed;
var inputBox = $("<textarea type='text'></textarea>")
.css({
width: "350px",
height: "58px",
marginRight: "5px"
});
var embed;
var lang = "";
if(window.sankore){
try{
lang = sankore.locale().substr(0,2);
sankoreLang[lang].embed;
} catch(e){
lang = "en";
}
} else
lang = "en";
var inputBox = $("<textarea type='text'></textarea>")
.css({
width: "350px",
height: "58px",
marginRight: "5px"
});
var submit = $("<div>Embed</div>")
.css({
float: "right",
width: "auto",
height:"auto",
padding:"4px",
marginTop:"13px",
cursor:"pointer",
backgroundColor:"rgb(45,65,250)",
border:"1px solid",
borderColor:"rgb(45,65,250) rgb(25,45,230) rgb(25,45,230) rgb(45,65,250)",
textTransform:"capitalize",
fontFamily:"Arial",
fontSize:"18px",
fontWeight:"regular",
color:"white"
});
var submit = $("<div>" + sankoreLang[lang].embed + "</div>")
.css({
float: "right",
width: "auto",
height:"auto",
padding:"4px",
marginTop:"13px",
cursor:"pointer",
backgroundColor:"rgb(45,65,250)",
border:"1px solid",
borderColor:"rgb(45,65,250) rgb(25,45,230) rgb(25,45,230) rgb(45,65,250)",
textTransform:"capitalize",
fontFamily:"Arial",
fontSize:"18px",
fontWeight:"regular",
color:"white"
});
var loadWindow = $("<div></div>");
var loadWindow = $("<div></div>");
var searchWrap = $("<div></div>")
.css({
position:"absolute",
padding: "10px",
backgroundColor: "rgb(230,230,233)",
width: "425px",
height: "65px"
});
var searchWrap = $("<div></div>")
.css({
position:"absolute",
padding: "10px",
backgroundColor: "rgb(230,230,233)",
width: "460px",
height: "65px"
});
//FIT WIDGET FRAME ON LAUNCH...
if(window.sankore){
window.sankore.resize($("#ubwidget").width()-15,85);
}
//FIT WIDGET FRAME ON LAUNCH...
if(window.sankore){
window.sankore.resize($("#ubwidget").width() + 20,85);
}
searchWrap.append(inputBox)
.append(submit);
searchWrap.append(inputBox)
.append(submit);
$("#ubwidget").append(searchWrap);
$("#ubwidget").append(searchWrap);
submit.click(function(){
$("#ubwidget").append(loadWindow)
embed = inputBox.val();
searchWrap.hide();
if(/<object/.test(embed)){
loadWindow.append(embed);
loadWindow.find("embed").attr("wmode","opaque");
var loadWindow_content = loadWindow.html();
loadWindow.empty().html(loadWindow_content);
}
else {
loadWindow.append(embed);
}
submit.click(function(){
$("#ubwidget").append(loadWindow)
embed = inputBox.val();
searchWrap.hide();
if(/<object/.test(embed)){
loadWindow.append(embed);
loadWindow.find("embed").attr("wmode","opaque");
var loadWindow_content = loadWindow.html();
loadWindow.empty().html(loadWindow_content);
}
else {
loadWindow.append(embed);
}
if(window.sankore){
window.sankore.resize($(document).width(),$(document).height());
window.sankore.setPreference("embed", escape(embed));
}
if(window.sankore){
window.sankore.resize($(document).width(),$(document).height());
window.sankore.setPreference("embed", escape(embed));
}
});
});
if(window.sankore){
if(window.sankore){
if(window.sankore.preferenceKeys().length != 0){
if(window.sankore.preferenceKeys().length != 0){
var loadEmbed = unescape(window.sankore.preference("embed"));
inputBox.val(loadEmbed);
submit.trigger("click");
}
}
var loadEmbed = unescape(window.sankore.preference("embed"));
inputBox.val(loadEmbed);
submit.trigger("click");
}
}
if (window.widget) {
window.widget.onremove = function(){
loadWindow.empty();
}
}
}

@ -109,8 +109,7 @@ body{
height: 28px;
margin: 4px 5px;
border: none;
background-image: url(../images/greySquare.png);
font-weight: bold;
background-image: url(../images/greySquare2.png);
font-family: Verdana;
color: yellow;
cursor: pointer;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 B

@ -10,6 +10,7 @@ and open the template in the editor.
<link rel="stylesheet" type="text/css" href="css/basic.css"/>
<script type="text/javascript" src="scripts/jquery-1.6.2.min.js"></script>
<script src="scripts/jquery.disable.text.select.js" type="text/javascript"></script>
<script src="scripts/languages.js" type="text/javascript"></script>
<script type="text/javascript" src="scripts/blackYellow.js"></script>
<script type="text/javascript">

@ -26,6 +26,7 @@ function init(){
var popupFlag = false
var flagForSelect = false;
var dragElement = null; //the element that must be dragging
var lang = ""; //locale language
var coords = {
left:0,
top:0
@ -36,7 +37,17 @@ function init(){
x:false,
width:0,
height:0
}
}
if(window.sankore){
try{
lang = sankore.locale().substr(0,2);
sankoreLang[lang].edit;
} catch(e){
lang = "en";
}
} else
lang = "en";
var opacityChanged = false;
@ -133,13 +144,13 @@ function init(){
if(!toggleFlag && !endFlag){
endFlag = true;
toggleButton.animate({
width:"72px"
width:"115px"
},"fast",function(){
toggleFlag = true;
if(!mode)
toggleButton.text("Edit");
toggleButton.text(sankoreLang[lang].edit);
else
toggleButton.text("Display");
toggleButton.text(sankoreLang[lang].display);
});
}
}
@ -182,10 +193,10 @@ function init(){
if(!addToggleStart && !addToggleEnd){
addToggleEnd = true;
addButton.animate({
width:"72px"
width:"115px"
},"fast",function(){
addToggleStart = true;
addButton.text("Add");
addButton.text(sankoreLang[lang].add);
});
}
}
@ -217,16 +228,16 @@ function init(){
//input fields and buttons for a popup window
var expressionDiv = $("<div id='expressionDiv' class='popupContainers'>").appendTo(popupBack);
var experssionLabel = $("<span id='experssionLabel' class='popupLabels'><b>Enter data:</b></span>").appendTo(expressionDiv);
var experssionLabel = $("<span id='experssionLabel' class='popupLabels'><b>" + sankoreLang[lang].enter_data + "</b></span>").appendTo(expressionDiv);
var expresionText = $("<input type='text' id='expresionText' class='expresionInput'/>").appendTo(expressionDiv);
var resultDiv = $("<div id='resultDiv' class='popupContainers'>").appendTo(popupBack);
var resultLabel = $("<span id='resultLabel' class='popupLabels'><b>Enter result:</b></span>").appendTo(resultDiv);
var resultLabel = $("<span id='resultLabel' class='popupLabels'><b>" + sankoreLang[lang].enter_result + "</b></span>").appendTo(resultDiv);
var resultText = $("<input type='text' id='resultText' class='expresionInput'/>").appendTo(resultDiv);
var popupButtonsDiv= $("<div id='popupButtonsDiv' class='popupContainers'>").appendTo(popupBack);
var cancelButton = $("<input type='button' id='cancelButton' class='popupButtons' value='Cancel'/>").appendTo(popupButtonsDiv);
var okButton = $("<input type='button' id='okButton' class='popupButtons' value='Ok'/>").appendTo(popupButtonsDiv);
var cancelButton = $("<input type='button' id='cancelButton' class='popupButtons' value='" + sankoreLang[lang].cancel + "'/>").appendTo(popupButtonsDiv);
var okButton = $("<input type='button' id='okButton' class='popupButtons' value='" + sankoreLang[lang].ok + "'/>").appendTo(popupButtonsDiv);
/* -------------- A WORK WITH POPUP BUTTONS AND FIELDS ---------------*/

@ -0,0 +1,30 @@
var sankoreLang = {
"en":{
"edit": "Edit",
"display":"Display",
"add":"Add",
"enter_data":"Enter data:",
"enter_result":"Enter result:",
"ok":"Ok",
"cancel":"Cancel"
},
"ru":{
"edit": "Изменить",
"display":"Показать",
"add":"Добавить",
"enter_data":"Введите вопрос:",
"enter_result":"Введите ответ:",
"ok":"Ок",
"cancel":"Отмена"
},
"fr":{
"edit": "Modifier",
"display":"Afficher",
"add":"Ajouter",
"enter_data":"Entrer les données:",
"enter_result":"Entrez le résultat:",
"ok":"Ok",
"cancel":"Annuler"
}
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

After

Width:  |  Height:  |  Size: 451 B

@ -9,6 +9,7 @@ and open the template in the editor.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="css/basic.css"/>
<script type="text/javascript" src="scripts/jquery-1.6.2.min.js"></script>
<script src="scripts/languages.js" type="text/javascript"></script>
<script type="text/javascript" src="scripts/selQuestionApp.js"></script>
<script type="text/javascript">

@ -0,0 +1,72 @@
var sankoreLang = {
"en":{
"edit": "Edit",
"display":"Display",
"question":"Question",
"example_question":"This is an example of the question",
"answer":"This is an example of the answer",
"q":"Q",
"add_new_question":"Add new question ...",
"options":"Options",
"close":"Close",
"delete_question":"Delete question",
"delete_answer":"Delete answer",
"right_answer":"Right answer",
"template_question":"Enter your question here ...",
"template_answer":"Enter the answer here ...",
"add_answer":"Add answer",
"select_text":"Choose the right answer",
"options_desc":"You can choose any of these three options of displaying your answers. See a short their description.",
"radio_desc":"This option allow to choose one answer only and the answers are displayed as radio buttons.",
"checkbox_desc":"This option allow to choose several answers and the answers are displayed as checkboxes.",
"select_desc":"This option allow to chose one answer only and the answers are displayed as pull-down menu.",
"a":"A"
},
"ru":{
"edit": "Изменить",
"display":"Показать",
"question":"Вопрос",
"example_question":"Это пример вопроса",
"answer":"Это пример ответа",
"q":"В",
"add_new_question":"Добавить новый вопрос ...",
"options":"Настройки",
"close":"Закрыть",
"delete_question":"Удалить вопрос",
"delete_answer":"Удалить ответ",
"right_answer":"Правильный ответ",
"template_question":"Введите Ваш вопрос здесь ...",
"template_answer":"Введите ответ здесь ...",
"add_answer":"Добавить ответ",
"select_text":"Выберите правильный ответ",
"options_desc":"Вы можете выбрать любой из трех вариантов отображения. Смотрите их краткое описание.",
"radio_desc":"Эта опция позволяет выбрать только один вариант ответа. Ответы будут показаны как радио-кнопки.",
"checkbox_desc":"Эта опция позволяет выбрать несколько вариантов ответов. Ответы будут показаны как чекбоксы.",
"select_desc":"Эта опция позволяет выбрать только один вариант ответа. Ответы будут показаны в виде выпадающего меню.",
"a":"О"
},
"fr":{
"edit": "Modifier",
"display":"Afficher",
"question":"La question",
"example_question":"Ceci est un exemple de la question",
"answer":"Ceci est un exemple de la réponse",
"q":"Q",
"add_new_question":"Ajouter nouvelle question ...",
"options":"Les options",
"close":"Fermer",
"delete_question":"Supprimer la question",
"delete_answer":"Supprimer réponse",
"right_answer":"Bonne réponse",
"template_question":"Saisissez votre question ici ...",
"template_answer":"Entrez la réponse ici ...",
"add_answer":"Ajouter une réponse",
"select_text":"Choisissez la bonne réponse",
"options_desc":"Vous pouvez choisir n'importe lequel de ces trois options d'affichage de vos réponses. Voir un court leur description.",
"radio_desc":"Cette option permet de choisir une seule réponse et les réponses sont affichées sous forme de boutons radio.",
"checkbox_desc":"Cette option permet de choisir plusieurs réponses et les réponses sont affichées comme des cases à cocher.",
"select_desc":"Cette option permet de choisir une seule réponse et les réponses sont affichées sous forme de menu déroulant.",
"a":"R"
}
};

@ -15,6 +15,7 @@
var questionArray;
var currentQstId = "";
var lang = ""; //locale language
function init(){
@ -24,7 +25,17 @@ function init(){
var mode = false;
questionArray = new Array();
var popupFlag = false
var flagForSelect = false;
var flagForSelect = false;
if(window.sankore){
try{
lang = sankore.locale().substr(0,2);
sankoreLang[lang].edit;
} catch(e){
lang = "en";
}
} else
lang = "en";
// toggle button
var buttonDiv = $("<div id='buttonDiv' class='buttonDiv'>").appendTo("body");
@ -40,8 +51,8 @@ function init(){
// adding question block
var addQstDiv = $("<div id='addQstDiv' class='addQstDiv'>").appendTo("body");
var addQstButton = $("<button id='addQstButton' class='addQstButton'>").appendTo("#addQstDiv");
var addQsqSpan1 = $("<span id='addQsqSpan1'>Q1</span>").appendTo("#addQstButton");
var addQsqSpan2 = $("<span id='addQsqSpan2'>Add new question ... </span>").appendTo("#addQstButton");
var addQsqSpan1 = $("<span id='addQsqSpan1'>" + sankoreLang[lang].q + "1</span>").appendTo("#addQstButton");
var addQsqSpan2 = $("<span id='addQsqSpan2'>" + sankoreLang[lang].add_new_question + "</span>").appendTo("#addQstButton");
//import saved data
if(window.sankore){
@ -68,7 +79,7 @@ function init(){
obj.id = id;
questionArray.push(obj);
addQstBlock(id, "Enter your question here ...", "","");
addQstBlock(id, sankoreLang[lang].template_question, "","");
if(window.sankore)
sankore.setPreference("qstArrayData", JSON.stringify(questionArray));
@ -98,13 +109,13 @@ function init(){
if(!toggleFlag && !endFlag){
endFlag = true;
toggleButton.animate({
width:"72px"
width:"115px"
},"fast",function(){
toggleFlag = true;
if(!mode)
toggleButton.text("Display");
toggleButton.text(sankoreLang[lang].display);
else
toggleButton.text("Edit");
toggleButton.text(sankoreLang[lang].edit);
});
}
});
@ -140,14 +151,13 @@ function init(){
obj.id = id;
getNeededElement(questionArray, currentQstId).answers.push(obj);
addAnsBlock(id, currentQstId, "Enter the answer here ...");
addAnsBlock(id, currentQstId, sankoreLang[lang].template_answer);
});
//set answer text
$(".ansContent").live('keyup', function(event){
var id = $(event.target).attr("id").replace("ansContent","");
getNeededElement(getNeededElement(questionArray, currentQstId).answers,id).text = $(event.target).text();
//questionArray[currentQstId].answers[id].text = $(event.target).text();
});
//set question text
@ -244,9 +254,7 @@ function init(){
$("#" + currentQstId + "ansDiv input").removeAttr("checked");
$(event.target).attr("checked", "checked");
getNeededElement(questionArray, currentQstId).rightAns = $(event.target).attr("value");
//alert(getNeededElement(questionArray, currentQstId).rightAns);
} else {
//alert(event.target.checked)
(event.target.checked) ? $(event.target).attr("checked", "checked") : $(event.target).removeAttr("checked", "checked");
getNeededElement(questionArray, currentQstId).rightAns = "";
for(var i in $("#" + currentQstId + "ansDiv input")){
@ -272,11 +280,11 @@ function init(){
//popup messages
$(".qstDelete").live('mouseover', function(evt){
popupFlag = true;
popupText.text("Delete question")
popupText.text(sankoreLang[lang].delete_question)
.css("top", evt.pageY + 15)
.css("left", evt.pageX - 40)
.css({
width:"120px"
width:"130px"
})
.show("fast", function(){
if(!popupFlag)
@ -286,11 +294,11 @@ function init(){
$(".ansDelete").live('mouseover', function(evt){
popupFlag = true;
popupText.text("Delete answer")
popupText.text(sankoreLang[lang].delete_answer)
.css("top", evt.pageY + 15)
.css("left", evt.pageX - 40)
.css({
width:"110px"
width:"130px"
})
.show("fast", function(){
if(!popupFlag)
@ -301,11 +309,11 @@ function init(){
$(".newAnswer input").live('mouseover', function(evt){
if(!mode){
popupFlag = true;
popupText.text("Right answer")
popupText.text(sankoreLang[lang].right_answer)
.css("top", evt.pageY + 15)
.css("left", evt.pageX - 40)
.css({
width:"105px"
width:"130px"
})
.show("fast", function(){
if(!popupFlag)
@ -371,7 +379,7 @@ function init(){
var qstDiv = $("<div class='qstDivDisplay' id='" + array[i].id + "qstDivDisplay'>");
var spanOptConn = $("<div class='spanOptConn'>").appendTo(qstDiv);
var qstNumber = $("<span class='qstNumber'>Question " + counter + "</span>").appendTo(spanOptConn);
var qstNumber = $("<span class='qstNumber'>" + sankoreLang[lang].question + " " + counter + "</span>").appendTo(spanOptConn);
var qstContent = $("<div class='qstContentDisplay'>" + array[i].text + "</div>").appendTo(qstDiv);
var ansDiv = $("<div class='ansDiv' id='" + array[i].id + "ansDiv'>").appendTo(qstDiv);
@ -383,7 +391,7 @@ function init(){
newAnswer.appendTo(ansDiv);
var selectSpan = $("<span id='answerText'>").appendTo(newAnswer);
selInput.appendTo(selectSpan);
$("<option value='0'>Choise the right answer</option>").appendTo(selInput);
$("<option value='0'>" + sankoreLang[lang].select_text + "</option>").appendTo(selInput);
}
for(var j in array[i].answers){
switch(type){
@ -414,8 +422,8 @@ function init(){
counter = 1;
qstDiv = $("<div class='qstDivDisplay'>");
spanOptConn = $("<div class='spanOptConn'>").appendTo(qstDiv);
qstNumber = $("<span class='qstNumber'>Question " + counter + "</span>").appendTo(spanOptConn);
qstContent = $("<div class='qstContentDisplay'>This is an example of the question.</div>").appendTo(qstDiv);
qstNumber = $("<span class='qstNumber'>" + sankoreLang[lang].question + " " + counter + "</span>").appendTo(spanOptConn);
qstContent = $("<div class='qstContentDisplay'>" + sankoreLang[lang].example_question + "</div>").appendTo(qstDiv);
ansDiv = $("<div class='ansDiv'>").appendTo(qstDiv);
ansCount = 1;
@ -423,7 +431,7 @@ function init(){
newAnswer = $("<div class='newAnswer'>");
ansInput = $("<input type='radio' name='1' style='float: left; margin-right: 10px;'/>").appendTo(newAnswer);
ansSpan = $("<span class='ansSpanDisplay'>" + ansCount + ".</span>").appendTo(newAnswer);
ansContent = $("<div class='ansContentDisplay'>This is an example of the answer " + ansCount + ".</div>").appendTo(newAnswer);
ansContent = $("<div class='ansContentDisplay'>" + sankoreLang[lang].answer + " " + ansCount + ".</div>").appendTo(newAnswer);
newAnswer.appendTo(ansDiv);
ansCount++;
}
@ -438,32 +446,32 @@ function addQstBlock(id, text, type, style){
var spanOptConn = $("<div class='spanOptConn'>").appendTo(qstDiv);
var count = $(".qstNumber").size();
var qstNumber = $("<span class='qstNumber'>Q" + (count + 1) + "</span>").appendTo(spanOptConn);
var qstNumber = $("<span class='qstNumber'>" + sankoreLang[lang].q + (count + 1) + "</span>").appendTo(spanOptConn);
var qstOptions = $("<div class='qstOptions' id='" + id + "qstOptions'>").appendTo(spanOptConn);
var changeOptions = $("<button class='changeOptions'>Options</button>").appendTo(qstOptions);
var applyChanges = $("<button class='applyChanges' style='display: none;'>Close</button>").appendTo(qstOptions);
var changeOptions = $("<button class='changeOptions'>" + sankoreLang[lang].options + "</button>").appendTo(qstOptions);
var applyChanges = $("<button class='applyChanges' style='display: none;'>" + sankoreLang[lang].close + "</button>").appendTo(qstOptions);
var qstDelete = $("<button class='qstDelete'>").appendTo(qstOptions);
var qstOptChoice = $("<div class='qstOptChoice' id='" + id + "qstOptChoice' style='display: none;'>").appendTo(qstDiv);
var optDesc = $("<div style='height: 65px;'>").appendTo(qstOptChoice);
var optDescImg = $("<div class='optDescImg'>").appendTo(optDesc);
var optDescText = $("<div class='optDescText'>You can choose any of these three options of displaying your answers. See a short their description.</div>").appendTo(optDesc);
var optDescText = $("<div class='optDescText'>" + sankoreLang[lang].options_desc + "</div>").appendTo(optDesc);
var type1 = $("<div class='type'>").appendTo(qstOptChoice);
var contentType1 = $("<div class='contentType'>").appendTo(type1);
var divType1 = $("<div class='divType1'>").appendTo(contentType1);
var textType1 = $("<div class='textType'>This option allow to choose one answer only and the answers are displayed as radio buttons.</div>").appendTo(contentType1);
var textType1 = $("<div class='textType'>" + sankoreLang[lang].radio_desc + "</div>").appendTo(contentType1);
var type2 = $("<div class='type'>").appendTo(qstOptChoice);
var contentType2 = $("<div class='contentType'>").appendTo(type2);
var divType2 = $("<div class='divType2'>").appendTo(contentType2);
var textType2 = $("<div class='textType'>This option allow to choose several answers and the answers are displayed as checkboxes.</div>").appendTo(contentType2);
var textType2 = $("<div class='textType'>" + sankoreLang[lang].checkbox_desc + "</div>").appendTo(contentType2);
var type3 = $("<div class='type'>").appendTo(qstOptChoice);
var contentType3 = $("<div class='contentType'>").appendTo(type3);
var divType3 = $("<div class='divType3'>").appendTo(contentType3);
var textType3 = $("<div class='textType'>This option allow to choose one answer only and the answers are displayed as pull-down menu.</div>").appendTo(contentType3);
var textType3 = $("<div class='textType'>" + sankoreLang[lang].select_desc + "</div>").appendTo(contentType3);
switch(type){
case "1":
@ -491,9 +499,9 @@ function addQstBlock(id, text, type, style){
var qstContent = $("<div class='qstContent' id='" + id + "qstContent' contenteditable='true'>" + text + "</div>").appendTo(qstDiv);
var ansDiv = $("<div class='ansDiv' id='" + id + "ansDiv'>").appendTo(qstDiv);
var ansAdd = $("<button class='ansAdd'>Add answer</button>").appendTo(ansDiv);
var ansAdd = $("<button class='ansAdd'>" + sankoreLang[lang].add_answer + "</button>").appendTo(ansDiv);
qstDiv.insertBefore("#addQstDiv");
$("#addQsqSpan1").text("Q" + (count + 2));
$("#addQsqSpan1").text(sankoreLang[lang].q + (count + 2));
}
//add answers
@ -519,7 +527,7 @@ function addAnsBlock(id, currId, text, stage, rightAns, type){
}
var count = $("#" + currId + " .newAnswer").size() + 1;
var input = $("<input type='checkbox' style='float: left;' value='" + value + "' " + check + ">").appendTo(newAnswer);
var ansSpan = $("<span class='ansSpan'>A" + count + "</span>").appendTo(newAnswer);
var ansSpan = $("<span class='ansSpan'>" + sankoreLang[lang].a + count + "</span>").appendTo(newAnswer);
var ansContent = $("<div class='ansContent' id='" + id +"ansContent' contenteditable='true'>" + text + "</div>").appendTo(newAnswer);
var ansDelete = $("<button class='ansDelete' id='" + id + "ansDelete'>").appendTo(newAnswer);
newAnswer.insertBefore("#" + currId + "ansDiv .ansAdd");
@ -549,15 +557,15 @@ function checkArrayOnFill(array){
function refreshAns(){
var count = $("#" + currentQstId + " .newAnswer").size();
for(var i = 0; i < count; i ++)
$($("#" + currentQstId + " .newAnswer span")[i]).text("A" + (i+1));
$($("#" + currentQstId + " .newAnswer span")[i]).text(sankoreLang[lang].a + (i+1));
}
//refresh questions numbers
function refreshQst(){
var count = $(".qstNumber").size();
for(var i = 0; i < count; i ++)
$($(".qstNumber")[i]).text("Q" + (i+1));
$("#addQsqSpan1").text("Q" + ++count);
$($(".qstNumber")[i]).text(sankoreLang[lang].q + (i+1));
$("#addQsqSpan1").text(sankoreLang[lang].q + ++count);
}
//question constructor

File diff suppressed because it is too large Load Diff

@ -33,6 +33,17 @@ var imageEurope = "<img src='images/Cartes/EuropeOuest.bmp' usemap='#europe'/>";
var imageEurope2 = "<img src='images/Cartes/Eurasie2.bmp' usemap='#eurasie'/>";
var imageAsie2 = "<img src='images/Cartes/EuropeOuestAsie.bmp' usemap='#europe'/>";
var lang = ""; //locale language
if(window.sankore){
try{
lang = sankore.locale().substr(0,2);
sankoreLang[lang].europe;
} catch(e){
lang = "en";
}
} else
lang = "en";
// adresse du serveur
var url = "http://bapsot.dyndns.org/GeoInfo-GeoInfoServer/GeoInfoService";
@ -182,6 +193,25 @@ function recevoirPaysReponse(resultat, soapResponse)
// permet l'affichage de la description lors du passage de la souris
function writeText(txt)
{
switch(txt){
case "North America":
txt = sankoreLang[lang].north_america;
break;
case "Eurasia":
txt = sankoreLang[lang].eurasia;
break;
case "South America":
txt = sankoreLang[lang].south_america;
break;
case "Africa":
txt = sankoreLang[lang].africa;
break;
case "Oceania":
txt = sankoreLang[lang].oceania;
break;
default:
break;
}
document.getElementById("description").innerHTML = txt;
}
@ -222,7 +252,8 @@ function fondu(carte)
// permet de faire apparaître les infos du pays dans la petite fenêtre
function afficheInfoPays(pays)
{
//$("area[alt=" + pays + "]").css("z-index","9999");
$("#" + pays + " .nomPays").html(sankoreLang[lang][pays].country);
$("#" + pays + " .capitalePays").html(sankoreLang[lang].capital + ": " + sankoreLang[lang][pays].city);
document.getElementById("infoPays").innerHTML = "<div id='customCursor' class='customCursor'></div>" + document.getElementById(pays).innerHTML;
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

@ -8,22 +8,22 @@
<meta name="revised" content="2010/09/25"/>
<title>Graphics</title>
<link rel="stylesheet" type="text/css" href="Style/default.css"/>
<script type="text/javascript" src="JavaScript/ColorPicker.js"></script>
<script type="text/javascript" src="JavaScript/Etude.js"></script>
<script type="text/javascript" src="JavaScript/ColorPicker.js"></script>
<script type="text/javascript" src="JavaScript/Interface.js"></script>
<script type="text/javascript" src="JavaScript/Outils.js"></script>
<script type="text/javascript" src="JavaScript/Sauvegardes.js"></script>
<script type="text/javascript" src="JavaScript/AffichageStandard.js"></script>
<script type="text/javascript" src="JavaScript/Affichage3D.js"></script>
<script type="text/javascript" src="JavaScript/AffichageUniboard.js"></script>
<script type="text/javascript" src="JavaScript/AffichageXPM.js"></script>
<script type="text/javascript" src="JavaScript/languages.js"></script>
<script type="text/javascript" src="JavaScript/Etude.js"></script>
<script type="text/javascript" src="JavaScript/Sauvegardes.js"></script>
<script src="JavaScript/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="JavaScript/jquery.disable.text.select.js" type="text/javascript"></script>
<script type="text/javascript">
// <![CDATA[
// --- Variables nécessaires au fonctionnement du widget ---
var lang = ""; //locale language
var loadingFlag = false
var largeur = 500
var hauteur = 400
@ -58,6 +58,16 @@
var lineWidth = 3
if(window.sankore){
try{
lang = sankore.locale().substr(0,2);
sankoreLang[lang].display;
} catch(e){
lang = "en";
}
} else
lang = "en";
$(document).ready(function(){
if(window.sankore){
@ -159,6 +169,507 @@
}
actualiserGraph();
loadingFlag = true;
////////////////////////////////////// languages suppot
document.getElementById("texteFonction").innerHTML = sankoreLang[lang].fnc;
$("#xAxis").html(sankoreLang[lang].x_axis);
$("#yAxis").html(sankoreLang[lang].y_axis);
$("#scaleZoom").html(sankoreLang[lang].zoom);
$("#graphColor").html(sankoreLang[lang].color);
$("#menuCouleur .contenuMenu em").text(sankoreLang[lang].choosing_color);
$("#colorValues tr").eq(0).find("td").eq(0).html(sankoreLang[lang].color + ":");
$("#colorValues tr").eq(1).find("td").eq(0).html(sankoreLang[lang].value);
$("#colorValues tr").eq(2).find("td").eq(0).html(sankoreLang[lang].saturation);
$("#colorValues tr").eq(3).find("td").eq(0).html(sankoreLang[lang].red);
$("#colorValues tr").eq(4).find("td").eq(0).html(sankoreLang[lang].green);
$("#colorValues tr").eq(5).find("td").eq(0).html(sankoreLang[lang].blue);
$("#colorValues tr").eq(6).find("td").eq(0).html(sankoreLang[lang].opacity);
$("#menuOutils .contenuMenu h3").eq(0).text(sankoreLang[lang].tools);
$("#menuOutils .contenuMenu span").each(function(){
switch($(this).html()){
case "Mouse events:":
$(this).html(sankoreLang[lang].mouse_events);
break;
case "Derivative:":
$(this).html(sankoreLang[lang].derivative);
break;
case "Square under function:":
$(this).html(sankoreLang[lang].square_under_func);
break;
case "Calculate the point on the function:":
$(this).html(sankoreLang[lang].point_calculate);
break;
case "Analysis of function:":
$(this).html(sankoreLang[lang].analysis_of_func);
break;
case "Display test:":
$(this).html(sankoreLang[lang].display_test);
break;
case "From":
$(this).html(sankoreLang[lang].from);
break;
case "to":
$(this).html(sankoreLang[lang].to);
break;
default:
break;
}
return true;
});
$("label[for*='checkAire']").text(sankoreLang[lang].draw);
$("label[for*='checkMaJ']").text(sankoreLang[lang].auto_update);
$("#menuOptions td").eq(0).html(sankoreLang[lang].widget);
$("#menuOptions h3").eq(0).text(sankoreLang[lang].widget_options);
$("#menuOptions2D h3").eq(0).text(sankoreLang[lang].options + " 2D");
$("#menuOptions2D span").each(function(){
switch($(this).html()){
case "The graphical method displaying:":
$(this).html(sankoreLang[lang].the_graphical);
break;
case "Zoom default:":
$(this).html(sankoreLang[lang].zoom_def);
break;
case "Thickness:":
$(this).html(sankoreLang[lang].thickness);
break;
case "Offset diagram:":
$(this).html(sankoreLang[lang].offset_diagram);
break;
case "Accuracy graph:":
$(this).html(sankoreLang[lang].accuracy_graph);
break;
}
return true;
});
$("#selectMethodeAffichage option").eq(0).text("canvas (" + sankoreLang[lang].lines + ")")
.next().text("canvas (" + sankoreLang[lang].points + ")")
.next().next().text("svg (1 " + sankoreLang[lang].image + ")");
$("label[for*='checkGrille']").text(sankoreLang[lang].show_grid);
$("label[for*='checkAxes']").text(sankoreLang[lang].show_axis);
$("label[for*='checkEchelle']").text(sankoreLang[lang].scale);
$("#menuOptions3D h3").eq(0).text(sankoreLang[lang].options + " 3D");
$("#menuOptions3D span").each(function(){
switch($(this).html()){
case "Show the style:":
$(this).html(sankoreLang[lang].show_the_style);
break;
case "Accuracy function:":
$(this).html(sankoreLang[lang].accuracy_func);
break;
case "Use the color":
$(this).html(sankoreLang[lang].use_the_color);
break;
case "red:":
$(this).html(sankoreLang[lang].red);
break;
case "green:":
$(this).html(sankoreLang[lang].green);
break;
case "blue:":
$(this).html(sankoreLang[lang].blue);
break;
case "General value:":
$(this).html(sankoreLang[lang].general_value);
break;
case "from":
$(this).html(sankoreLang[lang].from);
break;
case "to":
$(this).html(sankoreLang[lang].to);
break;
}
return true;
});
$("#selectAffichage3D option").eq(0).text(sankoreLang[lang].surfaces)
.next().text(sankoreLang[lang].points);
$("#selectRouge3D option").eq(0).text(sankoreLang[lang].positive_value)
.next().text(sankoreLang[lang].negative_value)
.next().text(sankoreLang[lang].general_value);
$("#selectVert3D option").eq(0).text(sankoreLang[lang].negative_value)
.next().text(sankoreLang[lang].positive_value)
.next().text(sankoreLang[lang].general_value);
$("#selectBleu3D option").eq(0).text(sankoreLang[lang].general_value)
.next().text(sankoreLang[lang].positive_value)
.next().text(sankoreLang[lang].negative_value);
$("#menuAide .ongletMenu td, #menuAideExemples .ongletMenu td, #menuAideAutres .ongletMenu td").each(function(){
switch($(this).html()){
case "Using":
$(this).html(sankoreLang[lang].using);
break;
case "Examples":
$(this).html(sankoreLang[lang].examples);
break;
case "Other":
$(this).html(sankoreLang[lang].other);
break;
}
});
$("#menuAide h1").each(function(){
switch($(this).html()){
case "How it work.":
$(this).html(sankoreLang[lang].how_it_work);
break;
case "Constants":
$(this).html(sankoreLang[lang].consts);
break;
case "Keyboard keys":
$(this).html(sankoreLang[lang].keys);
break;
}
return true;
});
$("#menuAide h2").each(function(){
switch($(this).html()){
case "Basic operations":
$(this).html(sankoreLang[lang].basic_operations);
break;
case "Trigonometric functions":
$(this).html(sankoreLang[lang].trigonometric);
break;
case "Hyperbolic functions":
$(this).html(sankoreLang[lang].hyperbolic_func);
break;
case "Square roots and degrees":
$(this).html(sankoreLang[lang].square_roots_and_degrees);
break;
case "Exponential and logarithm":
$(this).html(sankoreLang[lang].exponential);
break;
case "Absolute number value":
$(this).html(sankoreLang[lang].abs);
break;
case "Rounding":
$(this).html(sankoreLang[lang].rounding);
break;
}
return true;
});
$("#menuAide span").each(function(){
switch($(this).html()){
case "This widget allow to draw mathematical function. Enter function in the field in the top part of widget and press \"Show\".":
$(this).html(sankoreLang[lang].this_widget_allow);
break;
case "You can enter following mathematical function:":
$(this).html(sankoreLang[lang].you_can_enter);
break;
case "Plus":
$(this).html(sankoreLang[lang].plus);
break;
case "Minus":
$(this).html(sankoreLang[lang].minus);
break;
case "Multiplication":
$(this).html(sankoreLang[lang].multi);
break;
case "Division":
$(this).html(sankoreLang[lang].division);
break;
case "Mod":
$(this).html(sankoreLang[lang].mod);
break;
case "Sine":
$(this).html(sankoreLang[lang].sine);
break;
case "Cosine":
$(this).html(sankoreLang[lang].cosine);
break;
case "Tangent":
$(this).html(sankoreLang[lang].tangent);
break;
case "Cotangent":
$(this).html(sankoreLang[lang].cotangent);
break;
case "Secant":
$(this).html(sankoreLang[lang].secant);
break;
case "Cosecant":
$(this).html(sankoreLang[lang].cosecant);
break;
case "Arc sine":
$(this).html(sankoreLang[lang].arc_sine);
break;
case "Arc cosine":
$(this).html(sankoreLang[lang].arc_cosine);
break;
case "Arc tangent":
$(this).html(sankoreLang[lang].arc_tangent);
break;
case "Arc cotangent":
$(this).html(sankoreLang[lang].arc_cotangent);
break;
case "Hyperbolic sine":
$(this).html(sankoreLang[lang].hyp_sine);
break;
case "Hyperbolic cosine":
$(this).html(sankoreLang[lang].hyp_cosine);
break;
case "Hyperbolic tangent":
$(this).html(sankoreLang[lang].hyp_tangent);
break;
case "Hyperbolic cotangent":
$(this).html(sankoreLang[lang].hyp_cotangent);
break;
case "Hyperbolic secant":
$(this).html(sankoreLang[lang].hyp_secant);
break;
case "Hyperbolic cosecant":
$(this).html(sankoreLang[lang].hyp_cosecant);
break;
case "Hyperbolic arc sine":
$(this).html(sankoreLang[lang].hyp_arc_sine);
break;
case "Hyperbolic arc cosine":
$(this).html(sankoreLang[lang].hyp_arc_cosine);
break;
case "Hyperbolic arc tangent":
$(this).html(sankoreLang[lang].hyp_arc_tangent);
break;
case "Hyperbolic arc cotangent":
$(this).html(sankoreLang[lang].hyp_arc_cotangent);
break;
case "Square root":
$(this).html(sankoreLang[lang].square_root);
break;
case "Degree":
$(this).html(sankoreLang[lang].degree);
break;
case "Root":
$(this).html(sankoreLang[lang].root);
break;
case "Variable x to the power y":
$(this).html(sankoreLang[lang].variable_x);
break;
case "Root y of x":
$(this).html(sankoreLang[lang].root_y);
break;
case "Natural logarithm":
$(this).html(sankoreLang[lang].natural_log);
break;
case "Decimal logarithm":
$(this).html(sankoreLang[lang].decimal_log);
break;
case "rounding to the nearest whole number":
$(this).html(sankoreLang[lang].round_nearest);
break;
case "rounding to the nearest whole number in a big way":
$(this).html(sankoreLang[lang].round_nearest_big);
break;
case "rounding to the nearest whole number the smaller side":
$(this).html(sankoreLang[lang].round_nearest_small);
break;
case "Also are available some constants:":
$(this).html(sankoreLang[lang].available_const);
break;
case "reset widget":
$(this).html(sankoreLang[lang].reload_widget);
break;
case "left arrow":
$(this).html(sankoreLang[lang].left_arrow);
break;
case "top arrow":
$(this).html(sankoreLang[lang].top_arrow);
break;
case "right arrow":
$(this).html(sankoreLang[lang].right_arrow);
break;
case "bottom arrow":
$(this).html(sankoreLang[lang].bottom_arrow);
break;
case "graph will be moved left":
$(this).html(sankoreLang[lang].moved_left);
break;
case "graph will be moved top":
$(this).html(sankoreLang[lang].moved_top);
break;
case "graph will be moved right":
$(this).html(sankoreLang[lang].moved_right);
break;
case "graph will be moved bottom":
$(this).html(sankoreLang[lang].moved_bottom);
break;
case "or":
$(this).html(sankoreLang[lang].or);
break;
}
return true;
});
$("#menuAideExemples h1").each(function(){
if($(this).text() == "Functions 2D")
$(this).text(sankoreLang[lang].funcs + " 2D");
else
$(this).text(sankoreLang[lang].funcs + " 3D");
});
$("#menuAideExemples span").eq(0).html("(" + sankoreLang[lang].you_can_view + ")");
$("#menuAideAutres h4").eq(0).text(sankoreLang[lang].save_graph);
$("#menuAideAutres h4").eq(1).text(sankoreLang[lang].offset);
$("#menuAideAutres span").eq(0).text(sankoreLang[lang].in_some_browsers);
$("#menuAideAutres span").eq(1).text(sankoreLang[lang].if_graph_isnt);
$("#credits h3").eq(0).text(sankoreLang[lang].widget_is_developed);
$("#menuCredits .texteSecondaire span").eq(0).html(sankoreLang[lang].if_you_want_to);
$("#menuCredits .texteSecondaire span").eq(1).html(sankoreLang[lang].if_you_want_to_change);
$("#menuFonctions td").eq(0).text(sankoreLang[lang].funcs);
$("#menuFonctions td").eq(1).text(sankoreLang[lang].history);
$("#menuFonctions em").eq(0).text(sankoreLang[lang].current);
$("#menuFonctions em").eq(1).text(sankoreLang[lang].additional);
$("#menuHistorique td").eq(0).text(sankoreLang[lang].funcs);
$("#menuHistorique td").eq(1).text(sankoreLang[lang].history);
$("#menuEtude h3").text(sankoreLang[lang].analysis_of_func);
$("#menuEtude span").each(function(){
switch($(this).html()){
case "Set of definitions:":
$(this).html(sankoreLang[lang].set_of_def);
break;
case "Parity:":
$(this).html(sankoreLang[lang].parity);
break;
case "Zeros of functions:":
$(this).html(sankoreLang[lang].zeros);
break;
case "Signe:":
$(this).html(sankoreLang[lang].signe);
break;
case "Asymptotes":
$(this).html(sankoreLang[lang].asympt);
break;
case "AH left:":
$(this).html(sankoreLang[lang].ah_left);
break;
case "AH right:":
$(this).html(sankoreLang[lang].ah_right);
break;
case "AV:":
$(this).html(sankoreLang[lang].av);
break;
case "Tool for analysis of function is not reliable on 100%. Don't forget check results of analysis before use it.":
$(this).html(sankoreLang[lang].tool_for);
break;
}
return true;
});
$("#infoSauvegarde h1").text(sankoreLang[lang].options_saved);
$("#mAj h1").text(sankoreLang[lang].update);
$("#mAj span").each(function(){
switch($(this).html()){
case "Current version:":
$(this).html(sankoreLang[lang].cur_version);
break;
case "The last on-line version:":
$(this).html(sankoreLang[lang].last_version);
break;
case "This widget is available to using on web-site:":
$(this).html(sankoreLang[lang].using_web);
break;
}
});
$("#menuOptions span").each(function(){
switch($(this).html()){
case "Themes of widget:":
$(this).html(sankoreLang[lang].themes_of_widget);
break;
case "Control options:":
$(this).html(sankoreLang[lang].control_options);
break;
case "Save a widget options in cookies or load an options from cookies or delete a registered options.":
$(this).html(sankoreLang[lang].save_a_widget_options);
break;
}
return true;
});
$("#selectTheme option").eq(0).text(sankoreLang[lang].black).next().text(sankoreLang[lang].blue).next().text(sankoreLang[lang].white);
$("input:button").each(function(){
switch($(this).val()){
case "Check":
$(this).val(sankoreLang[lang].check);
break;
case "Cancel":
$(this).val(sankoreLang[lang].quit);
break;
case "Tools":
$(this).val(sankoreLang[lang].tools);
break;
case "Options":
$(this).val(sankoreLang[lang].options);
break;
case "Help":
$(this).val(sankoreLang[lang].help);
break;
case "About":
$(this).val(sankoreLang[lang].about);
break;
case "Moving":
$(this).val(sankoreLang[lang].moving);
break;
case "Tangente":
$(this).val(sankoreLang[lang].tangente);
break;
case "Point":
$(this).val(sankoreLang[lang].point);
break;
case "Calculate":
$(this).val(sankoreLang[lang].calculate);
break;
case "Estimate":
$(this).val(sankoreLang[lang].estimate);
break;
case "Start to analysis":
$(this).val(sankoreLang[lang].start_to_analysis);
break;
case "Test XPM":
$(this).val(sankoreLang[lang].test + " XPM");
break;
case "Test SVG":
$(this).val(sankoreLang[lang].test + " SVG");
break;
case "Test Canvas":
$(this).val(sankoreLang[lang].test + " Canvas");
break;
case "Save":
$(this).val(sankoreLang[lang].save);
break;
case "Load":
$(this).val(sankoreLang[lang].load);
break;
case "Delete":
$(this).val(sankoreLang[lang].del);
break;
case "Display":
$(this).val(sankoreLang[lang].display);
break;
case "Reload widget":
$(this).val(sankoreLang[lang].reload_widget);
break;
case "Updated":
$(this).val(sankoreLang[lang].update);
break;
case "Update zoom":
$(this).val(sankoreLang[lang].update_zoom);
break;
case "Reset display":
$(this).val(sankoreLang[lang].reset_display);
break;
case "User's guide":
$(this).val(sankoreLang[lang].guide);
break;
default:
break;
}
return true;
});
}
$(document).disableTextSelect();
@ -469,13 +980,13 @@
<div id="affichage" onmousedown="sourisDown()" onmouseup="sourisUp()" onmousemove="sourisMove(event)" ondblclick="doubleClick(event.ctrlKey)"></div>
<!-- Zone de boutons gauche -->
<div id="gauche">
X-axis: <br/>
<input id="borneXGauche" class="smallInput" value="-5" onkeypress='if(event.keyCode==13) actualiserGraph()'/> à <input id="borneXDroite" class="smallInput" value="5" onkeypress='if(event.keyCode==13) actualiserGraph()'/> <br/>
Y-axis: <br/>
<input id="borneYGauche" class="smallInput" value="-5" onkeypress='if(event.keyCode==13) actualiserGraph()'/> à <input id="borneYDroite" class="smallInput" value="5" onkeypress='if(event.keyCode==13) actualiserGraph()'/>
<br/>Zoom: <br/>
<span id="xAxis">X-axis:</span> <br/>
<input id="borneXGauche" class="smallInput" value="-5" onkeypress='if(event.keyCode==13) actualiserGraph()'/> ... <input id="borneXDroite" class="smallInput" value="5" onkeypress='if(event.keyCode==13) actualiserGraph()'/> <br/>
<span id="yAxis">Y-axis:</span> <br/>
<input id="borneYGauche" class="smallInput" value="-5" onkeypress='if(event.keyCode==13) actualiserGraph()'/> ... <input id="borneYDroite" class="smallInput" value="5" onkeypress='if(event.keyCode==13) actualiserGraph()'/>
<br/><span id="scaleZoom">Zoom:</span> <br/>
<input type="button" style="width:45%;" onclick='zoom(1.25)' value="-"/><input type="button" style="width:45%; position:relative; left: 9px;" onclick='zoom(0.8)' value="+"/><br/><br/>
Color: <br/>
<span id="graphColor">Color:</span> <br/>
<div id="buttonColor" title="couleurFonction" onclick="colorPicker(this.id); afficherMenu('menuCouleur')"></div>
<br/><br/>
<hr/>
@ -513,7 +1024,7 @@
<div class="contenuMenu avecBordures">
<h3>Widget options</h3>
Themes of widget: <select id="selectTheme" onchange="changerTheme(this.value)">
<span>Themes of widget:</span> <select id="selectTheme" onchange="changerTheme(this.value)">
<option value="noir">Black</option>
<option value="bleu">Blue</option>
<option value="blanc">White</option>
@ -543,7 +1054,7 @@
</table>
<div class="contenuMenu avecBordures">
<h3>Options 2D</h3>
The graphical method displaying:<select id="selectMethodeAffichage">
<span>The graphical method displaying:</span><select id="selectMethodeAffichage">
<option value="canvas">canvas (lines)</option>
<option value="canvas2">canvas (points)</option>
<option value="svg">svg</option>
@ -551,21 +1062,21 @@
<option value="xpm">xpm</option>
<option value="sankore">sankore</option>
</select> <br/>
Zoom default:
<span>Zoom default:</span>
<input value="5" class="smallInput" id="zoomDefaut"/>
<input type="button" onclick='reinitialiserZoom(document.getElementById("zoomDefaut").value)' value="Update zoom"/> <br/>
<br/>
<input type="checkbox" id="checkGrille" checked="true" onclick="actualiserGraph()"/><label for="checkGrille">Show grid</label> <br/>
<input type="checkbox" id="checkAxes" checked="true" onclick="actualiserGraph()"/><label for="checkAxes">Show axis</label> <br/>
<input type="checkbox" id="checkEchelle" checked="true" onclick="actualiserGraph()"/><label for="checkEchelle">Scale</label> <br/>
Thickness: <input id="inputTaille" class="smallInput" value="3" onkeypress='if(event.keyCode==13) actualiserGraph()' style=""/>
<span>Thickness:</span> <input id="inputTaille" class="smallInput" value="3" onkeypress='if(event.keyCode==13) actualiserGraph()' style=""/>
<div class="boutonPlus" type="button" onclick="boutonPlus('inputTaille', 1); actualiserGraph()">+</div><div class="boutonMoins" type="button" onclick="boutonMoins('inputTaille', 1); actualiserGraph()">-</div> <br/>
<br/>
Offset diagram:
<span>Offset diagram:</span>
x=<input value="0" class="smallInput" id="inputDecalageX" onkeyup="decalageX = parseFloat(this.value)"/>
y=<input value="0" class="smallInput" id="inputDecalageY" onkeyup="decalageY = parseFloat(this.value)"/>
<br/>
Accuracy graph:
<span>Accuracy graph:</span>
<input value="0.02" class="smallInput" id="inputPrecision" onkeyup="precision = parseFloat(this.value)"/>
<div class="boutonPlus" type="button" onclick="boutonPlus('inputPrecision', 0.01); precision = parseFloat(document.getElementById('inputPrecision').value); actualiserGraph()">+</div><div class="boutonMoins" type="button" onclick="boutonMoins('inputPrecision', 0.01); precision = parseFloat(document.getElementById('inputPrecision').value); actualiserGraph()">-</div> <br/>
<br/>
@ -583,38 +1094,38 @@
</table>
<div class="contenuMenu avecBordures">
<h3>Options 3D</h3>
Show the style:
<span>Show the style:</span>
<select id="selectAffichage3D">
<option value="surfaces"> surfaces </option>
<option value="points"> points </option>
</select> <input type="button" onclick='reinitialiserZoom(5)' value="Reset display"/> <br/>
<br/>
Accuracy function: <input value="0.2" class="smallInput" id="inputPrecision3D" onkeyup="precisionFonction3D = parseFloat(this.value)"/>
<span>Accuracy function:</span> <input value="0.2" class="smallInput" id="inputPrecision3D" onkeyup="precisionFonction3D = parseFloat(this.value)"/>
<div class="boutonPlus" type="button" onclick="boutonPlus('inputPrecision3D', 0.1); precisionFonction3D = parseFloat(document.getElementById('inputPrecision3D').value); actualiserGraph()">+</div><div class="boutonMoins" type="button" onclick="boutonMoins('inputPrecision3D', 0.1); precisionFonction3D = parseFloat(document.getElementById('inputPrecision3D').value); actualiserGraph()">-</div> <br/>
<br/>
Use the color:<br/>
red:
<span>Use the color:</span><br/>
<span>red:</span>
<select onchange="checkCouleurs3D()" id="selectRouge3D">
<option value="plus">positive value</option>
<option value="moins">negative value</option>
<option value="tout">general value</option>
</select>
<br/>
green :
<span>green:</span>
<select onchange="checkCouleurs3D()" id="selectVert3D">
<option value="moins">negative value</option>
<option value="plus">positive value</option>
<option value="tout">general value</option>
</select>
<br/>
blue :
<span>blue:</span>
<select onchange="checkCouleurs3D()" id="selectBleu3D">
<option value="tout">general value</option>
<option value="plus">positive value</option>
<option value="moins">negative value</option>
</select>
<br/>
General value : <input class="smallInput" id="couleur3Dgenerale" type="texte" value="0" onkeyup="checkCouleurs3D()"/> (from 0 to 255)
<span>General value:</span> <input class="smallInput" id="couleur3Dgenerale" type="texte" value="0" onkeyup="checkCouleurs3D()"/> (<span>from</span> 0 <span>to</span> 255)
<br/>
<span id="apercuCouleur3D"></span>
</div>
@ -632,57 +1143,57 @@
</table>
<div class="contenuMenu avecBordures">
<h1>How it work.</h1>
<p>This widget allow to draw mathematical function. Enter function in the field in the top part of widget and press "Show".</p>
<p>You can enter following mathematical function:<br/>
<p><span>This widget allow to draw mathematical function. Enter function in the field in the top part of widget and press "Show".</span></p>
<p><span>You can enter following mathematical function:</span><br/>
<h2>Basic operations</h2>
<ul>
<li>Plus -> <span class="gras">+</span></li>
<li>Minus -> <span class="gras">-</span></li>
<li>Multiplication -> <span class="gras">*</span></li>
<li>Division -> <span class="gras">/</span></li>
<li>Mod -> <span class="gras">%</span></li>
<li><span>Plus</span> -> <span class="gras">+</span></li>
<li><span>Minus</span> -> <span class="gras">-</span></li>
<li><span>Multiplication</span> -> <span class="gras">*</span></li>
<li><span>Division</span> -> <span class="gras">/</span></li>
<li><span>Mod</span> -> <span class="gras">%</span></li>
</ul>
<h2>Trigonometric functions</h2>
<ul>
<li>Sine -> <span class="gras">sin(x)</span></li>
<li>Cosine -> <span class="gras">cos(x)</span></li>
<li>Tangent -> <span class="gras">tan(x)</span></li>
<li>Cotangent -> <span class="gras">cot(x)</span></li>
<li>Secant -> <span class="gras">sec(x)</span></li>
<li>Cosecant -> <span class="gras">csc(x)</span></li>
<li><span>Sine</span> -> <span class="gras">sin(x)</span></li>
<li><span>Cosine</span> -> <span class="gras">cos(x)</span></li>
<li><span>Tangent</span> -> <span class="gras">tan(x)</span></li>
<li><span>Cotangent</span> -> <span class="gras">cot(x)</span></li>
<li><span>Secant</span> -> <span class="gras">sec(x)</span></li>
<li><span>Cosecant</span> -> <span class="gras">csc(x)</span></li>
</ul>
<ul>
<li>Arc sine -> <span class="gras">arcsin(x)</span> ou <span class="gras">asin(x)</span></li>
<li>Arc cosine -> <span class="gras">arccos(x)</span> ou <span class="gras">acos(x)</span></li>
<li>Arc tangent -> <span class="gras">arctan(x)</span> ou <span class="gras">atan(x)</span></li>
<li>Arc cotangent -> <span class="gras">arccot(x)</span> ou <span class="gras">acot(x)</span></li>
<li><span>Arc sine</span> -> <span class="gras">arcsin(x)</span> <span>or</span> <span class="gras">asin(x)</span></li>
<li><span>Arc cosine</span> -> <span class="gras">arccos(x)</span> <span>or</span> <span class="gras">acos(x)</span></li>
<li><span>Arc tangent</span> -> <span class="gras">arctan(x)</span> <span>or</span> <span class="gras">atan(x)</span></li>
<li><span>Arc cotangent</span> -> <span class="gras">arccot(x)</span> <span>or</span> <span class="gras">acot(x)</span></li>
</ul>
<h2>Hyperbolic functions</h2>
<ul>
<li>Hyperbolic sine -> <span class="gras">sinh(x)</span></li>
<li>Hyperbolic cosine -> <span class="gras">cosh(x)</span></li>
<li>Hyperbolic tangent -> <span class="gras">tanh(x)</span></li>
<li>Hyperbolic cotangent -> <span class="gras">coth(x)</span></li>
<li>Hyperbolic secant -> <span class="gras">sech(x)</span></li>
<li>Hyperbolic cosecant -> <span class="gras">csch(x)</span></li>
<li><span>Hyperbolic sine</span> -> <span class="gras">sinh(x)</span></li>
<li><span>Hyperbolic cosine</span> -> <span class="gras">cosh(x)</span></li>
<li><span>Hyperbolic tangent</span> -> <span class="gras">tanh(x)</span></li>
<li><span>Hyperbolic cotangent</span> -> <span class="gras">coth(x)</span></li>
<li><span>Hyperbolic secant</span> -> <span class="gras">sech(x)</span></li>
<li><span>Hyperbolic cosecant</span> -> <span class="gras">csch(x)</span></li>
</ul>
<ul>
<li>Hyperbolic arc sine -> <span class="gras">arcsinh(x)</span> or <span class="gras">asinh(x)</span></li>
<li>Hyperbolic arc cosine -> <span class="gras">arccosh(x)</span> or <span class="gras">acosh(x)</span></li>
<li>Hyperbolic arc tangent -> <span class="gras">arctanh(x)</span> or <span class="gras">atanh(x)</span></li>
<li>Hyperbolic arc cotangent -> <span class="gras">arccoth(x)</span> or <span class="gras">acoth(x)</span></li>
<li><span>Hyperbolic arc sine</span> -> <span class="gras">arcsinh(x)</span> <span>or</span> <span class="gras">asinh(x)</span></li>
<li><span>Hyperbolic arc cosine</span> -> <span class="gras">arccosh(x)</span> <span>or</span> <span class="gras">acosh(x)</span></li>
<li><span>Hyperbolic arc tangent</span> -> <span class="gras">arctanh(x)</span> <span>or</span> <span class="gras">atanh(x)</span></li>
<li><span>Hyperbolic arc cotangent</span> -> <span class="gras">arccoth(x)</span> <span>or</span> <span class="gras">acoth(x)</span></li>
</ul>
<h2>Square roots and degrees</h2>
<ul>
<li>Square root -> <span class="gras">sqrt(x)</span></li>
<li>Degree -> <span class="gras">pow(x, y)</span> <span class="texteSecondaire">Variable x to the power y</span></li>
<li>Root -> <span class="gras">root(x, y)</span> <span class="texteSecondaire">Root y of x</span></li>
<li><span>Square root</span> -> <span class="gras">sqrt(x)</span></li>
<li><span>Degree</span> -> <span class="gras">pow(x, y)</span> <span class="texteSecondaire">Variable x to the power y</span></li>
<li><span>Root</span> -> <span class="gras">root(x, y)</span> <span class="texteSecondaire">Root y of x</span></li>
</ul>
<h2>Exponential and logarithm</h2>
<ul>
<li>e<span style="vertical-align:super;">x</span> -> <span class="gras">exp(x)</span></li>
<li>Natural logarithm -> <span class="gras">ln(x)</span></li>
<li>Decimal logarithm -> <span class="gras">log(x)</span></li>
<li><span>Natural logarithm</span> -> <span class="gras">ln(x)</span></li>
<li><span>Decimal logarithm</span> -> <span class="gras">log(x)</span></li>
</ul>
<h2>Absolute number value</h2>
<ul>
@ -690,14 +1201,14 @@
</ul>
<h2>Rounding</h2>
<ul>
<li><span class="gras">round(x)</span> -> rounding to the nearest whole number</li>
<li><span class="gras">ceil(x)</span> -> rounding to the nearest whole number in a big way</li>
<li><span class="gras">floor(x)</span> -> rounding to the nearest whole number the smaller side</li>
<li><span class="gras">round(x)</span> -> <span>rounding to the nearest whole number</span></li>
<li><span class="gras">ceil(x)</span> -> <span>rounding to the nearest whole number in a big way</span></li>
<li><span class="gras">floor(x)</span> -> <span>rounding to the nearest whole number the smaller side</span></li>
</ul>
</p> <br/>
<hr/>
<h1>Constants</h1>
<p>Also are available some constants:<br/>
<p><span>Also are available some constants:</span><br/>
<ul>
<li><span class="gras">pi</span> = 4 * atan(1) ≈ 3,141592653589793</li>
<li><span class="gras">e</span> = exp(1) ≈ 2.718281828459045</li>
@ -707,11 +1218,11 @@
<hr/>
<h1>Keyboard keys</h1>
<p style="font-size:90%;">
esc -> reset widget <br/>
ctrl + left arrow -> graph will be moved left<br/>
ctrl + top arrow -> graph will be moved top<br/>
ctrl + right arrow -> graph will be moved right<br/>
ctrl + bottom arrow -> graph will be moved bottom<br/>
esc -> <span>reset widget</span> <br/>
ctrl + <span>left arrow</span> -> <span>graph will be moved left</span><br/>
ctrl + <span>top arrow</span> -> <span>graph will be moved top</span><br/>
ctrl + <span>right arrow</span> -> <span>graph will be moved right</span><br/>
ctrl + <span>bottom arrow</span> -> <span>graph will be moved bottom</span><br/>
<br/>
</p>
<br/>
@ -768,10 +1279,10 @@
</table>
<div class="contenuMenu avecBordures">
<h4>Save graph</h4>
In some browsers when used display method "Canvas" you can save graph by clicking it with right mouse button and selecting "Save image". Also you can save 3D-graphs.
<span>In some browsers when used display method "Canvas" you can save graph by clicking it with right mouse button and selecting "Save image". Also you can save 3D-graphs.</span>
<br/><br/>
<h4>Offset</h4>
If graph isn't in the right place (larger than canvas) then can you set necessary parameters graph displaying in settings menu.
<span>If graph isn't in the right place (larger than canvas) then can you set necessary parameters graph displaying in settings menu.</span>
</div>
<div class="barreBasMenu"><input type="button" onclick='cacherMenu()' value="Cancel"/></div>
</div>
@ -792,9 +1303,9 @@
</table>
<span class="texteSecondaire">
<br/><br/>
If you want to inform about bug, make a proposal or just ask some questions then you can contact to me at the following e-mail: <a href='mailto:yannick.vessaz@gmail.com'>e-mail</a>.
<span>If you want to inform about bug, make a proposal or just ask some questions then you can contact to me at the following e-mail:</span> <a href='mailto:yannick.vessaz@gmail.com'>e-mail</a>.
<br/><br/>
If you want to change background design then you can contact at following address: <a href="http://kde.org">KDE</a>.
<span>If you want to change background design then you can contact at following address:</span> <a href="http://kde.org">KDE</a>.
</span>
<span id="version" class="texteSecondaire" style="position:absolute;bottom:10px;left:15px;">version 1.3</span>
</div>
@ -805,27 +1316,27 @@
<div id="menuOutils" class="menu">
<div class="contenuMenu">
<h3 style="margin-top:0px; margin-bottom:15px;">Tools</h3>
Mouse events:<br/>
<span>Mouse events:</span><br/>
<input type="button" class="choixOutil" onclick="choixOutil('deplacement');cacherMenu()" value="Moving"/>
<input type="button" class="choixOutil" onclick="choixOutil('tangente');cacherMenu()" value="Tangente"/>
<input type="button" class="choixOutil" onclick="choixOutil('point');cacherMenu()" value="Point"/>
<br/><br/>
Derivative:<br/>
<span>Derivative:</span><br/>
<label for="checkDerivee"> f'(x) </label><input type="checkbox" id="checkDerivee" onclick="actualiserGraph()"/><label for="checkDerivee2"> f''(x) </label><input type="checkbox" id="checkDerivee2" onclick="actualiserGraph()"/>
<br/><br/>
Square under function:<br/>
From <input value="-5" class="smallInput" id="aireG"/> to <input value="5" class="smallInput" id="aireD"/> <input type="button" onclick='calculerAire()' value="Calculate"/> <span id="outputAire"></span>
<span>Square under function:</span><br/>
<span>From</span> <input value="-5" class="smallInput" id="aireG"/> <span>to</span> <input value="5" class="smallInput" id="aireD"/> <input type="button" onclick='calculerAire()' value="Calculate"/> <span id="outputAire"></span>
<div style="float: right;"><label for="checkAire">Draw </label><input type="checkbox" id="checkAire" onclick="actualiserGraph()"/></div>
<br/><br/>
Calculate the point on the function:<br/>
<span>Calculate the point on the function:</span><br/>
x=<input value="0" class="smallInput" id="inputX" onkeypress='if(event.keyCode==13) execute(document.getElementById("inputEq").value)'/>
<input type="button" onclick='execute(document.getElementById("inputEq").value)' value="Estimate"/>
<span id="outputX"></span>
<br/><br/>
Analysis of function: <br/>
<span>Analysis of function:</span> <br/>
f(x) = <span id="etudeFct"></span> <input type="button" value="Start to analysis" onclick='etudier(document.getElementById("inputEq").value);afficherMenu("menuEtude")'/>
<br/><br/>
Display test:<br/>
<span>Display test:</span><br/>
<input type="button" onclick='cacherMenu(); testXPM()' value="Test XPM"/><input type="button" onclick='cacherMenu(); testSVG()' value="Test SVG"/><input type="button" onclick='cacherMenu(); testCanvas()' value="Test Canvas"/>
</div>
<div class="barreBasMenu"><input type="button" onclick='cacherMenu()' value="Cancel"/></div>
@ -834,25 +1345,25 @@
<!--Etude de fonction -->
<div id="menuEtude" class="menu">
<div class="contenuMenu">
<h3>Analysis of function in the</h3>
Set of definitions : <span id="etudeEDF">...</span> <br/>
Parity : <span id="etudeParite">...</span> <br/>
Zeros of functions : <span id="etudeZeros">...</span> <br/>
<h3>Analysis of function</h3>
<span>Set of definitions:</span> <span id="etudeEDF">...</span> <br/>
<span>Parity:</span> <span id="etudeParite">...</span> <br/>
<span>Zeros of functions:</span> <span id="etudeZeros">...</span> <br/>
<table>
<tr id="etudeSigne">
<td>Sign : ...</td>
</tr>
</table>
Asymptotes <br/>
AH left : <span id="etudeAHG">...</span> <br/>
AH right : <span id="etudeAHD">...</span> <br/>
AV : <span id="etudeAV">...</span>
<span>Asymptotes</span> <br/>
<span>AH left:</span> : <span id="etudeAHG">...</span> <br/>
<span>AH right:</span> <span id="etudeAHD">...</span> <br/>
<span>AV:</span> <span id="etudeAV">...</span>
<span id="etudeMin">...</span>
<span id="etudeMax">...</span>
<span id="etudeI">...</span> <br/><br/>
<span class="texteSecondaire" style="font-size:10px;">Tool for analysis of function is not reliable on 100%. Don't forget check results of analysis before use it.</span>
</div>
<div class="barreBasMenu"><input type="button" onclick="etudier(document.getElementById('inputEq').value)" value="Actualize" style="position:relative;right:310px;"/> <input type="button" onclick='cacherMenu()' value="Cancel"/></div>
<div class="barreBasMenu"><input type="button" onclick='cacherMenu()' value="Cancel"/></div>
</div>
<!-- Fonctions multiples -->
@ -1035,10 +1546,10 @@
<!-- Menu des mises à jour -->
<div id="mAj" class="menu">
<h1>Updated</h1>
Current version: <br/><span id="thisVersion"></span><br/>
The last on-line version: <br/><span id="newVersion"></span><br/>
<span>Current version:</span> <br/><span id="thisVersion"></span><br/>
<span>The last on-line version:</span> <br/><span id="newVersion"></span><br/>
<br/>
This widget is available to using on web-site: <em>http://gyb.educanet2.ch/tm-widgets/yannick</em><br/>
<span>This widget is available to using on web-site:</span> <em>http://gyb.educanet2.ch/tm-widgets/yannick</em><br/>
<br/>
</div>

@ -15,288 +15,318 @@ var bleu3D = 2
var couleurGenerale = 0
function activer3D(){
if(fonction3D){ // Si activé alors on le désative
fonction3D = false
choixOutil(outilPrecedent)
document.getElementById('onglet3D').innerHTML = "3D"
largeur = 500
document.getElementById("affichage").style.width = largeur+"px"
document.getElementById("affichage").style.left = "129px"
document.getElementById("flecheGauche").style.left = "137px"
document.getElementById("flecheHaut").style.left = "345px"
document.getElementById("flecheBas").style.left = "345px"
document.getElementById("gauche").style.display = "block"
document.getElementById("gauche3D").style.display = "none"
var elements = document.getElementsByClassName("menu")
for(var i=0; i<elements.length; i++){
elements[i].style.left = "121px"
}
reinitialiserZoom(5)
}
else{ // Sinon on l'active
fonction3D = true
outilPrecedent = outil
choixOutil("deplacement")
document.getElementById('onglet3D').innerHTML = "2D"
largeur = 570
document.getElementById("affichage").style.width = largeur+"px"
document.getElementById("affichage").style.left = "59px"
document.getElementById("flecheGauche").style.left = "67px"
document.getElementById("flecheHaut").style.left = "290px"
document.getElementById("flecheBas").style.left = "290px"
document.getElementById("gauche").style.display = "none"
document.getElementById("gauche3D").style.display = "block"
var elements = document.getElementsByClassName("menu")
for(var i=0; i<elements.length; i++){
elements[i].style.left = "61px"
}
initialise3D()
}
if(fonction3D){ // Si activé alors on le désative
fonction3D = false
choixOutil(outilPrecedent)
document.getElementById('onglet3D').innerHTML = "3D"
largeur = 500
document.getElementById("affichage").style.width = largeur+"px"
document.getElementById("affichage").style.left = "129px"
document.getElementById("flecheGauche").style.left = "137px"
document.getElementById("flecheHaut").style.left = "345px"
document.getElementById("flecheBas").style.left = "345px"
document.getElementById("gauche").style.display = "block"
document.getElementById("gauche3D").style.display = "none"
var elements = document.getElementsByClassName("menu")
for(var i=0; i<elements.length; i++){
elements[i].style.left = "121px"
}
reinitialiserZoom(5)
}
else{ // Sinon on l'active
fonction3D = true
outilPrecedent = outil
choixOutil("deplacement")
document.getElementById('onglet3D').innerHTML = "2D"
largeur = 570
document.getElementById("affichage").style.width = largeur+"px"
document.getElementById("affichage").style.left = "59px"
document.getElementById("flecheGauche").style.left = "67px"
document.getElementById("flecheHaut").style.left = "290px"
document.getElementById("flecheBas").style.left = "290px"
document.getElementById("gauche").style.display = "none"
document.getElementById("gauche3D").style.display = "block"
var elements = document.getElementsByClassName("menu")
for(var i=0; i<elements.length; i++){
elements[i].style.left = "61px"
}
initialise3D()
}
}
function initialise3D() {
centreX = largeur / 2
centreY = hauteur / 2
document.getElementById("affichage").innerHTML = '<canvas id="canvas" width="'+largeur+'" height="'+hauteur+'"></canvas>'
ctx = document.getElementById('canvas').getContext('2d')
ctx.clearRect(0, 0, 640, 480)
ctx.fillStyle = "rgba(0, 0, 0, 0.5)"
ctx.fillRect(0,0,640,480)
axes()
centreX = largeur / 2
centreY = hauteur / 2
document.getElementById("affichage").innerHTML = '<canvas id="canvas" width="'+largeur+'" height="'+hauteur+'"></canvas>'
ctx = document.getElementById('canvas').getContext('2d')
ctx.clearRect(0, 0, 640, 480)
ctx.fillStyle = "rgba(0, 0, 0, 0.5)"
ctx.fillRect(0,0,640,480)
axes()
}
function dessiner3D(eq){
initialise3D()
if(document.getElementById("selectAffichage3D").value == "points"){
var coordX, coordY, coordZ
for(var x=gauche3D; x<droite3D; x+=precisionFonction3D){
for(var y=gauche3D; y<droite3D; y+=precisionFonction3D){
coordX = x
coordY = y
coordZ = eval(eq)
if(isNaN(coordZ)){
continue
}
point3D(coordX, coordY, coordZ)
}
}
}
else{
var x1, y1, z1, x2, y2, z2, x3, y3, z3
var x, y
for(var x1=gauche3D; x1<droite3D; x1+=precisionFonction3D){
for(var y1=gauche3D; y1<droite3D; y1+=precisionFonction3D){
x = x1
y = y1
z1 = eval(eq)
x2 = x1 + precisionFonction3D
y2 = y1
x = x2
//y = y2
z2 = eval(eq)
x3 = x2
y3 = y2 + precisionFonction3D
//x = x3
y = y3
z3 = eval(eq)
x4 = x3 - precisionFonction3D
y4 = y3
x = x4
//y = y4
z4 = eval(eq)
if(isNaN(z1)||isNaN(z2)||isNaN(z3)||isNaN(z4)){
continue
}
polygone3D(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4)
}
}
}
initialise3D()
if(document.getElementById("selectAffichage3D").value == "points"){
var coordX, coordY, coordZ
for(var x=gauche3D; x<droite3D; x+=precisionFonction3D){
for(var y=gauche3D; y<droite3D; y+=precisionFonction3D){
coordX = x
coordY = y
coordZ = eval(eq)
if(isNaN(coordZ)){
continue
}
point3D(coordX, coordY, coordZ)
}
}
}
else{
var x1, y1, z1, x2, y2, z2, x3, y3, z3
var x, y
for(var x1=gauche3D; x1<droite3D; x1+=precisionFonction3D){
for(var y1=gauche3D; y1<droite3D; y1+=precisionFonction3D){
x = x1
y = y1
z1 = eval(eq)
x2 = x1 + precisionFonction3D
y2 = y1
x = x2
//y = y2
z2 = eval(eq)
x3 = x2
y3 = y2 + precisionFonction3D
//x = x3
y = y3
z3 = eval(eq)
x4 = x3 - precisionFonction3D
y4 = y3
x = x4
//y = y4
z4 = eval(eq)
if(isNaN(z1)||isNaN(z2)||isNaN(z3)||isNaN(z4)){
continue
}
polygone3D(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4)
}
}
}
}
// Dessine un point à la position (x, y, z)
function point3D(x, y, z){
var posX = (Math.sin(angle)*x + Math.cos(angle)*y)*echelle3D
var posZ = -(z - Math.cos(angle)*x/2.6 + Math.sin(angle)*y/2.6)*echelle3D
var posX = (Math.sin(angle)*x + Math.cos(angle)*y)*echelle3D
var posZ = -(z - Math.cos(angle)*x/2.6 + Math.sin(angle)*y/2.6)*echelle3D
var opacity = Math.round((1-((5+y*Math.sin(angle)-x*Math.cos(angle)) / 450)*echelle3D)*1000)/1000
var couleur = new Array()
couleur[0] = Math.round((5+z)*echelle3D)
couleur[1] = Math.round(510 - (5+z)*echelle3D)
couleur[2] = couleurGenerale
if(opacity > 1){ opacity = 1 }
if(opacity < 0){ opacity = 0 }
if(couleur[0] > 255){ couleur[0] = 255 }
if(couleur[0] < 0){ couleur[0] = 0 }
if(couleur[1] > 255){ couleur[1] = 255 }
if(couleur[1] < 0){ couleur[1] = 0 }
var opacity = Math.round((1-((5+y*Math.sin(angle)-x*Math.cos(angle)) / 450)*echelle3D)*1000)/1000
var couleur = new Array()
couleur[0] = Math.round((5+z)*echelle3D)
couleur[1] = Math.round(510 - (5+z)*echelle3D)
couleur[2] = couleurGenerale
if(opacity > 1){
opacity = 1
}
if(opacity < 0){
opacity = 0
}
if(couleur[0] > 255){
couleur[0] = 255
}
if(couleur[0] < 0){
couleur[0] = 0
}
if(couleur[1] > 255){
couleur[1] = 255
}
if(couleur[1] < 0){
couleur[1] = 0
}
ctx.save()
ctx.translate(centreX, centreY)
ctx.scale(valeurZoom3D, valeurZoom3D)
ctx.fillStyle = "rgba("+couleur[rouge3D]+","+couleur[vert3D]+", "+couleur[bleu3D]+", "+opacity+")"
ctx.fillRect(posX-1, posZ-1, 2, 2)
ctx.restore()
ctx.save()
ctx.translate(centreX, centreY)
ctx.scale(valeurZoom3D, valeurZoom3D)
ctx.fillStyle = "rgba("+couleur[rouge3D]+","+couleur[vert3D]+", "+couleur[bleu3D]+", "+opacity+")"
ctx.fillRect(posX-1, posZ-1, 2, 2)
ctx.restore()
}
// Dessine un polygone qui a comme sommets : (x1, y1, z1) , (x2, y2, z2), (x3, y3, z3) et (x4, y4, z4)
function polygone3D(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4){
ctx.save()
ctx.translate(centreX, centreY)
ctx.scale(valeurZoom3D, valeurZoom3D)
ctx.beginPath()
ctx.moveTo((Math.sin(angle)*x1 + Math.cos(angle)*y1)*echelle3D , -(z1 - Math.cos(angle)*x1/2.6 + Math.sin(angle)*y1/2.6)*echelle3D)
ctx.lineTo((Math.sin(angle)*x2 + Math.cos(angle)*y2)*echelle3D , -(z2 - Math.cos(angle)*x2/2.6 + Math.sin(angle)*y2/2.6)*echelle3D)
ctx.lineTo((Math.sin(angle)*x3 + Math.cos(angle)*y3)*echelle3D , -(z3 - Math.cos(angle)*x3/2.6 + Math.sin(angle)*y3/2.6)*echelle3D)
ctx.lineTo((Math.sin(angle)*x4 + Math.cos(angle)*y4)*echelle3D , -(z4 - Math.cos(angle)*x4/2.6 + Math.sin(angle)*y4/2.6)*echelle3D)
ctx.save()
ctx.translate(centreX, centreY)
ctx.scale(valeurZoom3D, valeurZoom3D)
ctx.beginPath()
ctx.moveTo((Math.sin(angle)*x1 + Math.cos(angle)*y1)*echelle3D , -(z1 - Math.cos(angle)*x1/2.6 + Math.sin(angle)*y1/2.6)*echelle3D)
ctx.lineTo((Math.sin(angle)*x2 + Math.cos(angle)*y2)*echelle3D , -(z2 - Math.cos(angle)*x2/2.6 + Math.sin(angle)*y2/2.6)*echelle3D)
ctx.lineTo((Math.sin(angle)*x3 + Math.cos(angle)*y3)*echelle3D , -(z3 - Math.cos(angle)*x3/2.6 + Math.sin(angle)*y3/2.6)*echelle3D)
ctx.lineTo((Math.sin(angle)*x4 + Math.cos(angle)*y4)*echelle3D , -(z4 - Math.cos(angle)*x4/2.6 + Math.sin(angle)*y4/2.6)*echelle3D)
var opacity = Math.round((1-((5+y1*Math.sin(angle)-x1*Math.cos(angle)) / 450)*echelle3D)*1000)/1000
var couleur = new Array()
couleur[0] = Math.round((5+z1)*echelle3D)
couleur[1] = Math.round(510 - (5+z1)*echelle3D)
couleur[2] = couleurGenerale
if(opacity > 1){ opacity = 1 }
if(opacity < 0){ opacity = 0 }
if(couleur[0] > 255){ couleur[0] = 255 }
if(couleur[0] < 0){ couleur[0] = 0 }
if(couleur[1] > 255){ couleur[1] = 255 }
if(couleur[1] < 0){ couleur[1] = 0 }
var opacity = Math.round((1-((5+y1*Math.sin(angle)-x1*Math.cos(angle)) / 450)*echelle3D)*1000)/1000
var couleur = new Array()
couleur[0] = Math.round((5+z1)*echelle3D)
couleur[1] = Math.round(510 - (5+z1)*echelle3D)
couleur[2] = couleurGenerale
if(opacity > 1){
opacity = 1
}
if(opacity < 0){
opacity = 0
}
if(couleur[0] > 255){
couleur[0] = 255
}
if(couleur[0] < 0){
couleur[0] = 0
}
if(couleur[1] > 255){
couleur[1] = 255
}
if(couleur[1] < 0){
couleur[1] = 0
}
ctx.fillStyle = "rgba("+couleur[rouge3D]+","+couleur[vert3D]+", "+couleur[bleu3D]+", "+opacity+")"
ctx.closePath()
ctx.fill()
ctx.restore()
ctx.fillStyle = "rgba("+couleur[rouge3D]+","+couleur[vert3D]+", "+couleur[bleu3D]+", "+opacity+")"
ctx.closePath()
ctx.fill()
ctx.restore()
}
// Dessine les axes
function axes(){
for(var i=-5; i<5; i+=precisionDroite3D){
point3D(0, 0, i)
}
for(var i=-5.5; i<5.5; i+=precisionDroite3D){
point3D(i, 0, 0)
}
for(var i=-5.5; i<5.5; i+=precisionDroite3D){
point3D(0, i, 0)
}
for(var i=-5; i<5; i+=precisionDroite3D){
point3D(0, 0, i)
}
for(var i=-5.5; i<5.5; i+=precisionDroite3D){
point3D(i, 0, 0)
}
for(var i=-5.5; i<5.5; i+=precisionDroite3D){
point3D(0, i, 0)
}
}
function cube(x, y, z, r){
// Face de devant
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+i, y, z)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+r, y+i, z)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+r-i, y+r, z)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x, y+r-i, z)
}
// Face de derrière
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+i, y, z+r)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+r, y+i, z+r)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+r-i, y+r, z+r)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x, y+r-i, z+r)
}
// Arrêtes
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x, y, z+i)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x, y+r, z+i)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+r, y, z+i)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+r, y+r, z+i)
}
// Face de devant
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+i, y, z)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+r, y+i, z)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+r-i, y+r, z)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x, y+r-i, z)
}
// Face de derrière
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+i, y, z+r)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+r, y+i, z+r)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+r-i, y+r, z+r)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x, y+r-i, z+r)
}
// Arrêtes
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x, y, z+i)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x, y+r, z+i)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+r, y, z+i)
}
for(var i=0; i<r; i+=precisionDroite3D){
point3D(x+r, y+r, z+i)
}
}
// Change les couleurs de l'affichage 3D et affiche l'aperçu de celles-ci.
function checkCouleurs3D(){
var rouge, vert, bleu
var sensRouge, sensVert, sensBleu
var precisionApercu = 64
couleurGenerale = parseInt(document.getElementById("couleur3Dgenerale").value)
if(!couleurGenerale){ couleurGenerale = 0 }
if(couleurGenerale < 0){ couleurGenerale = 0 }
if(couleurGenerale > 255){ couleurGenerale = 255 }
switch(document.getElementById("selectRouge3D").value){
case "plus":
rouge3D = 0
rouge = 255
sensRouge = -1
break
case "moins":
rouge3D = 1
rouge = 0
sensRouge = 1
break
case "tout":
rouge3D = 2
rouge = couleurGenerale
sensRouge = 0
break
}
switch(document.getElementById("selectVert3D").value){
case "plus":
vert3D = 0
vert = 255
sensVert = -1
break
case "moins":
vert3D = 1
vert = 0
sensVert = 1
break
case "tout":
vert3D = 2
vert = couleurGenerale
sensVert = 0
break
}
switch(document.getElementById("selectBleu3D").value){
case "plus":
bleu3D = 0
bleu = 255
sensBleu = -1
break
case "moins":
bleu3D = 1
bleu = 0
sensBleu = 1
break
case "tout":
bleu3D = 2
bleu = couleurGenerale
sensBleu = 0
break
}
document.getElementById("apercuCouleur3D").innerHTML = "<span style='background-color:rgba("+rouge+","+vert+","+bleu+",1);color:rgba(0,0,0,0);'>.</span>"
for(var i=0; i<precisionApercu; i++){
rouge = rouge + sensRouge*(256/precisionApercu)
vert = vert + sensVert*(256/precisionApercu)
bleu = bleu + sensBleu*(256/precisionApercu)
document.getElementById("apercuCouleur3D").innerHTML = document.getElementById("apercuCouleur3D").innerHTML + "<span style='background-color:rgba("+rouge+","+vert+","+bleu+",1);color:rgba(0,0,0,0);'>.</span>"
}
var rouge, vert, bleu
var sensRouge, sensVert, sensBleu
var precisionApercu = 64
couleurGenerale = parseInt(document.getElementById("couleur3Dgenerale").value)
if(!couleurGenerale){
couleurGenerale = 0
}
if(couleurGenerale < 0){
couleurGenerale = 0
}
if(couleurGenerale > 255){
couleurGenerale = 255
}
switch(document.getElementById("selectRouge3D").value){
case "plus":
rouge3D = 0
rouge = 255
sensRouge = -1
break
case "moins":
rouge3D = 1
rouge = 0
sensRouge = 1
break
case "tout":
rouge3D = 2
rouge = couleurGenerale
sensRouge = 0
break
}
switch(document.getElementById("selectVert3D").value){
case "plus":
vert3D = 0
vert = 255
sensVert = -1
break
case "moins":
vert3D = 1
vert = 0
sensVert = 1
break
case "tout":
vert3D = 2
vert = couleurGenerale
sensVert = 0
break
}
switch(document.getElementById("selectBleu3D").value){
case "plus":
bleu3D = 0
bleu = 255
sensBleu = -1
break
case "moins":
bleu3D = 1
bleu = 0
sensBleu = 1
break
case "tout":
bleu3D = 2
bleu = couleurGenerale
sensBleu = 0
break
}
document.getElementById("apercuCouleur3D").innerHTML = "<span style='background-color:rgba("+rouge+","+vert+","+bleu+",1);color:rgba(0,0,0,0);'>.</span>"
for(var i=0; i<precisionApercu; i++){
rouge = rouge + sensRouge*(256/precisionApercu)
vert = vert + sensVert*(256/precisionApercu)
bleu = bleu + sensBleu*(256/precisionApercu)
document.getElementById("apercuCouleur3D").innerHTML = document.getElementById("apercuCouleur3D").innerHTML + "<span style='background-color:rgba("+rouge+","+vert+","+bleu+",1);color:rgba(0,0,0,0);'>.</span>"
}
}
function zoom3D(valeur){
valeurZoom3D *= valeur
gauche3D /= valeur
droite3D /= valeur
precisionFonction3D /= valeur
precisionDroite3D /= valeur
//alert(valeurZoom3D+" ; "+gauche3D+" ; "+droite3D+" ; "+precisionFonction3D+" ; "+precisionDroite3D)
actualiserGraph()
valeurZoom3D *= valeur
gauche3D /= valeur
droite3D /= valeur
precisionFonction3D /= valeur
precisionDroite3D /= valeur
//alert(valeurZoom3D+" ; "+gauche3D+" ; "+droite3D+" ; "+precisionFonction3D+" ; "+precisionDroite3D)
actualiserGraph()
}

@ -13,314 +13,313 @@ var intervalEtudeDroite = 50
var precisionEtude = 0.001
function etudier(fct){
if(check(fct)){
prepareEtude(fct)
pariteFct()
signeFct(fct)
if(check(fct)){
prepareEtude(fct)
pariteFct()
signeFct(fct)
asymptotes()
courbure()
ensembleDefinition()
}
ensembleDefinition()
}
}
// Préparation à l'étude de fonction
function prepareEtude(fct){
listeIndefini = new Array()
listeIndefini = new Array()
var f = function(x){
return eval(fct)
}
// Calcul de tous les points de la fonction
var i = 0
for(var x=intervalEtudeGauche; x<=intervalEtudeDroite; x+=precisionEtude){
etudeX[i] = x
etudeY[i] = Math.round(f(x)*10000)/10000
etudeD[i] = Math.round(1000000*(f(x+0.0001)-f(x-0.0001))/(2*0.0001))/1000000
i++
}
// Calcul des extrémités de la fonction
var x = -100000
limGauche[0] = f(x)
x = -10000
limGauche[1] = f(x)
x = 100000
limDroite[0] = f(x)
x = 10000
limDroite[1] = f(x)
// Calcul de tous les points de la fonction
var i = 0
for(var x=intervalEtudeGauche; x<=intervalEtudeDroite; x+=precisionEtude){
etudeX[i] = x
etudeY[i] = Math.round(f(x)*10000)/10000
etudeD[i] = Math.round(1000000*(f(x+0.0001)-f(x-0.0001))/(2*0.0001))/1000000
i++
}
// Calcul des extrémités de la fonction
var x = -100000
limGauche[0] = f(x)
x = -10000
limGauche[1] = f(x)
x = 100000
limDroite[0] = f(x)
x = 10000
limDroite[1] = f(x)
}
// Recherche de l'ensemble de définition
function ensembleDefinition(){
var fctDefinie = false
var dejaDefinie = false
var EDF = ""
if(!isNaN(limGauche[0])){
fctDefinie = true
dejaDefinie = true
EDF += "]-∞;"
}
if(!isNaN(limGauche[1]) && !fctDefinie){
fctDefinie = true
dejaDefinie = true
EDF += "]-∞;"
}
for(var i=0; i<etudeX.length; i++){
if(fctDefinie && isNaN(etudeY[i])){
fctDefinie = false
EDF += (parseInt(etudeX[i]/precisionEtude)*precisionEtude)+"["
}
else if(!fctDefinie && !isNaN(etudeY[i])){
fctDefinie = true
if(dejaDefinie){
EDF += " u "
}
EDF += "["+(parseInt(etudeX[i]/precisionEtude)*precisionEtude)+";"
dejaDefinie = true
}
}
if(fctDefinie && !isNaN(limDroite[1])){
fctDefinie = false
EDF += "+∞["
}
if(fctDefinie && !isNaN(limDroite[0])){
fctDefinie = false
EDF += "+∞["
}
for(var i=0; i<listeIndefini.length; i++){
if(i==0){
EDF += " - {"
}
EDF += listeIndefini[i]
if(i==listeIndefini.length-1){
EDF += "}"
}
else
EDF += ";"
}
document.getElementById('etudeEDF').innerHTML = EDF
var fctDefinie = false
var dejaDefinie = false
var EDF = ""
if(!isNaN(limGauche[0])){
fctDefinie = true
dejaDefinie = true
EDF += "]-∞;"
}
if(!isNaN(limGauche[1]) && !fctDefinie){
fctDefinie = true
dejaDefinie = true
EDF += "]-∞;"
}
for(var i=0; i<etudeX.length; i++){
if(fctDefinie && isNaN(etudeY[i])){
fctDefinie = false
EDF += (parseInt(etudeX[i]/precisionEtude)*precisionEtude)+"["
}
else if(!fctDefinie && !isNaN(etudeY[i])){
fctDefinie = true
if(dejaDefinie){
EDF += " u "
}
EDF += "["+(parseInt(etudeX[i]/precisionEtude)*precisionEtude)+";"
dejaDefinie = true
}
}
if(fctDefinie && !isNaN(limDroite[1])){
fctDefinie = false
EDF += "+∞["
}
if(fctDefinie && !isNaN(limDroite[0])){
fctDefinie = false
EDF += "+∞["
}
for(var i=0; i<listeIndefini.length; i++){
if(i==0){
EDF += " - {"
}
EDF += listeIndefini[i]
if(i==listeIndefini.length-1){
EDF += "}"
}
else
EDF += ";"
}
document.getElementById('etudeEDF').innerHTML = EDF
}
// Etude de la parité
function pariteFct(){
var posZero
var paire = true
var impaire = true
var positif, negatif
var precisionParite = 1000
for(var i=0;i<etudeX.length;i++){
if(Math.round(etudeX[i]*precisionParite)/precisionParite==0){
posZero = i
}
}
for(var i=1; i<etudeX.length/2; i++){
if(etudeY[posZero+i]>0){
positif = Math.floor(etudeY[posZero+i])
}
else{
positif = Math.ceil(etudeY[posZero+i])
}
if(etudeY[posZero-i]>0){
negatif = Math.floor(etudeY[posZero-i])
}
else{
negatif = Math.ceil(etudeY[posZero-i])
}
var posZero
var paire = true
var impaire = true
var positif, negatif
var precisionParite = 1000
for(var i=0;i<etudeX.length;i++){
if(Math.round(etudeX[i]*precisionParite)/precisionParite==0){
posZero = i
}
}
for(var i=1; i<etudeX.length/2; i++){
if(etudeY[posZero+i]>0){
positif = Math.floor(etudeY[posZero+i])
}
else{
positif = Math.ceil(etudeY[posZero+i])
}
if(etudeY[posZero-i]>0){
negatif = Math.floor(etudeY[posZero-i])
}
else{
negatif = Math.ceil(etudeY[posZero-i])
}
if(positif<25000 && positif>-25000){
if(positif != negatif){
paire = false
//alert(i+" ; "+posZero+" ; "+etudeX.length+" ; "+positif+" ; "+negatif)
}
if(positif != (-negatif)){
impaire = false
}
}
}
if(paire){
document.getElementById("etudeParite").innerHTML = "even"
}
else if(impaire){
document.getElementById("etudeParite").innerHTML = "uneven"
}
else{
document.getElementById("etudeParite").innerHTML = "n/a"
}
if(positif<25000 && positif>-25000){
if(positif != negatif){
paire = false
//alert(i+" ; "+posZero+" ; "+etudeX.length+" ; "+positif+" ; "+negatif)
}
if(positif != (-negatif)){
impaire = false
}
}
}
if(paire){
document.getElementById("etudeParite").innerHTML = sankoreLang[lang].ev;
}
else if(impaire){
document.getElementById("etudeParite").innerHTML = sankoreLang[lang].unev;
}
else{
document.getElementById("etudeParite").innerHTML = sankoreLang[lang].na;
}
}
function zeroFct(){
listeZeros = new Array()
var listeZerosArr = new Array()
var precZeros = 5
for(var i=0; i<etudeX.length; i++){
if(Math.round(etudeY[i]*1000)/1000==0){
var nouveauZero = Math.round(etudeX[i]*precZeros)/precZeros
if(listeZerosArr[listeZerosArr.length-1]!=nouveauZero){
listeZeros.push(Math.round(etudeX[i]*10)/10)
listeZerosArr.push(nouveauZero)
}
}
}
listeZeros = new Array()
var listeZerosArr = new Array()
var precZeros = 5
for(var i=0; i<etudeX.length; i++){
if(Math.round(etudeY[i]*1000)/1000==0){
var nouveauZero = Math.round(etudeX[i]*precZeros)/precZeros
if(listeZerosArr[listeZerosArr.length-1]!=nouveauZero){
listeZeros.push(Math.round(etudeX[i]*10)/10)
listeZerosArr.push(nouveauZero)
}
}
}
}
function signeFct(fct){
var signe = new Array()
var signePlus = new Array()
var signeMoins = new Array()
var dernier = 0
if(limGauche[0]>0){
signe[0] = "+"
signePlus[0] = limGauche[1]
signeMoins[0] = limGauche[0]
}
else{
signe[0] = "-"
signePlus[0] = limGauche[1]
signeMoins[0] = limGauche[0]
}
for(var i=0; i<etudeY.length; i++){
if(signe[signe.length-1]=="+"){
if(etudeY[i]<0){
signe.push("-")
signePlus.push(etudeX[i])
signeMoins.push(etudeX[dernier])
}
else if(etudeY[i]>0){
dernier = i
}
}
if(signe[signe.length-1]=="-"){
if(etudeY[i]>0){
signe.push("+")
signePlus.push(etudeX[i])
signeMoins.push(etudeX[dernier])
//alert(signe+" ; "+signePlus+'\n'+etudeY[i+1]+" ; "+etudeY[i]+" ; "+etudeY[i-1]+" ; "+etudeY[i-2]+'\n'+etudeX[i+1]+" ; "+etudeX[i]+" ; "+etudeX[i-1]+" ; "+etudeX[i-2])
}
else if(etudeY[i]<0){
dernier = i
}
}
}
var valeurPlus, valeurMoins, millieu, precisionZero
listeZeros = new Array()
for(var i=1; i<signePlus.length; i++){
valeurPlus = signePlus[i]
valeurMoins = signeMoins[i]
for(var k=0;k<10000;k++){
millieu = (valeurPlus + valeurMoins)/2
x = valeurPlus
if(eval(fct)>0){
x = millieu
if(eval(fct)>0){
valeurPlus=millieu
}
else if(eval(fct)<0){
valeurMoins=millieu
}
else{
break
}
}
else if(eval(fct)<0){
x = millieu
if(eval(fct)<0){
valeurPlus=millieu
}
else if(eval(fct)>0){
valeurMoins=millieu
}
else{
break
}
}
else{
millieu = valeurPlus
break
}
x = valeurPlus
precisionZero = eval(fct)
x = valeurMoins
precisionZero -= eval(fct)
if(precisionZero>0.0001){
break
}
}
//alert(signePlus[i]+" et "+signeMoins[i]+" -> "+millieu)
listeZeros.push(Math.round(millieu*100)/100)
}
var texteZeros = ""
if(listeZeros==""){
zeroFct()
texteZeros = "~ "
}
var texte = "Signe : "
var aSupprimer = new Array()
for(var i=0; i<signe.length; i++){
texte += "<td>"+signe[i]+"</td>"
if(listeZeros[i]!=undefined){
x = listeZeros[i]
if(isFinite(eval(fct))){
texte += "<td class='border'>"+listeZeros[i]+"</td>"
}
else{
texte += "<td class='border infini'>"+listeZeros[i]+"</td>"
listeIndefini.push(listeZeros[i])
aSupprimer.push(i)
}
}
}
document.getElementById("etudeSigne").innerHTML = texte
for(var i=0; i<aSupprimer.length; i++){
listeZeros.splice((aSupprimer[i]-i), 1)
}
if(listeZeros==""){
texteZeros = "n/a"
}
document.getElementById("etudeZeros").innerHTML = texteZeros+listeZeros
var signe = new Array()
var signePlus = new Array()
var signeMoins = new Array()
var dernier = 0
if(limGauche[0]>0){
signe[0] = "+"
signePlus[0] = limGauche[1]
signeMoins[0] = limGauche[0]
}
else{
signe[0] = "-"
signePlus[0] = limGauche[1]
signeMoins[0] = limGauche[0]
}
for(var i=0; i<etudeY.length; i++){
if(signe[signe.length-1]=="+"){
if(etudeY[i]<0){
signe.push("-")
signePlus.push(etudeX[i])
signeMoins.push(etudeX[dernier])
}
else if(etudeY[i]>0){
dernier = i
}
}
if(signe[signe.length-1]=="-"){
if(etudeY[i]>0){
signe.push("+")
signePlus.push(etudeX[i])
signeMoins.push(etudeX[dernier])
//alert(signe+" ; "+signePlus+'\n'+etudeY[i+1]+" ; "+etudeY[i]+" ; "+etudeY[i-1]+" ; "+etudeY[i-2]+'\n'+etudeX[i+1]+" ; "+etudeX[i]+" ; "+etudeX[i-1]+" ; "+etudeX[i-2])
}
else if(etudeY[i]<0){
dernier = i
}
}
}
var valeurPlus, valeurMoins, millieu, precisionZero
listeZeros = new Array()
for(var i=1; i<signePlus.length; i++){
valeurPlus = signePlus[i]
valeurMoins = signeMoins[i]
for(var k=0;k<10000;k++){
millieu = (valeurPlus + valeurMoins)/2
x = valeurPlus
if(eval(fct)>0){
x = millieu
if(eval(fct)>0){
valeurPlus=millieu
}
else if(eval(fct)<0){
valeurMoins=millieu
}
else{
break
}
}
else if(eval(fct)<0){
x = millieu
if(eval(fct)<0){
valeurPlus=millieu
}
else if(eval(fct)>0){
valeurMoins=millieu
}
else{
break
}
}
else{
millieu = valeurPlus
break
}
x = valeurPlus
precisionZero = eval(fct)
x = valeurMoins
precisionZero -= eval(fct)
if(precisionZero>0.0001){
break
}
}
listeZeros.push(Math.round(millieu*100)/100)
}
var texteZeros = ""
if(listeZeros==""){
zeroFct()
texteZeros = "~ "
}
var texte = sankoreLang[lang].signe;
var aSupprimer = new Array()
for(var i=0; i<signe.length; i++){
texte += "<td>"+signe[i]+"</td>"
if(listeZeros[i]!=undefined){
x = listeZeros[i]
if(isFinite(eval(fct))){
texte += "<td class='border'>"+listeZeros[i]+"</td>"
}
else{
texte += "<td class='border infini'>"+listeZeros[i]+"</td>"
listeIndefini.push(listeZeros[i])
aSupprimer.push(i)
}
}
}
document.getElementById("etudeSigne").innerHTML = texte
for(var i=0; i<aSupprimer.length; i++){
listeZeros.splice((aSupprimer[i]-i), 1)
}
if(listeZeros==""){
texteZeros = sankoreLang[lang].na;
}
document.getElementById("etudeZeros").innerHTML = texteZeros+listeZeros
}
function asymptotes(){
// Horizontales
if(Math.abs(limGauche[0])<1000){
var limRound = Math.round(limGauche[0]*100)/100
if(limGauche[0]<limRound){
document.getElementById("etudeAHG").innerHTML = "y = "+limRound +" <span class='texteSecondaire'>(curve is higher than a l'AH)</span>"
}
else if(limGauche[0]>limRound){
document.getElementById("etudeAHG").innerHTML = "y = "+limRound +" <span class='texteSecondaire'>(curve is lower than a l'AH)</span>"
}
else{
document.getElementById("etudeAHG").innerHTML = "y = "+limRound
}
}
else{
document.getElementById("etudeAHG").innerHTML = "n/a"
}
if(Math.abs(limDroite[0])<1000){
var limRound = Math.round(limDroite[0]*100)/100
if(limDroite[0]<limRound){
document.getElementById("etudeAHD").innerHTML = "y = "+limRound +" <span class='texteSecondaire'>(curve is lower than a l'AH)</span>"
}
else if(limDroite[0]>limRound){
document.getElementById("etudeAHD").innerHTML = "y = "+limRound +" <span class='texteSecondaire'>(curve is higher than a l'AH)</span>"
}
else{
document.getElementById("etudeAHD").innerHTML = "y = "+limRound
}
}
else{
document.getElementById("etudeAHD").innerHTML = "n/a"
}
// Verticales
var texteAV = ""
for(var i=0; i<listeIndefini.length; i++){
texteAV += "x = "+listeIndefini[i]
if(listeIndefini[i+1]!=undefined){
texteAV += " ; "
}
}
if(texteAV==""){
texteAV = "n/a <br/>"
}
document.getElementById("etudeAV").innerHTML = texteAV
// Horizontales
if(Math.abs(limGauche[0])<1000){
var limRound = Math.round(limGauche[0]*100)/100
if(limGauche[0]<limRound){
document.getElementById("etudeAHG").innerHTML = "y = "+limRound +" <span class='texteSecondaire'>" + sankoreLang[lang].curve_higher + "</span>"
}
else if(limGauche[0]>limRound){
document.getElementById("etudeAHG").innerHTML = "y = "+limRound +" <span class='texteSecondaire'>" + sankoreLang[lang].curve_lower + "</span>"
}
else{
document.getElementById("etudeAHG").innerHTML = "y = "+limRound
}
}
else{
document.getElementById("etudeAHG").innerHTML = sankoreLang[lang].na;
}
if(Math.abs(limDroite[0])<1000){
var limRound = Math.round(limDroite[0]*100)/100
if(limDroite[0]<limRound){
document.getElementById("etudeAHD").innerHTML = "y = "+limRound +" <span class='texteSecondaire'>" + sankoreLang[lang].curve_lower + "</span>"
}
else if(limDroite[0]>limRound){
document.getElementById("etudeAHD").innerHTML = "y = "+limRound +" <span class='texteSecondaire'>" + sankoreLang[lang].curve_higher + "</span>"
}
else{
document.getElementById("etudeAHD").innerHTML = "y = "+limRound
}
}
else{
document.getElementById("etudeAHD").innerHTML = sankoreLang[lang].na;
}
// Verticales
var texteAV = ""
for(var i=0; i<listeIndefini.length; i++){
texteAV += "x = "+listeIndefini[i]
if(listeIndefini[i+1]!=undefined){
texteAV += " ; "
}
}
if(texteAV==""){
texteAV = sankoreLang[lang].na + " <br/>"
}
document.getElementById("etudeAV").innerHTML = texteAV
}
function courbure(){
@ -332,10 +331,10 @@ function courbure(){
for(i=0; i<etudeD.length; i++){
if(etudeD[i]==0){
if(etudeD[i-1]<0 && etudeD[i+1]>0){
texteMin += "<br/>Min("+Math.round(etudeX[i]*10000)/10000+";"+etudeY[i]+")";
texteMin += "<br/>" + sankoreLang[lang].min + "("+Math.round(etudeX[i]*10000)/10000+";"+etudeY[i]+")";
}
else if(etudeD[i-1]>0 && etudeD[i+1]<0){
texteMax += "<br/>Max("+Math.round(etudeX[i]*10000)/10000+";"+etudeY[i]+")";
texteMax += "<br/>" + sankoreLang[lang].max + "("+Math.round(etudeX[i]*10000)/10000+";"+etudeY[i]+")";
}
else{
nbrI++;
@ -343,10 +342,15 @@ function courbure(){
}
}
}
if(texteMin==""){texteMin = "<br/>No minimum";}
if(texteMax==""){texteMax = "<br/>No maximum";}
if(texteI==""){texteI = "<br/>Aucun I";}
if(texteMin==""){
texteMin = "<br/>" + sankoreLang[lang].no_min;
}
if(texteMax==""){
texteMax = "<br/>" + sankoreLang[lang].no_max;
}
if(texteI==""){
texteI = "<br/>Aucun I";
}
document.getElementById("etudeMin").innerHTML = texteMin;
document.getElementById("etudeMax").innerHTML = texteMax;
document.getElementById("etudeI").innerHTML = texteI;
}

@ -115,5 +115,5 @@ function checkOptions(){
}
function alertOptions(){
alert("Now parameters will be saved\n------------------------------------------------------------\n"+document.cookie);
alert(sankoreLang[lang].show_saved + "\n------------------------------------------------------------\n"+document.cookie);
}

@ -0,0 +1,506 @@
var sankoreLang = {
"en":{
"fnc":"Function: ",
"display":"Display",
"x_axis":"X-axis",
"y_axis":"Y-axis",
"zoom":"Zoom",
"color":"Color:",
"menus":"Menu",
"tools":"Tools",
"options":"Options",
"help":"Help",
"about":"About",
"mouse_events":"Mouse events:",
"moving":"Moving",
"tangente":"Tangente",
"point":"Point",
"choosing_color":"Choosing the color:",
"value":"Value:",
"saturation":"Saturation:",
"red":"Red:",
"green":"Green:",
"blue":"Blue:",
"opacity":"Opacity:",
"check":"Check",
"derivative":"Derivative:",
"square_under_func":"Square under function:",
"from":"From",
"to":"To",
"calculate":"Calculate",
"draw":"Draw",
"point_calculate":"Calculate the point on the function:",
"estimate":"Estimate",
"analysis_of_func":"Analysis of function:",
"start_to_analysis":"Start to analysis",
"quit":"Quit",
"display_test":"Display the test:",
"test":"Test",
"widget":"Widget",
"widget_options":"Widget options",
"themes_of_widget":"Themes of the widget:",
"black":"Black",
"white":"White",
"control_options":"Control options:",
"save":"Save",
"load":"Load",
"del":"Delete",
"save_a_widget_options":"Save a widget options in cookies or load an options from cookies or delete a registered options.",
"auto_update":"Automatically update when a widget opening.",
"reload_widget":"Reload widget",
"update":"Update",
"the_graphical":"The graphical method displaying:",
"lines":"lines",
"points":"points",
"image":"image",
"zoom_def":"Zoom default:",
"update_zoom":"Update zoom",
"show_grid":"Show grid",
"show_axis":"Show axis",
"scale":"Scale",
"thickness":"Thickness:",
"offset_diagram":"Offset diagram:",
"accuracy_graph":"Accuracy graph:",
"show_the_style":"Show the style:",
"surfaces":"surfaces",
"points":"points",
"reset_display":"Reset display",
"accuracy_func":"Accuracy function:",
"use_the_color":"Use the color:",
"positive_value":"positive value",
"negative_value":"negative value",
"general_value":"general value",
"how_it_work":"How it works",
"this_widget_allow":"This widget allows to draw mathematical function. Enter function in the field in the top part of the widget and press\"Display\"",
"you_can_enter":"You can enter following mathematical functions:",
"basic_operations":"Basic operations",
"plus":"Plus",
"minus":"Minus",
"multi":"Multiplication",
"division":"Division",
"mod":"Mod",
"trigonometric":"Trigonometric functions",
"sine":"Sine",
"cosine":"Cosine",
"tangent":"Tangent",
"cotangent":"Cotangent",
"secant":"Secant",
"cosecant":"Cosecant",
"arc_sine":"Arc sine",
"arc_cosine":"Arc cosine",
"arc_tangent":"Arc tangent",
"arc_cotangent":"Arc cotangent",
"hyperbolic_func":"Hyperbolic functions",
"hyp_sine":"Hyperbolic sine",
"hyp_cosine":"Hyperbolic cosine",
"hyp_tangent":"Hyperbolic tangent",
"hyp_cotangent":"Hyperbolic cotangent",
"hyp_secant":"Hyperbolic secant",
"hyp_cosecant":"Hyperbolic cosecant",
"hyp_arc_sine":"Hyperbolic arc sine",
"hyp_arc_cosine":"Hyperbolic arc cosine",
"hyp_arc_tangent":"Hyperbolic arc tangent",
"hyp_arc_cotangent":"Hyperbolic arc cotangent",
"square_roots_and_degrees":"Square roots and degrees",
"square_root":"Square root",
"degree":"Degree",
"root":"Root",
"variable_x":"Variable x to the power y",
"root_y":"Root y of x",
"exponential":"Exponential and logarithm",
"natural_log":"Natural logarithm",
"decimal_log":"Decimal logarithm",
"abs":"Absolute number value",
"rounding":"Rounding",
"round_nearest":"Rounding to the nearest whole number",
"round_nearest_big":"Rounding to the nearest whole number in a big way",
"round_nearest_small":"Rounding to the nearest whole number the smaller side",
"consts":"Constants",
"available_const":"Also are some constants available:",
"keys":"Keyboard keys",
"moved_left":"Graph will be moved left",
"moved_top":"Graph will be moved top",
"moved_right":"Graph will be moved right",
"moved_botom":"Graph will be moved bottom",
"guide":"User's guide",
"using":"Using",
"examples":"Examples",
"other":"Other",
"you_can_view":"You can view example. Don't forget to set a accuracy in option if it will be necessary.",
"save_graph":"Save graph",
"in_some_browsers":"In some browsers when display method \"Canvas\" used you can save graph by clcking it with right mouse button and selecting \"Save image\". Also you can save 3D-graphs.",
"offset":"Offset",
"if_graph_isnt":"If graph isn't in the right plase (larger than canvas) then can you set necessary parameters graph displaying in settings menu.",
"history":"History",
"current":"Current",
"additional":"Additional",
"left_arrow":"left arrow",
"right_arrow":"right arrow",
"top_arrow":"top arrow",
"bottom_arrow":"bottom arrow",
"or":"or",
"funcs":"Functions",
"widget_is_developed":"Widget is developed by",
"if_you_want_to":"If you want to inform about a bug, make a proposal or just ask some questions. You can contact to me at the following e-mail:",
"if_you_want_to_change":"If you want to change background design then you can contact at following address:",
"set_of_def":"Set of definitions:",
"parity":"Parity:",
"zeros":"Zeros of function:",
"signe":"Sign:",
"asympt":"Asymptotes",
"min":"Min",
"ev":"even",
"unev":"uneven",
"na":"n/a",
"curve_lower":"curve is lower than a AH",
"curve_higher":"curve is higher than a AH",
"max":"Max",
"no_min":"No minimum",
"no_max":"No maximum",
"tool_for":"Tool for analysis of function is not reliable on 100%. Don't forget check results of analysis before use it.",
"ah_left":"AH left:",
"ah_right":"AH right:",
"av":"AV:",
"options_saved":"Options saved!",
"cur_version":"Current version:",
"last_version":"The last on-line version:",
"using_web":"This widget is available to using on web-site:",
"show_saved":"Now parameters will be saved"
},
"ru":{
"fnc": "Функция: ",
"display":"Показать",
"x_axis":"ось X",
"y_axis":"ось Y",
"zoom":"Размер",
"color":"Цвет:",
"menus":"Меню",
"tools":"Инструменты",
"options":"Опции",
"help":"Помощь",
"about":"О программе",
"mouse_events":"События мыши:",
"moving":"Движение",
"tangente":"Касательная",
"point":"Точка",
"choosing_color":"Выбор цвета:",
"value":"Значение:",
"saturation":"Насыщенность:",
"red":"Красный:",
"green":"Зеленый:",
"blue":"Голубой:",
"opacity":"Прозрачность:",
"check":"Применить",
"derivative":"Производная:",
"square_under_func":"Область функции:",
"from":"От",
"to":"До",
"calculate":"Посчитать",
"draw":"Зарисовать",
"point_calculate":"Рассчитать точку функции:",
"estimate":"Оценить",
"analysis_of_func":"Анализ функции:",
"start_to_analysis":"Начать анализ",
"quit":"Выйти",
"display_test":"Показать тест:",
"test":"Тест",
"widget":"Виджет",
"widget_options":"Настройки виджета",
"themes_of_widget":"Темы виджета:",
"black":"Черный",
"white":"Белый",
"control_options":"Опции управления:",
"save":"Сохранить",
"load":"Загрузить",
"del":"Удалить",
"save_a_widget_options":"Сохранить или загрузить настройки виджета в/из куки-файлов, или же удалить выбранные опции",
"auto_update":"Автоматическое обновление виджета при загрузке",
"reload_widget":"Перегрузить виджет",
"update":"Обновить",
"the_graphical":"Графический метод отображения:",
"lines":"линии",
"points":"точки",
"image":"изображения",
"zoom_def":"Размер по-умолчанию:",
"update_zoom":"Изменить размер:",
"show_grid":"Показать таблицу",
"show_axis":"Показать оси",
"scale":"Масштаб",
"thickness":"Толщина",
"offset_diagram":"Смещение диаграммы:",
"accuracy_graph":"Точность графика:",
"show_the_style":"Показать стиль:",
"surfaces":"поверхности",
"points":"точки",
"reset_display":"Обновить отображение",
"accuracy_func":"Точность функции:",
"use_the_color":"Использовать цвет:",
"positive_value":"положительное значение",
"negative_value":"отрицательное значение",
"general_value":"основное значение",
"how_it_work":"Как это работает",
"this_widget_allow":"Этот виджет позволяет рисовать математические функции. Введите функцию в верхней части виджета и нажмите \"Показать\"",
"you_can_enter":"Вы можете использовать следующие математические функции:",
"basic_operations":"Основные операции",
"plus":"Сложение",
"minus":"Вычетание",
"multi":"Произведение",
"division":"Частное",
"mod":"Остаток от деления",
"trigonometric":"Тригонометрические функции",
"sine":"Синус",
"cosine":"Косинус",
"tangent":"Тангенс",
"cotangent":"Котангенс",
"secant":"Секанс",
"cosecant":"Косеканс",
"arc_sine":"Арксинус",
"arc_cosine":"Арккосинус",
"arc_tangent":"Арктангенс",
"arc_cotangent":"Арккотангенс",
"hyperbolic_func":"Гиперболические функции",
"hyp_sine":"Гиперболический синус",
"hyp_cosine":"Гиперболический косинус",
"hyp_tangent":"Гиперболический тангенс",
"hyp_cotangent":"Гиперболический котангенс",
"hyp_secant":"Гиперболический секанс",
"hyp_cosecant":"Гиперболический косеканс",
"hyp_arc_sine":"Гиперболический арксинус",
"hyp_arc_cosine":"Гиперболический арккосинус",
"hyp_arc_tangent":"Гиперболический арктангенс",
"hyp_arc_cotangent":"Гиперболический арккотангенс",
"square_roots_and_degrees":"Квардатные корни и степени",
"square_root":"Квадратный корень",
"degree":"Степень",
"root":"Корень",
"variable_x":"Переменная х в степени у",
"root_y":"Корень y степени x",
"exponential":"Экспоненты и логарифмы",
"natural_log":"Натуральный логарифм",
"decimal_log":"Десятичный логарифм",
"abs":"Абсолютное значение числа",
"rounding":"Округление",
"round_nearest":"Округление до ближайшего целого числа",
"round_nearest_big":"Округление до ближайшего целого числа в большую сторону",
"round_nearest_small":"Округление до ближайшего целого числа в меньую сторону",
"consts":"Константы",
"available_const":"Также доступны некоторые константы:",
"keys":"Горячие клавиши",
"moved_left":"График будет сдвинут влево",
"moved_top":"График будет сдвинут вверх",
"moved_right":"График будет сдвинут вправо",
"moved_bottom":"График будет сдвинут вниз",
"guide":"Руководство пользователя",
"using":"Использование",
"examples":"Примеры",
"other":"Другое",
"you_can_view":"Вы можете посмотреть примеры. Не забывайте выставить точность в настройках, если это необходимо.",
"save_graph":"Сохранить график",
"in_some_browsers":"В некоторых браузерах при выборе метода отоюражения \"Canvas\" вы можете сохранить гафик кликом ПКМ на нем и выбором пункта \"Сохранить изображение\". Таким же способом вы можете сохранять 3D-графики.",
"offset":"Смещение",
"if_graph_isnt":"Если график арсположен в неправильном месте (больше, чем холст), то Вы можете выставить необходимые параметры отображения графа в настройках виджета.",
"history":"История",
"current":"Текущие",
"additional":"Дополнительные",
"left_arrow":"стрелка влево",
"right_arrow":"стрелка вправо",
"top_arrow":"стрелка вверх",
"bottom_arrow":"стрелка вниз",
"or":"или",
"funcs":"Функции",
"widget_is_developed":"Виджет разработан ",
"if_you_want_to":"Если вы хотите сообщить о проблеме, внести предложение или задать некоторые вопросы, то можете связаться со мной через электронную почту:",
"if_you_want_to_change":"Если вы хотите изменить дизайн, обращайтесь по адресу:",
"set_of_def":"Набор определений:",
"parity":"Равенство:",
"zeros":"Нули функции:",
"signe":"Знак:",
"asympt":"Ассимптоты",
"min":"Мин",
"ev":"равны",
"unev":"не равны",
"na":"не определено",
"curve_lower":"кривая ниже, чем горизонтальная ассимптота",
"curve_higher":"кривая выше, чем горизонтальная ассимптота",
"max":"Макс",
"no_min":"Нет минимума",
"no_max":"Нет максимума",
"tool_for":"Анализ функции не надежен на 100%. Не забывайте проверить результат анализа перед их использованием.",
"ah_left":"ГА слева:",
"ah_right":"ГА справа:",
"av":"ВА:",
"options_saved":"Настройки сохранены!",
"cur_version":"Текущая версия:",
"last_version":"Последняя он-лайн версия:",
"using_web":"Этот виджет доступен для использования на сайте:",
"show_saved":"Теперь параметры будут сохранены"
},
"fr":{
"fnc":"Fonction: ",
"display":"Afficher",
"x_axis":"Axe des X de:",
"y_axis":"Axe des Y de:",
"zoom":"Zoom",
"color":"Couleur:",
"menus":"Menus",
"tools":"Outils",
"options":"Options",
"help":"Aide",
"about":"À propos",
"mouse_events":"Action de la souris:",
"moving":"Déplacement",
"tangente":"Tangente",
"point":"Point",
"choosing_color":"Choix de la couleur:",
"value":"Valeur:",
"saturation":"Saturation:",
"red":"Rouge:",
"green":"Vert:",
"blue":"Bleu:",
"opacity":"Opacité:",
"check":"Valider",
"derivative":"Dessiner la dérivée de la fonction:",
"square_under_func":"Aire sous la fonction:",
"from":"From",
"to":"To",
"calculate":"Calculer",
"draw":"Dessiner",
"point_calculate":"Calculer un point de la fonction:",
"estimate":"Évaluer",
"analysis_of_func":"Analysis of function:",
"start_to_analysis":"Démarrer l'étude",
"quit":"Fermer",
"display_test":"Display the test:",
"test":"Test",
"widget":"Widget",
"widget_options":"Options du widget",
"themes_of_widget":"Thème du widget:",
"black":"Noir",
"white":"Blanc",
"control_options":"Gèrer les options:",
"save":"Sauvegarder",
"load":"Charger",
"del":"Supprimer",
"save_a_widget_options":"Sauvegarder les options du widget dans les cookies, charger les options depuis les cookies ou supprimer les options actuellement enregistrées.",
"auto_update":"Mise à jour automatique à l'ouverture du widget.",
"reload_widget":"Recharger le widget",
"update":"Mise à jour",
"the_graphical":"Méthode d'affichage du graphique:",
"lines":"lignes",
"points":"points",
"image":"image",
"zoom_def":"Zoom par défau:",
"update_zoom":"Réinitialiser le zoom",
"show_grid":"Afficher la grille",
"show_axis":"Afficher les axes ",
"scale":"Afficher l'échelle ",
"thickness":"Épaisseur de la fonction:",
"offset_diagram":"Décalage du graphique:",
"accuracy_graph":"Précision des calculs du graphique:",
"show_the_style":"Style d'affichage:",
"surfaces":"surfaces",
"points":"points",
"reset_display":"Réinitialiser l'affichage",
"accuracy_func":"Précision de la fonction:",
"use_the_color":"Utilisation des couleurs:",
"positive_value":"valeur positive",
"negative_value":"valeur négative",
"general_value":"valeur générale",
"how_it_work":"Fonctionnement",
"this_widget_allow":"Ce widget vous permet de dessiner des fonctions mathématiques. Entrez une fonction dans le champ en haut du widget et cliquez sur le bouton \"Afficher\".",
"you_can_enter":"Vous pouvez saisir les fonctions mathématiques suivantes:",
"basic_operations":"Les opérations de base",
"plus":"Addition",
"minus":"Soustraction",
"multi":"Multiplication",
"division":"Division",
"mod":"Modulo",
"trigonometric":"Les fonctions trigonométriques",
"sine":"Sinus",
"cosine":"Cosinus",
"tangent":"Tangente",
"cotangent":"Cotangente",
"secant":"Secante",
"cosecant":"Cosecante",
"arc_sine":"Arcsinus",
"arc_cosine":"Arccosinus",
"arc_tangent":"Arctangente",
"arc_cotangent":"Arccotangente",
"hyperbolic_func":"Les fonctions hyperboliques",
"hyp_sine":"Sinus hyp",
"hyp_cosine":"Cosinus hyp",
"hyp_tangent":"Tangente hyp",
"hyp_cotangent":"Cotangente hyp",
"hyp_secant":"Secante hyp",
"hyp_cosecant":"Cosecante hyp",
"hyp_arc_sine":"Arcsinus hyp",
"hyp_arc_cosine":"Arccosinus hyp",
"hyp_arc_tangent":"Arctangente hyp",
"hyp_arc_cotangent":"Arccotangente hyp",
"square_roots_and_degrees":"Les racines et les puissances",
"square_root":"Racine carrée",
"degree":"Puissances",
"root":"Racines",
"variable_x":"Élève x à une puissance y",
"root_y":"Racine y d'un nombre x",
"exponential":"Les exponentielles et logarithmes",
"natural_log":"logarithme naturel",
"decimal_log":"logarithme de base",
"abs":"La valeur absolue d'un nombre",
"rounding":"Les arrondis",
"round_nearest":"arrondit à l'entier le plus proche",
"round_nearest_big":"arrondit à l'entier supérieur",
"round_nearest_small":"arrondit à l'entier inférieur",
"consts":"Constantes",
"available_const":"Quelques constantes sont aussi disponibles:",
"keys":"Touches clavier",
"moved_left":"déplacer le graphique à gauche",
"moved_top":"déplacer le graphique en haut",
"moved_right":"déplacer le graphique à droite",
"moved_botom":"déplacer le graphique en bas",
"guide":"Guide d'utilisation",
"using":"Utilisation",
"examples":"Exemples",
"other":"Autres",
"you_can_view":"Vous pouvez cliquer sur un exemple pour l'afficher. Pensez à ajuster la précision du graphique dans les options si nécessaire",
"save_graph":"Enregistrer le graphique",
"in_some_browsers":"Dans certains navigateurs, lorsque vous utilisez la méthode d'affichage \"Canvas\", vous pouvez sauvegarder le graphique en cliquant avec le bouton de droite de la souris sur celui-ci et en séléctionnant \"Enregistrer l'image\". Vous pouvez aussi sauvegarder le graphique 3D. ",
"offset":"Décalage",
"if_graph_isnt":"Si le graphique n'est pas à la bonne place (il dépasse de la zone prévue), ajustez le \"décalage du graphique\" dans le menu des options. Pour Konqueror, il faut utiliser un décalage de x=122 et y=48.",
"history":"Historique",
"current":"Actuelle",
"additional":"Supplémentaires",
"left_arrow":"flèche gauche",
"right_arrow":"flèche droite",
"top_arrow":"flèche haut",
"bottom_arrow":"flèche bas",
"or":"ou",
"funcs":"Fonction",
"widget_is_developed":"Widget réalisé par",
"if_you_want_to":"Si vous voulez rapporter un bug, avez une suggestion par rapport au widget ou voulez simplement poser une question, merci de me contacter par:",
"if_you_want_to_change":"Les images d'arrière-plan du widget on été tirées des thèmes du bureau \"plasma-desktop\" de l'environnement:",
"set_of_def":"Ensemble de définition:",
"parity":"Parité:",
"zeros":"Zéros de la fonction:",
"signe":"Signe:",
"asympt":"Asymptotes",
"min":"Min",
"ev":"paire",
"unev":"impaire",
"na":"aucune",
"curve_lower":"courbe au-dessus de l'AH",
"curve_higher":"courbe au-dessous de l'AH",
"max":"Max",
"no_min":"Aucun minimum",
"no_max":"Aucun maximum",
"tool_for":"L'outil permettant d'étudier les fonctions n'est pas fiable à 100%. Pensez à vérifier les résultats de l'étude avant d'en faire une quelconque utilisation.",
"ah_left":"AH gauche:",
"ah_right":"AH droite:",
"av":"AV:",
"options_saved":"Options sauvegardées!",
"cur_version":"Version en cours d'utilisation:",
"last_version":"Dernière version disponible en ligne:",
"using_web":"Ce widget est également utilisable dans un navigateur internet sur le site:",
"show_saved":"Options actuellement sauvegardées"
}
};

@ -1,23 +1,32 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>markItUp! Universal markup editor</title>
<link rel="stylesheet" type="text/css" href="images/style.css" />
<!-- jQuery -->
<script type="text/javascript" src="jquery.pack.js"></script>
<!-- markItUp! -->
<script type="text/javascript" src="languages.js"></script>
<script type="text/javascript" src="markitup/jquery.markitup.js"></script>
<!-- markItUp! toolbar settings -->
<script type="text/javascript" src="markitup/sets/html/set.js"></script>
<!-- markItUp! toolbar skin -->
<link rel="stylesheet" type="text/css" href="markitup/skins/markitup/style.css" />
<link rel="stylesheet" type="text/css" href="markitup/sets/html/style.css" />
</head>
<body>
<script type="text/javascript" >
$(document).ready(function() {
var lang = "";
if(window.sankore){
try{
lang = sankore.locale().substr(0,2);
sankoreLang[lang].welcome;
} catch(e){
lang = "en";
}
} else
lang = "en";
$(document).ready(function(){
$("#reset-btn").hide();
@ -27,7 +36,7 @@
$('iframe').width($(window).width()-24)
.height($(window).height()-46);
if(window.sankore){
var html = window.sankore.preference("iHtml", "Welcome to HTML EDITOR");
var html = window.sankore.preference("iHtml", sankoreLang[lang].welcome);
$("#markItUp").val(html);
};
@ -59,6 +68,7 @@
.height($(window).height()-46);
$('#markItUpFooter').width($(window).width()-30);
$("#markitUp").html(sankoreLang[lang].welcome);
});
</script>

@ -0,0 +1,29 @@
var sankoreLang = {
"en":{
"enter_title": "Enter yuor title here...",
"welcome":"Welcome to HTML Editor",
"source":"Source",
"link":"Link",
"preview":"Preview",
"text_to_link":"Your text to link",
"alt_text":"Alternative text"
},
"ru":{
"enter_title": "Введите Ваш заголовок ...",
"welcome":"Добро пожаловать в HTML-редактор",
"source":"Источник",
"link":"Ссылка",
"preview":"Предпросмотр",
"text_to_link":"Текст ссылки",
"alt_text":"Альтернативный текст"
},
"fr":{
"enter_title": "Entrer le titre yuor ici ...",
"welcome":"Bienvenue à HTML Editor",
"source":"Source",
"link":"Link",
"preview":"Aperçu",
"text_to_link":"Votre texte à lier",
"alt_text":"Texte alternatif"
}
};

@ -9,30 +9,43 @@
// ----------------------------------------------------------------------------
// Basic set. Feel free to add more tags
// ----------------------------------------------------------------------------
var lang = "";
if(window.sankore){
try{
lang = sankore.locale().substr(0,2);
sankoreLang[lang].welcome;
} catch(e){
lang = "en";
}
} else
lang = "en";
mySettings = {
onShiftEnter: {keepDefault:false, replaceWith:'<br />\n'},
onCtrlEnter: {keepDefault:false, openWith:'\n<p>', closeWith:'</p>\n'},
onTab: {keepDefault:false, openWith:' '},
markupSet: [
{name:'Heading 1', key:'1', openWith:'<h1(!( class="[![Class]!]")!)>', closeWith:'</h1>', placeHolder:'Your title here...' },
{name:'Heading 2', key:'2', openWith:'<h2(!( class="[![Class]!]")!)>', closeWith:'</h2>', placeHolder:'Your title here...' },
{name:'Heading 3', key:'3', openWith:'<h3(!( class="[![Class]!]")!)>', closeWith:'</h3>', placeHolder:'Your title here...' },
{name:'Heading 4', key:'4', openWith:'<h4(!( class="[![Class]!]")!)>', closeWith:'</h4>', placeHolder:'Your title here...' },
{name:'Heading 5', key:'5', openWith:'<h5(!( class="[![Class]!]")!)>', closeWith:'</h5>', placeHolder:'Your title here...' },
{name:'Heading 6', key:'6', openWith:'<h6(!( class="[![Class]!]")!)>', closeWith:'</h6>', placeHolder:'Your title here...' },
{name:'Paragraph', openWith:'<p(!( class="[![Class]!]")!)>', closeWith:'</p>' },
{separator:'---------------' },
{name:'Bold', key:'B', openWith:'(!(<strong>|!|<b>)!)', closeWith:'(!(</strong>|!|</b>)!)' },
{name:'Italic', key:'I', openWith:'(!(<em>|!|<i>)!)', closeWith:'(!(</em>|!|</i>)!)' },
{name:'Stroke through', key:'S', openWith:'<del>', closeWith:'</del>' },
{separator:'---------------' },
{name:'Ul', openWith:'<ul>\n', closeWith:'</ul>\n' },
{name:'Ol', openWith:'<ol>\n', closeWith:'</ol>\n' },
{name:'Li', openWith:'<li>', closeWith:'</li>' },
{separator:'---------------' },
{name:'Picture', key:'P', replaceWith:'<img src="[![Source:!:http://]!]" alt="[![Alternative text]!]" />' },
{name:'Link', key:'L', openWith:'<a target="_blank" href="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>', closeWith:'</a>', placeHolder:'Your text to link...' },
{separator:'---------------' },
{name:'Heading 1', key:'1', openWith:'<h1(!( class="[![Class]!]")!)>', closeWith:'</h1>', placeHolder:sankoreLang[lang].enter_title},
{name:'Heading 2', key:'2', openWith:'<h2(!( class="[![Class]!]")!)>', closeWith:'</h2>', placeHolder:sankoreLang[lang].enter_title},
{name:'Heading 3', key:'3', openWith:'<h3(!( class="[![Class]!]")!)>', closeWith:'</h3>', placeHolder:sankoreLang[lang].enter_title},
{name:'Heading 4', key:'4', openWith:'<h4(!( class="[![Class]!]")!)>', closeWith:'</h4>', placeHolder:sankoreLang[lang].enter_title},
{name:'Heading 5', key:'5', openWith:'<h5(!( class="[![Class]!]")!)>', closeWith:'</h5>', placeHolder:sankoreLang[lang].enter_title},
{name:'Heading 6', key:'6', openWith:'<h6(!( class="[![Class]!]")!)>', closeWith:'</h6>', placeHolder:sankoreLang[lang].enter_title},
{name:'Paragraph', openWith:'<p(!( class="[![Class]!]")!)>', closeWith:'</p>'},
{separator:'---------------'},
{name:'Bold', key:'B', openWith:'(!(<strong>|!|<b>)!)', closeWith:'(!(</strong>|!|</b>)!)'},
{name:'Italic', key:'I', openWith:'(!(<em>|!|<i>)!)', closeWith:'(!(</em>|!|</i>)!)'},
{name:'Stroke through', key:'S', openWith:'<del>', closeWith:'</del>'},
{separator:'---------------'},
{name:'Ul', openWith:'<ul>\n', closeWith:'</ul>\n'},
{name:'Ol', openWith:'<ol>\n', closeWith:'</ol>\n'},
{name:'Li', openWith:'<li>', closeWith:'</li>'},
{separator:'---------------'},
{name:'Picture', key:'P', replaceWith:'<img src="[![' + sankoreLang[lang].source + ':!:http://]!]" alt="[![' + sankoreLang[lang].alt_text + ']!]" />'},
{name:'Link', key:'L', openWith:'<a target="_blank" href="[![' + sankoreLang[lang].link + ':!:http://]!]"(!( title="[![Title]!]")!)>', closeWith:'</a>', placeHolder:sankoreLang[lang].text_to_link},
{separator:'---------------'},
//{name:'Editor', className:'clean', replaceWith:function() { $('textarea').show(); $('iframe').remove();} },
{name:'', className:'preview', call:'preview'}
]

@ -24,7 +24,8 @@
init();
});
</script>
<audio id='audio'></audio>
<audio id='audio1' src='beep.wav'></audio>
<audio id='audio2' src='finalbeep.wav'></audio>
<div id="ubwidget"></div>
</body>

@ -15,19 +15,19 @@
function init(){
var tempHours;
var tempMinutes;
var tempSeconds;
var tempHours;
var tempMinutes;
var tempSeconds;
if(window.sankore){
tempHours = window.sankore.preference("hours","00");
tempMinutes = window.sankore.preference("minutes","00");
tempSeconds = window.sankore.preference("seconds","00");
} else {
tempHours = "00";
tempMinutes = "00";
tempSeconds = "00";
}
if(window.sankore){
tempHours = window.sankore.preference("hours","00");
tempMinutes = window.sankore.preference("minutes","00");
tempSeconds = window.sankore.preference("seconds","00");
} else {
tempHours = "00";
tempMinutes = "00";
tempSeconds = "00";
}
var ubwidget = $("#ubwidget").ubwidget({
width:252,
@ -268,22 +268,22 @@ function init(){
}
function timeButtonDownHandler(m){
var button = m.data.button;
var content = button.find(".ubw-button-content");
if(window.sankore){
var temp = button.attr("id");
switch(temp){
case "seconds":
window.sankore.setPreference("seconds", content.text());
break;
case "minutes":
window.sankore.setPreference("minutes", content.text());
break;
case "hours":
window.sankore.setPreference("hours", content.text());
break;
}
}
var button = m.data.button;
var content = button.find(".ubw-button-content");
if(window.sankore){
var temp = button.attr("id");
switch(temp){
case "seconds":
window.sankore.setPreference("seconds", content.text());
break;
case "minutes":
window.sankore.setPreference("minutes", content.text());
break;
case "hours":
window.sankore.setPreference("hours", content.text());
break;
}
}
/*var mouseStart = {
pageX:m.pageX,
pageY:m.pageY
@ -353,9 +353,9 @@ function init(){
updateChronometerReverse(seconds-1)
}, 1000);
if (seconds < 6 && seconds > 0){
DHTMLSound('beep.wav');
DHTMLSound(1);
}else if(seconds === 0){
DHTMLSound('finalbeep.wav');
DHTMLSound(2);
}
if(seconds < 1){
@ -375,11 +375,11 @@ function init(){
minutesValue.text(formatTime(currentMinute));
secondsValue.text(formatTime(currentSecond));
if(window.sankore){
window.sankore.setPreference("hours", hoursValue.text());
window.sankore.setPreference("minutes", minutesValue.text());
window.sankore.setPreference("seconds", secondsValue.text());
}
if(window.sankore){
window.sankore.setPreference("hours", hoursValue.text());
window.sankore.setPreference("minutes", minutesValue.text());
window.sankore.setPreference("seconds", secondsValue.text());
}
}
@ -398,8 +398,8 @@ function init(){
return time;
}
function DHTMLSound(surl) {
document.getElementById("audio").innerHTML=
"<audio src='"+surl+"' autoplay=true >";
function DHTMLSound(type) {
var ad = document.getElementById("audio" + type);
ad.play();
}
}

@ -13,201 +13,205 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Video Picker</title>
<link rel="stylesheet" type="text/css" href="css/main.css">
<script src="scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="scripts/jquery.oembed.js" type="text/javascript"></script>
<!--DEFAULT FR-->
</head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Video Picker</title>
<link rel="stylesheet" type="text/css" href="css/main.css">
<script src="scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="scripts/languages.js" type="text/javascript"></script>
<script src="scripts/jquery.oembed.js" type="text/javascript"></script>
<!--DEFAULT FR-->
</head>
<body>
<script type="text/javascript">
var oembedUrl = "";
var language = "en";
<body>
<script type="text/javascript">
var oembedUrl = "";
var lang = "en";
if(window.sankore){
try{
lang = sankore.locale().substr(0,2);
sankoreLang[lang].show;
} catch(e){
lang = "en";
}
} else
lang = "en";
function initialize() {
if(window.sankore){
oembedUrl = window.sankore.preference("oembedUrl", "");
}
function initialize() {
if(window.sankore){
oembedUrl = window.sankore.preference("oembedUrl", "");
}
window.resizeTo(426, 630);
if(oembedUrl.length > 0){
$("#textbox").val(oembedUrl);
$("#search-button").trigger("click");
}else{
//var language = navigator.userAgent.split(";");
//language = language[3].replace(/\s/g, "").substr(0, 2);
$("#embeded-content").load("locales/" + language + "/howto.html"); // Welcome note with some explanations
};
};
window.resizeTo(426, 630);
if(oembedUrl.length > 0){
$("#textbox").val(oembedUrl);
$("#search-button").trigger("click");
}else{
$("#embeded-content").load("locales/" + lang + "/howto.html"); // Welcome note with some explanations
};
};
$(document).ready(function(){
var resizer; // Timer
var resizerIndex;
$(document).ready(function(){
var resizer; // Timer
var resizerIndex;
resizerIndex = 0;
resizerIndex = 0;
$("#search-button")
.click(function(){
window.resizeTo(385, 80);
$("#container").removeClass("welcome").removeClass("change").removeClass("error").addClass("load");
$("#container-shadow").hide();
$("#arrow").hide();
$("#embeded-content").css({
marginLeft:-9000,
marginTop:-9000
}).empty().oembed($("#textbox").val());
checkcontent();
})
.mouseenter(function(){
$(this)
.addClass("over");
})
.mouseleave(function(){
$(this)
.removeClass("over");
});
$("#search-button")
.click(function(){
window.resizeTo(385, 80);
$("#container").removeClass("welcome").removeClass("change").removeClass("error").addClass("load");
$("#container-shadow").hide();
$("#arrow").hide();
$("#embeded-content").css({
marginLeft:-9000,
marginTop:-9000
}).empty().oembed($("#textbox").val());
checkcontent();
})
.mouseenter(function(){
$(this)
.addClass("over");
})
.mouseleave(function(){
$(this)
.removeClass("over");
});
$('#textbox').keypress(function(e){
if (e.which == 13){
$('#search-button').click();
};
});
$('#textbox').keypress(function(e){
if (e.which == 13){
$('#search-button').click();
};
});
$("#show-inputfield-button")
.click(
function(){
$("#show-area").fadeOut(0);
$("#inputfield").show();
$("#shadow").show();
$("#container").removeClass("show").addClass("change");
adaptWidgetSize(18, 88);
})
.mouseenter(function(){
$(this).addClass("over");
})
.mouseleave(function(){
$(this).removeClass("over");
});
$("#show-inputfield-button")
.click(
function(){
$("#show-area").fadeOut(0);
$("#inputfield").show();
$("#shadow").show();
$("#container").removeClass("show").addClass("change");
adaptWidgetSize(18, 88);
})
.mouseenter(function(){
$(this).addClass("over");
})
.mouseleave(function(){
$(this).removeClass("over");
});
function checkcontent(){
if($("#embeded-content").html().length != 0 && $("#embeded-content").children(":first").width() > 0){
$("#embeded-content embed").attr("wmode", "opaque");
var embeded_content_html = $("#embeded-content").html();
$("#embeded-content").empty().html(embeded_content_html);
clearTimeout(resizer);
resizerIndex = 0;
function checkcontent(){
if($("#embeded-content").html().length != 0 && $("#embeded-content").children(":first").width() > 0){
$("#embeded-content embed").attr("wmode", "opaque");
var embeded_content_html = $("#embeded-content").html();
$("#embeded-content").empty().html(embeded_content_html);
clearTimeout(resizer);
resizerIndex = 0;
if(window.sankore){
window.sankore.setPreference("oembedUrl", $("#textbox").val());
};
if(window.sankore){
window.sankore.setPreference("oembedUrl", $("#textbox").val());
};
$("#inputfield").hide();
$("#shadow").hide();
$("#embeded-content").css({
marginLeft:0,
marginTop:0
})
.width($("#embeded-content").children(":first").width())
.height($("#embeded-content").children(":first").height());
$("#container").removeClass("load").addClass("show");
$("#show-area").fadeIn(2000).css({
left:$("#embeded-content").children(":first").width()-25,
top:($("#embeded-content").children(":first").height()-35)/2
});
$("#inputfield").hide();
$("#shadow").hide();
$("#embeded-content").css({
marginLeft:0,
marginTop:0
})
.width($("#embeded-content").children(":first").width())
.height($("#embeded-content").children(":first").height());
$("#container").removeClass("load").addClass("show");
$("#show-area").fadeIn(2000).css({
left:$("#embeded-content").children(":first").width()-25,
top:($("#embeded-content").children(":first").height()-35)/2
});
adaptWidgetSize(5, 13);
return false;
};
adaptWidgetSize(5, 13);
return false;
};
if(resizerIndex > 50){
resizerIndex = 0;
$("#container").removeClass("show").addClass("error");
$("#arrow").show();
$("#embeded-content").css({
marginTop:0,
marginLeft:0
}).width(395)
.load("locales/" + language + "/error.html",
function(){
adaptWidgetSize(20, 125);
});
$("#container-shadow").show();
}else{
resizer = setTimeout(function(){checkcontent()}, 100);
resizerIndex++;
};
};
if(resizerIndex > 50){
resizerIndex = 0;
$("#container").removeClass("show").addClass("error");
$("#arrow").show();
$("#embeded-content").css({
marginTop:0,
marginLeft:0
}).width(395)
.load("locales/" + lang + "/error.html",
function(){
adaptWidgetSize(20, 125);
});
$("#container-shadow").show();
}else{
resizer = setTimeout(function(){checkcontent()}, 100);
resizerIndex++;
};
};
function adaptWidgetSize(adjustmentX, adjustmentY){
var margins = {
top: cssToInt($("body").css("margin-top")),
right: cssToInt($("body").css("margin-right")),
bottom: cssToInt($("body").css("margin-bottom")),
left: cssToInt($("body").css("margin-left"))
};
var widgetWidth = $("#embeded-content").width() + margins.right + margins.left + adjustmentX;
var widgetHeight = $("#embeded-content").position().top + $("#embeded-content").height() + margins.bottom + adjustmentY;
function adaptWidgetSize(adjustmentX, adjustmentY){
var margins = {
top: cssToInt($("body").css("margin-top")),
right: cssToInt($("body").css("margin-right")),
bottom: cssToInt($("body").css("margin-bottom")),
left: cssToInt($("body").css("margin-left"))
};
var widgetWidth = $("#embeded-content").width() + margins.right + margins.left + adjustmentX;
var widgetHeight = $("#embeded-content").position().top + $("#embeded-content").height() + margins.bottom + adjustmentY;
window.resizeTo(widgetWidth, widgetHeight);
window.sankore.resize(widgetWidth, widgetHeight);
};
window.resizeTo(widgetWidth, widgetHeight);
window.sankore.resize(widgetWidth, widgetHeight);
};
function cssToInt(cssvalue){
return(parseInt(cssvalue.replace("px", "")));
};
function cssToInt(cssvalue){
return(parseInt(cssvalue.replace("px", "")));
};
if (window.widget) {
window.widget.onremove = function(){
//$("#show-inputfield-button").trigger("click");
$("#embeded-content")
.empty();
//.oembed($("#textbox").val());
}
}
if (window.widget) {
window.widget.onremove = function(){
$("#embeded-content").empty();
}
}
$("#search-button").html(sankoreLang[lang].show);
initialize();
});
</script>
initialize();
});
</script>
<div id="ubwidget">
<div id="shadow"></div>
<div id="ubwidget">
<div id="shadow"></div>
<div id="inputfield">
<input id="textbox" type="text">
<div id="search-button" class="button">Show</div>
</div>
<div id="inputfield">
<input id="textbox" type="text">
<div id="search-button" class="button">Show</div>
</div>
<div id="container" class="welcome">
<div id="arrow"><img src="imgs/arrow.png" alt="arrow-top"></div>
<div id="show-container">
<div id="embeded-content"></div>
<div id="show-area">
<img id="show-inputfield-button" src="imgs/bts.png">
</div>
</div>
<table cellspacing="0" cellpadding="0" id="container-shadow">
<tr>
<td id="shadow-left"></td>
<td id="shadow-center">&nbsp;</td>
<td id="shadow-right"></td>
</tr>
</table>
</div>
</div>
</body>
<div id="container" class="welcome">
<div id="arrow"><img src="imgs/arrow.png" alt="arrow-top"></div>
<div id="show-container">
<div id="embeded-content"></div>
<div id="show-area">
<img id="show-inputfield-button" src="imgs/bts.png">
</div>
</div>
<table cellspacing="0" cellpadding="0" id="container-shadow">
<tr>
<td id="shadow-left"></td>
<td id="shadow-center">&nbsp;</td>
<td id="shadow-right"></td>
</tr>
</table>
</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@ -0,0 +1,8 @@
<!--EN-->
<link rel="stylesheet" type="text/css" href="css/howto.css" />
<div id="content">
<h1>Неверный адрес.</h1>
<a href="javascript:window.location.reload();">Назад</a>
</div>

@ -0,0 +1,24 @@
<!--EN-->
<link rel="stylesheet" type="text/css" href="css/howto.css" />
<div id="content">
<img src="imgs/info_ico.png" id="info-ico">
<div class="column">
<h1>Просмотр видео</h1>
<p class="spacer">Вставьте ссылку на видео для его просмотра.</p>
<img class="lspacer" src="imgs/logos_web.jpg">
<h1>Как использовать</h1>
</div>
<table>
<tr>
<td class="column"><img src="imgs/capture_youtube.jpg" class="spacer"></td>
<td><img id="f" class="img" src="imgs/keys_copy.jpg"></td>
</tr>
<tr>
<td class="column"><img src="locales/fr/capture_widget.jpg"></td>
<td><img class="img" src="imgs/keys_paste.jpg"></td>
</tr>
</table>
</div>

@ -1,230 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Video Picker</title>
<link rel="stylesheet" type="text/css" href="css/main.css">
<script src="scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="scripts/jquery.oembed.js" type="text/javascript"></script>
<!--DEFAULT FR-->
</head>
<body>
<script type="text/javascript">
var oembedUrl = "";
var language = "en";
function initialize() {
if(window.sankore){
oembedUrl = window.sankore.preference("oembedUrl", "");
}
if(oembedUrl.length > 0){
$("#textbox").val(oembedUrl);
$("#search-button").trigger("click");
}else{
//var language = navigator.userAgent.split(";");
//language = language[3].replace(/\s/g, "").substr(0, 2);
$("#embeded-content").load("locales/" + language + "/howto.html"); // Welcome note with some explanations
};
};
$(document).ready(function(){
var resizer; // Timer
var resizerIndex;
resizerIndex = 0;
//language = navigator.userAgent.split(";");
//language = language[3].replace(/\s/g, "").substr(0, 2);
$("#search-button")
.click(function(){
window.resizeTo(385, 80);
$("#container")
.removeClass("welcome")
.removeClass("change")
.removeClass("error")
.addClass("load");
$("#container-shadow")
.hide();
$("#arrow")
.hide();
$("#embeded-content")
.css({
marginLeft:-9000,
marginTop:-9000
})
.empty()
.oembed($("#textbox").val());
checkcontent();
})
.mouseenter(function(){
$(this)
.addClass("over");
})
.mouseleave(function(){
$(this)
.removeClass("over");
});
/*$("#ubwidget").mouseenter(function(){
$("#show-area").fadeIn(1000);
});
$("#ubwidget").mouseout(function(){
$("#show-area").fadeOut(600);
});*/
$('#textbox').keypress(function(e){
if (e.which == 13){
$('#search-button').click();
};
});
$("#show-inputfield-button")
.click(
function(){
$("#show-area").fadeOut(0);
$("#inputfield").show();
$("#shadow").show();
$("#container")
.removeClass("show").addClass("change");
adaptWidgetSize(18, 88);
})
.mouseenter(function(){
$(this)
.addClass("over");
})
.mouseleave(function(){
$(this)
.removeClass("over");
});
function checkcontent(){
if($("#embeded-content").html().length != 0 && $("#embeded-content").children(":first").width() > 0){
clearTimeout(resizer);
resizerIndex = 0;
if(window.sankore){
window.sankore.setPreference("oembedUrl", $("#textbox").val());
};
$("#inputfield")
.hide();
$("#shadow")
.hide();
$("#embeded-content")
.css({
marginLeft:0,
marginTop:0
})
.width($("#embeded-content").children(":first").width())
.height($("#embeded-content").children(":first").height());
$("#container")
.removeClass("load").addClass("show");
$("#show-area")
.fadeIn(2000)
.css({
left:$("#embeded-content").children(":first").width()-25,
top:($("#embeded-content").children(":first").height()-35)/2
});
adaptWidgetSize(5, 13);
return false;
};
if(resizerIndex > 30){
resizerIndex = 0;
$("#container")
.removeClass("show").addClass("error");
$("#arrow")
.show();
$("#embeded-content")
.css({
marginTop:0,
marginLeft:0
})
.width(395)
.load("locales/" + language + "/error.html",
function(){
adaptWidgetSize(20, 125);
});
$("#container-shadow")
.show();
}else{
resizer = setTimeout(function(){checkcontent()}, 100);
resizerIndex++;
};
};
function adaptWidgetSize(adjustmentX, adjustmentY){
var margins = {
top: cssToInt($("body").css("margin-top")),
right: cssToInt($("body").css("margin-right")),
bottom: cssToInt($("body").css("margin-bottom")),
left: cssToInt($("body").css("margin-left"))
};
var widgetWidth = $("#embeded-content").width() + margins.right + margins.left + adjustmentX;
var widgetHeight = $("#embeded-content").position().top + $("#embeded-content").height() + margins.bottom + adjustmentY;
window.resizeTo(widgetWidth, $(window).height());
window.resizeTo($(window).width(), widgetHeight);
window.sankore.resize(widgetWidth, widgetHeight);
};
function cssToInt(cssvalue){
return(parseInt(cssvalue.replace("px", "")));
};
if (window.widget) {
window.widget.onremove = function(){
//$("#show-inputfield-button").trigger("click");
$("#embeded-content")
.empty()
.oembed($("#textbox").val());
}
}
window.initialize();
});
</script>
<div id="ubwidget">
<div id="shadow"></div>
<div id="inputfield">
<input id="textbox" type="text">
<div id="search-button" class="button">Show</div>
</div>
<div id="container" class="welcome">
<div id="arrow"><img src="imgs/arrow.png" alt="arrow-top"></div>
<div id="show-container">
<div id="embeded-content"></div>
<div id="show-area">
<img id="show-inputfield-button" src="imgs/bts.png">
</div>
</div>
<table cellspacing="0" cellpadding="0" id="container-shadow">
<tr>
<td id="shadow-left"></td>
<td id="shadow-center">&nbsp;</td>
<td id="shadow-right"></td>
</tr>
</table>
</div>
</div>
</body>
</html>

@ -0,0 +1,12 @@
var sankoreLang = {
"en":{
"show": "Show"
},
"ru":{
"show": "Смотреть"
},
"fr":{
"show": "Voir"
}
};

@ -8,19 +8,33 @@
<title>Web Browser</title>
<link rel="stylesheet" type="text/css" href="css/main.css">
<script src="scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="scripts/languages.js" type="text/javascript"></script>
<script type="text/javascript">
var loadingState = false;
var lang = "en";
if(window.sankore){
try{
lang = sankore.locale().substr(0,2);
sankoreLang[lang].next;
} catch(e){
lang = "en";
}
} else
lang = "en";
function changeLoadingState(){
loadingState = true;
}
$(document).ready(function(){
//var resizer; // Timer
//var resizerIndex;
$("body").css({height: $(window).height() - 40});
$("#back-button").html(sankoreLang[lang].previous);
$("#forward-button").html(sankoreLang[lang].next);
$("#search-button").html(sankoreLang[lang].show);
var popupFlag = false;
var currentHistory = 0;
var references = new Array();
@ -72,8 +86,8 @@
popupFlag = true;
popupText.css("top", evt.pageY + 5)
.css("left", evt.pageX + 13)
.css({width:"100px"})
.text("Go to the site")
.css({width:"110px"})
.text(sankoreLang[lang].open)
.show("fast", function(){
if(!popupFlag)
popupText.hide();
@ -84,8 +98,8 @@
popupFlag = true;
popupText.css("top", evt.pageY + 5)
.css("left", evt.pageX + 13)
.css({width:"90px"})
.text("Previous site")
.css({width:"130px"})
.text(sankoreLang[lang].prev_page)
.show("fast", function(){
if(!popupFlag)
popupText.hide();
@ -96,8 +110,8 @@
popupFlag = true;
popupText.css("top", evt.pageY + 5)
.css("left", evt.pageX + 13)
.css({width:"70px"})
.text("Next site")
.css({width:"130px"})
.text(sankoreLang[lang].next_page)
.show("fast", function(){
if(!popupFlag)
popupText.hide();
@ -149,7 +163,7 @@
checkcontent();
checkLoading();
} else {
$("#embeded-content").load("locales/" + "en" + "/howto.html"); // Welcome screen with some explanations
$("#embeded-content").load("locales/" + lang + "/howto.html"); // Welcome screen with some explanations
$("#container")
.addClass("welcome")
.addClass("change")
@ -175,7 +189,7 @@
$("#textbox").val(url);
$("#search-button").trigger("click");
}else{
$("#embeded-content").load("locales/" + "en" + "/howto.html"); // Welcome screen with some explanations
$("#embeded-content").load("locales/" + lang + "/howto.html"); // Welcome screen with some explanations
};
$(window).resize(function(){
@ -201,13 +215,13 @@
function checkLoading(){
if(loadingState){
clearTimeout(resizer);
resizerIndex = 0;
$("#web-content")
.attr("width", globalWidth - 25)
.attr("height", globalHeight - 90);
$("#web-content").show();
.attr("height", globalHeight - 90)
.show();
$(window).trigger("resize");
return false;
};
@ -241,7 +255,13 @@
} else
newArr[j] = arr[i];
return newArr;
}
}
if (window.widget) {
window.widget.onremove = function(){
$("#web-content").empty();
}
}
});
</script>

@ -4,5 +4,5 @@
<div id="content">
<h1>This Url cannot be used.</h1>
<a href="javascript:$('#container').load('html/howto_' + language + '.html');">Back</a>
<a href="javascript:$('#container').load('html/howto_' + lang + '.html');">Back</a>
</div>

@ -6,6 +6,6 @@
<img src="imgs/info_ico.png" id="info-ico">
<div class="column">
<h1>Web Browser</h1>
<p class="spacer">Please use the adress bar to add a website to your presentation</p>
<p class="spacer">Please use the adress bar to add a website to your presentation.</p>
</div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@ -0,0 +1,8 @@
<!--EN-->
<link rel="stylesheet" type="text/css" href="css/howto.css" />
<div id="content">
<h1>Неверный адрес.</h1>
<a href="javascript:$('#container').load('html/howto_' + lang + '.html');">Назад</a>
</div>

@ -0,0 +1,11 @@
<!--EN-->
<link rel="stylesheet" type="text/css" href="css/howto.css" />
<div id="content">
<img src="imgs/info_ico.png" id="info-ico">
<div class="column">
<h1>Браузер</h1>
<p class="spacer">Используйте адресную строку для добавления сайта в Вашу презентацию.</p>
</div>
</div>

@ -0,0 +1,28 @@
var sankoreLang = {
"en":{
"previous":"Previous",
"next":"Next",
"show":"Show",
"prev_page":"Previous page",
"next_page":"Next page",
"open":"Open the site"
},
"ru":{
"previous":"Пред.",
"next":"След.",
"show":"Показать",
"prev_page":"Пред. страница",
"next_page":"След. страница",
"open":"Перейти"
},
"fr":{
"previous":"Précédente",
"next":"Suivant",
"show":"Voir",
"prev_page":"Page précédente",
"next_page":"Page suivante",
"open":"Ouvrez le site"
}
};

@ -11,6 +11,7 @@
<!-- jQuery -->
<script type="text/javascript" src="script/jquery.min.js"></script>
<script type="text/javascript" src="script/superfish.js"></script>
<script type="text/javascript" src="script/languages.js"></script>
<script type="text/javascript">
@ -18,6 +19,18 @@
var browsing = false;
var lang = 'en';
var internalChange = false;
var syslang = "en";
if(window.sankore){
try{
syslang = sankore.locale().substr(0,2);
sankoreLang[syslang].search;
} catch(e){
syslang = "en";
}
} else
syslang = "en";
var toolbar = {
state:"begin",
loading:false
@ -43,7 +56,9 @@
var ubHistoryList = "";
var ubHistoryIndex = "";
$("#toolbar-down").html(sankoreLang[syslang].wikipedia);
var popupText = $("<div id='popupWordInfo' class='popupWordInfo'></div>").appendTo("body");
lang = navigator.userAgent.split(";");
@ -100,10 +115,10 @@
$("#toolbar-button-search").mouseover(function(evt){
popupFlag = true;
popupText.text("Search")
popupText.text(sankoreLang[syslang].search)
.css("top", evt.pageY + 5)
.css("left", evt.pageX + 13)
.css({width:"70px"})
.css({width:"100px"})
.show("fast", function(){
if(!popupFlag)
popupText.hide();
@ -132,10 +147,10 @@
$("#toolbar-button-back").mouseover(function(evt){
popupFlag = true;
popupText.text("Previous word")
popupText.text(sankoreLang[syslang].prev_word)
.css("top", evt.pageY + 5)
.css("left", evt.pageX + 13)
.css({width:"100px"})
.css({width:"110px"})
.show("fast", function(){
if(!popupFlag)
popupText.hide();
@ -149,10 +164,10 @@
$("#toolbar-button-forward").mouseover(function(evt){
popupFlag = true;
popupText.text("Next word")
popupText.text(sankoreLang[syslang].next_word)
.css("top", evt.pageY + 5)
.css("left", evt.pageX + 13)
.css({width:"70px"})
.css({width:"100px"})
.show("fast", function(){
if(!popupFlag)
popupText.hide();

@ -0,0 +1,20 @@
var sankoreLang = {
"en":{
"wikipedia": "Wikipedia",
"prev_word":"Previous word",
"next_word":"Next word",
"search":"Search"
},
"ru":{
"wikipedia": "Википедия",
"prev_word":"Пред. слово",
"next_word":"След. слово",
"search":"Поиск"
},
"fr":{
"wikipedia": "Wikipedia",
"prev_word":"Mot précédent",
"next_word":"Mot suivant",
"search":"Rechercher"
}
};

@ -10,6 +10,7 @@
<!-- jQuery -->
<script type="text/javascript" src="script/jquery.min.js"></script>
<script type="text/javascript" src="script/superfish.js"></script>
<script type="text/javascript" src="script/languages.js"></script>
<script type="text/javascript">
@ -17,7 +18,19 @@
var browsing = false;
var mode = 'wiki';
var lang = 'en';
var internalChange = false;
var internalChange = false;
var syslang = "en";
if(window.sankore){
try{
syslang = sankore.locale().substr(0,2);
sankoreLang[syslang].search;
} catch(e){
syslang = "en";
}
} else
syslang = "en";
var toolbar = {
state:"",
loading:false
@ -43,6 +56,8 @@
var ubHistoryList = "";
var ubHistoryIndex = "";
$("#toolbar-down").html(sankoreLang[syslang].wikipedia);
var popupText = $("<div id='popupWordInfo' class='popupWordInfo'></div>").appendTo("body");
@ -106,7 +121,7 @@
$("#toolbar-button-search").mouseover(function(evt){
popupFlag = true;
popupText.text("Search")
popupText.text(sankoreLang[syslang].search)
.css("top", evt.pageY + 5)
.css("left", evt.pageX + 13)
.css({width:"70px"})
@ -133,7 +148,7 @@
$("#toolbar-button-back").mouseover(function(evt){
popupFlag = true;
popupText.text("Previous word")
popupText.text(sankoreLang[syslang].prev_word)
.css("top", evt.pageY + 5)
.css("left", evt.pageX + 13)
.css({width:"100px"})
@ -150,7 +165,7 @@
$("#toolbar-button-forward").mouseover(function(evt){
popupFlag = true;
popupText.text("Next word")
popupText.text(sankoreLang[syslang].next_word)
.css("top", evt.pageY + 5)
.css("left", evt.pageX + 13)
.css({width:"70px"})

@ -0,0 +1,21 @@
var sankoreLang = {
"en":{
"wikipedia": "Wiktionary",
"prev_word":"Previous word",
"next_word":"Next word",
"search":"Search"
},
"ru":{
"wikipedia": "Викисловарь",
"prev_word":"Пред. слово",
"next_word":"След. слово",
"search":"Поиск"
},
"fr":{
"wikipedia": "Wiktionnaire",
"prev_word":"Mot précédent",
"next_word":"Mot suivant",
"search":"Rechercher"
}
};

@ -1,63 +1,272 @@
/* Pour info, les span йtaient une tentative de mise en forme via CSS mais j'ai trouvй plus pratique, et je les ai laissйs au cas oщ... */
var txt_vesicule = "";
var txt_lysosome = "";
var txt_mitoch = "";
var txt_golgi = "";
var txt_rer = "";
var txt_noy = "";
var txt_rel = "";
var txt_adn = "";
var txt_centr = "";
var txt_rib = "";
var txt_arn = "";
var txt_nucl = "";
var lang = ""; //locale language
if(window.sankore){
try{
lang = sankore.locale().substr(0,2);
} catch(e){
lang = "en";
}
} else
lang = "en";
switch(lang){
case "en":
txt_vesicule = "<h2>Vesicle<br/>Transporter</h2>"+
"<h4>Structure:</h4><span><p>Phospholipid bilayer</p></span>"+
"<h4>Role:</h4><span><p>Transport of proteins and other components inside the cell to the exterior (exocytosis) or inward (endocytosis).</p></span>"+
'<h4>Operation:</h4><span><p>Transport "towed" by Protein building on the cytoskeleton.</p></span>'
txt_lysosome = "<h2>Lysosome<br/>A stomach cell.</h2>"+
"<h4>Structure:</h4><span><p>Phospholipid bilayer</p></span>"+
"<h4>Role:</h4><span><p>a intracellular digestion with enzymes.</p></span>"+
"<h4>Operation:</h4><span><p>Absorbes nutrient uptake or damaged cellular components by endocytosis, digest them and then distributes the results of the chemical reaction in the cell and finally expels of waste by exocytosis.</p></span>"
txt_mitoch = "<h2>Mitochondrie<br/>Batteries</h2>"+
"<h4>Structure:</h4><span><p>Two phospholipid bilayers called mitochondrial membranes, one external and one internal. The mitochondria contain ribosomes, ATP of DNA and other molecules.</p></span>"+
"<h4>Role:</h4><span><p>Powerhouse of the cell.</p></span>"+
"<h4>Operation:</h4><span><p>Energy - in the form of ATP (adenosine triphosphate) - comes from various stages of chemical reactions starting from a glucose molecule.</p></span>"
txt_golgi = "<h2>Apparatus golgi<br/>Miniature plants</h2>"+
"<h4>Structure:</h4><span><p>Has a stack of flattened membrane saccules.</p></span>"+
"<h4>Role:</h4><span><p>Modification of proteins during a journey through its saccules.</p></span>"+
"<h4>Operation:</h4><span><p>Chemical reactions, including glycosylation.</p></span>"
txt_rer = "<h2>Rough endoplasmic reticulum - Tunnel</h2>"+
"<h4>Structure:</h4><span><p>Consists of a phospholipid bilayer studded with ribosomes (an aspect <i> rough </ i>) define the light, an internal space that can be compared to a tunnel.</p></span>"+
"<h4>Role:</h4><span><p>More specialized than the real, he participated in the transport and a finalizing the proteins that are synthesized by ribosomes.</p></span>"+
'<h4>Operation:</h4><span><p>Proteins "fall" in the light of the RER where they are modified and displaced. They leave the RER in a vesicle membrane after it.</p></span>'
txt_noy = "<h2>Core - The safe</h2>"+
"<h4>Structure:</h4><span><p>Surrounded by a double membrane, that called the nuclear envelope, in places linked with the RER. These two membranes protect regular intervals formed nuclear pores. It located within the nucleolus and the DNA in the form of chromatin or chromosomes.</p></span>"+
"<h4>Role:</h4><span><p>Storing all the genetic information necessary for a life of the cell.</p></span>"+
"<h4>Operation:</h4><span><p>Copying of genetic information on mRNA.</p></span>"
txt_rel = "<h2>Smooth endoplasmic reticulum - REL</h2>"+
"<h4>Structure:</h4><span><p>Like that of the RER, with the difference that the membrane is studded with ribosomes, as its smooth <i>appearance</i>.</p></span>"+
"<h4>Role:</h4><span><p>Phospholipid synthesis, calcium storage, transformation of certain molecules external (drugs, alcohol, ...). In some cells, the LRA also performs additional functions, such as the production of hormones, gastric acid, etc.</p></span>"+
"<h4>Operation:</h4><span><p>It is the seat of many complex chemical reactions (eg detoxification, various syntheses).</p></span>"
txt_adn = "<h2>DNA - The Book of Life</h2>"+
"<h4>Structure:</h4><span><p>A scale in form of the famous double helix consists of two columns sugar-phosphate-sugar-phosphate ... and whose levels are called nitrogenous bases.</p></span>"+
"<h4>Role:</h4><span><p>DNA contains all the information needed for a life.</p></span>"+
"<h4>Operation:</h4><span><p>All information is written using the four letters A, T, G and C. Using these combinations, it is possible to write anything useful about cell.</p></span>"
txt_centr = "<h2>Centrioles - Tug of chromosomes</h2>"+
"<h4>Structure:</h4><span><p>Nine triplets of microtubules surrounded by a some number of proteins.</p></span>"+
"<h4>Role:</h4><span><p>Separate the different chromosomes during cell division.</p></span>"+
"<h4>Operation:</h4><span><p>Centrioles, once placed at the two poles of the cell, deploy the microtubules to the centromeres of chromosomes and pull them to them to separate them.</p></span>"
txt_rib = "<h2>Ribosome - Decoders</h2>"+
"<h4>Structure:</h4><span><p>Formed by two subunits composed of ribosomal RNA and proteins.</p></span>"+
"<h4>Role:</h4><span><p>The ribosome synthesizes proteins.</p></span>"+
"<h4>Operation:</h4><span><p>A strand of mRNA (messenger) pass through the ribosome and tRNA (transfer) between the large subunit where the codon (group of three nitrogen bases) is one who is in front of the mRNA. This tRNA carries with it a specific amino acid that is added a chain already assembled.</p></span>"
txt_arn = "<h2>RNA - Multifunction</h2>"+
"<h4>Structure:</h4><span><p>Very similar DNA with the difference it has only one strand and thymine (T) of DNA is replaced by uracil (U). In addition, it is chemically more stable than DNA, so it is not used for information storage, just if in long term.</p></span>"+
"<h4>Role:</h4><span><p>Multiple, there are RNA transport, passenger, cruise, guides, satellite ...</p></span>"+
"<h4>Operation:</h4><span><p>Copying of genetic information, the opening of the double helix of DNA, and then copying the RNA codons. It can then exit the nucleus, the DNA can not do it.</p></span>"
txt_nucl = "<h2>Nucleolus - Factory RNA</h2>"+
"<h4>Structure:</h4><span><p>Composed of any membrane, a cluster of proteins and RNA.</p></span>"+
"<h4>Role:</h4><span><p>Location of the RNA transcripts, including RNA (ribosomal), which combines with protein, will form the two subunits of ribosomes.</p></span>"+
"<h4>Operation:</h4><span><p>Creation of a ribosome: Transcription of rRNA and protein needed (this step is performed in the cytoplasm by other ribosomes) that fall within the nucleus, association of molecules frankly formed a new ribosome, which leaves the nucleus to play its role.</p></span>"
break;
case "ru":
txt_vesicule = "<h2>Везикула<br/>Транспортер</h2>"+
"<h4>Структура:</h4><span><p>фосфолипидный бислой</p></span>"+
"<h4>Роль:</h4><span><p>Транспорт белков и других элементов внутри клетки наружу (экзоцитоз) или внутрь (эндоцитоз).</p></span>"+
'<h4>Процесс работы:</h4><span><p>Перевозит "буксируемые" белки, опираясь на цитоскелет.</p></span>'
txt_lysosome = "<h2>Лизосома<br/>В желудках клетки</h2>"+
"<h4>Структура:</h4><span><p>фосфолипидный бислой</p></span>"+
"<h4>Роль:</h4><span><p>Внутриклеточного пищеварения с ферментами.</p></span>"+
"<h4>Процесс работы:</h4><span><p>Поглощение питательных веществ или поврежденных компонентов путем эндоцитоза, их переваривание, а затем распространение результатов химических реакций в клекте и, наконец, удаление отходов путем эндоцитоза.</p></span>"
txt_mitoch = "<h2>Митохондрии<br/>Батареи</h2>"+
"<h4>Структура:</h4><span><p>Два бифосфолипида, называемых митохондриальными мембранами, один внешний и один внутренний. Митохондрии содержат рибосомы, АТФ ДНК и другие молекулы.</p></span>"+
"<h4>Роль:</h4><span><p>Центральные энергетические клетки.</p></span>"+
"<h4>Процесс работы:</h4><span><p>Энергия - в форме АТФ (аденозинтрифосфата) - является результатом различных стадий химических реакций, начиная с молекулы глюкозы.</p></span>"
txt_golgi = "<h2>Аппарат Гольджи<br/>Миниатюрные растения</h2>"+
"<h4>Структура:</h4><span><p>Имеет стопку уплощенных мешочков мембран.</p></span>"+
"<h4>Роль:</h4><span><p>Модификация белков во время путешествия по ее мешочкам.</p></span>"+
"<h4>Процесс работы:</h4><span><p>Химические реакции, в том числе гликозилирование.</p></span>"
txt_rer = "<h2>Шероховатой эндоплазматической сети - Тоннель</h2>"+
"<h4>Структура:</h4><span><p>Состояит из фосфолипидного бислоя, усеянного рибосомами. Внутреннее пространство разграничено по свету, что можно сравнить с туннелем. (грубое <i>предположение</i>)</p></span>"+
"<h4>Роль:</h4><span><p>Более специализированные, чем REL. Участвует в транспортировке и доработке белков, которые синтезируются рибосомами.</p></span>"+
'<h4>Процесс работы:</h4><span><p>Белки "попадают" на свет о RER, изменяются и перемещаются. Они оставляют RER в везикуле, в конце оболочки последнего.</p></span>'
txt_noy = "<h2>Ядро - безопасное</h2>"+
"<h4>Структура:</h4><span><p>Окружено двойной мембраной, называемой ядерной оболочкой, в местах, связанных с RER. Эти две мембраны предохраняют ядро регулярной при формировании ядерной поры. Внутри находится ядрышко и ДНК в виде хроматина или хромосом.</p></span>"+
"<h4>Роль:</h4><span><p>Хранение всей генетической информации, необходимой для жизни клетки.</p></span>"+
"<h4>Процесс работы:</h4><span><p>Транскрипция (копирования генетической информации в мРНК).</p></span>"
txt_rel = "<h2>Гладкая эндоплазматическая сеть - REL</h2>"+
"<h4>Структура:</h4><span><p>Как и PER, за исключением того, что мембрана усеяна рибосомами, 'гладкий внешний вид'</p></span>"+
"<h4>Роль:</h4><span><p>Синтез фосфолипидов, кальция, хранение, переработка некоторых внешних молекул (наркотики, алкоголь, ...). В некоторых клетках, REL также выполняет дополнительные функции, такие как производство гормонов, желудочные кислоты и т.д..</p></span>"+
"<h4>Процесс работы:</h4><span><p>Имеет место много сложных химических реакций (например, детоксикация, различные синтезы).</p></span>"
txt_adn = "<h2>ДНК - Книга Жизни</h2>"+
"<h4>Структура:</h4><span><p>Двойная спираль, состоящая из двух столбцов глюкоза-фосфат-глюкоза-фосфат ... уровни которых называются азотистыми основаниями.</p></span>"+
"<h4>Роль:</h4><span><p>ДНК содержит всю информацию, необходимую для жизни.</p></span>"+
"<h4>Процесс работы:</h4><span><p>Вся информация записывается с помощью четырех букв A, T, G и C. С помощью этих комбинаций можно написать все, что полезно для клеток.</p></span>"
txt_centr= "<h2>Центриоли - Буксиры хромосом</h2>"+
"<h4>Структура:</h4><span><p>Девять триплетов микротрубочек, окруженных белками.</p></span>"+
"<h4>Роль:</h4><span><p>Отделение различных хромосом во время деления клетки.</p></span>"+
"<h4>Процесс работы:</h4><span><p>Микротрубочки развертывают центриоли, когда те размещены на двух полюсах клетки, на центромеры хромосом и тянут их к ним, чтобы разделить их.</p></span>"
txt_rib = "<h2>Рибосома - декодеры</h2>"+
"<h4>Структура:</h4><span><p>Сформирована из двух субъединиц: рибосомальной РНК и белков.</p></span>"+
"<h4>Роль:</h4><span><p>Рибосомы синтезируют белки.</p></span>"+
"<h4>Процесс работы:</h4><span><p>Нити мРНК (мессенджер) происходит в рибосоме и тРНК (передача) между большой субъединицы, если ее кодона (группа из трех азотистых оснований) соответствует один перед мРНК. Это тРНК несет в себе определенный аминокислота, которая добавляется к цепочке уже собранном виде.</p></span>"
txt_arn = "<h2>РНК - многофункциональная</h2>"+
"<h4>Структура:</h4><span><p>Очень похожа на ДНК. Кроме того, что он имеет только один берег и тимин (Т) ДНК заменяется урацил (U). Кроме того, он химически более нестабильна, чем ДНК, поэтому он не используется для хранения информации с течением времени.</p></span>"+
"<h4>Роль:</h4><span><p>Несколько, Есть РНК транспорта, курьеров, regulateus, гиды, спутник ...</p></span>"+
"<h4>Процесс работы:</h4><span><p>Копирование генетической информации осуществляется через открытие двойной спирали ДНК, а затем копирование РНК кодонов. Это может затем выйти из ядра, ДНК не может сделать.</p></span>"
txt_nucl = "<h2>Ядрышко - фабрика РНК</h2>"+
"<h4>Структура:</h4><span><p>Состоит из любой оболочки, скопления белков и РНК.</p></span>"+
"<h4>Роль:</h4><span><p>Расположение транскрипта РНК, Ночной рРНК (рибосомальной), который вместе с белками, образуют две субъединицы рибосом.</p></span>"+
"<h4>Процесс работы:</h4><span><p>Создание рибосомы: Транскрипция РНК и белков, необходимых (этот шаг выполняется в цитоплазму других рибосомы), которые входят в ядро, ассоциация молекул, образующихся в откровенной новые рибосомы, которая находится вне ядра, чтобы играть свою роль.</p></span>"
break;
case "fr":
txt_vesicule = "<h2>Vesicule<br/>Transporteurs</h2>"+
"<h4>Structure:</h4><span><p>Bicouche phospholipidique</p></span>"+
"<h4>Role:</h4><span><p>Transport de proteines ou d'autres elements a l'interieur de la cellule, vers l'exterieur (exocytose) ou vers l'interieur (endocytose).</p></span>"+
'<h4>Fonctionnement:</h4><span><p>Transporteur "remorque" par des proteines prenant appui sur le cytosquelette.</p></span>'
txt_lysosome = "<h2>Lysosome<br/>Estomacs cellulaires</h2>"+
"<h4>Structure:</h4><span><p>Bicouche phospholipidique</p></span>"+
"<h4>Role:</h4><span><p>Digestion intra-cellulaire a l'aide d'enzymes</p></span>"+
"<h4>Fonctionnement:</h4><span><p>Absorption de nutriments par endocytose ou d'elements cellulaires abimes, digestion de ceux-ci, puis distribution des resultats de la reaction chimique dans la cellule et enfin expulsion des dechets par exocytose.</p></span>"
txt_mitoch = "<h2>Mitochondrie<br/>Piles</h2>"+
"<h4>Structure:</h4><span><p>Deux bichouches phospholipidiques appelees membranes mitochondriales, une externe et une interne. La mitochondrie contient des ribosomes, de l'ATP de l'ADN et bien d'autres molecules.</p></span>"+
"<h4>Role:</h4><span><p>Centrale energetique de la cellule.</p></span>"+
"<h4>Fonctionnement:</h4><span><p>L'energie - sous forme d'ATP (adenosine triphosphate) - est issue de differentes etapes de reactions chimique partant d'une molecule de glucose.</p></span>"
txt_golgi = "<h2>Appareil de Golgi<br/>Usines miniatures</h2>"+
"<h4>Structure:</h4><span><p>Forme d'un empilement de saccules membranaires applatis.</p></span>"+
"<h4>Role:</h4><span><p>Modification de certaines proteines au cours d'un cheminement au travers de ses saccules.</p></span>"+
"<h4>Fonctionnement:</h4><span><p>Suite de reactions chimiques, notamment par glycosilation.</p></span>"
var txt_vesicule = "<h2>Vesicle<br/>Transporter</h2>"+
"<h4>Structure:</h4><span><p>Phospholipid bilayer</p></span>"+
"<h4>Role:</h4><span><p>Transport of proteins and other components inside the cell to the exterior (exocytosis) or inward (endocytosis).</p></span>"+
'<h4>Operation:</h4><span><p>Transport "towed" by Protein building on the cytoskeleton.</p></span>'
txt_rer = "<h2>Reticulum endoplasmique rugueux - Tunnel</h2>"+
"<h4>Structure:</h4><span><p>Compose d'une bicouche phospholipidique piquetee de ribosomes (d'un aspect <i>rugueux</i>) delimitant la lumiere, un espace interne pouvant tre compare a un tunnel.</p></span>"+
"<h4>Role:</h4><span><p>Plus specialise que le REL, il participe au transport et a la finalisation des proteines, qui sont synthetisees par les ribosomes.</p></span>"+
'<h4>Fonctionnement:</h4><span><p>Les proteines "tombent" dans la lumiere du RER o elles sont modifiees et deplacees. Elles quittent le RER dans une vesucule issue de la membrane de ce dernier.</p></span>'
txt_noy = "<h2>Noyau - Le coffre-fort</h2>"+
"<h4>Structure:</h4><span><p>Entoure par une double membrane appelee enveloppe nucleaire en lien par endroits avec le RER. Ces deux membranes fusionnent a intervalles reguliers pour former les pores nucleaires. a l'interieur se trouvent le nucleole et l'ADN, sous forme de chromatine ou de chomosomes.</p></span>"+
"<h4>Role:</h4><span><p>Stockage de la totalite des informations genetiques necessaires a la vie de la cellule.</p></span>"+
"<h4>Fonctionnement:</h4><span><p>Site de la transcription (copie de l'information genetique sur des ARNm).</p></span>"
txt_rel = "<h2>Reticulum endoplasmique lisse - REL</h2>"+
"<h4>Structure:</h4><span><p>Similaires a celle du RER, a la difference que sa membranne n'est pas parsemee de ribosomes, d'o son aspect <i>lisse</i>.</p></span>"+
"<h4>Role:</h4><span><p>Sinthese des phospholipides,stockage du calcium, transformation de certaines molecules exterieures (medicament, alcool, ...). Dans certaines cellules, le REL remplit aussi des fonctions supplementaires, telles la production d'hormones, d'acides gastriques, etc.</p></span>"+
"<h4>Fonctionnement:</h4><span><p>Il est le siege de beaucoup de reactions chimiques complexes (ex: detoxification, differentes syntheses).</p></span>"
txt_adn = "<h2>ADN - Le livre de la vie</h2>"+
"<h4>Structure:</h4><span><p>echelle a la celebre forme de double helice composee de deux colonnes sucre-phosphate-sucre-phosphate-... et dont les echelons sont apelles bases azotees.</p></span>"+
"<h4>Role:</h4><span><p>L'ADN contient toutes les informations necessaires a la vie.</p></span>"+
"<h4>Fonctionnement:</h4><span><p>Toutes les informations sont ecrites a l'aide des quatre lettres A, T, G, et C. Grace a ces combinaisons, il est possible d'ecrire tout ce qui est utile a la cellule.</p></span>"
txt_centr= "<h2>Centrioles - Remorqueurs de choromosomes</h2>"+
"<h4>Structure:</h4><span><p>Neuf triplets de microtubules entoures par un certain nombre de proteines.</p></span>"+
"<h4>Role:</h4><span><p>Separer les differents chromosomes durant la division cellulaire.</p></span>"+
"<h4>Fonctionnement:</h4><span><p>Les centrioles, une fois places aux deux poles de la cellule, deploient des microtubules vers les centromeres des chromosomes et les tirent vers eux pour les separer.</p></span>"
txt_rib = "<h2>Ribosome - Decodeurs</h2>"+
"<h4>Structure:</h4><span><p>Forme par deux sous-unites composees d'ARN ribosomique et de proteines.</p></span>"+
"<h4>Role:</h4><span><p>Le ribosome synthetise les proteines.</p></span>"+
"<h4>Fonctionnement:</h4><span><p>Un brin d'ARNm (messager) passe dans le ribosome et un ARNt (de transfert) entre dans la grande sous-unite si son codon (groupe de trois bases azotees) correspond a celui qui est en face sur l'ARNm. Cet ARNt porte avec lui un acide amine specifique qui est ajoute a la chaine deja assemblee.</p></span>"
txt_arn = "<h2>ARN - Multifonction</h2>"+
"<h4>Structure:</h4><span><p>Tres similaire a l'ADN a la difference qu'il ne possede qu'un brin et que la thymine (T) de l'ADN est remplacee par l'uracile (U). De plus, il est chimiquement plus instable que l'ADN, c'est pourquoi il n'est pas utilise pour le stockage d'informations a long terme.</p></span>"+
"<h4>Role:</h4><span><p>Multiples, il existe des ARN de transport, messagers, regulateus, guides, satellites, ...</p></span>"+
"<h4>Fonctionnement:</h4><span><p>La copie d'informations genetiques se fait grace a l'ouverture de la double-helice d'ADN, puis la copie des codons sur l'ARN. Celui-ci peut alors sortir du noyau, ce que l'ADN ne peut pas faire.</p></span>"
txt_nucl = "<h2>Nucleole - Fabrique d'ARN</h2>"+
"<h4>Structure:</h4><span><p>Compose d'aucune membranne, c'est un agglomerat de proteines et d'ARN.</p></span>"+
"<h4>Role:</h4><span><p>Lieu de la transcription d'ARN, nottament d'ARNr (ribosomiques) qui, associes avec des proteines, vont former les deux sous-unites des ribosomes.</p></span>"+
"<h4>Fonctionnement:</h4><span><p>Creation d'un ribosome: Transcription des ARNr ainsi que des proteines necessaires (cette etape est effectuee dans le cytoplasme par d'autres ribosomes) qui rentrent dans le noyau, association des molecules franchement formees en un nouveau ribosome, qui sort du noyau pour jouer son Role.</p></span>"
break;
default:
txt_vesicule = "<h2>Vesicle<br/>Transporter</h2>"+
"<h4>Structure:</h4><span><p>Phospholipid bilayer</p></span>"+
"<h4>Role:</h4><span><p>Transport of proteins and other components inside the cell to the exterior (exocytosis) or inward (endocytosis).</p></span>"+
'<h4>Operation:</h4><span><p>Transport "towed" by Protein building on the cytoskeleton.</p></span>'
var txt_lysosome = "<h2>Lysosome<br/>A stomach cell.</h2>"+
"<h4>Structure:</h4><span><p>Phospholipid bilayer</p></span>"+
"<h4>Role:</h4><span><p>А intracellular digestion with enzymes.</p></span>"+
"<h4>Operation:</h4><span><p>Absorbes nutrient uptake or damaged cellular components by endocytosis, digest them and then distributes the results of the chemical reaction in the cell and finally expels of waste by exocytosis.</p></span>"
var txt_mitoch = "<h2>Mitochondrie<br/>Batteries</h2>"+
"<h4>Structure:</h4><span><p>Two phospholipid bilayers called mitochondrial membranes, one external and one internal. The mitochondria contain ribosomes, ATP of DNA and other molecules.</p></span>"+
"<h4>Role:</h4><span><p>Powerhouse of the cell.</p></span>"+
"<h4>Operation:</h4><span><p>Energy - in the form of ATP (adenosine triphosphate) - comes from various stages of chemical reactions starting from a glucose molecule.</p></span>"
var txt_golgi = "<h2>Apparatus golgi<br/>Miniature plants</h2>"+
"<h4>Structure:</h4><span><p>Has a stack of flattened membrane saccules.</p></span>"+
"<h4>Role:</h4><span><p>Modification of proteins during a journey through its saccules.</p></span>"+
"<h4>Operation:</h4><span><p>Chemical reactions, including glycosylation.</p></span>"
var txt_rer = "<h2>Rough endoplasmic reticulum - Tunnel</h2>"+
"<h4>Structure:</h4><span><p>Consists of a phospholipid bilayer studded with ribosomes (an aspect <i> rough </ i>) define the light, an internal space that can be compared to a tunnel.</p></span>"+
"<h4>Role:</h4><span><p>More specialized than the real, he participated in the transport and а finalizing the proteins that are synthesized by ribosomes.</p></span>"+
'<h4>Operation:</h4><span><p>Proteins "fall" in the light of the RER where they are modified and displaced. They leave the RER in a vesicle membrane after it.</p></span>'
var txt_noy = "<h2>Core - The safe</h2>"+
"<h4>Structure:</h4><span><p>Surrounded by a double membrane, that called the nuclear envelope, in places linked with the RER. These two membranes protect regular intervals formed nuclear pores. It located within the nucleolus and the DNA in the form of chromatin or chromosomes.</p></span>"+
"<h4>Role:</h4><span><p>Storing all the genetic information necessary for a life of the cell.</p></span>"+
"<h4>Operation:</h4><span><p>Copying of genetic information on mRNA.</p></span>"
var txt_rel = "<h2>Smooth endoplasmic reticulum - REL</h2>"+
"<h4>Structure:</h4><span><p>Like that of the RER, with the difference that the membrane is studded with ribosomes, as its smooth <i>appearance</i>.</p></span>"+
"<h4>Role:</h4><span><p>Phospholipid synthesis, calcium storage, transformation of certain molecules external (drugs, alcohol, ...). In some cells, the LRA also performs additional functions, such as the production of hormones, gastric acid, etc.</p></span>"+
"<h4>Operation:</h4><span><p>It is the seat of many complex chemical reactions (eg detoxification, various syntheses).</p></span>"
var txt_adn = "<h2>DNA - The Book of Life</h2>"+
"<h4>Structure:</h4><span><p>A scale in form of the famous double helix consists of two columns sugar-phosphate-sugar-phosphate ... and whose levels are called nitrogenous bases.</p></span>"+
"<h4>Role:</h4><span><p>DNA contains all the information needed for a life.</p></span>"+
"<h4>Operation:</h4><span><p>All information is written using the four letters A, T, G and C. Using these combinations, it is possible to write anything useful about cell.</p></span>"
var txt_centr= "<h2>Centrioles - Tug of chromosomes</h2>"+
"<h4>Structure:</h4><span><p>Nine triplets of microtubules surrounded by a some number of proteins.</p></span>"+
"<h4>Role:</h4><span><p>Separate the different chromosomes during cell division.</p></span>"+
"<h4>Operation:</h4><span><p>Centrioles, once placed at the two poles of the cell, deploy the microtubules to the centromeres of chromosomes and pull them to them to separate them.</p></span>"
txt_lysosome = "<h2>Lysosome<br/>A stomach cell.</h2>"+
"<h4>Structure:</h4><span><p>Phospholipid bilayer</p></span>"+
"<h4>Role:</h4><span><p>a intracellular digestion with enzymes.</p></span>"+
"<h4>Operation:</h4><span><p>Absorbes nutrient uptake or damaged cellular components by endocytosis, digest them and then distributes the results of the chemical reaction in the cell and finally expels of waste by exocytosis.</p></span>"
txt_mitoch = "<h2>Mitochondrie<br/>Batteries</h2>"+
"<h4>Structure:</h4><span><p>Two phospholipid bilayers called mitochondrial membranes, one external and one internal. The mitochondria contain ribosomes, ATP of DNA and other molecules.</p></span>"+
"<h4>Role:</h4><span><p>Powerhouse of the cell.</p></span>"+
"<h4>Operation:</h4><span><p>Energy - in the form of ATP (adenosine triphosphate) - comes from various stages of chemical reactions starting from a glucose molecule.</p></span>"
txt_golgi = "<h2>Apparatus golgi<br/>Miniature plants</h2>"+
"<h4>Structure:</h4><span><p>Has a stack of flattened membrane saccules.</p></span>"+
"<h4>Role:</h4><span><p>Modification of proteins during a journey through its saccules.</p></span>"+
"<h4>Operation:</h4><span><p>Chemical reactions, including glycosylation.</p></span>"
txt_rer = "<h2>Rough endoplasmic reticulum - Tunnel</h2>"+
"<h4>Structure:</h4><span><p>Consists of a phospholipid bilayer studded with ribosomes (an aspect <i> rough </ i>) define the light, an internal space that can be compared to a tunnel.</p></span>"+
"<h4>Role:</h4><span><p>More specialized than the real, he participated in the transport and a finalizing the proteins that are synthesized by ribosomes.</p></span>"+
'<h4>Operation:</h4><span><p>Proteins "fall" in the light of the RER where they are modified and displaced. They leave the RER in a vesicle membrane after it.</p></span>'
txt_noy = "<h2>Core - The safe</h2>"+
"<h4>Structure:</h4><span><p>Surrounded by a double membrane, that called the nuclear envelope, in places linked with the RER. These two membranes protect regular intervals formed nuclear pores. It located within the nucleolus and the DNA in the form of chromatin or chromosomes.</p></span>"+
"<h4>Role:</h4><span><p>Storing all the genetic information necessary for a life of the cell.</p></span>"+
"<h4>Operation:</h4><span><p>Copying of genetic information on mRNA.</p></span>"
txt_rel = "<h2>Smooth endoplasmic reticulum - REL</h2>"+
"<h4>Structure:</h4><span><p>Like that of the RER, with the difference that the membrane is studded with ribosomes, as its smooth <i>appearance</i>.</p></span>"+
"<h4>Role:</h4><span><p>Phospholipid synthesis, calcium storage, transformation of certain molecules external (drugs, alcohol, ...). In some cells, the LRA also performs additional functions, such as the production of hormones, gastric acid, etc.</p></span>"+
"<h4>Operation:</h4><span><p>It is the seat of many complex chemical reactions (eg detoxification, various syntheses).</p></span>"
txt_adn = "<h2>DNA - The Book of Life</h2>"+
"<h4>Structure:</h4><span><p>A scale in form of the famous double helix consists of two columns sugar-phosphate-sugar-phosphate ... and whose levels are called nitrogenous bases.</p></span>"+
"<h4>Role:</h4><span><p>DNA contains all the information needed for a life.</p></span>"+
"<h4>Operation:</h4><span><p>All information is written using the four letters A, T, G and C. Using these combinations, it is possible to write anything useful about cell.</p></span>"
txt_centr = "<h2>Centrioles - Tug of chromosomes</h2>"+
"<h4>Structure:</h4><span><p>Nine triplets of microtubules surrounded by a some number of proteins.</p></span>"+
"<h4>Role:</h4><span><p>Separate the different chromosomes during cell division.</p></span>"+
"<h4>Operation:</h4><span><p>Centrioles, once placed at the two poles of the cell, deploy the microtubules to the centromeres of chromosomes and pull them to them to separate them.</p></span>"
var txt_rib = "<h2>Ribosome - Decoders</h2>"+
"<h4>Structure:</h4><span><p>Formed by two subunits composed of ribosomal RNA and proteins.</p></span>"+
"<h4>Role:</h4><span><p>The ribosome synthesizes proteins.</p></span>"+
"<h4>Operation:</h4><span><p>A strand of mRNA (messenger) pass through the ribosome and tRNA (transfer) between the large subunit where the codon (group of three nitrogen bases) is one who is in front of the mRNA. This tRNA carries with it a specific amino acid that is added а chain already assembled.</p></span>"
var txt_arn = "<h2>RNA - Multifunction</h2>"+
"<h4>Structure:</h4><span><p>Very similar DNA with the difference it has only one strand and thymine (T) of DNA is replaced by uracil (U). In addition, it is chemically more stable than DNA, so it is not used for information storage, just if in long term.</p></span>"+
"<h4>Role:</h4><span><p>Multiple, there are RNA transport, passenger, cruise, guides, satellite ...</p></span>"+
"<h4>Operation:</h4><span><p>Copying of genetic information, the opening of the double helix of DNA, and then copying the RNA codons. It can then exit the nucleus, the DNA can not do it.</p></span>"
var txt_nucl = "<h2>Nucleolus - Factory RNA</h2>"+
"<h4>Structure:</h4><span><p>Composed of any membrane, a cluster of proteins and RNA.</p></span>"+
"<h4>Role:</h4><span><p>Location of the RNA transcripts, including RNA (ribosomal), which combines with protein, will form the two subunits of ribosomes.</p></span>"+
"<h4>Operation:</h4><span><p>Creation of a ribosome: Transcription of rRNA and protein needed (this step is performed in the cytoplasm by other ribosomes) that fall within the nucleus, association of molecules frankly formed a new ribosome, which leaves the nucleus to play its role.</p></span>"
txt_rib = "<h2>Ribosome - Decoders</h2>"+
"<h4>Structure:</h4><span><p>Formed by two subunits composed of ribosomal RNA and proteins.</p></span>"+
"<h4>Role:</h4><span><p>The ribosome synthesizes proteins.</p></span>"+
"<h4>Operation:</h4><span><p>A strand of mRNA (messenger) pass through the ribosome and tRNA (transfer) between the large subunit where the codon (group of three nitrogen bases) is one who is in front of the mRNA. This tRNA carries with it a specific amino acid that is added a chain already assembled.</p></span>"
txt_arn = "<h2>RNA - Multifunction</h2>"+
"<h4>Structure:</h4><span><p>Very similar DNA with the difference it has only one strand and thymine (T) of DNA is replaced by uracil (U). In addition, it is chemically more stable than DNA, so it is not used for information storage, just if in long term.</p></span>"+
"<h4>Role:</h4><span><p>Multiple, there are RNA transport, passenger, cruise, guides, satellite ...</p></span>"+
"<h4>Operation:</h4><span><p>Copying of genetic information, the opening of the double helix of DNA, and then copying the RNA codons. It can then exit the nucleus, the DNA can not do it.</p></span>"
txt_nucl = "<h2>Nucleolus - Factory RNA</h2>"+
"<h4>Structure:</h4><span><p>Composed of any membrane, a cluster of proteins and RNA.</p></span>"+
"<h4>Role:</h4><span><p>Location of the RNA transcripts, including RNA (ribosomal), which combines with protein, will form the two subunits of ribosomes.</p></span>"+
"<h4>Operation:</h4><span><p>Creation of a ribosome: Transcription of rRNA and protein needed (this step is performed in the cytoplasm by other ribosomes) that fall within the nucleus, association of molecules frankly formed a new ribosome, which leaves the nucleus to play its role.</p></span>"
break;
}

@ -1,11 +1,11 @@
<!-- Widget crée pour Uniboard 4.3 par Sidney Bovet dans le cadre d'un Travail de Maturité au GyB -->
<!-- Widget cree pour Uniboard 4.3 par Sidney Bovet dans le cadre d'un Travail de Maturite au GyB -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>iCell</title>
@ -44,7 +44,7 @@
<area shape="poly" coords="377,191,387,156,412,191,416,241,393,223,385,218" onclick="golgi(2)" onmouseout="auraOut('')" onmouseover="aura('Golgi')" alt=""/>
<area shape="poly" coords="123,366,123,336,108,305,74,288,87,332,94,342" onclick="golgi(3)" onmouseout="auraOut('')" onmouseover="aura('Golgi')" alt=""/>
<!-- Nucléole -->
<!-- Nucleole -->
<area shape="circle" coords="269,244,22" onclick="nucl()" onmouseout="auraOut('')" onmouseover="aura('nucl')" alt=""/>
<!-- Noyau -->
@ -85,7 +85,7 @@
<div id="div_body"><img alt="" src="images/index.png" usemap="#mapCellule" /></div>
<div id="div_organite"><img id="img_organite" alt="" src="" usemap="#mapOrganite" /></div>
<div id="div_infos"><p>[Texte descriptif de l'organite sélectionnée]</p></div>
<div id="div_infos"><p>[Texte descriptif de l'organite selectionnee]</p></div>
<div id="div_aura"><img id="img_aura" usemap="#mapCellule" alt="" src=""/></div>
<div id="div_ADN"><img id="img_ADN" alt="" src=""/></div>
<div id="div_zoom"></div>

Loading…
Cancel
Save