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> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <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-1.3.2.min.js" type="text/javascript"></script>
<script src="js/jquery.disable.text.select.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> <script src="js/ubw-main.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/ubwidget.css" /> <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(){ function init(){
var embed; var embed;
var inputBox = $("<textarea type='text'></textarea>") var lang = "";
.css({
width: "350px", if(window.sankore){
height: "58px", try{
marginRight: "5px" 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>") var submit = $("<div>" + sankoreLang[lang].embed + "</div>")
.css({ .css({
float: "right", float: "right",
width: "auto", width: "auto",
height:"auto", height:"auto",
padding:"4px", padding:"4px",
marginTop:"13px", marginTop:"13px",
cursor:"pointer", cursor:"pointer",
backgroundColor:"rgb(45,65,250)", backgroundColor:"rgb(45,65,250)",
border:"1px solid", border:"1px solid",
borderColor:"rgb(45,65,250) rgb(25,45,230) rgb(25,45,230) rgb(45,65,250)", borderColor:"rgb(45,65,250) rgb(25,45,230) rgb(25,45,230) rgb(45,65,250)",
textTransform:"capitalize", textTransform:"capitalize",
fontFamily:"Arial", fontFamily:"Arial",
fontSize:"18px", fontSize:"18px",
fontWeight:"regular", fontWeight:"regular",
color:"white" color:"white"
}); });
var loadWindow = $("<div></div>"); var loadWindow = $("<div></div>");
var searchWrap = $("<div></div>") var searchWrap = $("<div></div>")
.css({ .css({
position:"absolute", position:"absolute",
padding: "10px", padding: "10px",
backgroundColor: "rgb(230,230,233)", backgroundColor: "rgb(230,230,233)",
width: "425px", width: "460px",
height: "65px" height: "65px"
}); });
//FIT WIDGET FRAME ON LAUNCH... //FIT WIDGET FRAME ON LAUNCH...
if(window.sankore){ if(window.sankore){
window.sankore.resize($("#ubwidget").width()-15,85); window.sankore.resize($("#ubwidget").width() + 20,85);
} }
searchWrap.append(inputBox) searchWrap.append(inputBox)
.append(submit); .append(submit);
$("#ubwidget").append(searchWrap); $("#ubwidget").append(searchWrap);
submit.click(function(){ submit.click(function(){
$("#ubwidget").append(loadWindow) $("#ubwidget").append(loadWindow)
embed = inputBox.val(); embed = inputBox.val();
searchWrap.hide(); searchWrap.hide();
if(/<object/.test(embed)){ if(/<object/.test(embed)){
loadWindow.append(embed); loadWindow.append(embed);
loadWindow.find("embed").attr("wmode","opaque"); loadWindow.find("embed").attr("wmode","opaque");
var loadWindow_content = loadWindow.html(); var loadWindow_content = loadWindow.html();
loadWindow.empty().html(loadWindow_content); loadWindow.empty().html(loadWindow_content);
} }
else { else {
loadWindow.append(embed); loadWindow.append(embed);
} }
if(window.sankore){ if(window.sankore){
window.sankore.resize($(document).width(),$(document).height()); window.sankore.resize($(document).width(),$(document).height());
window.sankore.setPreference("embed", escape(embed)); 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")); var loadEmbed = unescape(window.sankore.preference("embed"));
inputBox.val(loadEmbed); inputBox.val(loadEmbed);
submit.trigger("click"); submit.trigger("click");
} }
}
}
if (window.widget) {
window.widget.onremove = function(){
loadWindow.empty();
}
}
} }

@ -109,8 +109,7 @@ body{
height: 28px; height: 28px;
margin: 4px 5px; margin: 4px 5px;
border: none; border: none;
background-image: url(../images/greySquare.png); background-image: url(../images/greySquare2.png);
font-weight: bold;
font-family: Verdana; font-family: Verdana;
color: yellow; color: yellow;
cursor: pointer; 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"/> <link rel="stylesheet" type="text/css" href="css/basic.css"/>
<script type="text/javascript" src="scripts/jquery-1.6.2.min.js"></script> <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/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" src="scripts/blackYellow.js"></script>
<script type="text/javascript"> <script type="text/javascript">

@ -26,6 +26,7 @@ function init(){
var popupFlag = false var popupFlag = false
var flagForSelect = false; var flagForSelect = false;
var dragElement = null; //the element that must be dragging var dragElement = null; //the element that must be dragging
var lang = ""; //locale language
var coords = { var coords = {
left:0, left:0,
top:0 top:0
@ -36,7 +37,17 @@ function init(){
x:false, x:false,
width:0, width:0,
height: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; var opacityChanged = false;
@ -133,13 +144,13 @@ function init(){
if(!toggleFlag && !endFlag){ if(!toggleFlag && !endFlag){
endFlag = true; endFlag = true;
toggleButton.animate({ toggleButton.animate({
width:"72px" width:"115px"
},"fast",function(){ },"fast",function(){
toggleFlag = true; toggleFlag = true;
if(!mode) if(!mode)
toggleButton.text("Edit"); toggleButton.text(sankoreLang[lang].edit);
else else
toggleButton.text("Display"); toggleButton.text(sankoreLang[lang].display);
}); });
} }
} }
@ -182,10 +193,10 @@ function init(){
if(!addToggleStart && !addToggleEnd){ if(!addToggleStart && !addToggleEnd){
addToggleEnd = true; addToggleEnd = true;
addButton.animate({ addButton.animate({
width:"72px" width:"115px"
},"fast",function(){ },"fast",function(){
addToggleStart = true; addToggleStart = true;
addButton.text("Add"); addButton.text(sankoreLang[lang].add);
}); });
} }
} }
@ -217,16 +228,16 @@ function init(){
//input fields and buttons for a popup window //input fields and buttons for a popup window
var expressionDiv = $("<div id='expressionDiv' class='popupContainers'>").appendTo(popupBack); 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 expresionText = $("<input type='text' id='expresionText' class='expresionInput'/>").appendTo(expressionDiv);
var resultDiv = $("<div id='resultDiv' class='popupContainers'>").appendTo(popupBack); 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 resultText = $("<input type='text' id='resultText' class='expresionInput'/>").appendTo(resultDiv);
var popupButtonsDiv= $("<div id='popupButtonsDiv' class='popupContainers'>").appendTo(popupBack); var popupButtonsDiv= $("<div id='popupButtonsDiv' class='popupContainers'>").appendTo(popupBack);
var cancelButton = $("<input type='button' id='cancelButton' class='popupButtons' value='Cancel'/>").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='Ok'/>").appendTo(popupButtonsDiv); var okButton = $("<input type='button' id='okButton' class='popupButtons' value='" + sankoreLang[lang].ok + "'/>").appendTo(popupButtonsDiv);
/* -------------- A WORK WITH POPUP BUTTONS AND FIELDS ---------------*/ /* -------------- 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"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="css/basic.css"/> <link rel="stylesheet" type="text/css" href="css/basic.css"/>
<script type="text/javascript" src="scripts/jquery-1.6.2.min.js"></script> <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" src="scripts/selQuestionApp.js"></script>
<script type="text/javascript"> <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 questionArray;
var currentQstId = ""; var currentQstId = "";
var lang = ""; //locale language
function init(){ function init(){
@ -24,7 +25,17 @@ function init(){
var mode = false; var mode = false;
questionArray = new Array(); questionArray = new Array();
var popupFlag = false 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 // toggle button
var buttonDiv = $("<div id='buttonDiv' class='buttonDiv'>").appendTo("body"); var buttonDiv = $("<div id='buttonDiv' class='buttonDiv'>").appendTo("body");
@ -40,8 +51,8 @@ function init(){
// adding question block // adding question block
var addQstDiv = $("<div id='addQstDiv' class='addQstDiv'>").appendTo("body"); var addQstDiv = $("<div id='addQstDiv' class='addQstDiv'>").appendTo("body");
var addQstButton = $("<button id='addQstButton' class='addQstButton'>").appendTo("#addQstDiv"); var addQstButton = $("<button id='addQstButton' class='addQstButton'>").appendTo("#addQstDiv");
var addQsqSpan1 = $("<span id='addQsqSpan1'>Q1</span>").appendTo("#addQstButton"); var addQsqSpan1 = $("<span id='addQsqSpan1'>" + sankoreLang[lang].q + "1</span>").appendTo("#addQstButton");
var addQsqSpan2 = $("<span id='addQsqSpan2'>Add new question ... </span>").appendTo("#addQstButton"); var addQsqSpan2 = $("<span id='addQsqSpan2'>" + sankoreLang[lang].add_new_question + "</span>").appendTo("#addQstButton");
//import saved data //import saved data
if(window.sankore){ if(window.sankore){
@ -68,7 +79,7 @@ function init(){
obj.id = id; obj.id = id;
questionArray.push(obj); questionArray.push(obj);
addQstBlock(id, "Enter your question here ...", "",""); addQstBlock(id, sankoreLang[lang].template_question, "","");
if(window.sankore) if(window.sankore)
sankore.setPreference("qstArrayData", JSON.stringify(questionArray)); sankore.setPreference("qstArrayData", JSON.stringify(questionArray));
@ -98,13 +109,13 @@ function init(){
if(!toggleFlag && !endFlag){ if(!toggleFlag && !endFlag){
endFlag = true; endFlag = true;
toggleButton.animate({ toggleButton.animate({
width:"72px" width:"115px"
},"fast",function(){ },"fast",function(){
toggleFlag = true; toggleFlag = true;
if(!mode) if(!mode)
toggleButton.text("Display"); toggleButton.text(sankoreLang[lang].display);
else else
toggleButton.text("Edit"); toggleButton.text(sankoreLang[lang].edit);
}); });
} }
}); });
@ -140,14 +151,13 @@ function init(){
obj.id = id; obj.id = id;
getNeededElement(questionArray, currentQstId).answers.push(obj); getNeededElement(questionArray, currentQstId).answers.push(obj);
addAnsBlock(id, currentQstId, "Enter the answer here ..."); addAnsBlock(id, currentQstId, sankoreLang[lang].template_answer);
}); });
//set answer text //set answer text
$(".ansContent").live('keyup', function(event){ $(".ansContent").live('keyup', function(event){
var id = $(event.target).attr("id").replace("ansContent",""); var id = $(event.target).attr("id").replace("ansContent","");
getNeededElement(getNeededElement(questionArray, currentQstId).answers,id).text = $(event.target).text(); getNeededElement(getNeededElement(questionArray, currentQstId).answers,id).text = $(event.target).text();
//questionArray[currentQstId].answers[id].text = $(event.target).text();
}); });
//set question text //set question text
@ -244,9 +254,7 @@ function init(){
$("#" + currentQstId + "ansDiv input").removeAttr("checked"); $("#" + currentQstId + "ansDiv input").removeAttr("checked");
$(event.target).attr("checked", "checked"); $(event.target).attr("checked", "checked");
getNeededElement(questionArray, currentQstId).rightAns = $(event.target).attr("value"); getNeededElement(questionArray, currentQstId).rightAns = $(event.target).attr("value");
//alert(getNeededElement(questionArray, currentQstId).rightAns);
} else { } else {
//alert(event.target.checked)
(event.target.checked) ? $(event.target).attr("checked", "checked") : $(event.target).removeAttr("checked", "checked"); (event.target.checked) ? $(event.target).attr("checked", "checked") : $(event.target).removeAttr("checked", "checked");
getNeededElement(questionArray, currentQstId).rightAns = ""; getNeededElement(questionArray, currentQstId).rightAns = "";
for(var i in $("#" + currentQstId + "ansDiv input")){ for(var i in $("#" + currentQstId + "ansDiv input")){
@ -272,11 +280,11 @@ function init(){
//popup messages //popup messages
$(".qstDelete").live('mouseover', function(evt){ $(".qstDelete").live('mouseover', function(evt){
popupFlag = true; popupFlag = true;
popupText.text("Delete question") popupText.text(sankoreLang[lang].delete_question)
.css("top", evt.pageY + 15) .css("top", evt.pageY + 15)
.css("left", evt.pageX - 40) .css("left", evt.pageX - 40)
.css({ .css({
width:"120px" width:"130px"
}) })
.show("fast", function(){ .show("fast", function(){
if(!popupFlag) if(!popupFlag)
@ -286,11 +294,11 @@ function init(){
$(".ansDelete").live('mouseover', function(evt){ $(".ansDelete").live('mouseover', function(evt){
popupFlag = true; popupFlag = true;
popupText.text("Delete answer") popupText.text(sankoreLang[lang].delete_answer)
.css("top", evt.pageY + 15) .css("top", evt.pageY + 15)
.css("left", evt.pageX - 40) .css("left", evt.pageX - 40)
.css({ .css({
width:"110px" width:"130px"
}) })
.show("fast", function(){ .show("fast", function(){
if(!popupFlag) if(!popupFlag)
@ -301,11 +309,11 @@ function init(){
$(".newAnswer input").live('mouseover', function(evt){ $(".newAnswer input").live('mouseover', function(evt){
if(!mode){ if(!mode){
popupFlag = true; popupFlag = true;
popupText.text("Right answer") popupText.text(sankoreLang[lang].right_answer)
.css("top", evt.pageY + 15) .css("top", evt.pageY + 15)
.css("left", evt.pageX - 40) .css("left", evt.pageX - 40)
.css({ .css({
width:"105px" width:"130px"
}) })
.show("fast", function(){ .show("fast", function(){
if(!popupFlag) if(!popupFlag)
@ -371,7 +379,7 @@ function init(){
var qstDiv = $("<div class='qstDivDisplay' id='" + array[i].id + "qstDivDisplay'>"); var qstDiv = $("<div class='qstDivDisplay' id='" + array[i].id + "qstDivDisplay'>");
var spanOptConn = $("<div class='spanOptConn'>").appendTo(qstDiv); 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 qstContent = $("<div class='qstContentDisplay'>" + array[i].text + "</div>").appendTo(qstDiv);
var ansDiv = $("<div class='ansDiv' id='" + array[i].id + "ansDiv'>").appendTo(qstDiv); var ansDiv = $("<div class='ansDiv' id='" + array[i].id + "ansDiv'>").appendTo(qstDiv);
@ -383,7 +391,7 @@ function init(){
newAnswer.appendTo(ansDiv); newAnswer.appendTo(ansDiv);
var selectSpan = $("<span id='answerText'>").appendTo(newAnswer); var selectSpan = $("<span id='answerText'>").appendTo(newAnswer);
selInput.appendTo(selectSpan); 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){ for(var j in array[i].answers){
switch(type){ switch(type){
@ -414,8 +422,8 @@ function init(){
counter = 1; counter = 1;
qstDiv = $("<div class='qstDivDisplay'>"); qstDiv = $("<div class='qstDivDisplay'>");
spanOptConn = $("<div class='spanOptConn'>").appendTo(qstDiv); spanOptConn = $("<div class='spanOptConn'>").appendTo(qstDiv);
qstNumber = $("<span class='qstNumber'>Question " + counter + "</span>").appendTo(spanOptConn); qstNumber = $("<span class='qstNumber'>" + sankoreLang[lang].question + " " + counter + "</span>").appendTo(spanOptConn);
qstContent = $("<div class='qstContentDisplay'>This is an example of the question.</div>").appendTo(qstDiv); qstContent = $("<div class='qstContentDisplay'>" + sankoreLang[lang].example_question + "</div>").appendTo(qstDiv);
ansDiv = $("<div class='ansDiv'>").appendTo(qstDiv); ansDiv = $("<div class='ansDiv'>").appendTo(qstDiv);
ansCount = 1; ansCount = 1;
@ -423,7 +431,7 @@ function init(){
newAnswer = $("<div class='newAnswer'>"); newAnswer = $("<div class='newAnswer'>");
ansInput = $("<input type='radio' name='1' style='float: left; margin-right: 10px;'/>").appendTo(newAnswer); ansInput = $("<input type='radio' name='1' style='float: left; margin-right: 10px;'/>").appendTo(newAnswer);
ansSpan = $("<span class='ansSpanDisplay'>" + ansCount + ".</span>").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); newAnswer.appendTo(ansDiv);
ansCount++; ansCount++;
} }
@ -438,32 +446,32 @@ function addQstBlock(id, text, type, style){
var spanOptConn = $("<div class='spanOptConn'>").appendTo(qstDiv); var spanOptConn = $("<div class='spanOptConn'>").appendTo(qstDiv);
var count = $(".qstNumber").size(); 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 qstOptions = $("<div class='qstOptions' id='" + id + "qstOptions'>").appendTo(spanOptConn);
var changeOptions = $("<button class='changeOptions'>Options</button>").appendTo(qstOptions); var changeOptions = $("<button class='changeOptions'>" + sankoreLang[lang].options + "</button>").appendTo(qstOptions);
var applyChanges = $("<button class='applyChanges' style='display: none;'>Close</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 qstDelete = $("<button class='qstDelete'>").appendTo(qstOptions);
var qstOptChoice = $("<div class='qstOptChoice' id='" + id + "qstOptChoice' style='display: none;'>").appendTo(qstDiv); var qstOptChoice = $("<div class='qstOptChoice' id='" + id + "qstOptChoice' style='display: none;'>").appendTo(qstDiv);
var optDesc = $("<div style='height: 65px;'>").appendTo(qstOptChoice); var optDesc = $("<div style='height: 65px;'>").appendTo(qstOptChoice);
var optDescImg = $("<div class='optDescImg'>").appendTo(optDesc); 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 type1 = $("<div class='type'>").appendTo(qstOptChoice);
var contentType1 = $("<div class='contentType'>").appendTo(type1); var contentType1 = $("<div class='contentType'>").appendTo(type1);
var divType1 = $("<div class='divType1'>").appendTo(contentType1); 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 type2 = $("<div class='type'>").appendTo(qstOptChoice);
var contentType2 = $("<div class='contentType'>").appendTo(type2); var contentType2 = $("<div class='contentType'>").appendTo(type2);
var divType2 = $("<div class='divType2'>").appendTo(contentType2); 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 type3 = $("<div class='type'>").appendTo(qstOptChoice);
var contentType3 = $("<div class='contentType'>").appendTo(type3); var contentType3 = $("<div class='contentType'>").appendTo(type3);
var divType3 = $("<div class='divType3'>").appendTo(contentType3); 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){ switch(type){
case "1": 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 qstContent = $("<div class='qstContent' id='" + id + "qstContent' contenteditable='true'>" + text + "</div>").appendTo(qstDiv);
var ansDiv = $("<div class='ansDiv' id='" + id + "ansDiv'>").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"); qstDiv.insertBefore("#addQstDiv");
$("#addQsqSpan1").text("Q" + (count + 2)); $("#addQsqSpan1").text(sankoreLang[lang].q + (count + 2));
} }
//add answers //add answers
@ -519,7 +527,7 @@ function addAnsBlock(id, currId, text, stage, rightAns, type){
} }
var count = $("#" + currId + " .newAnswer").size() + 1; var count = $("#" + currId + " .newAnswer").size() + 1;
var input = $("<input type='checkbox' style='float: left;' value='" + value + "' " + check + ">").appendTo(newAnswer); 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 ansContent = $("<div class='ansContent' id='" + id +"ansContent' contenteditable='true'>" + text + "</div>").appendTo(newAnswer);
var ansDelete = $("<button class='ansDelete' id='" + id + "ansDelete'>").appendTo(newAnswer); var ansDelete = $("<button class='ansDelete' id='" + id + "ansDelete'>").appendTo(newAnswer);
newAnswer.insertBefore("#" + currId + "ansDiv .ansAdd"); newAnswer.insertBefore("#" + currId + "ansDiv .ansAdd");
@ -549,15 +557,15 @@ function checkArrayOnFill(array){
function refreshAns(){ function refreshAns(){
var count = $("#" + currentQstId + " .newAnswer").size(); var count = $("#" + currentQstId + " .newAnswer").size();
for(var i = 0; i < count; i ++) 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 //refresh questions numbers
function refreshQst(){ function refreshQst(){
var count = $(".qstNumber").size(); var count = $(".qstNumber").size();
for(var i = 0; i < count; i ++) for(var i = 0; i < count; i ++)
$($(".qstNumber")[i]).text("Q" + (i+1)); $($(".qstNumber")[i]).text(sankoreLang[lang].q + (i+1));
$("#addQsqSpan1").text("Q" + ++count); $("#addQsqSpan1").text(sankoreLang[lang].q + ++count);
} }
//question constructor //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 imageEurope2 = "<img src='images/Cartes/Eurasie2.bmp' usemap='#eurasie'/>";
var imageAsie2 = "<img src='images/Cartes/EuropeOuestAsie.bmp' usemap='#europe'/>"; 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 // adresse du serveur
var url = "http://bapsot.dyndns.org/GeoInfo-GeoInfoServer/GeoInfoService"; 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 // permet l'affichage de la description lors du passage de la souris
function writeText(txt) 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; 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 // permet de faire apparaître les infos du pays dans la petite fenêtre
function afficheInfoPays(pays) 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; 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"/> <meta name="revised" content="2010/09/25"/>
<title>Graphics</title> <title>Graphics</title>
<link rel="stylesheet" type="text/css" href="Style/default.css"/> <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/ColorPicker.js"></script>
<script type="text/javascript" src="JavaScript/Etude.js"></script>
<script type="text/javascript" src="JavaScript/Interface.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/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/AffichageStandard.js"></script>
<script type="text/javascript" src="JavaScript/Affichage3D.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/AffichageUniboard.js"></script>
<script type="text/javascript" src="JavaScript/AffichageXPM.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-1.3.2.min.js" type="text/javascript"></script>
<script src="JavaScript/jquery.disable.text.select.js" type="text/javascript"></script> <script src="JavaScript/jquery.disable.text.select.js" type="text/javascript"></script>
<script type="text/javascript"> <script type="text/javascript">
// <![CDATA[ // <![CDATA[
// --- Variables nécessaires au fonctionnement du widget --- // --- Variables nécessaires au fonctionnement du widget ---
var lang = ""; //locale language
var loadingFlag = false var loadingFlag = false
var largeur = 500 var largeur = 500
var hauteur = 400 var hauteur = 400
@ -58,6 +58,16 @@
var lineWidth = 3 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(){ $(document).ready(function(){
if(window.sankore){ if(window.sankore){
@ -159,6 +169,507 @@
} }
actualiserGraph(); actualiserGraph();
loadingFlag = true; 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(); $(document).disableTextSelect();
@ -469,13 +980,13 @@
<div id="affichage" onmousedown="sourisDown()" onmouseup="sourisUp()" onmousemove="sourisMove(event)" ondblclick="doubleClick(event.ctrlKey)"></div> <div id="affichage" onmousedown="sourisDown()" onmouseup="sourisUp()" onmousemove="sourisMove(event)" ondblclick="doubleClick(event.ctrlKey)"></div>
<!-- Zone de boutons gauche --> <!-- Zone de boutons gauche -->
<div id="gauche"> <div id="gauche">
X-axis: <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/> <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/> <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()'/> <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/> <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/> <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> <div id="buttonColor" title="couleurFonction" onclick="colorPicker(this.id); afficherMenu('menuCouleur')"></div>
<br/><br/> <br/><br/>
<hr/> <hr/>
@ -513,7 +1024,7 @@
<div class="contenuMenu avecBordures"> <div class="contenuMenu avecBordures">
<h3>Widget options</h3> <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="noir">Black</option>
<option value="bleu">Blue</option> <option value="bleu">Blue</option>
<option value="blanc">White</option> <option value="blanc">White</option>
@ -543,7 +1054,7 @@
</table> </table>
<div class="contenuMenu avecBordures"> <div class="contenuMenu avecBordures">
<h3>Options 2D</h3> <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="canvas">canvas (lines)</option>
<option value="canvas2">canvas (points)</option> <option value="canvas2">canvas (points)</option>
<option value="svg">svg</option> <option value="svg">svg</option>
@ -551,21 +1062,21 @@
<option value="xpm">xpm</option> <option value="xpm">xpm</option>
<option value="sankore">sankore</option> <option value="sankore">sankore</option>
</select> <br/> </select> <br/>
Zoom default: <span>Zoom default:</span>
<input value="5" class="smallInput" id="zoomDefaut"/> <input value="5" class="smallInput" id="zoomDefaut"/>
<input type="button" onclick='reinitialiserZoom(document.getElementById("zoomDefaut").value)' value="Update zoom"/> <br/> <input type="button" onclick='reinitialiserZoom(document.getElementById("zoomDefaut").value)' value="Update zoom"/> <br/>
<br/> <br/>
<input type="checkbox" id="checkGrille" checked="true" onclick="actualiserGraph()"/><label for="checkGrille">Show grid</label> <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="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/> <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/> <div class="boutonPlus" type="button" onclick="boutonPlus('inputTaille', 1); actualiserGraph()">+</div><div class="boutonMoins" type="button" onclick="boutonMoins('inputTaille', 1); actualiserGraph()">-</div> <br/>
<br/> <br/>
Offset diagram: <span>Offset diagram:</span>
x=<input value="0" class="smallInput" id="inputDecalageX" onkeyup="decalageX = parseFloat(this.value)"/> 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)"/> y=<input value="0" class="smallInput" id="inputDecalageY" onkeyup="decalageY = parseFloat(this.value)"/>
<br/> <br/>
Accuracy graph: <span>Accuracy graph:</span>
<input value="0.02" class="smallInput" id="inputPrecision" onkeyup="precision = parseFloat(this.value)"/> <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/> <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/> <br/>
@ -583,38 +1094,38 @@
</table> </table>
<div class="contenuMenu avecBordures"> <div class="contenuMenu avecBordures">
<h3>Options 3D</h3> <h3>Options 3D</h3>
Show the style: <span>Show the style:</span>
<select id="selectAffichage3D"> <select id="selectAffichage3D">
<option value="surfaces"> surfaces </option> <option value="surfaces"> surfaces </option>
<option value="points"> points </option> <option value="points"> points </option>
</select> <input type="button" onclick='reinitialiserZoom(5)' value="Reset display"/> <br/> </select> <input type="button" onclick='reinitialiserZoom(5)' value="Reset display"/> <br/>
<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/> <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/> <br/>
Use the color:<br/> <span>Use the color:</span><br/>
red: <span>red:</span>
<select onchange="checkCouleurs3D()" id="selectRouge3D"> <select onchange="checkCouleurs3D()" id="selectRouge3D">
<option value="plus">positive value</option> <option value="plus">positive value</option>
<option value="moins">negative value</option> <option value="moins">negative value</option>
<option value="tout">general value</option> <option value="tout">general value</option>
</select> </select>
<br/> <br/>
green : <span>green:</span>
<select onchange="checkCouleurs3D()" id="selectVert3D"> <select onchange="checkCouleurs3D()" id="selectVert3D">
<option value="moins">negative value</option> <option value="moins">negative value</option>
<option value="plus">positive value</option> <option value="plus">positive value</option>
<option value="tout">general value</option> <option value="tout">general value</option>
</select> </select>
<br/> <br/>
blue : <span>blue:</span>
<select onchange="checkCouleurs3D()" id="selectBleu3D"> <select onchange="checkCouleurs3D()" id="selectBleu3D">
<option value="tout">general value</option> <option value="tout">general value</option>
<option value="plus">positive value</option> <option value="plus">positive value</option>
<option value="moins">negative value</option> <option value="moins">negative value</option>
</select> </select>
<br/> <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/> <br/>
<span id="apercuCouleur3D"></span> <span id="apercuCouleur3D"></span>
</div> </div>
@ -632,57 +1143,57 @@
</table> </table>
<div class="contenuMenu avecBordures"> <div class="contenuMenu avecBordures">
<h1>How it work.</h1> <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><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>You can enter following mathematical function:<br/> <p><span>You can enter following mathematical function:</span><br/>
<h2>Basic operations</h2> <h2>Basic operations</h2>
<ul> <ul>
<li>Plus -> <span class="gras">+</span></li> <li><span>Plus</span> -> <span class="gras">+</span></li>
<li>Minus -> <span class="gras">-</span></li> <li><span>Minus</span> -> <span class="gras">-</span></li>
<li>Multiplication -> <span class="gras">*</span></li> <li><span>Multiplication</span> -> <span class="gras">*</span></li>
<li>Division -> <span class="gras">/</span></li> <li><span>Division</span> -> <span class="gras">/</span></li>
<li>Mod -> <span class="gras">%</span></li> <li><span>Mod</span> -> <span class="gras">%</span></li>
</ul> </ul>
<h2>Trigonometric functions</h2> <h2>Trigonometric functions</h2>
<ul> <ul>
<li>Sine -> <span class="gras">sin(x)</span></li> <li><span>Sine</span> -> <span class="gras">sin(x)</span></li>
<li>Cosine -> <span class="gras">cos(x)</span></li> <li><span>Cosine</span> -> <span class="gras">cos(x)</span></li>
<li>Tangent -> <span class="gras">tan(x)</span></li> <li><span>Tangent</span> -> <span class="gras">tan(x)</span></li>
<li>Cotangent -> <span class="gras">cot(x)</span></li> <li><span>Cotangent</span> -> <span class="gras">cot(x)</span></li>
<li>Secant -> <span class="gras">sec(x)</span></li> <li><span>Secant</span> -> <span class="gras">sec(x)</span></li>
<li>Cosecant -> <span class="gras">csc(x)</span></li> <li><span>Cosecant</span> -> <span class="gras">csc(x)</span></li>
</ul> </ul>
<ul> <ul>
<li>Arc sine -> <span class="gras">arcsin(x)</span> ou <span class="gras">asin(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>Arc cosine -> <span class="gras">arccos(x)</span> ou <span class="gras">acos(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>Arc tangent -> <span class="gras">arctan(x)</span> ou <span class="gras">atan(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>Arc cotangent -> <span class="gras">arccot(x)</span> ou <span class="gras">acot(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> </ul>
<h2>Hyperbolic functions</h2> <h2>Hyperbolic functions</h2>
<ul> <ul>
<li>Hyperbolic sine -> <span class="gras">sinh(x)</span></li> <li><span>Hyperbolic sine</span> -> <span class="gras">sinh(x)</span></li>
<li>Hyperbolic cosine -> <span class="gras">cosh(x)</span></li> <li><span>Hyperbolic cosine</span> -> <span class="gras">cosh(x)</span></li>
<li>Hyperbolic tangent -> <span class="gras">tanh(x)</span></li> <li><span>Hyperbolic tangent</span> -> <span class="gras">tanh(x)</span></li>
<li>Hyperbolic cotangent -> <span class="gras">coth(x)</span></li> <li><span>Hyperbolic cotangent</span> -> <span class="gras">coth(x)</span></li>
<li>Hyperbolic secant -> <span class="gras">sech(x)</span></li> <li><span>Hyperbolic secant</span> -> <span class="gras">sech(x)</span></li>
<li>Hyperbolic cosecant -> <span class="gras">csch(x)</span></li> <li><span>Hyperbolic cosecant</span> -> <span class="gras">csch(x)</span></li>
</ul> </ul>
<ul> <ul>
<li>Hyperbolic arc sine -> <span class="gras">arcsinh(x)</span> or <span class="gras">asinh(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>Hyperbolic arc cosine -> <span class="gras">arccosh(x)</span> or <span class="gras">acosh(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>Hyperbolic arc tangent -> <span class="gras">arctanh(x)</span> or <span class="gras">atanh(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>Hyperbolic arc cotangent -> <span class="gras">arccoth(x)</span> or <span class="gras">acoth(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> </ul>
<h2>Square roots and degrees</h2> <h2>Square roots and degrees</h2>
<ul> <ul>
<li>Square root -> <span class="gras">sqrt(x)</span></li> <li><span>Square root</span> -> <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><span>Degree</span> -> <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>Root</span> -> <span class="gras">root(x, y)</span> <span class="texteSecondaire">Root y of x</span></li>
</ul> </ul>
<h2>Exponential and logarithm</h2> <h2>Exponential and logarithm</h2>
<ul> <ul>
<li>e<span style="vertical-align:super;">x</span> -> <span class="gras">exp(x)</span></li> <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><span>Natural logarithm</span> -> <span class="gras">ln(x)</span></li>
<li>Decimal logarithm -> <span class="gras">log(x)</span></li> <li><span>Decimal logarithm</span> -> <span class="gras">log(x)</span></li>
</ul> </ul>
<h2>Absolute number value</h2> <h2>Absolute number value</h2>
<ul> <ul>
@ -690,14 +1201,14 @@
</ul> </ul>
<h2>Rounding</h2> <h2>Rounding</h2>
<ul> <ul>
<li><span class="gras">round(x)</span> -> rounding to the nearest whole number</li> <li><span class="gras">round(x)</span> -> <span>rounding to the nearest whole number</span></li>
<li><span class="gras">ceil(x)</span> -> rounding to the nearest whole number in a big way</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> -> rounding to the nearest whole number the smaller side</li> <li><span class="gras">floor(x)</span> -> <span>rounding to the nearest whole number the smaller side</span></li>
</ul> </ul>
</p> <br/> </p> <br/>
<hr/> <hr/>
<h1>Constants</h1> <h1>Constants</h1>
<p>Also are available some constants:<br/> <p><span>Also are available some constants:</span><br/>
<ul> <ul>
<li><span class="gras">pi</span> = 4 * atan(1) ≈ 3,141592653589793</li> <li><span class="gras">pi</span> = 4 * atan(1) ≈ 3,141592653589793</li>
<li><span class="gras">e</span> = exp(1) ≈ 2.718281828459045</li> <li><span class="gras">e</span> = exp(1) ≈ 2.718281828459045</li>
@ -707,11 +1218,11 @@
<hr/> <hr/>
<h1>Keyboard keys</h1> <h1>Keyboard keys</h1>
<p style="font-size:90%;"> <p style="font-size:90%;">
esc -> reset widget <br/> esc -> <span>reset widget</span> <br/>
ctrl + left arrow -> graph will be moved left<br/> ctrl + <span>left arrow</span> -> <span>graph will be moved left</span><br/>
ctrl + top arrow -> graph will be moved top<br/> ctrl + <span>top arrow</span> -> <span>graph will be moved top</span><br/>
ctrl + right arrow -> graph will be moved right<br/> ctrl + <span>right arrow</span> -> <span>graph will be moved right</span><br/>
ctrl + bottom arrow -> graph will be moved bottom<br/> ctrl + <span>bottom arrow</span> -> <span>graph will be moved bottom</span><br/>
<br/> <br/>
</p> </p>
<br/> <br/>
@ -768,10 +1279,10 @@
</table> </table>
<div class="contenuMenu avecBordures"> <div class="contenuMenu avecBordures">
<h4>Save graph</h4> <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/> <br/><br/>
<h4>Offset</h4> <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>
<div class="barreBasMenu"><input type="button" onclick='cacherMenu()' value="Cancel"/></div> <div class="barreBasMenu"><input type="button" onclick='cacherMenu()' value="Cancel"/></div>
</div> </div>
@ -792,9 +1303,9 @@
</table> </table>
<span class="texteSecondaire"> <span class="texteSecondaire">
<br/><br/> <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/> <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>
<span id="version" class="texteSecondaire" style="position:absolute;bottom:10px;left:15px;">version 1.3</span> <span id="version" class="texteSecondaire" style="position:absolute;bottom:10px;left:15px;">version 1.3</span>
</div> </div>
@ -805,27 +1316,27 @@
<div id="menuOutils" class="menu"> <div id="menuOutils" class="menu">
<div class="contenuMenu"> <div class="contenuMenu">
<h3 style="margin-top:0px; margin-bottom:15px;">Tools</h3> <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('deplacement');cacherMenu()" value="Moving"/>
<input type="button" class="choixOutil" onclick="choixOutil('tangente');cacherMenu()" value="Tangente"/> <input type="button" class="choixOutil" onclick="choixOutil('tangente');cacherMenu()" value="Tangente"/>
<input type="button" class="choixOutil" onclick="choixOutil('point');cacherMenu()" value="Point"/> <input type="button" class="choixOutil" onclick="choixOutil('point');cacherMenu()" value="Point"/>
<br/><br/> <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()"/> <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/> <br/><br/>
Square under function:<br/> <span>Square under function:</span><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>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> <div style="float: right;"><label for="checkAire">Draw </label><input type="checkbox" id="checkAire" onclick="actualiserGraph()"/></div>
<br/><br/> <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)'/> 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"/> <input type="button" onclick='execute(document.getElementById("inputEq").value)' value="Estimate"/>
<span id="outputX"></span> <span id="outputX"></span>
<br/><br/> <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")'/> f(x) = <span id="etudeFct"></span> <input type="button" value="Start to analysis" onclick='etudier(document.getElementById("inputEq").value);afficherMenu("menuEtude")'/>
<br/><br/> <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"/> <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>
<div class="barreBasMenu"><input type="button" onclick='cacherMenu()' value="Cancel"/></div> <div class="barreBasMenu"><input type="button" onclick='cacherMenu()' value="Cancel"/></div>
@ -834,25 +1345,25 @@
<!--Etude de fonction --> <!--Etude de fonction -->
<div id="menuEtude" class="menu"> <div id="menuEtude" class="menu">
<div class="contenuMenu"> <div class="contenuMenu">
<h3>Analysis of function in the</h3> <h3>Analysis of function</h3>
Set of definitions : <span id="etudeEDF">...</span> <br/> <span>Set of definitions:</span> <span id="etudeEDF">...</span> <br/>
Parity : <span id="etudeParite">...</span> <br/> <span>Parity:</span> <span id="etudeParite">...</span> <br/>
Zeros of functions : <span id="etudeZeros">...</span> <br/> <span>Zeros of functions:</span> <span id="etudeZeros">...</span> <br/>
<table> <table>
<tr id="etudeSigne"> <tr id="etudeSigne">
<td>Sign : ...</td> <td>Sign : ...</td>
</tr> </tr>
</table> </table>
Asymptotes <br/> <span>Asymptotes</span> <br/>
AH left : <span id="etudeAHG">...</span> <br/> <span>AH left:</span> : <span id="etudeAHG">...</span> <br/>
AH right : <span id="etudeAHD">...</span> <br/> <span>AH right:</span> <span id="etudeAHD">...</span> <br/>
AV : <span id="etudeAV">...</span> <span>AV:</span> <span id="etudeAV">...</span>
<span id="etudeMin">...</span> <span id="etudeMin">...</span>
<span id="etudeMax">...</span> <span id="etudeMax">...</span>
<span id="etudeI">...</span> <br/><br/> <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> <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>
<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> </div>
<!-- Fonctions multiples --> <!-- Fonctions multiples -->
@ -1035,10 +1546,10 @@
<!-- Menu des mises à jour --> <!-- Menu des mises à jour -->
<div id="mAj" class="menu"> <div id="mAj" class="menu">
<h1>Updated</h1> <h1>Updated</h1>
Current version: <br/><span id="thisVersion"></span><br/> <span>Current version:</span> <br/><span id="thisVersion"></span><br/>
The last on-line version: <br/><span id="newVersion"></span><br/> <span>The last on-line version:</span> <br/><span id="newVersion"></span><br/>
<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/> <br/>
</div> </div>

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

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

@ -115,5 +115,5 @@ function checkOptions(){
} }
function alertOptions(){ 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"> <!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"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <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> <title>markItUp! Universal markup editor</title>
<link rel="stylesheet" type="text/css" href="images/style.css" /> <link rel="stylesheet" type="text/css" href="images/style.css" />
<!-- jQuery -->
<script type="text/javascript" src="jquery.pack.js"></script> <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> <script type="text/javascript" src="markitup/jquery.markitup.js"></script>
<!-- markItUp! toolbar settings -->
<script type="text/javascript" src="markitup/sets/html/set.js"></script> <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/skins/markitup/style.css" />
<link rel="stylesheet" type="text/css" href="markitup/sets/html/style.css" /> <link rel="stylesheet" type="text/css" href="markitup/sets/html/style.css" />
</head> </head>
<body> <body>
<script type="text/javascript" > <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(); $("#reset-btn").hide();
@ -27,7 +36,7 @@
$('iframe').width($(window).width()-24) $('iframe').width($(window).width()-24)
.height($(window).height()-46); .height($(window).height()-46);
if(window.sankore){ 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); $("#markItUp").val(html);
}; };
@ -59,6 +68,7 @@
.height($(window).height()-46); .height($(window).height()-46);
$('#markItUpFooter').width($(window).width()-30); $('#markItUpFooter').width($(window).width()-30);
$("#markitUp").html(sankoreLang[lang].welcome);
}); });
</script> </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 // 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 = { mySettings = {
onShiftEnter: {keepDefault:false, replaceWith:'<br />\n'}, onShiftEnter: {keepDefault:false, replaceWith:'<br />\n'},
onCtrlEnter: {keepDefault:false, openWith:'\n<p>', closeWith:'</p>\n'}, onCtrlEnter: {keepDefault:false, openWith:'\n<p>', closeWith:'</p>\n'},
onTab: {keepDefault:false, openWith:' '}, onTab: {keepDefault:false, openWith:' '},
markupSet: [ markupSet: [
{name:'Heading 1', key:'1', openWith:'<h1(!( class="[![Class]!]")!)>', closeWith:'</h1>', placeHolder:'Your title here...' }, {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:'Your title here...' }, {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:'Your title here...' }, {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:'Your title here...' }, {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:'Your title here...' }, {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:'Your title here...' }, {name:'Heading 6', key:'6', openWith:'<h6(!( class="[![Class]!]")!)>', closeWith:'</h6>', placeHolder:sankoreLang[lang].enter_title},
{name:'Paragraph', openWith:'<p(!( class="[![Class]!]")!)>', closeWith:'</p>' }, {name:'Paragraph', openWith:'<p(!( class="[![Class]!]")!)>', closeWith:'</p>'},
{separator:'---------------' }, {separator:'---------------'},
{name:'Bold', key:'B', openWith:'(!(<strong>|!|<b>)!)', closeWith:'(!(</strong>|!|</b>)!)' }, {name:'Bold', key:'B', openWith:'(!(<strong>|!|<b>)!)', closeWith:'(!(</strong>|!|</b>)!)'},
{name:'Italic', key:'I', openWith:'(!(<em>|!|<i>)!)', closeWith:'(!(</em>|!|</i>)!)' }, {name:'Italic', key:'I', openWith:'(!(<em>|!|<i>)!)', closeWith:'(!(</em>|!|</i>)!)'},
{name:'Stroke through', key:'S', openWith:'<del>', closeWith:'</del>' }, {name:'Stroke through', key:'S', openWith:'<del>', closeWith:'</del>'},
{separator:'---------------' }, {separator:'---------------'},
{name:'Ul', openWith:'<ul>\n', closeWith:'</ul>\n' }, {name:'Ul', openWith:'<ul>\n', closeWith:'</ul>\n'},
{name:'Ol', openWith:'<ol>\n', closeWith:'</ol>\n' }, {name:'Ol', openWith:'<ol>\n', closeWith:'</ol>\n'},
{name:'Li', openWith:'<li>', closeWith:'</li>' }, {name:'Li', openWith:'<li>', closeWith:'</li>'},
{separator:'---------------' }, {separator:'---------------'},
{name:'Picture', key:'P', replaceWith:'<img src="[![Source:!:http://]!]" alt="[![Alternative text]!]" />' }, {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="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>', closeWith:'</a>', placeHolder:'Your text to link...' }, {name:'Link', key:'L', openWith:'<a target="_blank" href="[![' + sankoreLang[lang].link + ':!:http://]!]"(!( title="[![Title]!]")!)>', closeWith:'</a>', placeHolder:sankoreLang[lang].text_to_link},
{separator:'---------------' }, {separator:'---------------'},
//{name:'Editor', className:'clean', replaceWith:function() { $('textarea').show(); $('iframe').remove();} }, //{name:'Editor', className:'clean', replaceWith:function() { $('textarea').show(); $('iframe').remove();} },
{name:'', className:'preview', call:'preview'} {name:'', className:'preview', call:'preview'}
] ]

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

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

@ -13,201 +13,205 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
--> -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <!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> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Video Picker</title> <title>Video Picker</title>
<link rel="stylesheet" type="text/css" href="css/main.css"> <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-1.3.2.min.js" type="text/javascript"></script>
<script src="scripts/jquery.oembed.js" type="text/javascript"></script> <script src="scripts/languages.js" type="text/javascript"></script>
<!--DEFAULT FR--> <script src="scripts/jquery.oembed.js" type="text/javascript"></script>
</head> <!--DEFAULT FR-->
</head>
<body> <body>
<script type="text/javascript"> <script type="text/javascript">
var oembedUrl = "";
var language = "en";
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() { function initialize() {
if(window.sankore){ if(window.sankore){
oembedUrl = window.sankore.preference("oembedUrl", ""); oembedUrl = window.sankore.preference("oembedUrl", "");
} }
window.resizeTo(426, 630); window.resizeTo(426, 630);
if(oembedUrl.length > 0){ if(oembedUrl.length > 0){
$("#textbox").val(oembedUrl); $("#textbox").val(oembedUrl);
$("#search-button").trigger("click"); $("#search-button").trigger("click");
}else{ }else{
//var language = navigator.userAgent.split(";"); $("#embeded-content").load("locales/" + lang + "/howto.html"); // Welcome note with some explanations
//language = language[3].replace(/\s/g, "").substr(0, 2); };
$("#embeded-content").load("locales/" + language + "/howto.html"); // Welcome note with some explanations };
};
};
$(document).ready(function(){ $(document).ready(function(){
var resizer; // Timer var resizer; // Timer
var resizerIndex; var resizerIndex;
resizerIndex = 0; resizerIndex = 0;
$("#search-button") $("#search-button")
.click(function(){ .click(function(){
window.resizeTo(385, 80); window.resizeTo(385, 80);
$("#container").removeClass("welcome").removeClass("change").removeClass("error").addClass("load"); $("#container").removeClass("welcome").removeClass("change").removeClass("error").addClass("load");
$("#container-shadow").hide(); $("#container-shadow").hide();
$("#arrow").hide(); $("#arrow").hide();
$("#embeded-content").css({ $("#embeded-content").css({
marginLeft:-9000, marginLeft:-9000,
marginTop:-9000 marginTop:-9000
}).empty().oembed($("#textbox").val()); }).empty().oembed($("#textbox").val());
checkcontent(); checkcontent();
}) })
.mouseenter(function(){ .mouseenter(function(){
$(this) $(this)
.addClass("over"); .addClass("over");
}) })
.mouseleave(function(){ .mouseleave(function(){
$(this) $(this)
.removeClass("over"); .removeClass("over");
}); });
$('#textbox').keypress(function(e){ $('#textbox').keypress(function(e){
if (e.which == 13){ if (e.which == 13){
$('#search-button').click(); $('#search-button').click();
}; };
}); });
$("#show-inputfield-button") $("#show-inputfield-button")
.click( .click(
function(){ function(){
$("#show-area").fadeOut(0); $("#show-area").fadeOut(0);
$("#inputfield").show(); $("#inputfield").show();
$("#shadow").show(); $("#shadow").show();
$("#container").removeClass("show").addClass("change"); $("#container").removeClass("show").addClass("change");
adaptWidgetSize(18, 88); adaptWidgetSize(18, 88);
}) })
.mouseenter(function(){ .mouseenter(function(){
$(this).addClass("over"); $(this).addClass("over");
}) })
.mouseleave(function(){ .mouseleave(function(){
$(this).removeClass("over"); $(this).removeClass("over");
}); });
function checkcontent(){ function checkcontent(){
if($("#embeded-content").html().length != 0 && $("#embeded-content").children(":first").width() > 0){ if($("#embeded-content").html().length != 0 && $("#embeded-content").children(":first").width() > 0){
$("#embeded-content embed").attr("wmode", "opaque"); $("#embeded-content embed").attr("wmode", "opaque");
var embeded_content_html = $("#embeded-content").html(); var embeded_content_html = $("#embeded-content").html();
$("#embeded-content").empty().html(embeded_content_html); $("#embeded-content").empty().html(embeded_content_html);
clearTimeout(resizer);
clearTimeout(resizer); resizerIndex = 0;
resizerIndex = 0;
if(window.sankore){ if(window.sankore){
window.sankore.setPreference("oembedUrl", $("#textbox").val()); window.sankore.setPreference("oembedUrl", $("#textbox").val());
}; };
$("#inputfield").hide(); $("#inputfield").hide();
$("#shadow").hide(); $("#shadow").hide();
$("#embeded-content").css({ $("#embeded-content").css({
marginLeft:0, marginLeft:0,
marginTop:0 marginTop:0
}) })
.width($("#embeded-content").children(":first").width()) .width($("#embeded-content").children(":first").width())
.height($("#embeded-content").children(":first").height()); .height($("#embeded-content").children(":first").height());
$("#container").removeClass("load").addClass("show"); $("#container").removeClass("load").addClass("show");
$("#show-area").fadeIn(2000).css({ $("#show-area").fadeIn(2000).css({
left:$("#embeded-content").children(":first").width()-25, left:$("#embeded-content").children(":first").width()-25,
top:($("#embeded-content").children(":first").height()-35)/2 top:($("#embeded-content").children(":first").height()-35)/2
}); });
adaptWidgetSize(5, 13); adaptWidgetSize(5, 13);
return false; return false;
}; };
if(resizerIndex > 50){ if(resizerIndex > 50){
resizerIndex = 0; resizerIndex = 0;
$("#container").removeClass("show").addClass("error"); $("#container").removeClass("show").addClass("error");
$("#arrow").show(); $("#arrow").show();
$("#embeded-content").css({ $("#embeded-content").css({
marginTop:0, marginTop:0,
marginLeft:0 marginLeft:0
}).width(395) }).width(395)
.load("locales/" + language + "/error.html", .load("locales/" + lang + "/error.html",
function(){ function(){
adaptWidgetSize(20, 125); adaptWidgetSize(20, 125);
}); });
$("#container-shadow").show(); $("#container-shadow").show();
}else{ }else{
resizer = setTimeout(function(){checkcontent()}, 100); resizer = setTimeout(function(){checkcontent()}, 100);
resizerIndex++; resizerIndex++;
}; };
}; };
function adaptWidgetSize(adjustmentX, adjustmentY){ function adaptWidgetSize(adjustmentX, adjustmentY){
var margins = { var margins = {
top: cssToInt($("body").css("margin-top")), top: cssToInt($("body").css("margin-top")),
right: cssToInt($("body").css("margin-right")), right: cssToInt($("body").css("margin-right")),
bottom: cssToInt($("body").css("margin-bottom")), bottom: cssToInt($("body").css("margin-bottom")),
left: cssToInt($("body").css("margin-left")) left: cssToInt($("body").css("margin-left"))
}; };
var widgetWidth = $("#embeded-content").width() + margins.right + margins.left + adjustmentX; var widgetWidth = $("#embeded-content").width() + margins.right + margins.left + adjustmentX;
var widgetHeight = $("#embeded-content").position().top + $("#embeded-content").height() + margins.bottom + adjustmentY; var widgetHeight = $("#embeded-content").position().top + $("#embeded-content").height() + margins.bottom + adjustmentY;
window.resizeTo(widgetWidth, widgetHeight); window.resizeTo(widgetWidth, widgetHeight);
window.sankore.resize(widgetWidth, widgetHeight); window.sankore.resize(widgetWidth, widgetHeight);
}; };
function cssToInt(cssvalue){ function cssToInt(cssvalue){
return(parseInt(cssvalue.replace("px", ""))); return(parseInt(cssvalue.replace("px", "")));
}; };
if (window.widget) { if (window.widget) {
window.widget.onremove = function(){ window.widget.onremove = function(){
//$("#show-inputfield-button").trigger("click"); $("#embeded-content").empty();
$("#embeded-content") }
.empty(); }
//.oembed($("#textbox").val()); $("#search-button").html(sankoreLang[lang].show);
} initialize();
} });
</script>
initialize(); <div id="ubwidget">
}); <div id="shadow"></div>
</script>
<div id="ubwidget"> <div id="inputfield">
<div id="shadow"></div> <input id="textbox" type="text">
<div id="search-button" class="button">Show</div>
<div id="inputfield"> </div>
<input id="textbox" type="text">
<div id="search-button" class="button">Show</div>
</div>
<div id="container" class="welcome"> <div id="container" class="welcome">
<div id="arrow"><img src="imgs/arrow.png" alt="arrow-top"></div> <div id="arrow"><img src="imgs/arrow.png" alt="arrow-top"></div>
<div id="show-container"> <div id="show-container">
<div id="embeded-content"></div> <div id="embeded-content"></div>
<div id="show-area"> <div id="show-area">
<img id="show-inputfield-button" src="imgs/bts.png"> <img id="show-inputfield-button" src="imgs/bts.png">
</div> </div>
</div> </div>
<table cellspacing="0" cellpadding="0" id="container-shadow"> <table cellspacing="0" cellpadding="0" id="container-shadow">
<tr> <tr>
<td id="shadow-left"></td> <td id="shadow-left"></td>
<td id="shadow-center">&nbsp;</td> <td id="shadow-center">&nbsp;</td>
<td id="shadow-right"></td> <td id="shadow-right"></td>
</tr> </tr>
</table> </table>
</div> </div>
</div> </div>
</body> </body>
</html> </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> <title>Web Browser</title>
<link rel="stylesheet" type="text/css" href="css/main.css"> <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-1.3.2.min.js" type="text/javascript"></script>
<script src="scripts/languages.js" type="text/javascript"></script>
<script type="text/javascript"> <script type="text/javascript">
var loadingState = false; 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(){ function changeLoadingState(){
loadingState = true; loadingState = true;
} }
$(document).ready(function(){ $(document).ready(function(){
//var resizer; // Timer
//var resizerIndex;
$("body").css({height: $(window).height() - 40}); $("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 popupFlag = false;
var currentHistory = 0; var currentHistory = 0;
var references = new Array(); var references = new Array();
@ -72,8 +86,8 @@
popupFlag = true; popupFlag = true;
popupText.css("top", evt.pageY + 5) popupText.css("top", evt.pageY + 5)
.css("left", evt.pageX + 13) .css("left", evt.pageX + 13)
.css({width:"100px"}) .css({width:"110px"})
.text("Go to the site") .text(sankoreLang[lang].open)
.show("fast", function(){ .show("fast", function(){
if(!popupFlag) if(!popupFlag)
popupText.hide(); popupText.hide();
@ -84,8 +98,8 @@
popupFlag = true; popupFlag = true;
popupText.css("top", evt.pageY + 5) popupText.css("top", evt.pageY + 5)
.css("left", evt.pageX + 13) .css("left", evt.pageX + 13)
.css({width:"90px"}) .css({width:"130px"})
.text("Previous site") .text(sankoreLang[lang].prev_page)
.show("fast", function(){ .show("fast", function(){
if(!popupFlag) if(!popupFlag)
popupText.hide(); popupText.hide();
@ -96,8 +110,8 @@
popupFlag = true; popupFlag = true;
popupText.css("top", evt.pageY + 5) popupText.css("top", evt.pageY + 5)
.css("left", evt.pageX + 13) .css("left", evt.pageX + 13)
.css({width:"70px"}) .css({width:"130px"})
.text("Next site") .text(sankoreLang[lang].next_page)
.show("fast", function(){ .show("fast", function(){
if(!popupFlag) if(!popupFlag)
popupText.hide(); popupText.hide();
@ -149,7 +163,7 @@
checkcontent(); checkcontent();
checkLoading(); checkLoading();
} else { } 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") $("#container")
.addClass("welcome") .addClass("welcome")
.addClass("change") .addClass("change")
@ -175,7 +189,7 @@
$("#textbox").val(url); $("#textbox").val(url);
$("#search-button").trigger("click"); $("#search-button").trigger("click");
}else{ }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(){ $(window).resize(function(){
@ -201,13 +215,13 @@
function checkLoading(){ function checkLoading(){
if(loadingState){ if(loadingState){
clearTimeout(resizer); clearTimeout(resizer);
resizerIndex = 0; resizerIndex = 0;
$("#web-content") $("#web-content")
.attr("width", globalWidth - 25) .attr("width", globalWidth - 25)
.attr("height", globalHeight - 90); .attr("height", globalHeight - 90)
$("#web-content").show(); .show();
$(window).trigger("resize"); $(window).trigger("resize");
return false; return false;
}; };
@ -241,7 +255,13 @@
} else } else
newArr[j] = arr[i]; newArr[j] = arr[i];
return newArr; return newArr;
} }
if (window.widget) {
window.widget.onremove = function(){
$("#web-content").empty();
}
}
}); });
</script> </script>

@ -4,5 +4,5 @@
<div id="content"> <div id="content">
<h1>This Url cannot be used.</h1> <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> </div>

@ -6,6 +6,6 @@
<img src="imgs/info_ico.png" id="info-ico"> <img src="imgs/info_ico.png" id="info-ico">
<div class="column"> <div class="column">
<h1>Web Browser</h1> <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>
</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 --> <!-- jQuery -->
<script type="text/javascript" src="script/jquery.min.js"></script> <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/superfish.js"></script>
<script type="text/javascript" src="script/languages.js"></script>
<script type="text/javascript"> <script type="text/javascript">
@ -18,6 +19,18 @@
var browsing = false; var browsing = false;
var lang = 'en'; 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 = { var toolbar = {
state:"begin", state:"begin",
loading:false loading:false
@ -43,7 +56,9 @@
var ubHistoryList = ""; var ubHistoryList = "";
var ubHistoryIndex = ""; var ubHistoryIndex = "";
$("#toolbar-down").html(sankoreLang[syslang].wikipedia);
var popupText = $("<div id='popupWordInfo' class='popupWordInfo'></div>").appendTo("body"); var popupText = $("<div id='popupWordInfo' class='popupWordInfo'></div>").appendTo("body");
lang = navigator.userAgent.split(";"); lang = navigator.userAgent.split(";");
@ -100,10 +115,10 @@
$("#toolbar-button-search").mouseover(function(evt){ $("#toolbar-button-search").mouseover(function(evt){
popupFlag = true; popupFlag = true;
popupText.text("Search") popupText.text(sankoreLang[syslang].search)
.css("top", evt.pageY + 5) .css("top", evt.pageY + 5)
.css("left", evt.pageX + 13) .css("left", evt.pageX + 13)
.css({width:"70px"}) .css({width:"100px"})
.show("fast", function(){ .show("fast", function(){
if(!popupFlag) if(!popupFlag)
popupText.hide(); popupText.hide();
@ -132,10 +147,10 @@
$("#toolbar-button-back").mouseover(function(evt){ $("#toolbar-button-back").mouseover(function(evt){
popupFlag = true; popupFlag = true;
popupText.text("Previous word") popupText.text(sankoreLang[syslang].prev_word)
.css("top", evt.pageY + 5) .css("top", evt.pageY + 5)
.css("left", evt.pageX + 13) .css("left", evt.pageX + 13)
.css({width:"100px"}) .css({width:"110px"})
.show("fast", function(){ .show("fast", function(){
if(!popupFlag) if(!popupFlag)
popupText.hide(); popupText.hide();
@ -149,10 +164,10 @@
$("#toolbar-button-forward").mouseover(function(evt){ $("#toolbar-button-forward").mouseover(function(evt){
popupFlag = true; popupFlag = true;
popupText.text("Next word") popupText.text(sankoreLang[syslang].next_word)
.css("top", evt.pageY + 5) .css("top", evt.pageY + 5)
.css("left", evt.pageX + 13) .css("left", evt.pageX + 13)
.css({width:"70px"}) .css({width:"100px"})
.show("fast", function(){ .show("fast", function(){
if(!popupFlag) if(!popupFlag)
popupText.hide(); 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 --> <!-- jQuery -->
<script type="text/javascript" src="script/jquery.min.js"></script> <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/superfish.js"></script>
<script type="text/javascript" src="script/languages.js"></script>
<script type="text/javascript"> <script type="text/javascript">
@ -17,7 +18,19 @@
var browsing = false; var browsing = false;
var mode = 'wiki'; var mode = 'wiki';
var lang = 'en'; 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 = { var toolbar = {
state:"", state:"",
loading:false loading:false
@ -43,6 +56,8 @@
var ubHistoryList = ""; var ubHistoryList = "";
var ubHistoryIndex = ""; var ubHistoryIndex = "";
$("#toolbar-down").html(sankoreLang[syslang].wikipedia);
var popupText = $("<div id='popupWordInfo' class='popupWordInfo'></div>").appendTo("body"); var popupText = $("<div id='popupWordInfo' class='popupWordInfo'></div>").appendTo("body");
@ -106,7 +121,7 @@
$("#toolbar-button-search").mouseover(function(evt){ $("#toolbar-button-search").mouseover(function(evt){
popupFlag = true; popupFlag = true;
popupText.text("Search") popupText.text(sankoreLang[syslang].search)
.css("top", evt.pageY + 5) .css("top", evt.pageY + 5)
.css("left", evt.pageX + 13) .css("left", evt.pageX + 13)
.css({width:"70px"}) .css({width:"70px"})
@ -133,7 +148,7 @@
$("#toolbar-button-back").mouseover(function(evt){ $("#toolbar-button-back").mouseover(function(evt){
popupFlag = true; popupFlag = true;
popupText.text("Previous word") popupText.text(sankoreLang[syslang].prev_word)
.css("top", evt.pageY + 5) .css("top", evt.pageY + 5)
.css("left", evt.pageX + 13) .css("left", evt.pageX + 13)
.css({width:"100px"}) .css({width:"100px"})
@ -150,7 +165,7 @@
$("#toolbar-button-forward").mouseover(function(evt){ $("#toolbar-button-forward").mouseover(function(evt){
popupFlag = true; popupFlag = true;
popupText.text("Next word") popupText.text(sankoreLang[syslang].next_word)
.css("top", evt.pageY + 5) .css("top", evt.pageY + 5)
.css("left", evt.pageX + 13) .css("left", evt.pageX + 13)
.css({width:"70px"}) .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>"+ txt_rer = "<h2>Reticulum endoplasmique rugueux - Tunnel</h2>"+
"<h4>Structure:</h4><span><p>Phospholipid bilayer</p></span>"+ "<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>Transport of proteins and other components inside the cell to the exterior (exocytosis) or inward (endocytosis).</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>Operation:</h4><span><p>Transport "towed" by Protein building on the cytoskeleton.</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>"+ txt_lysosome = "<h2>Lysosome<br/>A stomach cell.</h2>"+
"<h4>Structure:</h4><span><p>Phospholipid bilayer</p></span>"+ "<h4>Structure:</h4><span><p>Phospholipid bilayer</p></span>"+
"<h4>Role:</h4><span><p>А intracellular digestion with enzymes.</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>" "<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>"+ 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>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>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>" "<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>"+ txt_golgi = "<h2>Apparatus golgi<br/>Miniature plants</h2>"+
"<h4>Structure:</h4><span><p>Has a stack of flattened membrane saccules.</p></span>"+ "<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>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>" "<h4>Operation:</h4><span><p>Chemical reactions, including glycosylation.</p></span>"
var txt_rer = "<h2>Rough endoplasmic reticulum - Tunnel</h2>"+ 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>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>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>' '<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>"+ 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>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>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>" "<h4>Operation:</h4><span><p>Copying of genetic information on mRNA.</p></span>"
var txt_rel = "<h2>Smooth endoplasmic reticulum - REL</h2>"+ 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>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>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>" "<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>"+ 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>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>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>" "<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>"+ 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>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>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>" "<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>"+ txt_rib = "<h2>Ribosome - Decoders</h2>"+
"<h4>Structure:</h4><span><p>Formed by two subunits composed of ribosomal RNA and proteins.</p></span>"+ "<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>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>" "<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>"
var txt_arn = "<h2>RNA - Multifunction</h2>"+ 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>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>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>" "<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>"+ 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>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>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>" "<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"> <!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"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <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> <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="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=""/> <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=""/> <area shape="circle" coords="269,244,22" onclick="nucl()" onmouseout="auraOut('')" onmouseover="aura('nucl')" alt=""/>
<!-- Noyau --> <!-- Noyau -->
@ -85,7 +85,7 @@
<div id="div_body"><img alt="" src="images/index.png" usemap="#mapCellule" /></div> <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_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_aura"><img id="img_aura" usemap="#mapCellule" alt="" src=""/></div>
<div id="div_ADN"><img id="img_ADN" alt="" src=""/></div> <div id="div_ADN"><img id="img_ADN" alt="" src=""/></div>
<div id="div_zoom"></div> <div id="div_zoom"></div>

Loading…
Cancel
Save