Commit bbc025d6 authored by Claudio Valerio's avatar Claudio Valerio

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

parents 391ca4b2 7e228ad8
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -6,13 +6,8 @@
<title>ubwidget</title>
<script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.7.2.custom.min.js" type="text/javascript"></script>
<script src="js/jquery.disable.text.select.js" type="text/javascript"></script>
<script src="js/jquery.ubwidget.js" type="text/javascript"></script>
<script src="js/jquery.center.js" type="text/javascript"></script>
<script src="js/DD_roundies_0.0.2a.js" type="text/javascript"></script>
<script src="js/ubw-main.js" type="text/javascript"></script>
<script src="js/calculate.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/ubwidget.css" />
......@@ -27,7 +22,6 @@
</script>
<audio id='audio'></audio>
<div id="ubwidget"></div>
</body>
</html>
\ No newline at end of file
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
function init(){
var embed;
......@@ -38,8 +52,8 @@ function init(){
});
//FIT WIDGET FRAME ON LAUNCH...
if(window.uniboard){
window.uniboard.resize($("#ubwidget").width()-15,85);
if(window.sankore){
window.sankore.resize($("#ubwidget").width()-15,85);
}
searchWrap.append(inputBox)
......@@ -51,20 +65,29 @@ function init(){
$("#ubwidget").append(loadWindow)
embed = inputBox.val();
searchWrap.hide();
if(/<object/.test(embed)){
loadWindow.append(embed);
loadWindow.find("embed").attr("wmode","transparent");
var loadWindow_content = loadWindow.html();
loadWindow.empty().html(loadWindow_content);
}
else {
loadWindow.append(embed);
}
if(window.uniboard){
window.uniboard.resize($(document).width(),$(document).height());
window.uniboard.setPreference("embed", escape(embed));
if(window.sankore){
window.sankore.resize($(document).width(),$(document).height());
window.sankore.setPreference("embed", escape(embed));
}
});
if(window.uniboard){
if(window.sankore){
if(window.uniboard.preferenceKeys().length != 0){
if(window.sankore.preferenceKeys().length != 0){
var loadEmbed = unescape(window.uniboard.preference("embed"));
var loadEmbed = unescape(window.sankore.preference("embed"));
inputBox.val(loadEmbed);
submit.trigger("click");
}
......
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
function addChar(input, character) {
if(input.value == null || input.value == "0")
input.value = character
......
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
function init(){
var h = 292;
var w = 160;
......@@ -26,8 +41,8 @@ function init(){
backgroundImage:"url(images/back.png)",
width:328
});
if(window.uniboard){
window.uniboard.setPreference('historyTab', "visible");
if(window.sankore){
window.sankore.setPreference('historyTab', "visible");
};
},
function(){
......@@ -37,8 +52,8 @@ function init(){
backgroundImage:"url(images/back_small.png)",
width:160
});
if(window.uniboard){
window.uniboard.setPreference('historyTab', "hidden");
if(window.sankore){
window.sankore.setPreference('historyTab', "hidden");
};
}
)
......@@ -200,9 +215,9 @@ function init(){
.append(historyPanel)
.append(keysPanel);
if(window.uniboard){
historyTxt = window.uniboard.preference('historyTxt', historyTxt);
var ht = window.uniboard.preference('historyTab', "hidden");
if(window.sankore){
historyTxt = window.sankore.preference('historyTxt', historyTxt);
var ht = window.sankore.preference('historyTab', "hidden");
$("#historyBox").val(historyTxt);
if(ht === "visible"){
historyTab.trigger("click");
......@@ -210,7 +225,7 @@ function init(){
}
function resizeWidget(w, h){
window.uniboard.resize(w+2, h+2);
window.sankore.resize(w+2, h+2);
$("#indicator").remove();
var indicator = $("<div id='indicator'></div>")
.css({
......@@ -238,8 +253,8 @@ function compute(){
displayTrunk = "";
historyTrunk = "";
if(window.uniboard){
window.uniboard.setPreference('historyTxt', $("#historyBox").val());
if(window.sankore){
window.sankore.setPreference('historyTxt', $("#historyBox").val());
};
lastHistory = $("#historyBox").val();
......
......@@ -1013,11 +1013,11 @@
<span class="comparer">Comparer les pays: <input id="compare" type="checkbox" onClick="vide()" ></span>
<table width="654px" border="0">
<tr>
<td><div class="styleDiv" id=info1></td>
<td><div class="styleDiv" id=info2></td>
<td><div class="styleDiv" id=info3></td>
<td><div class="styleDiv" id=info4></td>
<td><div class="styleDiv" id=info5></td>
<td><div class="styleDiv" id="info1"></td>
<td><div class="styleDiv" id="info2"></td>
<td><div class="styleDiv" id="info3"></td>
<td><div class="styleDiv" id="info4"></td>
<td><div class="styleDiv" id="info5"></td>
</tr>
</table>
......@@ -1025,1061 +1025,1061 @@
<div id="MA" class="cacher">
<span class="nomPays">Maroc</span></br>
<span class="capitalePays">Capitale: Rabat</span></br>
<object data="images/Drapeaux/Afrique/Flag_of_Morocco.gif" class="drapeaux"/>
<object data="images/Drapeaux/Afrique/Flag_of_Morocco.png" class="drapeaux"/>
</div>
<div id="DZ" class="cacher">
<span class="nomPays">Algerie</span></br>
<span class="capitalePays">Capitale: Alger</span></br>
<object data="images/Drapeaux/Afrique/Flag_of_Algeria.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Algeria.png" class="drapeaux"/>
</div>
<div id="TN" class="cacher">
<span class="nomPays">Tunisie</span></br>
<span class="capitalePays">Capitale: Tunis</span></br>
<object data="images/Drapeaux/Afrique/Flag_of_Tunisia.gif" class="drapeaux"/>
<object data="images/Drapeaux/Afrique/Flag_of_Tunisia.png" class="drapeaux"/>
</div>
<div id="LY" class="cacher">
<span class="nomPays">Libye</span></br>
<span class="capitalePays">Capitale: Tripoli</span></br>
<object data="images/Drapeaux/Afrique/Flag_of_Libya.gif" class="drapeaux"/>
<object data="images/Drapeaux/Afrique/Flag_of_Libya.png" class="drapeaux"/>
</div>
<div id="EG" class="cacher">
<span class="nomPays">Egypte</span></br>
<span class="capitalePays">Capitale: Le Caire</span></br>
<object data="images/Drapeaux/Afrique/Flag_of_Egypt.gif" class="drapeaux"/>
<object data="images/Drapeaux/Afrique/Flag_of_Egypt.png" class="drapeaux"/>
</div>
<div id="Sahara occidental" class="cacher">
<span class="nomPays">Sahara occidental</span></br>
<span class="capitalePays">Capitale: </span></br>
<object data="images/Drapeaux/Afrique/Flag_of_.gif" class="drapeaux"/>
<object data="images/Drapeaux/Afrique/Flag_of_.png" class="drapeaux"/>
</div>
<div id="MR" class="cacher">
<span class="nomPays">Mauritanie</span></br>
<span class="capitalePays">Capitale: Nouakchott</span></br>
<object data="images/Drapeaux/Afrique/Flag_of_Mauritania.gif" class="drapeaux"/>
<object data="images/Drapeaux/Afrique/Flag_of_Mauritania.png" class="drapeaux"/>
</div>
<div id="ML" class="cacher">
<span class="nomPays">Mali</span></br>
<span class="capitalePays">Capitale: Bamako</span></br>
<object data="images/Drapeaux/Afrique/Flag_of_Mali.gif" class="drapeaux"/>
<object data="images/Drapeaux/Afrique/Flag_of_Mali.png" class="drapeaux"/>
</div>
<div id="NE" class="cacher">
<span class="nomPays">Niger</span></br>
<span class="capitalePays">Capitale: Niamey</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Niger.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Niger.png" class="drapeaux"/>
</div>
<div id="TD" class="cacher">
<span class="nomPays">Tchad</span></br>
<span class="capitalePays">Capitale: Ndjamena</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Chad.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Chad.png" class="drapeaux"/>
</div>
<div id="SD" class="cacher">
<span class="nomPays">Soudan</span></br>
<span class="capitalePays">Capitale: Khartoum</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Sudan.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Sudan.png" class="drapeaux"/>
</div>
<div id="ER" class="cacher">
<span class="nomPays">Erythree</span></br>
<span class="capitalePays">Capitale: Asmara</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Eritrea.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Eritrea.png" class="drapeaux"/>
</div>
<div id="DJ" class="cacher"><span class="nomPays">Djibouti</span></br>
<span class="capitalePays">Capitale: Djibouti</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Djibouti.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Djibouti.png" class="drapeaux"/>
</div>
<div id="ET" class="cacher">
<span class="nomPays">Ethiopie</span></br>
<span class="capitalePays">Capitale: Addis Abeba</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Ethiopia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Ethiopia.png" class="drapeaux"/>
</div>
<div id="SO" class="cacher">
<span class="nomPays">Somalie</span></br>
<span class="capitalePays">Capitale: Mogadiscio</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Somalia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Somalia.png" class="drapeaux"/>
</div>
<div id="KE" class="cacher">
<span class="nomPays">Kenya</span></br>
<span class="capitalePays">Capitale: Nairobi</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Kenya.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Kenya.png" class="drapeaux"/>
</div>
<div id="UG" class="cacher">
<span class="nomPays">Ouganda</span></br>
<span class="capitalePays">Capitale: Kampala</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Uganda.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Uganda.png" class="drapeaux"/>
</div>
<div id="CD" class="cacher">
<span class="nomPays">Republique democratique du Congo</span></br>
<span class="capitalePays">Capitale: Kinshasa</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_the_Democratic_Republic_of_the_Congo.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_the_Democratic_Republic_of_the_Congo.png" class="drapeaux"/>
</div>
<div id="CF" class="cacher">
<span class="nomPays">Republique centrafricaine</span></br>
<span class="capitalePays">Capitale: Bangui</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_the_Central_African_Republic.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_the_Central_African_Republic.png" class="drapeaux"/>
</div>
<div id="CM" class="cacher">
<span class="nomPays">Cameroun</span></br>
<span class="capitalePays">Capitale: Yaounde</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Cameroon.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Cameroon.png" class="drapeaux"/>
</div>
<div id="NG" class="cacher">
<span class="nomPays">Nigeria</span></br>
<span class="capitalePays">Capitale: Abuja</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Nigeria.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Nigeria.png" class="drapeaux"/>
</div>
<div id="BJ" class="cacher">
<span class="nomPays">Benin</span></br>
<span class="capitalePays">Capitale: Porto Novo</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Benin.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Benin.png" class="drapeaux"/>
</div>
<div id="TG" class="cacher">
<span class="nomPays">Togo</span></br>
<span class="capitalePays">Capitale: Lome</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Togo.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Togo.png" class="drapeaux"/>
</div>
<div id="GH" class="cacher">
<span class="nomPays">Ghana</span></br>
<span class="capitalePays">Capitale: Accra</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Ghana.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Ghana.png" class="drapeaux"/>
</div>
<div id="CI" class="cacher">
<span class="nomPays">Cote d'Ivoire</span></br>
<span class="capitalePays">Capitale: Yamoussoukro</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Cote_d'Ivoire.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Cote_d'Ivoire.png" class="drapeaux"/>
</div>
<div id="BF" class="cacher">
<span class="nomPays">Burkina Faso</span></br>
<span class="capitalePays">Capitale: Ouagadougou</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Burkina_Faso.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Burkina_Faso.png" class="drapeaux"/>
</div>
<div id="LR" class="cacher">
<span class="nomPays">Liberia</span></br>
<span class="capitalePays">Capitale: Monravia</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Liberia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Liberia.png" class="drapeaux"/>
</div>
<div id="SL" class="cacher">
<span class="nomPays">Sierra Leone</span></br>
<span class="capitalePays">Capitale: Freetown</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Sierra_Leone.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Sierra_Leone.png" class="drapeaux"/>
</div>
<div id="GN" class="cacher">
<span class="nomPays">Guinee</span></br>
<span class="capitalePays">Capitale: Conakry</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Guinea.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Guinea.png" class="drapeaux"/>
</div>
<div id="GW" class="cacher">
<span class="nomPays">Guinee-Bissau</span></br>
<span class="capitalePays">Capitale: Bissau</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Guinea-Bissau.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Guinea-Bissau.png" class="drapeaux"/>
</div>
<div id="SN" class="cacher">
<span class="nomPays">Senegal</span></br>
<span class="capitalePays">Capitale: Dakar</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Senegal.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Senegal.png" class="drapeaux"/>
</div>
<div id="GM" class="cacher">
<span class="nomPays">Gambie</span></br>
<span class="capitalePays">Capitale: Banjul</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_The_Gambia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_The_Gambia.png" class="drapeaux"/>
</div>
<div id="RW" class="cacher">
<span class="nomPays">Rwanda</span></br>
<span class="capitalePays">Capitale: Kigali</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Rwanda.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Rwanda.png" class="drapeaux"/>
</div>
<div id="BI" class="cacher">
<span class="nomPays">Burundi</span></br>
<span class="capitalePays">Capitale: Bujumbura</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Burundi.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Burundi.png" class="drapeaux"/>
</div>
<div id="CG" class="cacher">
<span class="nomPays">Republique du Congo</span></br>
<span class="capitalePays">Capitale: Brazzaville</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_the_Republic_of_the_Congo.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_the_Republic_of_the_Congo.png" class="drapeaux"/>
</div>
<div id="GA" class="cacher">
<span class="nomPays">Gabon</span></br>
<span class="capitalePays">Capitale: Libreville</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Gabon.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Gabon.png" class="drapeaux"/>
</div>
<div id="GQ" class="cacher">
<span class="nomPays">Guinee Equatoriale</span></br>
<span class="capitalePays">Capitale: Malabo</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Equatorial_Guinea.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Equatorial_Guinea.png" class="drapeaux"/>
</div>
<div id="TZ" class="cacher">
<span class="nomPays">Tanzanie</span></br>
<span class="capitalePays">Capitale: Dodoma</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Tanzania.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Tanzania.png" class="drapeaux"/>
</div>
<div id="MW" class="cacher">
<span class="nomPays">Malawi</span></br>
<span class="capitalePays">Capitale: Lilongwe</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Malawi.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Malawi.png" class="drapeaux"/>
</div>
<div id="ZM" class="cacher">
<span class="nomPays">Zambie</span></br>
<span class="capitalePays">Capitale: Lusaka</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Zambia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Zambia.png" class="drapeaux"/>
</div>
<div id="AO" class="cacher">
<span class="nomPays">Angola</span></br>
<span class="capitalePays">Capitale: Luanda</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Angola.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Angola.png" class="drapeaux"/>
</div>
<div id="MZ" class="cacher">
<span class="nomPays">Mozambique</span></br>
<span class="capitalePays">Capitale: Maputo</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Mozambique.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Mozambique.png" class="drapeaux"/>
</div>
<div id="ZW" class="cacher">
<span class="nomPays">Zimbabwe</span></br>
<span class="capitalePays">Capitale: Harare</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Zimbabwe.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Zimbabwe.png" class="drapeaux"/>
</div>
<div id="BW" class="cacher">
<span class="nomPays">Botswana</span></br>
<span class="capitalePays">Capitale: Gaborone</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Botswana.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Botswana.png" class="drapeaux"/>
</div>
<div id="NA" class="cacher">
<span class="nomPays">Namibie</span></br>
<span class="capitalePays">Capitale: Windhoec</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Namibia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Namibia.png" class="drapeaux"/>
</div>
<div id="ZA" class="cacher">
<span class="nomPays">Afrique du Sud</span></br>
<span class="capitalePays">Capitale: Pretoria</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_South_Africa.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_South_Africa.png" class="drapeaux"/>
</div>
<div id="LS" class="cacher">
<span class="nomPays">Lesotho</span></br>
<span class="capitalePays">Capitale: Maseru</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Lesotho.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Lesotho.png" class="drapeaux"/>
</div>
<div id="SZ" class="cacher">
<span class="nomPays">Swaziland</span></br>
<span class="capitalePays">Capitale: Mbabane</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Swaziland.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Swaziland.png" class="drapeaux"/>
</div>
<div id="MG" class="cacher">
<span class="nomPays">Madagascar</span></br>
<span class="capitalePays">Capitale: Antananarivo</span></br>
<img src="images/Drapeaux/Afrique/Flag_of_Madagascar.gif" class="drapeaux"/>
<img src="images/Drapeaux/Afrique/Flag_of_Madagascar.png" class="drapeaux"/>
</div>
<!-- Informations sur les pays d'Amerique du Sud-->
<div id="AR" class="cacher">
<span class="nomPays">Argentine</span></br>
<span class="capitalePays">Capitale: Buenos Aires</span></br>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Argentina.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Argentina.png" class="drapeaux"/>
</div>
<div id="CL" class="cacher">
<span class="nomPays">Chili</span></br>
<span class="capitalePays">Capitale: Santiago</span></br>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Chile.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Chile.png" class="drapeaux"/>
</div>
<div id="UY" class="cacher">
<span class="nomPays">Uruguay</span></br>
<span class="capitalePays">Capitale: Montevideo</span></br>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Uruguay.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Uruguay.png" class="drapeaux"/>
</div>
<div id="PY" class="cacher">
<span class="nomPays">Paraguay</span></br>
<span class="capitalePays">Capitale: Asuncion</span></br>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Paraguay.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Paraguay.png" class="drapeaux"/>
</div>
<div id="BO" class="cacher">
<span class="nomPays">Bolivie</span></br>
<span class="capitalePays">Capitale: La Paz</span></br>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Bolivia.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Bolivia.png" class="drapeaux"/>
</div>
<div id="BR" class="cacher">
<span class="nomPays">Bresil</span></br>
<span class="capitalePays">Capitale: Brasilia</span></br>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Brazil.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Brazil.png" class="drapeaux"/>
</div>
<div id="PE" class="cacher">
<span class="nomPays">Perou</span></br>
<span class="capitalePays">Capitale: Lima</span></br>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Peru.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Peru.png" class="drapeaux"/>
</div>
<div id="EC" class="cacher">
<span class="nomPays">Equateur</span></br>
<span class="capitalePays">Capitale: Quito</span></br>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Ecuador.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Ecuador.png" class="drapeaux"/>
</div>
<div id="CO" class="cacher">
<span class="nomPays">Colombie</span></br>
<span class="capitalePays">Capitale: Bogota</span></br>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Colombia.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Colombia.png" class="drapeaux"/>
</div>
<div id="VE" class="cacher">
<span class="nomPays">Venezuela</span></br>
<span class="capitalePays">Capitale: Caracas</span></br>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Venezuela.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Venezuela.png" class="drapeaux"/>
</div>
<div id="GY" class="cacher">
<span class="nomPays">Guyana</span></br>
<span class="capitalePays">Capitale: Georgetown</span></br>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Guyana.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Guyana.png" class="drapeaux"/>
</div>
<div id="SR" class="cacher">
<span class="nomPays">Suriname</span></br>
<span class="capitalePays">Capitale: Paramaribo</span></br>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Suriname.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_Suriname.png" class="drapeaux"/>
</div>
<div id="GF" class="cacher">
<span class="nomPays">Guyane</span></br>
<span class="capitalePays">Capitale: Paris</span></br>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_France.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueSud/Flag_of_France.png" class="drapeaux"/>
</div>
<!-- Informations sur les pays d'Amérique du Nord-->
<div id="CA" class="cacher">
<span class="nomPays">Canada</span></br>
<span class="capitalePays">Capitale: Ottawa</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Canada.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Canada.png" class="drapeaux"/>
</div>
<div id="GL" class="cacher">
<span class="nomPays">Groenland</span></br>
<span class="capitalePays">Capitale: Nuuk</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Greenland.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Greenland.png" class="drapeaux"/>
</div>
<div id="US" class="cacher">
<span class="nomPays">Etats-Unis d'Amerique</span></br>
<span class="capitalePays">Capitale: Washington DC</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_the_United_States.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_the_United_States.png" class="drapeaux"/>
</div>
<div id="MX" class="cacher">
<span class="nomPays">Mexique</span></br>
<span class="capitalePays">Capitale: Mexico</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Mexico.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Mexico.png" class="drapeaux"/>
</div>
<div id="CU" class="cacher">
<span class="nomPays">Cuba</span></br>
<span class="capitalePays">Capitale: La Havane</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Cuba.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Cuba.png" class="drapeaux"/>
</div>
<div id="HT" class="cacher">
<span class="nomPays">Haiti</span></br>
<span class="capitalePays">Capitale: Port-au-Prince</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Haiti.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Haiti.png" class="drapeaux"/>
</div>
<div id="DO" class="cacher">
<span class="nomPays">Republique dominicaine</span></br>
<span class="capitalePays">Capitale: Saint-Domingue</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_the_Dominican_Republic.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_the_Dominican_Republic.png" class="drapeaux"/>
</div>
<div id="JM" class="cacher">
<span class="nomPays">Jamaique</span></br>
<span class="capitalePays">Capitale: Kingston</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Jamaica.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Jamaica.png" class="drapeaux"/>
</div>
<div id="BS" class="cacher">
<span class="nomPays">Bahamas</span></br>
<span class="capitalePays">Capitale: Nassau</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_the_Bahamas.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_the_Bahamas.png" class="drapeaux"/>
</div>
<div id="GT" class="cacher">
<span class="nomPays">Guatemala</span></br>
<span class="capitalePays">Capitale: Guatemala</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Guatemala.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Guatemala.png" class="drapeaux"/>
</div>
<div id="BZ" class="cacher">
<span class="nomPays">Belize</span></br>
<span class="capitalePays">Capitale: Belmopan</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Belize.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Belize.png" class="drapeaux"/>
</div>
<div id="SV" class="cacher">
<span class="nomPays">El Salvador</span></br>
<span class="capitalePays">Capitale: San Salvador</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_El_Salvador.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_El_Salvador.png" class="drapeaux"/>
</div>
<div id="HN" class="cacher">
<span class="nomPays">Honduras</span></br>
<span class="capitalePays">Capitale: Tegucigalpa</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Honduras.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Honduras.png" class="drapeaux"/>
</div>
<div id="NI" class="cacher">
<span class="nomPays">Nicaragua</span></br>
<span class="capitalePays">Capitale: Managua</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Nicaragua.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Nicaragua.png" class="drapeaux"/>
</div>
<div id="CR" class="cacher">
<span class="nomPays">Costa-Rica</span></br>
<span class="capitalePays">Capitale: San Jose</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Costa_Rica.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Costa_Rica.png" class="drapeaux"/>
</div>
<div id="PA" class="cacher">
<span class="nomPays">Panama</span></br>
<span class="capitalePays">Capitale: Panama</span></br>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Panama.gif" class="drapeaux"/>
<img src="images/Drapeaux/AmeriqueNord/Flag_of_Panama.png" class="drapeaux"/>
</div>
<!-- Informations sur les pays d'Oceanie-->
<div id="AU" class="cacher">
<span class="nomPays">Australie</span></br>
<span class="capitalePays">Capitale: Canberra</span></br>
<img src="images/Drapeaux/Oceanie/Flag_of_Australia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Oceanie/Flag_of_Australia.png" class="drapeaux"/>
</div>
<div id="NZ" class="cacher">
<span class="nomPays">Nouvelle-Zelande</span></br>
<span class="capitalePays">Capitale: Wellington</span></br>
<img src="images/Drapeaux/Oceanie/Flag_of_New_Zealand.gif" class="drapeaux"/>
<img src="images/Drapeaux/Oceanie/Flag_of_New_Zealand.png" class="drapeaux"/>
</div>
<div id="PG" class="cacher">
<span class="nomPays">Papouasie-Nouvelle-Guinee</span></br>
<span class="capitalePays">Capitale: Port Moresby</span></br>
<img src="images/Drapeaux/Oceanie/Flag_of_Papua_New_Guinea.gif" class="drapeaux"/>
<img src="images/Drapeaux/Oceanie/Flag_of_Papua_New_Guinea.png" class="drapeaux"/>
</div>
<div id="ID" class="cacher">
<span class="nomPays">Indonesie</span></br>
<span class="capitalePays">Capitale: Jakarta</span></br>
<img src="images/Drapeaux/Oceanie/Flag_of_Indonesia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Oceanie/Flag_of_Indonesia.png" class="drapeaux"/>
</div>
<div id="SB" class="cacher">
<span class="nomPays">Iles Salomon</span></br>
<span class="capitalePays">Capitale: Honiara</span></br>
<img src="images/Drapeaux/Oceanie/Flag_of_the_Solomon_Islands.gif" class="drapeaux"/>
<img src="images/Drapeaux/Oceanie/Flag_of_the_Solomon_Islands.png" class="drapeaux"/>
</div>
<div id="VU" class="cacher">
<span class="nomPays">Vanuatu</span></br>
<span class="capitalePays">Capitale: Port-Vila</span></br>
<img src="images/Drapeaux/Oceanie/Flag_of_Vanuatu.gif" class="drapeaux"/>
<img src="images/Drapeaux/Oceanie/Flag_of_Vanuatu.png" class="drapeaux"/>
</div>
<div id="NC" class="cacher">
<span class="nomPays">Nouvelle-Caledonie</span></br>
<span class="capitalePays">Capitale: Paris</span></br>
<img src="images/Drapeaux/Oceanie/Flag_of_France.gif" class="drapeaux"/>
<img src="images/Drapeaux/Oceanie/Flag_of_France.png" class="drapeaux"/>
</div>
<!-- Informations sur les pays d'Europe-->
<div id="AL" class="cacher">
<span class="nomPays">Albanie</span></br>
<span class="capitalePays">Capitale: Tirana</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Albania.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Albania.png" class="drapeaux"/>
</div>
<div id="DE" class="cacher">
<span class="nomPays">Allemagne</span></br>
<span class="capitalePays">Capitale: Berlin</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Germany.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Germany.png" class="drapeaux"/>
</div>
<div id="AD" class="cacher">
<span class="nomPays">Andorre</span></br>
<span class="capitalePays">Capitale: Andorre-la-Vieille</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Andorra.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Andorra.png" class="drapeaux"/>
</div>
<div id="AM" class="cacher">
<span class="nomPays">Armenie</span></br>
<span class="capitalePays">Capitale: Erevan</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Armenia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Armenia.png" class="drapeaux"/>
</div>
<div id="AT" class="cacher">
<span class="nomPays">Autriche</span></br>
<span class="capitalePays">Capitale: Vienne</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Austria.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Austria.png" class="drapeaux"/>
</div>
<div id="AZ" class="cacher">
<span class="nomPays">Azerbaidjan</span></br>
<span class="capitalePays">Capitale: Bakou</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Azerbaijan.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Azerbaijan.png" class="drapeaux"/>
</div>
<div id="BE" class="cacher">
<span class="nomPays">Belgique</span></br>
<span class="capitalePays">Capitale: Bruxelles</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Belgium.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Belgium.png" class="drapeaux"/>
</div>
<div id="BY" class="cacher">
<span class="nomPays">Belarus</span></br>
<span class="capitalePays">Capitale: Minsk</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Belarus.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Belarus.png" class="drapeaux"/>
</div>
<div id="BA" class="cacher">
<span class="nomPays">Bosnie</span></br>
<span class="capitalePays">Capitale: Sarajevo</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Bosnia_and_Herzegovina.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Bosnia_and_Herzegovina.png" class="drapeaux"/>
</div>
<div id="BG" class="cacher">
<span class="nomPays">Bulgarie</span></br>
<span class="capitalePays">Capitale: Sofia</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Bulgaria.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Bulgaria.png" class="drapeaux"/>
</div>
<div id="CY" class="cacher">
<span class="nomPays">Chypre</span></br>
<span class="capitalePays">Capitale: Nicosie</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Cyprus.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Cyprus.png" class="drapeaux"/>
</div>
<div id="HR" class="cacher">
<span class="nomPays">Croatie</span></br>
<span class="capitalePays">Capitale: Zagreb</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Croatia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Croatia.png" class="drapeaux"/>
</div>
<div id="DK" class="cacher">
<span class="nomPays">Danemark</span></br>
<span class="capitalePays">Capitale: Copenhague</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Denmark.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Denmark.png" class="drapeaux"/>
</div>
<div id="ES" class="cacher">
<span class="nomPays">Espagne</span></br>
<span class="capitalePays">Capitale: Madrid</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Spain.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Spain.png" class="drapeaux"/>
</div>
<div id="EE" class="cacher">
<span class="nomPays">Estonie</span></br>
<span class="capitalePays">Capitale: Tallinn</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Estonia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Estonia.png" class="drapeaux"/>
</div>
<div id="FI" class="cacher">
<span class="nomPays">Finlande</span></br>
<span class="capitalePays">Capitale: Helsinki</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Finland.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Finland.png" class="drapeaux"/>
</div>
<div id="FR" class="cacher">
<span class="nomPays">France</span></br>
<span class="capitalePays">Capitale: Paris</span></br>
<img src="images/Drapeaux/Europe/Flag_of_France.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_France.png" class="drapeaux"/>
</div>
<div id="GE" class="cacher">
<span class="nomPays">Georgie</span></br>
<span class="capitalePays">Capitale: Tbilissi</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Georgia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Georgia.png" class="drapeaux"/>
</div>
<div id="EL" class="cacher">
<span class="nomPays">Grece</span></br>
<span class="capitalePays">Capitale: Athenes</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Greece.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Greece.png" class="drapeaux"/>
</div>
<div id="HU" class="cacher">
<span class="nomPays">Hongrie</span></br>
<span class="capitalePays">Capitale: Budapest</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Hungary.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Hungary.png" class="drapeaux"/>
</div>
<div id="IE" class="cacher">
<span class="nomPays">Irlande</span></br>
<span class="capitalePays">Capitale: Dublin</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Ireland.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Ireland.png" class="drapeaux"/>
</div>
<div id="IS" class="cacher">
<span class="nomPays">Islande</span></br>
<span class="capitalePays">Capitale: Reykjavik</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Iceland.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Iceland.png" class="drapeaux"/>
</div>
<div id="IT" class="cacher">
<span class="nomPays">Italie</span></br>
<span class="capitalePays">Capitale: Rome</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Italy.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Italy.png" class="drapeaux"/>
</div>
<div id="LV" class="cacher">
<span class="nomPays">Lettonie</span></br>
<span class="capitalePays">Capitale: Riga</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Latvia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Latvia.png" class="drapeaux"/>
</div>
<div id="LI" class="cacher">
<span class="nomPays">Liechtenstein</span></br>
<span class="capitalePays">Capitale: Vaduz</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Liechtenstein.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Liechtenstein.png" class="drapeaux"/>
</div>
<div id="LT" class="cacher">
<span class="nomPays">Lituanie</span></br>
<span class="capitalePays">Capitale: Vilnius</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Lithuania.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Lithuania.png" class="drapeaux"/>
</div>
<div id="LU" class="cacher">
<span class="nomPays">Luxembourg</span></br>
<span class="capitalePays">Capitale: Luxembourg</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Luxembourg.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Luxembourg.png" class="drapeaux"/>
</div>
<div id="MK" class="cacher">
<span class="nomPays">Macedoine</span></br>
<span class="capitalePays">Capitale: Skopje</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Macedonia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Macedonia.png" class="drapeaux"/>
</div>
<div id="MT" class="cacher">
<span class="nomPays">Malte</span></br>
<span class="capitalePays">Capitale: La Valette</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Malta.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Malta.png" class="drapeaux"/>
</div>
<div id="MD" class="cacher">
<span class="nomPays">Moldavie</span></br>
<span class="capitalePays">Capitale: Chisinau</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Moldova.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Moldova.png" class="drapeaux"/>
</div>
<div id="MC" class="cacher">
<span class="nomPays">Monaco</span></br>
<span class="capitalePays">Capitale: Monaco</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Monaco.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Monaco.png" class="drapeaux"/>
</div>
<div id="ME" class="cacher">
<span class="nomPays">Montenegro</span></br>
<span class="capitalePays">Capitale: Podaorica</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Montenegro.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Montenegro.png" class="drapeaux"/>
</div>
<div id="NO" class="cacher">
<span class="nomPays">Norvege</span></br>
<span class="capitalePays">Capitale: Oslo</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Norway.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Norway.png" class="drapeaux"/>
</div>
<div id="NL" class="cacher">
<span class="nomPays">Pays-Bas</span></br>
<span class="capitalePays">Capitale: Amsterdam</span></br>
<img src="images/Drapeaux/Europe/Flag_of_the_Netherlands.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_the_Netherlands.png" class="drapeaux"/>
</div>
<div id="PL" class="cacher">
<span class="nomPays">Pologne</span></br>
<span class="capitalePays">Capitale: Varsovie</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Poland.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Poland.png" class="drapeaux"/>
</div>
<div id="PT" class="cacher">
<span class="nomPays">Portugal</span></br>
<span class="capitalePays">Capitale: Lisbonne</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Portugal.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Portugal.png" class="drapeaux"/>
</div>
<div id="CZ" class="cacher">
<span class="nomPays">Republique tcheque</span></br>
<span class="capitalePays">Capitale: Prague</span></br>
<img src="images/Drapeaux/Europe/Flag_of_the_Czech_Republic.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_the_Czech_Republic.png" class="drapeaux"/>
</div>
<div id="RO" class="cacher">
<span class="nomPays">Roumanie</span></br>
<span class="capitalePays">Capitale: Bucarest</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Romania.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Romania.png" class="drapeaux"/>
</div>
<div id="UK" class="cacher">
<span class="nomPays">Royaume-Uni</span></br>
<span class="capitalePays">Capitale: Londres</span></br>
<img src="images/Drapeaux/Europe/Flag_of_the_United_Kingdom.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_the_United_Kingdom.png" class="drapeaux"/>
</div>
<div id="SM" class="cacher">
<span class="nomPays">Saint-Marin</span></br>
<span class="capitalePays">Capitale: Saint-Marin</span></br>
<img src="images/Drapeaux/Europe/Flag_of_San_Marino.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_San_Marino.png" class="drapeaux"/>
</div>
<div id="RS" class="cacher">
<span class="nomPays">Serbie</span></br>
<span class="capitalePays">Capitale: Belgrade</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Serbia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Serbia.png" class="drapeaux"/>
</div>
<div id="SK" class="cacher">
<span class="nomPays">Slovaquie</span></br>
<span class="capitalePays">Capitale: Bratislava</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Slovakia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Slovakia.png" class="drapeaux"/>
</div>
<div id="SI" class="cacher">
<span class="nomPays">Slovenie</span></br>
<span class="capitalePays">Capitale: Ljubljana</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Slovenia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Slovenia.png" class="drapeaux"/>
</div>
<div id="SE" class="cacher">
<span class="nomPays">Suede</span></br>
<span class="capitalePays">Capitale: Stockholm</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Sweden.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Sweden.png" class="drapeaux"/>
</div>
<div id="CH" class="cacher">
<span class="nomPays">Suisse</span></br>
<span class="capitalePays">Capitale: Berne</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Switzerland.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Switzerland.png" class="drapeaux"/>
</div>
<div id="TR" class="cacher">
<span class="nomPays">Turquie</span></br>
<span class="capitalePays">Capitale: Ankara</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Turkey.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Turkey.png" class="drapeaux"/>
</div>
<div id="UA" class="cacher">
<span class="nomPays">Ukraine</span></br>
<span class="capitalePays">Capitale: Kiev</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Ukraine.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Ukraine.png" class="drapeaux"/>
</div>
<div id="VA" class="cacher">
<span class="nomPays">Vatican</span></br>
<span class="capitalePays">Capitale: Cite du Vatican</span></br>
<img src="images/Drapeaux/Europe/Flag_of_the_Vatican_City.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_the_Vatican_City.png" class="drapeaux"/>
</div>
<!-- Informations sur les pays d'Asie-->
<div id="AF" class="cacher">
<span class="nomPays">Afghanistan</span></br>
<span class="capitalePays">Capitale: Kaboul</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Afghanistan.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Afghanistan.png" class="drapeaux"/>
</div>
<div id="SA" class="cacher">
<span class="nomPays">Arabie Saoudite</span></br>
<span class="capitalePays">Capitale: Riyad</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Saudi_Arabia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Saudi_Arabia.png" class="drapeaux"/>
</div>
<div id="BH" class="cacher">
<span class="nomPays">Bahrein</span></br>
<span class="capitalePays">Capitale: Manama</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Bahrain.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Bahrain.png" class="drapeaux"/>
</div>
<div id="BD" class="cacher">
<span class="nomPays">Bangladesh</span></br>
<span class="capitalePays">Capitale: Dhaka</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Bangladesh.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Bangladesh.png" class="drapeaux"/>
</div>
<div id="BT" class="cacher">
<span class="nomPays">Bhoutan</span></br>
<span class="capitalePays">Capitale: Thimphou</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Bhutan.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Bhutan.png" class="drapeaux"/>
</div>
<div id="BN" class="cacher">
<span class="nomPays">Brunei</span></br>
<span class="capitalePays">Capitale: Bandar Seri Begawan</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Brunei.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Brunei.png" class="drapeaux"/>
</div>
<div id="KH" class="cacher">
<span class="nomPays">Cambodge</span></br>
<span class="capitalePays">Capitale: Phnom Penh</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Cambodia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Cambodia.png" class="drapeaux"/>
</div>
<div id="CN" class="cacher">
<span class="nomPays">Chine</span></br>
<span class="capitalePays">Capitale: Pekin</span></br>
<img src="images/Drapeaux/Asie/Flag_of_the_People's_Republic_of_China.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_the_People's_Republic_of_China.png" class="drapeaux"/>
</div>
<div id="KP" class="cacher">
<span class="nomPays">Coree du Nord</span></br>
<span class="capitalePays">Capitale: Pyongyang</span></br>
<img src="images/Drapeaux/Asie/Flag_of_North_Korea.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_North_Korea.png" class="drapeaux"/>
</div>
<div id="KR" class="cacher">
<span class="nomPays">Coree du Sud</span></br>
<span class="capitalePays">Capitale: Seoul</span></br>
<img src="images/Drapeaux/Asie/Flag_of_South_Korea.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_South_Korea.png" class="drapeaux"/>
</div>
<div id="AE" class="cacher">
<span class="nomPays">Emirats arabes unis</span></br>
<span class="capitalePays">Capitale: Abou Dabi</span></br>
<img src="images/Drapeaux/Asie/Flag_of_the_United_Arab_Emirates.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_the_United_Arab_Emirates.png" class="drapeaux"/>
</div>
<div id="IN" class="cacher">
<span class="nomPays">Inde</span></br>
<span class="capitalePays">Capitale: New Delhi</span></br>
<img src="images/Drapeaux/Asie/Flag_of_India.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_India.png" class="drapeaux"/>
</div>
<div id="ID" class="cacher">
<span class="nomPays">Indonesie</span></br>
<span class="capitalePays">Capitale: Jakarta</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Indonesia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Indonesia.png" class="drapeaux"/>
</div>
<div id="IR" class="cacher">
<span class="nomPays">Iran</span></br>
<span class="capitalePays">Capitale: Teheran</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Iran.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Iran.png" class="drapeaux"/>
</div>
<div id="IQ" class="cacher">
<span class="nomPays">Iraq</span></br>
<span class="capitalePays">Capitale: Bagdad</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Iraq.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Iraq.png" class="drapeaux"/>
</div>
<div id="IL" class="cacher">
<span class="nomPays">Israel</span></br>
<span class="capitalePays">Capitale: Jerusalem</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Israel.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Israel.png" class="drapeaux"/>
</div>
<div id="JP" class="cacher">
<span class="nomPays">Japon</span></br>
<span class="capitalePays">Capitale: Tokyo</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Japan.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Japan.png" class="drapeaux"/>
</div>
<div id="JO" class="cacher">
<span class="nomPays">Jordanie</span></br>
<span class="capitalePays">Capitale: Amman</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Jordan.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Jordan.png" class="drapeaux"/>
</div>
<div id="KZ" class="cacher">
<span class="nomPays">Kazakhstan</span></br>
<span class="capitalePays">Capitale: Astana</span></br>
<img src="images/Drapeaux/Europe/Flag_of_Kazakhstan.gif" class="drapeaux"/>
<img src="images/Drapeaux/Europe/Flag_of_Kazakhstan.png" class="drapeaux"/>
</div>
<div id="KG" class="cacher">
<span class="nomPays">Kirghizistan</span></br>
<span class="capitalePays">Capitale: Bichkek</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Kyrgyzstan.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Kyrgyzstan.png" class="drapeaux"/>
</div>
<div id="KW" class="cacher">
<span class="nomPays">Koweit</span></br>
<span class="capitalePays">Capitale: Koweit</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Kuwait.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Kuwait.png" class="drapeaux"/>
</div>
<div id="LA" class="cacher">
<span class="nomPays">Laos</span></br>
<span class="capitalePays">Capitale: Vientiane</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Laos.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Laos.png" class="drapeaux"/>
</div>
<div id="LB" class="cacher">
<span class="nomPays">Liban</span></br>
<span class="capitalePays">Capitale: Beyrouth</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Lebanon.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Lebanon.png" class="drapeaux"/>
</div>
<div id="MY" class="cacher">
<span class="nomPays">Malaisie</span></br>
<span class="capitalePays">Capitale: Kuala Lumpur</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Malaysia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Malaysia.png" class="drapeaux"/>
</div>
<div id="MV" class="cacher">
<span class="nomPays">Maldives</span></br>
<span class="capitalePays">Capitale: Male</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Maldives.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Maldives.png" class="drapeaux"/>
</div>
<div id="MN" class="cacher">
<span class="nomPays">Mongolie</span></br>
<span class="capitalePays">Capitale: Oulan-Bator</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Mongolia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Mongolia.png" class="drapeaux"/>
</div>
<div id="MM" class="cacher">
<span class="nomPays">Myanmar</span></br>
<span class="capitalePays">Capitale: Naypyidaw</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Myanmar.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Myanmar.png" class="drapeaux"/>
</div>
<div id="NP" class="cacher">
<span class="nomPays">Nepal</span></br>
<span class="capitalePays">Capitale: Katmandou</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Nepal.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Nepal.png" class="drapeaux"/>
</div>
<div id="OM" class="cacher">
<span class="nomPays">Oman</span></br>
<span class="capitalePays">Capitale: Mascate</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Oman.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Oman.png" class="drapeaux"/>
</div>
<div id="UZ" class="cacher">
<span class="nomPays">Ouzbekistan</span></br>
<span class="capitalePays">Capitale: Tachkent</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Uzbekistan.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Uzbekistan.png" class="drapeaux"/>
</div>
<div id="PK" class="cacher">
<span class="nomPays">Pakistan</span></br>
<span class="capitalePays">Capitale: Islamabad</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Pakistan.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Pakistan.png" class="drapeaux"/>
</div>
<div id="PH" class="cacher">
<span class="nomPays">Philippines</span></br>
<span class="capitalePays">Capitale: Manille</span></br>
<img src="images/Drapeaux/Asie/Flag_of_the_Philippines.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_the_Philippines.png" class="drapeaux"/>
</div>
<div id="QA" class="cacher">
<span class="nomPays">Qatar</span></br>
<span class="capitalePays">Capitale: Doha</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Qatar.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Qatar.png" class="drapeaux"/>
</div>
<div id="RU" class="cacher">
<span class="nomPays">Russie</span></br>
<span class="capitalePays">Capitale: Moscou</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Russia.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Russia.png" class="drapeaux"/>
</div>
<div id="SG" class="cacher">
<span class="nomPays">Singapour</span></br>
<span class="capitalePays">Capitale: Singapour</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Singapore.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Singapore.png" class="drapeaux"/>
</div>
<div id="LK" class="cacher">
<span class="nomPays">Sri Lanka</span></br>
<span class="capitalePays">Capitale: Colombo</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Sri_Lanka.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Sri_Lanka.png" class="drapeaux"/>
</div>
<div id="SY" class="cacher">
<span class="nomPays">Syrie</span></br>
<span class="capitalePays">Capitale: Damas</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Syria.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Syria.png" class="drapeaux"/>
</div>
<div id="TJ" class="cacher">
<span class="nomPays">Tadjikistan</span></br>
<span class="capitalePays">Capitale: Douchanbe</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Tajikistan.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Tajikistan.png" class="drapeaux"/>
</div>
<div id="TH" class="cacher">
<span class="nomPays">Thailande</span></br>
<span class="capitalePays">Capitale: Bangkok</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Thailand.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Thailand.png" class="drapeaux"/>
</div>
<div id="TL" class="cacher">
<span class="nomPays">Timor-oriental</span></br>
<span class="capitalePays">Capitale: Dili</span></br>
<img src="images/Drapeaux/Asie/Flag_of_East_Timor.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_East_Timor.png" class="drapeaux"/>
</div>
<div id="TM" class="cacher">
<span class="nomPays">Turkmenistan</span></br>
<span class="capitalePays">Capitale: Achgabat</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Turkmenistan.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Turkmenistan.png" class="drapeaux"/>
</div>
<div id="VN" class="cacher">
<span class="nomPays">Viet Nam</span></br>
<span class="capitalePays">Capitale: Hanoi</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Vietnam.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Vietnam.png" class="drapeaux"/>
</div>
<div id="YE" class="cacher">
<span class="nomPays">Yemen</span></br>
<span class="capitalePays">Capitale: Sanaa</span></br>
<img src="images/Drapeaux/Asie/Flag_of_Yemen.gif" class="drapeaux"/>
<img src="images/Drapeaux/Asie/Flag_of_Yemen.png" class="drapeaux"/>
</div>
</body>
......
body {
background-color: white;
}
.styleDiv
{
height:250px;
......
......@@ -89,9 +89,7 @@ function popupInfo(text)
// met la bonne grandeur à chaque div
for (i = 1; i <= currentInfo; i++)
{
document.getElementById("info" + i).style.width = (654/currentInfo) + 'px';
}
}
// affiche le text de l'erreur en cas de problème
......@@ -224,19 +222,19 @@ function fondu(carte)
// permet de faire apparaître les infos du pays dans la petite fenêtre
function afficheInfoPays(pays)
{
document.getElementById("infoPays").innerHTML = document.getElementById(pays).innerHTML
document.getElementById("infoPays").innerHTML = document.getElementById(pays).innerHTML;
}
// permet de cacher la petite fenêtre
function cacherInfoPays()
{
document.getElementById("infoPays").style.display = 'none'
document.getElementById("infoPays").style.display = 'none';
}
// permet à la petite fenêtre de suivre la souris
function deplacerInfo(event)
{
document.getElementById("infoPays").style.display = 'block'
document.getElementById("infoPays").style.top = event.clientY
document.getElementById ("infoPays").style.left = event.clientX+20
document.getElementById("infoPays").style.display = 'block';
document.getElementById("infoPays").style.top = event.clientY;
document.getElementById ("infoPays").style.left = event.clientX+20;
}
......@@ -15,6 +15,21 @@
<script type="text/javascript">
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
google.load("maps", "2");
google.load("elements", "1", {
packages : ["localsearch"]
......@@ -30,12 +45,12 @@
var zoom = 2;
var latlng = new google.maps.LatLng(lat, lng);
if (window.uniboard)
if (window.sankore)
{
lat = parseFloat(window.uniboard.preference('latitude', lat));
lng = parseFloat(window.uniboard.preference('longitude', lng));
zoom = parseFloat(window.uniboard.preference('zoom', zoom));
mapType = window.uniboard.preference('mapType', mapType);
lat = parseFloat(window.sankore.preference('latitude', lat));
lng = parseFloat(window.sankore.preference('longitude', lng));
zoom = parseFloat(window.sankore.preference('zoom', zoom));
mapType = window.sankore.preference('mapType', mapType);
latlng = new google.maps.LatLng(lat, lng);
};
......@@ -54,17 +69,17 @@
new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(5,30)));
// Add persistence
if (window.uniboard)
if (window.sankore)
{
GEvent.addListener(map,'zoomend',function()
{
window.uniboard.setPreference('zoom', map.getZoom());
window.sankore.setPreference('zoom', map.getZoom());
});
GEvent.addListener(map,'moveend',function()
{
window.uniboard.setPreference('latitude', map.getCenter().lat());
window.uniboard.setPreference('longitude', map.getCenter().lng());
window.sankore.setPreference('latitude', map.getCenter().lat());
window.sankore.setPreference('longitude', map.getCenter().lng());
});
GEvent.addListener(map,'maptypechanged',function()
......@@ -77,7 +92,7 @@
break;
}
}
window.uniboard.setPreference('mapType', newMapType);
window.sankore.setPreference('mapType', newMapType);
});
};
}
......
body {
font: 13px "Trebuchet MS", Arial, Verdana;
padding-top:0px;
color: gray;
}
a {
text-decoration:none;
color:#3C769D;
......
......@@ -10,9 +10,8 @@
<script type="text/javascript" src="markitup/jquery.markitup.js"></script>
<!-- markItUp! toolbar settings -->
<script type="text/javascript" src="markitup/sets/html/set.js"></script>
<!-- markItUp! skin -->
<link rel="stylesheet" type="text/css" href="markitup/skins/simple/style.css" />
<!-- markItUp! toolbar skin -->
<link rel="stylesheet" type="text/css" href="markitup/skins/markitup/style.css" />
<link rel="stylesheet" type="text/css" href="markitup/sets/html/style.css" />
</head>
......@@ -27,11 +26,23 @@
.height(($(window).height())-(40));
$('iframe').width($(window).width()-24)
.height($(window).height()-46);
if(window.uniboard){
var html = window.uniboard.preference("html", "Welcome to HTML EDITOR");
if(window.sankore){
var html = window.sankore.preference("iHtml", "Welcome to HTML EDITOR");
$("#markItUp").val(html);
};
$("#markItUp").keyup(function(){
if(window.sankore){
window.sankore.setPreference("iHtml", $("#markItUp").val());
}
});
$("li").mouseout(function(){
if(window.sankore){
window.sankore.setPreference("iHtml", $("#markItUp").val());
}
});
$("#reset-btn").click(function(){
$(this).data("hidden", true).hide();
$('textarea').show();
......
......@@ -34,6 +34,6 @@ mySettings = {
{name:'Link', key:'L', openWith:'<a target="_blank" href="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>', closeWith:'</a>', placeHolder:'Your text to link...' },
{separator:'---------------' },
//{name:'Editor', className:'clean', replaceWith:function() { $('textarea').show(); $('iframe').remove();} },
{name:'Preview', className:'preview', call:'preview'}
{name:'', className:'preview', call:'preview'}
]
}
\ No newline at end of file
......@@ -3,95 +3,71 @@
// By Jay Salvat - http://markitup.jaysalvat.com/
// ------------------------------------------------------------------*/
.markItUp .markItUpButton1 a {
position:static;
margin-left:5px;
background-image:url(images/h1.png);
background-repeat:no-repeat;
}
.markItUp .markItUpButton2 a {
position:static;
background-image:url(images/h2.png);
background-repeat:no-repeat;
}
.markItUp .markItUpButton3 a {
position:static;
background-image:url(images/h3.png);
background-repeat:no-repeat;
}
.markItUp .markItUpButton4 a {
position:static;
background-image:url(images/h4.png);
background-repeat:no-repeat;
}
.markItUp .markItUpButton5 a {
position:static;
background-repeat:no-repeat;
background-image:url(images/h5.png);
}
.markItUp .markItUpButton6 a {
position:static;
background-repeat:no-repeat;
background-image:url(images/h6.png);
}
.markItUp .markItUpButton7 a {
position:static;
background-repeat:no-repeat;
background-image:url(images/paragraph.png);
}
.markItUp .markItUpButton8 a {
position:static;
background-repeat:no-repeat;
background-image:url(images/bold.png);
}
.markItUp .markItUpButton9 a {
position:static;
background-repeat:no-repeat;
background-image:url(images/italic.png);
}
.markItUp .markItUpButton10 a {
position:static;
background-repeat:no-repeat;
background-image:url(images/stroke.png);
}
.markItUp .markItUpButton11 a {
position:static;
background-repeat:no-repeat;
background-image:url(images/list-bullet.png);
}
.markItUp .markItUpButton12 a {
position:static;
background-repeat:no-repeat;
background-image:url(images/list-numeric.png);
}
.markItUp .markItUpButton13 a {
position:static;
background-repeat:no-repeat;
background-image:url(images/list-item.png);
}
.markItUp .markItUpButton14 a {
position:static;
background-repeat:no-repeat;
background-image:url(images/picture.png);
}
.markItUp .markItUpButton15 a {
position:static;
background-repeat:no-repeat;
background-image:url(images/link.png);
}
.markItUp .clean a {
position:static;
margin-top:-2px;
width:32px;
height:20px;
background-image:url(images/clean.png);
}
.markItUp .preview a {
position:static;
background-repeat:no-repeat;
margin-top:-2px;
width:46px;
height:20px;
......
body {
font:70% Verdana, Arial, Helvetica, sans-serif;
color: orange;
}
\ No newline at end of file
......@@ -41,7 +41,7 @@ body{
.stickytitle{
background-color: transparent;
min-width: 10px;
max-width: 60%;
max-width: 70%;
width: 100%;
padding-top: 4px;
height: 20px;
......
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
function init(){
var ubwidget = $("#ubwidget").ubwidget({
width:300,
width:360,
height:240
});
var checkMinimize = false;
var text = "";
var winwidth;
var minimizedHeight;
......@@ -12,18 +28,18 @@ function init(){
var scroll = false;
var defaultFontSize = 35;
var currentFontSize = defaultFontSize;
var header = $('<div id="head"><input id="headtitle" class="stickytitle"></input></div>');
var fontUp = $('<img src="images/stick-but-aplus.png">');
var fontDown = $('<img src="images/stick-but-aminus.png">');
var minimize = $('<img src="images/stick-but-minimize.png">');
var maximize = $('<img src="images/stick-but-maximize.png">');
var header = $('<div id="head"><input id="headtitle" class="stickytitle" readonly="readonly"/></div>');
var fontUp = $('<img src="images/stick-but-aplus.png"/>');
var fontDown = $('<img src="images/stick-but-aminus.png"/>');
var minimize = $('<img src="images/stick-but-minimize.png"/>');
var maximize = $('<img src="images/stick-but-maximize.png"/>');
var title = $('<div id="menu"></div>');
var textField = $('<div id="txt"></div>');
var shadow = $("<table width='100%' height='18' border='0' cellspacing='0' cellpadding='0'><tr><td id='sl' width='139'></td><td id='sc' style='background-image:url(images/shadowcenter.png)'>&nbsp;</td><td id='sr' width='139'></td></tr></table>")
.appendTo("body");
var shadowleft = $("<img src='images/shadowleft.png'>")
var shadowleft = $("<img src='images/shadowleft.png'/>")
.appendTo($("#sl"));
var shadowright = $("<img src='images/shadowright.png'>")
var shadowright = $("<img src='images/shadowright.png'/>")
.appendTo($("#sr"));
$("#ubwidget")
......@@ -44,7 +60,6 @@ function init(){
titletext.click(
function(){
titletext.focus();
});
......@@ -60,16 +75,16 @@ function init(){
controlTextField();
if(window.uniboard){
window.uniboard.setPreference("fontSize", newFontSize);
if(window.sankore){
window.sankore.setPreference("fontSize", newFontSize);
};
if(!checkMinimize)
textField.focus();
});
fontUp.click(
function(){
var newFontSize = parseInt(currentFontSize) + 3;
textField.css({
......@@ -78,41 +93,40 @@ function init(){
controlTextField();
if(window.uniboard){
window.uniboard.setPreference("fontSize", newFontSize);
if(window.sankore){
window.sankore.setPreference("fontSize", newFontSize);
};
if(!checkMinimize)
textField.focus();
});
minimize.click(
function(){
$('.ubw-container').animate({height:"26px"},100);
minimizedHeight = $('.ubw-container').height() ;
$('.ubw-container').animate({height:"26px"},500);
minimizedHeight = $('.ubw-container').height();
minimize.hide();
maximize.show();
controlTextField();
$('#headtitle').show();
window.resizeTo($('.ubw-container').width(),0);
$('#headtitle').focus();
//window.resizeTo($('.ubw-container').width(),0);
checkMinimize = true;
if(window.uniboard){
window.uniboard.setPreference("minimized", "true");
};
});
maximize.click(
function(){
var lastHeight = String(minimizedHeight)+'px';
$('.ubw-container').animate({height: lastHeight},100);
$('.ubw-container').animate({height: lastHeight},500);
maximize.hide();
minimize.show();
$('#headtitle').hide();
//textField.focus();
//window.resizeTo($('.ubw-container').width()+15,minimizedHeight+20);
checkMinimize = false;
window.resizeTo($('.ubw-container').width()+15,minimizedHeight+20);
if(window.uniboard){
window.uniboard.setPreference("minimized", "false");
};
});
header
......@@ -126,11 +140,11 @@ function init(){
.css("fontSize",currentFontSize)
.attr('contentEditable','true')
.keyup(function(){
if(window.uniboard){
window.uniboard.setPreference("text", textField.html());
if(window.sankore){
window.sankore.setPreference("noteText", textField.html());
}
controlTextField();
$('#headtitle').hide();
//$('#headtitle').hide();
});
if(textField.html().length === 0){
textField.focus();
......@@ -139,10 +153,10 @@ function init(){
.attr('rows','1');
function controlTextField(){
if(textField.text().length < 25){
var titleStr = textField.text() + '...';
$('#headtitle').val(titleStr);
}
if(textField.text().length < 25)
$('#headtitle').val(textField.text());
else
$('#headtitle').val(textField.text().substr(0,25) + "...");
textField.css({
height : $('.ubw-container').height()-28,
......@@ -161,17 +175,18 @@ function init(){
textField.bind('paste', function(e) {
controlTextField();
});
$('#headtitle').hide();
if(window.uniboard){
text = window.uniboard.preference('text', text);
currentFontSize = window.uniboard.preference('fontSize', defaultFontSize);
if(window.sankore){
text = window.sankore.preference('noteText', text);
currentFontSize = window.sankore.preference('fontSize', defaultFontSize);
$('.ubw-container').css({
width:parseInt(window.uniboard.preference('width', "300")),
height:parseInt(window.uniboard.preference('height', "240"))
width:window.innerWidth - 2,
height:window.innerHeight - 20
});
if(window.uniboard.preference('minimized', "false") == "true"){
if(checkMinimize){
minimize.trigger("click");
};
......@@ -198,13 +213,12 @@ function init(){
window.resizeTo(winwidth,600);
}
$('.ubw-container').width(winwidth-2) ;
$('.ubw-container').height(winheight-20) ;
$('.ubw-container').width(winwidth-2);
if(window.uniboard){
window.uniboard.setPreference("width", winwidth-2);
window.uniboard.setPreference("height", winheight-20);
}
if(checkMinimize)
minimizedHeight = winheight-40;
else
$('.ubw-container').height(winheight-40);
controlTextField();
}
......
function init(){
var ubwidget = $("#ubwidget").ubwidget({
width:300,
height:240
});
var text = "";
var winwidth;
var minimizedHeight;
var winheight;
var scroll = false;
var defaultFontSize = 35;
var currentFontSize = defaultFontSize;
var header = $('<div id="head"><input id="headtitle" class="stickytitle" readonly="readonly"></input></div>');
var fontUp = $('<img src="images/stick-but-aplus.png">');
var fontDown = $('<img src="images/stick-but-aminus.png">');
var minimize = $('<img src="images/stick-but-minimize.png">');
var maximize = $('<img src="images/stick-but-maximize.png">');
var title = $('<div id="menu"></div>');
var textField = $('<div id="txt"></div>');
var shadow = $("<table width='100%' height='18' border='0' cellspacing='0' cellpadding='0'><tr><td id='sl' width='139'></td><td id='sc' style='background-image:url(images/shadowcenter.png)'>&nbsp;</td><td id='sr' width='139'></td></tr></table>")
.appendTo("body");
var shadowleft = $("<img src='images/shadowleft.png'>")
.appendTo($("#sl"));
var shadowright = $("<img src='images/shadowright.png'>")
.appendTo($("#sr"));
$("#ubwidget")
.append(header)
.append(textField);
fontUp.addClass('menuElement');
fontDown.addClass('menuElement');
minimize.addClass('menuElement');
maximize.addClass('menuElement')
.hide();
header.append(maximize)
.append(minimize)
.append(fontUp)
.append(fontDown);
var titletext = header.find('textarea');
titletext.click(
function(){
titletext.focus();
});
fontDown.click(
function(){
var newFontSize = parseInt(currentFontSize) - 3;
textField.css({
fontSize : newFontSize
})
controlTextField();
if(window.sankore){
window.sankore.setPreference("fontSize", newFontSize);
};
//textField.focus();
});
fontUp.click(
function(){
var newFontSize = parseInt(currentFontSize) + 3;
textField.css({
fontSize : newFontSize
})
controlTextField();
if(window.sankore){
window.sankore.setPreference("fontSize", newFontSize);
};
//textField.focus();
});
minimize.click(
function(){
$('.ubw-container').animate({height:"26px"},100);
minimizedHeight = $('.ubw-container').height() ;
minimize.hide();
maximize.show();
$('#headtitle').show();
window.resizeTo($('.ubw-container').width(),0);
if(window.sankore){
window.sankore.setPreference("minimized", "true");
};
});
maximize.click(
function(){
var lastHeight = String(minimizedHeight)+'px';
$('.ubw-container').animate({height: lastHeight},100);
maximize.hide();
minimize.show();
$('#headtitle').hide();
window.resizeTo($('.ubw-container').width()+15,minimizedHeight+20);
if(window.sankore){
window.sankore.setPreference("minimized", "false");
};
});
header
.append(title);
title
.addClass('menu');
header
.addClass('head');
textField
.addClass("textField")
.css("fontSize",currentFontSize)
.attr('contentEditable','true')
.keyup(function(){
if(window.sankore){
window.sankore.setPreference("text", textField.html());
}
controlTextField();
$('#headtitle').hide();
});
if(textField.html().length === 0){
textField.focus();
}
titletext
.attr('rows','1');
function controlTextField(){
if(textField.text().length < 25){
var titleStr = textField.text() + '...';
$('#headtitle').val(titleStr);
}
textField.css({
height : $('.ubw-container').height()-28,
})
if(textField.text().length == 0){
textField.css({
fontSize: defaultFontSize,
});
}
currentFontSize = textField.css('fontSize').replace('px','');
}
textField.bind('paste', function(e) {
controlTextField();
});
$('#headtitle').hide();
if(window.sankore){
text = window.sankore.preference('text', text);
currentFontSize = window.sankore.preference('fontSize', defaultFontSize);
$('.ubw-container').css({
width:parseInt(window.sankore.preference('width', "300")),
height:parseInt(window.sankore.preference('height', "240"))
});
if(window.sankore.preference('minimized', "false") == "true"){
minimize.trigger("click");
};
textField.css({
fontSize : parseInt(currentFontSize)
})
textField.html(text);
}
window.onresize = function(){
winwidth = window.innerWidth;
winheight = window.innerHeight;
if(winwidth <= 290)
{
window.resizeTo(290,winheight);
}
if(winheight <= 100)
{
window.resizeTo(winwidth,100);
}
if(winheight > 600)
{
window.resizeTo(winwidth,600);
}
$('.ubw-container').width(winwidth-2) ;
$('.ubw-container').height(winheight-20) ;
if(window.sankore){
window.sankore.setPreference("width", winwidth-2);
window.sankore.setPreference("height", winheight-20);
}
controlTextField();
}
}
\ No newline at end of file
......@@ -12,7 +12,6 @@
<script src="js/jquery.center.js" type="text/javascript"></script>
<script src="js/DD_roundies_0.0.2a.js" type="text/javascript"></script>
<script src="js/ubw-main.js" type="text/javascript"></script>
<script src="js/calculate.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/ubwidget.css" />
......
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
function init(){
var tempHours;
var tempMinutes;
var tempSeconds;
if(window.sankore){
tempHours = window.sankore.preference("hours","00");
tempMinutes = window.sankore.preference("minutes","00");
tempSeconds = window.sankore.preference("seconds","00");
} else {
tempHours = "00";
tempMinutes = "00";
tempSeconds = "00";
}
var ubwidget = $("#ubwidget").ubwidget({
width:252,
height:89
});
var space = $("<div style='font-size:15px'>h</div>").ubwbutton({w:17, h:68});
var space = $("<div style='font-size:15px'>h</div>").ubwbutton({
w:17,
h:68
});
space.find(".ubw-button-body").css({
borderLeft:"none",
borderRight:"none"
});
var spaceb = $("<div style='font-size:15px'>m</div>").ubwbutton({w:17, h:68});
var spaceb = $("<div style='font-size:15px'>m</div>").ubwbutton({
w:17,
h:68
});
spaceb.find(".ubw-button-body").css({
borderLeft:"none",
borderRight:"none"
});
spaceb.find(".ubw-button-canvas").unbind("mouseenter");
var spacec = $("<div style='font-size:15px'>s</div>").ubwbutton({w:17, h:68});
var spacec = $("<div style='font-size:15px'>s</div>").ubwbutton({
w:17,
h:68
});
spacec.find(".ubw-button-body").css({
borderLeft:"none",
borderRight:"none"
});
spacec.find(".ubw-button-canvas").unbind("mouseenter");
var hours = $("<div class='scroll' id='hours'>00</div>").ubwbutton({w:52, h:68}, {bottom:1, top:1, right:0, left:0});
var hours = $("<div class='scroll' id='hours'>" + tempHours + "</div>").ubwbutton({
w:52,
h:68
}, {
bottom:1,
top:1,
right:0,
left:0
});
hours.find(".ubw-button-body").css({
borderRight:"none"
});
var minutes = $("<div class='scroll' id='minutes'>00</div>").ubwbutton({w:52, h:68}, {bottom:1, top:1, right:0, left:0});
var minutes = $("<div class='scroll' id='minutes'>" + tempMinutes + "</div>").ubwbutton({
w:52,
h:68
}, {
bottom:1,
top:1,
right:0,
left:0
});
minutes.find(".ubw-button-body").css({
borderLeft:"none",
borderRight:"none"
});
var seconds = $("<div class='scroll' id='seconds'>00</div>").ubwbutton({w:52, h:68}, {bottom:1, top:1, right:0, left:0});
var seconds = $("<div class='scroll' id='seconds'>" + tempSeconds + "</div>").ubwbutton({
w:52,
h:68
}, {
bottom:1,
top:1,
right:0,
left:0
});
seconds.find(".ubw-button-body").css({
borderLeft:"none",
borderRight:"none"
......@@ -65,9 +127,9 @@ function init(){
window.widget.onremove = function(){
if(play){
$("#pausebutton").trigger("click");
}
};
};
};
}
pause.toggle(
function(){
......@@ -76,6 +138,10 @@ function init(){
$(this).find("img").attr("src", "images/button_play_invert.png");
},
function(){
if($("#hours").find(".ubw-button-content").text() != "00" ||
$("#minutes").find(".ubw-button-content").text() != "00" ||
$("#seconds").find(".ubw-button-content").text() != "00") {
play = true;
var timeInSeconds = parseInt($("#seconds").find(".ubw-button-content").text(), 10) +
parseInt($("#minutes").find(".ubw-button-content").text(), 10)*60 +
......@@ -85,6 +151,7 @@ function init(){
$(this).find("img").attr("src", "images/button_pause_invert.png");
}
}
);/*.mouseenter(function(){
var o = $(this).find("img").attr("src");
$(this).find("img").attr("src", o.split(".")[0]+"xov.png");
......@@ -93,23 +160,43 @@ function init(){
$(this).find("img").attr("src", o.split("x")[0]+".png");
});*/
setTimeout(function(){pause.trigger("click")}, 200);
setTimeout(function(){
pause.trigger("click")
}, 200);
hours
.bind("mousedown", {button:hours}, timeButtonDownHandler)
.find(".ubw-button-arrowTop").bind("mousedown",{button:hours}, addbtn);
.bind("mousedown", {
button:hours
}, timeButtonDownHandler)
.find(".ubw-button-arrowTop").bind("mousedown",{
button:hours
}, addbtn);
hours
.find(".ubw-button-arrowBottom").bind("mousedown",{button:hours}, rembtn);
.find(".ubw-button-arrowBottom").bind("mousedown",{
button:hours
}, rembtn);
minutes
.bind("mousedown", {button:minutes}, timeButtonDownHandler)
.find(".ubw-button-arrowTop").bind("mousedown",{button:minutes}, addbtn);
.bind("mousedown", {
button:minutes
}, timeButtonDownHandler)
.find(".ubw-button-arrowTop").bind("mousedown",{
button:minutes
}, addbtn);
minutes
.find(".ubw-button-arrowBottom").bind("mousedown",{button:minutes}, rembtn);
.find(".ubw-button-arrowBottom").bind("mousedown",{
button:minutes
}, rembtn);
seconds
.bind("mousedown", {button:seconds}, timeButtonDownHandler)
.find(".ubw-button-arrowTop").bind("mousedown",{button:seconds}, addbtn);
.bind("mousedown", {
button:seconds
}, timeButtonDownHandler)
.find(".ubw-button-arrowTop").bind("mousedown",{
button:seconds
}, addbtn);
seconds
.find(".ubw-button-arrowBottom").bind("mousedown",{button:seconds}, rembtn);
.find(".ubw-button-arrowBottom").bind("mousedown",{
button:seconds
}, rembtn);
$(document).mouseup(function(){
/*if(isScrolling){
......@@ -140,7 +227,6 @@ function init(){
.append(btnsWrapper);
clearTimeout(currentTimer);
updateChronometer(0);
var currentTimer = null;
var incDecTime = null;
......@@ -160,8 +246,10 @@ function init(){
content.text(formatTime(parseInt(content.text())+1));
incDecTime = setTimeout(function(){addbtn(m)},150);
};
incDecTime = setTimeout(function(){
addbtn(m)
},150);
}
function rembtn(m){
......@@ -174,13 +262,32 @@ function init(){
content.text(formatTime(parseInt(content.text())-1));
incDecTime = setTimeout(function(){rembtn(m)},150);
};
incDecTime = setTimeout(function(){
rembtn(m);
},150);
}
function timeButtonDownHandler(m){
var button = m.data.button;
var mouseStart = {pageX:m.pageX, pageY:m.pageY};
var content = button.find(".ubw-button-content");
if(window.sankore){
var temp = button.attr("id");
switch(temp){
case "seconds":
window.sankore.setPreference("seconds", content.text());
break;
case "minutes":
window.sankore.setPreference("minutes", content.text());
break;
case "hours":
window.sankore.setPreference("hours", content.text());
break;
}
}
/*var mouseStart = {
pageX:m.pageX,
pageY:m.pageY
};*/
var val = content.text();
isScrolling = true;
reverse = true;
......@@ -204,44 +311,52 @@ function init(){
content.text(content.text()%60);
if(content.text() < 0)content.text(0);
});*/
};
}
function buttonOverHandler(e) {
var button = e.data.button;
var buttonbody = button.find(".ubw-button-body");
button.css({zIndex:1})
button.css({
zIndex:1
})
buttonbody.removeClass("ubw-button-out")
.addClass("ubw-button-over")
.css({fontSize:"125%"});
.css({
fontSize:"125%"
});
button.find(".ubw-button-canvas").find(".ubw-button-arrowTop").children("img").attr("src", "images/arrows_over/top.png");
button.find(".ubw-button-canvas").find(".ubw-button-arrowBottom").children("img").attr("src", "images/arrows_over/bottom.png");
};
}
function buttonOutHandler(e){
var button = e.data.button;
var buttonbody = button.find(".ubw-button-body");
button.css({zIndex:0});
button.css({
zIndex:0
});
buttonbody.removeClass("ubw-button-over")
.addClass("ubw-button-out")
.css({
fontSize:"100%",
fontSize:"100%"
});
button.find(".ubw-button-canvas").find(".ubw-button-arrowTop").children("img").attr("src", "images/arrows_out/top.png");
button.find(".ubw-button-canvas").find(".ubw-button-arrowBottom").children("img").attr("src", "images/arrows_out/top.png");
};
}
function updateChronometerReverse(seconds){
currentTimer = setTimeout(function(){updateChronometerReverse(seconds-1)}, 1000);
currentTimer = setTimeout(function(){
updateChronometerReverse(seconds-1)
}, 1000);
if (seconds < 6 && seconds > 0){
DHTMLSound('beep.wav');
}else if(seconds === 0){
DHTMLSound('finalbeep.wav');
};
}
if(seconds < 1){
seconds = 0;
......@@ -260,6 +375,12 @@ function init(){
minutesValue.text(formatTime(currentMinute));
secondsValue.text(formatTime(currentSecond));
if(window.sankore){
window.sankore.setPreference("hours", hoursValue.text());
window.sankore.setPreference("minutes", minutesValue.text());
window.sankore.setPreference("seconds", secondsValue.text());
}
}
function formatTime(time){
......
<!--
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
......@@ -18,13 +32,13 @@
var oembedUrl = "";
var language = "en";
function initialize() {
if(window.uniboard){
oembedUrl = window.uniboard.preference("oembedUrl", "");
}else{
oembedUrl = "";
};
if(window.sankore){
oembedUrl = window.sankore.preference("oembedUrl", "");
}
window.resizeTo(426, 630);
if(oembedUrl.length > 0){
$("#textbox").val(oembedUrl);
$("#search-button").trigger("click");
......@@ -41,28 +55,16 @@
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({
$("#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());
}).empty().oembed($("#textbox").val());
checkcontent();
})
.mouseenter(function(){
......@@ -74,14 +76,6 @@
.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();
......@@ -94,72 +88,62 @@
$("#show-area").fadeOut(0);
$("#inputfield").show();
$("#shadow").show();
$("#container")
.removeClass("show").addClass("change");
$("#container").removeClass("show").addClass("change");
adaptWidgetSize(18, 88);
})
.mouseenter(function(){
$(this)
.addClass("over");
$(this).addClass("over");
})
.mouseleave(function(){
$(this)
.removeClass("over");
$(this).removeClass("over");
});
function checkcontent(){
if($("#embeded-content").html().length != 0 && $("#embeded-content").children(":first").width() > 0){
$("#embeded-content embed").attr("wmode", "transparent");
var embeded_content_html = $("#embeded-content").html();
$("#embeded-content").empty().html(embeded_content_html);
clearTimeout(resizer);
resizerIndex = 0;
if(window.uniboard){
window.uniboard.setPreference("oembedUrl", $("#textbox").val());
if(window.sankore){
window.sankore.setPreference("oembedUrl", $("#textbox").val());
};
$("#inputfield")
.hide();
$("#shadow")
.hide();
$("#embeded-content")
.css({
$("#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({
//alert(html);
//alert($("#embeded-content").children(":first").width() + " | " + $("#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){
if(resizerIndex > 50){
resizerIndex = 0;
$("#container")
.removeClass("show").addClass("error");
$("#arrow")
.show();
$("#embeded-content")
.css({
$("#container").removeClass("show").addClass("error");
$("#arrow").show();
$("#embeded-content").css({
marginTop:0,
marginLeft:0
})
.width(395)
}).width(395)
.load("locales/" + language + "/error.html",
function(){
adaptWidgetSize(20, 125);
});
$("#container-shadow")
.show();
$("#container-shadow").show();
}else{
resizer = setTimeout(function(){checkcontent()}, 100);
resizerIndex++;
......@@ -176,25 +160,27 @@
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.uniboard.resize(widgetWidth, widgetHeight);
//alert(widgetWidth + " | " + widgetHeight);
//window.resizeTo(widgetWidth, $(window).height());
window.resizeTo(widgetWidth, widgetHeight);
window.sankore.resize(widgetWidth, widgetHeight);
};
function cssToInt(cssvalue){
return(parseInt(cssvalue.replace("px", "")));
};
if (window.widget) {
/*if (window.widget) {
window.widget.onremove = function(){
//$("#show-inputfield-button").trigger("click");
$("#embeded-content")
.empty()
.oembed($("#textbox").val());
}
}
}*/
window.initialize();
initialize();
});
</script>
......
......@@ -4,5 +4,5 @@
<div id="content">
<h1>This Url cannot be used.</h1>
<a href="javascript:$('#container').load('html/howto_' + language + '.html');">Back</a>
<a href="javascript:window.location.reload();">Back</a>
</div>
<!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>
\ No newline at end of file
......@@ -16,10 +16,14 @@
<script type="text/javascript">
$(document).ready(function(){
var resizer; // Timer
var resizerIndex;
//var resizer; // Timer
//var resizerIndex;
var currentHistory = 0;
var references = new Array();
var globalWidth = 850;
var globalHeight = 700;
var language;
var url;
var url = "";
var margins = {
top: cssToInt($("body").css("margin-top")),
right: cssToInt($("body").css("margin-right")),
......@@ -27,10 +31,10 @@
left: cssToInt($("body").css("margin-left"))
};
resizerIndex = 0;
//resizerIndex = 0;
if(window.uniboard){
url = window.uniboard.preference("url", "");
if(window.sankore){
url = window.sankore.preference("url", "");
}else{
url = "";
};
......@@ -40,12 +44,18 @@
$("#back-button")
.click(function(){
frames['web-content'].history.go(-1);
if((currentHistory - 1) > 0){
$("#textbox").val(references[--currentHistory-1]);
frames['web-content'].location.href = references[currentHistory-1];
}
});
$("#forward-button")
.click(function(){
frames['web-content'].history.go(+1);
if(currentHistory < references.length) {
$("#textbox").val(references[currentHistory++]);
frames['web-content'].location.href = $("#textbox").val();
}
});
$("#textbox").keypress(function(e) {
......@@ -56,6 +66,7 @@
$("#search-button")
.click(function(){
if($("#textbox").val().length > 0){
var url = $("#textbox").val();
var urlStart = url.split("://");
......@@ -63,25 +74,40 @@
url = "http://" + url;
};
window.resizeTo(850, 700);
if(checkURLs(references, url)){
if(currentHistory == references.length)
references[currentHistory++] = url;
else
references = insertInto(references, currentHistory++, url);
}
window.resizeTo(globalWidth, globalHeight);
$("#container")
.removeClass("welcome")
.removeClass("change")
.removeClass("error")
.addClass("load");
$("#container-shadow")
.hide();
$("#arrow")
.hide();
$("#embeded-content")
.hide();
$("#web-content")
.show();
$("#container-shadow").hide();
$("#arrow").hide();
$("#embeded-content").hide();
$("#web-content").show();
frames['web-content'].location.href = url;
checkcontent();
} else {
$("#embeded-content").load("locales/" + "en" + "/howto.html"); // Welcome screen with some explanations
$("#container")
.addClass("welcome")
.addClass("change")
.addClass("error")
.removeClass("load");
$("#container-shadow").show();
$("#arrow").show();
$("#embeded-content").show();
$("#web-content").hide();
window.resizeTo(550, 280);
}
})
.mouseenter(function(){
$(this)
......@@ -99,14 +125,15 @@
$("#embeded-content").load("locales/" + "en" + "/howto.html"); // Welcome screen with some explanations
};
$("#show-inputfield-button")
/*$("#show-inputfield-button")
.click(
function(){
$("#show-area").hide();
$("#inputfield").show();
$("#shadow").show();
$("#container")
.removeClass("show").addClass("change");
.removeClass("show")
.addClass("change");
adaptWidgetSize(18, 82);
})
.mouseenter(function(){
......@@ -116,39 +143,58 @@
.mouseleave(function(){
$(this)
.removeClass("over");
});
});*/
$(window).resize(function(){
globalWidth = $(window).width();
globalHeight = $(window).height();
$("#web-content")
.attr("width", $(window).width() - 25)
.attr("height", $(window).height() - 90);
.attr("width", globalWidth - 25)
.attr("height", globalHeight - 90);
});
function checkcontent(){
clearTimeout(resizer);
resizerIndex = 0;
//clearTimeout(resizer);
//resizerIndex = 0;
if(window.uniboard){
window.uniboard.setPreference("url", $("#textbox").val());
if(window.sankore){
window.sankore.setPreference("url", $("#textbox").val());
};
$("#embeded-content")
.hide();
$("#container")
.removeClass("load").addClass("show");
$("#embeded-content").hide();
$("#container").removeClass("load").addClass("show");
};
function adaptWidgetSize(adjustmentX, adjustmentY){
/*function adaptWidgetSize(adjustmentX, adjustmentY){
var widgetWidth = $("#container").width() + margins.right + margins.left + adjustmentX;
var widgetHeight = $("#container").position().top + $("#container").height() + margins.bottom + adjustmentY;
window.resizeTo(widgetWidth, $(window).height());
window.resizeTo($(window).width(), widgetHeight);
};
};*/
function cssToInt(cssvalue){
return(parseInt(cssvalue.replace("px", "")));
};
}
function checkURLs(arr, value){
for(var i = 0; i < arr.length; i++)
if(arr[i] == value)
return false;
return true;
}
function insertInto(arr, index, url){
var newArr = new Array();
for(var i = 0, j = 0; i < arr.length; i++, j++)
if(i == index - 1){
newArr[j] = arr[i];
newArr[++j] = url;
} else
newArr[j] = arr[i];
return newArr;
}
});
</script>
......
......@@ -4,13 +4,13 @@
xmlns:ub="http://uniboard.mnemis.com/widgets"
id="http://www.example.net/widgets/helloworld"
version="1.0"
width="200"
height="700"
width="660"
height="410"
ub:resizable="true">
<name>Rich Note</name>
<description>Allows the teacher to attach a rich note to the page.</description>
<name>Rich Text Editor</name>
<description>Allows the teacher to attach a text editor to the page.</description>
<preference name="skin"
value="uniboard"/>
value="sankore"/>
<content src="index.html"/>
</widget>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Template</title>
<!--Styles-->
<link rel="stylesheet" type="text/css" href="styles/master.css">
<link rel="stylesheet" type="text/css" href="styles/wcontainer.css">
<link rel="stylesheet" type="text/css" href="styles/app.css">
<!--Scripts-->
<script type="text/javascript" src="scripts/jquery144.js"></script>
<script type="text/javascript" src="scripts/ext.js"></script>
<script type="text/javascript" src="scripts/wcontainer.js"></script>
<!-- <script type="text/javascript" src="scripts/tpl.js"></script> -->
<script type="text/javascript" src="scripts/app.js"></script>
<!-- Load TinyMCE -->
<script type="text/javascript" src="tinymcejq/jquery.tinymce.js"></script>
<!-- /TinyMCE -->
<title>Very nice text editor!!11</title>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<script type="text/javascript" src="scripts/ckeditor.js"></script>
<link href="styles/sample.css" rel="stylesheet" type="text/css" />
<script>
window.onload = function() {
CKEDITOR.replace( 'fineEditor',
{
language : 'en',
toolbar :
[
{ name: 'document', items : [ 'Source','-','Save','NewPage','Preview' ] },
{ name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] },
{ name: 'editing', items : [ 'Find','Replace','-','SelectAll' ] },
,'/',
{ name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ] },
{ name: 'paragraph', items : [ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl' ] },
{ name: 'links', items : [ 'Link','Unlink','Anchor' ] },
{ name: 'insert', items : [ 'Image','HorizontalRule','SpecialChar','PageBreak','Iframe' ] },
'/',
{ name: 'styles', items : [ 'Styles','Format','Font','FontSize' ] },
{ name: 'colors', items : [ 'TextColor','BGColor' ] },
{ name: 'tools', items : [ 'ShowBlocks', 'About' ] }
]
});
/*window.onresize(function(){
globalWidth = $(window).width();
globalHeight = $(window).height();
$("#web-content")
.attr("width", globalWidth - 25)
.attr("height", globalHeight - 90);
});*/
}
</script>
</head>
<body>
<div id="ub-widget"></div>
<textarea cols="80" id="fineEditor" name="fineEditor" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;.</textarea>
</body>
</html>
#include <QRegExp>
#include <QSvgGenerator>
#include <QSvgRenderer>
#include "UBCFFSubsetAdaptor.h"
#include "core/UBPersistenceManager.h"
#include "document/UBDocumentProxy.h"
#include "domain/UBItem.h"
#include "domain/UBGraphicsPolygonItem.h"
#include "domain/UBGraphicsStroke.h"
#include "UBMetadataDcSubsetAdaptor.h"
#include "UBThumbnailAdaptor.h"
#include "UBSvgSubsetAdaptor.h"
//enum of xmlparse status
//tag names definition
//use them everiwhere!
static char* tElement = "element";
static char* tEllipse = "ellipse";
static char* tIwb = "iwb";
static char* tMeta = "meta";
static char* tPage = "page";
static char* tPageset = "pageset";
static char* tPolygon = "polygon";
static char* tRect = "rect";
static char* tSvg = "svg";
static char* tTextarea = "textarea";
//attribute names definition
static char* aFill = "fill";
static char* aFillopacity = "fill-opacity";
static char* aX = "x";
static char* aY = "y";
static char* aWidth = "width";
static char* aHeight = "height";
static char* aStroke = "stroke";
static char* aStrokewidth = "stroke-width";
static char* aCx = "cx";
static char* aCy = "cy";
static char* aRx = "rx";
static char* aRy = "ry";
static char* aTransform = "transform";
static char* aViewbox = "viewbox";
UBCFFSubsetAdaptor::UBCFFSubsetAdaptor()
{
}
bool UBCFFSubsetAdaptor::ConvertCFFFileToUbz(QString &cffSourceFile, UBDocumentProxy* pDocument)
{
//TODO
// fill document proxy metadata
// create persistance manager to save data using proxy
// create UBCFFSubsetReader and make it parse cffSourceFolder
QFile file(cffSourceFile);
if (!file.open(QIODevice::ReadOnly))
{
qWarning() << "Cannot open file " << cffSourceFile << " for reading ...";
return false;
}
QByteArray data = file.readAll();
if (data.length() == 0)
{
qWarning() << "Either content file " << cffSourceFile << " is empty or failed to read from file";
file.close();
return false;
}
UBCFFSubsetReader cffReader(pDocument, data);
bool result = cffReader.parse();
file.close();
return result;
}
UBCFFSubsetAdaptor::UBCFFSubsetReader::UBCFFSubsetReader(UBDocumentProxy *proxy, QByteArray &content):
mReader(content), mProxy(proxy), currentState(NONE)
{
//TODO parse
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parse()
{
UBMetadataDcSubsetAdaptor::persist(mProxy);
mIndent = "";
if (!getTempFileName())
return false;
bool result = parseDoc();
if (result)
result = mProxy->pageCount() != 0;
if (QFile::exists(mTempFilePath))
QFile::remove(mTempFilePath);
return result;
}
int UBCFFSubsetAdaptor::UBCFFSubsetReader::PopState()
{
if (stateStack.count() == 0)
currentState = NONE;
else
currentState = stateStack.pop();
return currentState;
}
void UBCFFSubsetAdaptor::UBCFFSubsetReader::PushState(int state)
{
if (currentState != NONE)
stateStack.push(currentState);
currentState = state;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseDoc()
{
while (!mReader.atEnd())
{
mReader.readNext();
if (mReader.isStartElement())
{
if (!parseCurrentElementStart())
return false;
}
else
if (mReader.isCharacters())
{
if (!parseCurrentElementCharacters())
return false;
}
else
if (mReader.isEndElement())
{
if (!parseCurrentElementEnd())
return false;
}
}
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseCurrentElementStart()
{
QStringRef elName = mReader.name();
QString log = QString("%1<%2>").arg(mIndent).arg(elName.toString());
qDebug() << log;
mIndent += " ";
if ( elName == tIwb)
{
if (!parseIwb())
return false;
PushState(IWB);
}
else
if ( elName == tMeta)
{
if (!parseIwbMeta())
return false;
}
else
if ( elName == tSvg)
{
if (!parseSvg())
return false;
PushState(SVG);
}
else
if ( elName == tRect)
{
if (!parseRect())
return false;
}
else
if ( elName == tEllipse)
{
if (!parseEllipse())
return false;
}
else
if ( elName == tTextarea)
{
if (!parseTextArea())
return false;
}
else
if ( elName == tPolygon)
{
if (!parsePolygon())
return false;
}
else
if ( elName == tPage)
{
if (!parsePage())
return false;
PushState(PAGE);
}
else
if ( elName == tPageset)
{
if (!parsePageSet())
return false;
PushState(PAGESET);
}
else
if ( elName == tElement)
{
if (!parseIwbElementRef())
return false;
}
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseCurrentElementCharacters()
{
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseCurrentElementEnd()
{
QStringRef elName = mReader.name();
mIndent.remove(0,1);
QString log = QString("%1</%2>").arg(mIndent).arg(elName.toString());
qDebug() << log;
if ( elName == tIwb)
PopState();
else
if ( elName == tMeta)
{
}
else
if ( elName == tSvg)
{
persistCurrentScene();
PopState();
}
else
if ( elName == tPage)
{
persistCurrentScene();
PopState();
}
else
if ( elName == tPageset)
{
PopState();
}
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwb()
{
if (!stateStack.empty() || currentState != NONE)
{
qWarning() << "iwb content parse error, unexpected iwb tag at line" << mReader.lineNumber();
return false;
}
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbMeta()
{
if (currentState != IWB)
{
qWarning() << "iwb content parse error, unexpected meta tag at line" << mReader.lineNumber();
return false;
}
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvg()
{
if (currentState != IWB)
{
qWarning() << "iwb content parse error, unexpected svg tag at line" << mReader.lineNumber();
return false;
}
getViewBoxDimenstions(mReader.attributes().value(aViewbox).toString());
mSize = QSize(mReader.attributes().value(aWidth).toString().toInt(),
mReader.attributes().value(aHeight).toString().toInt());
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseRect()
{
if (currentState != SVG && currentState != PAGE)
{
qWarning() << "iwb content parse error, unexpected rect tag at line" << mReader.lineNumber();
return false;
}
//create new scene if it's not created yet (for one page document case)
if (currentState == SVG && mCurrentScene == NULL)
createNewScene();
//fill and stroke color
QColor fillColor = colorFromString(mReader.attributes().value(aFill).toString());
QColor strokeColor = colorFromString(mReader.attributes().value(aStroke).toString());
int strokeWidth = mReader.attributes().value(aStrokewidth).toString().toInt();
//rect lef top corner coordinates
qreal x1 = mReader.attributes().value(aX).toString().toDouble();
qreal y1 = mReader.attributes().value(aY).toString().toDouble();
//rect dimensions
qreal width = mReader.attributes().value(aWidth).toString().toDouble();
qreal height = mReader.attributes().value(aHeight).toString().toDouble();
//init svg generator with temp file
QSvgGenerator *generator = createSvgGenerator();
//init painter to paint to svg
QPainter painter;
painter.begin(generator);
//check if rect is rotated
if (mReader.attributes().hasAttribute(aTransform))
{
QTransform transform = transformFromString(mReader.attributes().value(aTransform).toString());
painter.setTransform(transform);
//change left top coordinates to correspond to transformation
x1 -= transform.dx();
y1 -= transform.dy();
}
painter.setBrush(QBrush(fillColor));
painter.fillRect(x1, y1, width, height, fillColor);
QPen pen(strokeColor);
pen.setWidth(strokeWidth);
painter.setPen(pen);
painter.drawRect(x1, y1, width, height);
painter.end();
//add resulting svg file to scene
mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName()));
delete generator;
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseEllipse()
{
if (currentState != SVG && currentState != PAGE)
{
qWarning() << "iwb content parse error, unexpected ellipse tag at line" << mReader.lineNumber();
return false;
}
//create new scene if it's not created yet (for one page document case)
if (currentState == SVG && mCurrentScene == NULL)
createNewScene();
QSvgGenerator *generator = createSvgGenerator();
//fill and stroke color
QColor fillColor = colorFromString(mReader.attributes().value(aFill).toString());
QColor strokeColor = colorFromString(mReader.attributes().value(aStroke).toString());
int strokeWidth = mReader.attributes().value(aStrokewidth).toString().toInt();
//ellipse center coordinates
qreal cx = mReader.attributes().value(aCx).toString().toDouble();
qreal cy = mReader.attributes().value(aCy).toString().toDouble();
//ellipse horisontal and vertical radius
qreal rx = mReader.attributes().value(aRx).toString().toDouble();
qreal ry = mReader.attributes().value(aRy).toString().toDouble();
//we should change cx and cy by rx and ry because qpainter
//draws ellipse by its rect coordinates
cx -= rx;
cy -= ry;
//init painter to paint to svg
QPainter painter;
painter.begin(generator);
//check if ellipse is rotated
if (mReader.attributes().hasAttribute(aTransform))
{
QTransform transform = transformFromString(mReader.attributes().value(aTransform).toString());
painter.setTransform(transform);
//change cx and cy to correspond to transformation
cx -= transform.dx();
cy -= transform.dy();
}
QPen pen(strokeColor);
pen.setWidth(strokeWidth);
painter.setPen(pen);
painter.setBrush(QBrush(fillColor));
painter.drawEllipse(cx, cy, rx * 2, ry * 2);
painter.end();
//add resulting svg file to scene
mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName()));
delete generator;
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseTextArea()
{
if (currentState != SVG && currentState != PAGE)
{
qWarning() << "iwb content parse error, unexpected textarea tag at line" << mReader.lineNumber();
return false;
}
//create new scene if it's not created yet (for one page document case)
if (currentState == SVG && mCurrentScene == NULL)
createNewScene();
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parsePolygon()
{
if (currentState != SVG && currentState != PAGE)
{
qWarning() << "iwb content parse error, unexpected polygon tag at line" << mReader.lineNumber();
return false;
}
//create new scene if it's not created yet (for one page document case)
if (currentState == SVG && mCurrentScene == NULL)
createNewScene();
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parsePage()
{
if (currentState != PAGESET && currentState != SVG)
{
qWarning() << "iwb content parse error, unexpected page tag at line" << mReader.lineNumber();
return false;
}
createNewScene();
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parsePageSet()
{
if (currentState != SVG)
{
qWarning() << "iwb content parse error, unexpected page tag at line" << mReader.lineNumber();
return false;
}
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbElementRef()
{
if (currentState != IWB)
{
qWarning() << "iwb content parse error, unexpected element tag at line" << mReader.lineNumber();
return false;
}
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::createNewScene()
{
mCurrentScene = UBPersistenceManager::persistenceManager()->createDocumentSceneAt(mProxy, mProxy->pageCount());
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::persistCurrentScene()
{
if (mCurrentScene != 0 && mCurrentScene->isModified())
{
UBThumbnailAdaptor::persistScene(mProxy->persistencePath(), mCurrentScene, mProxy->pageCount() - 1);
UBSvgSubsetAdaptor::persistScene(mProxy, mCurrentScene, mProxy->pageCount() - 1);
mCurrentScene->setModified(false);
mCurrentScene = 0;
}
return true;
}
QColor UBCFFSubsetAdaptor::UBCFFSubsetReader::colorFromString(const QString& clrString)
{
//init regexp with pattern
//pattern corresponds to strings like 'rgb(1,2,3) or rgb(10%,20%,30%)'
QRegExp regexp("rgb\\(([0-9]+%{0,1}),([0-9]+%{0,1}),([0-9]+%{0,1})\\)");
if (regexp.exactMatch(clrString))
{
if (regexp.capturedTexts().count() == 4 && regexp.capturedTexts().at(0).length() == clrString.length())
{
int r = regexp.capturedTexts().at(1).toInt();
if (regexp.capturedTexts().at(1).indexOf("%") != -1)
r = r * 255 / 100;
int g = regexp.capturedTexts().at(2).toInt();
if (regexp.capturedTexts().at(2).indexOf("%") != -1)
g = g * 255 / 100;
int b = regexp.capturedTexts().at(3).toInt();
if (regexp.capturedTexts().at(3).indexOf("%") != -1)
b = b * 255 / 100;
return QColor(r, g, b);
}
else
return QColor();
}
else
return QColor(clrString);
}
QTransform UBCFFSubsetAdaptor::UBCFFSubsetReader::transformFromString(const QString trString)
{
//check pattern for strings like 'rotate(10)'
QRegExp regexp("rotate\\(([-+]{0,1}[0-9]*\\.{0,1}[0-9]*)\\)");
if (regexp.exactMatch(trString))
{
if (regexp.capturedTexts().count() == 2 && regexp.capturedTexts().at(0).length() == trString.length())
{
qreal angle = regexp.capturedTexts().at(1).toDouble();
return QTransform().rotate(angle);
}
}
//check pattern for strings like 'rotate(10,20,20)' or 'rotate(10.1,10.2,34.2)'
regexp.setPattern("rotate\\(([-+]{0,1}[0-9]*\\.{0,1}[0-9]*),([-+]{0,1}[0-9]*\\.{0,1}[0-9]*),([-+]{0,1}[0-9]*\\.{0,1}[0-9]*)\\)");
if (regexp.exactMatch(trString))
{
if (regexp.capturedTexts().count() == 4 && regexp.capturedTexts().at(0).length() == trString.length())
{
qreal angle = regexp.capturedTexts().at(1).toDouble();
qreal dx = regexp.capturedTexts().at(2).toDouble();
qreal dy = regexp.capturedTexts().at(3).toDouble();
return QTransform().translate(dx, dy).rotate(angle);
}
}
return QTransform();
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::getViewBoxDimenstions(const QString& viewBox)
{
//check pattern for strings like 'rotate(10)'
QRegExp regexp("([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)");
if (regexp.exactMatch(viewBox))
{
int capturesCount = regexp.capturedTexts().count();
if (capturesCount == 5 && regexp.capturedTexts().at(0).length() == viewBox.length())
{
mViewBox = QRectF(0, 0, regexp.capturedTexts().at(3).toDouble(), regexp.capturedTexts().at(4).toDouble());
return true;
}
}
mViewBox = QRectF(0, 0, 1000, 1000);
return false;
}
QSvgGenerator* UBCFFSubsetAdaptor::UBCFFSubsetReader::createSvgGenerator()
{
QSvgGenerator* generator = new QSvgGenerator();
generator->setFileName(mTempFilePath);
generator->setSize(mSize);
generator->setViewBox(mViewBox);
return generator;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::getTempFileName()
{
int tmpNumber = 0;
QDir rootDir;
while (true)
{
mTempFilePath = QString("%1/sanksvg%2.%3")
.arg(rootDir.tempPath())
.arg(QDateTime::currentDateTime().toString("dd_MM_yyyy_HH-mm"))
.arg(tmpNumber);
if (!QFile::exists(mTempFilePath))
return true;
tmpNumber++;
if (tmpNumber == 100000)
{
qWarning() << "Import failed. Failed to create temporary file for svg objects";
return false;
}
}
}
#ifndef UBCFFSUBSETADAPTOR_H
#define UBCFFSUBSETADAPTOR_H
#include <QtXml>
#include <QString>
#include <QStack>
class UBDocumentProxy;
class UBGraphicsScene;
class QSvgGenerator;
class UBCFFSubsetAdaptor
{
public:
UBCFFSubsetAdaptor();
static bool ConvertCFFFileToUbz(QString &cffSourceFile, UBDocumentProxy* pDocument);
private:
class UBCFFSubsetReader
{
//xml parse states definition
enum
{
NONE,
IWB,
SVG,
PAGESET,
PAGE,
TEXTAREA,
TSPAN
};
public:
UBCFFSubsetReader(UBDocumentProxy *proxy, QByteArray &content);
QXmlStreamReader mReader;
UBDocumentProxy *mProxy;
bool parse();
private:
QString mTempFilePath;
UBGraphicsScene *mCurrentScene;
QString mIndent;
QRectF mViewBox;
QSize mSize;
//methods to store current xml parse state
int PopState();
void PushState(int state);
//elements parsing methods
bool parseDoc();
bool parseCurrentElementStart();
bool parseCurrentElementCharacters();
bool parseCurrentElementEnd();
bool parseIwb();
bool parseIwbMeta();
bool parseSvg();
bool parseRect();
bool parseEllipse();
bool parseTextArea();
bool parsePolygon();
bool parsePage();
bool parsePageSet();
bool parseIwbElementRef();
bool createNewScene();
bool persistCurrentScene();
QStack<int> stateStack;
int currentState;
//helper methods
QColor colorFromString(const QString& clrString);
QTransform transformFromString(const QString trString);
bool getViewBoxDimenstions(const QString& viewBox);
QSvgGenerator* createSvgGenerator();
bool getTempFileName();
};
};
#endif // UBCFFSUBSETADAPTOR_H
#include <QDir>
#include "UBImportCFF.h"
#include "document/UBDocumentProxy.h"
#include "core/UBApplication.h"
#include "core/UBPersistenceManager.h"
#include "core/UBDocumentManager.h"
#include "core/memcheck.h"
#include "core/UBPersistenceManager.h"
#include "frameworks/UBFileSystemUtils.h"
#include "domain/UBGraphicsPDFItem.h"
#include "pdf/PDFRenderer.h"
#include "UBCFFSubsetAdaptor.h"
#include "quazip.h"
#include "quazipfile.h"
#include "quazipfileinfo.h"
UBImportCFF::UBImportCFF(QObject *parent)
: UBImportAdaptor(parent)
{
// NOOP
}
UBImportCFF::~UBImportCFF()
{
// NOOP
}
QStringList UBImportCFF::supportedExtentions()
{
return QStringList("iwb");
}
QString UBImportCFF::importFileFilter()
{
QString filter = tr("Common File Format (");
QStringList formats = supportedExtentions();
bool isFirst = true;
foreach(QString format, formats)
{
if(isFirst)
isFirst = false;
else
filter.append(" ");
filter.append("*."+format);
}
filter.append(")");
return filter;
}
bool UBImportCFF::addFileToDocument(UBDocumentProxy* pDocument, const QFile& pFile)
{
QFileInfo fi(pFile);
UBApplication::showMessage(tr("Importing file %1...").arg(fi.baseName()), true);
// first unzip the file to the correct place
//TODO create temporary path for iwb file content
QString path = QDir::tempPath();
QString documentRootFolder = expandFileToDir(pFile, path);
QString contentFile;
if (documentRootFolder.isEmpty()) //if file has failed to unzip it is probably just xml file
contentFile = pFile.fileName();
else //get path to content xml (according to iwbcff specification)
contentFile = documentRootFolder.append("/content.xml");
if(!contentFile.length()){
UBApplication::showMessage(tr("Import of file %1 failed.").arg(fi.baseName()));
return false;
}
else{
//TODO convert expanded CFF file content to the destination document
//create destination document proxy
//fill metadata and save
UBDocumentProxy* destDocument = new UBDocumentProxy(UBPersistenceManager::persistenceManager()->generateUniqueDocumentPath());
QDir dir;
dir.mkdir(destDocument->persistencePath());
//try to import cff to document
if (UBCFFSubsetAdaptor::ConvertCFFFileToUbz(contentFile, destDocument))
{
UBPersistenceManager::persistenceManager()->addDirectoryContentToDocument(destDocument->persistencePath(), pDocument);
UBFileSystemUtils::deleteDir(destDocument->persistencePath());
delete destDocument;
UBApplication::showMessage(tr("Import successful."));
return true;
}
else
{
UBFileSystemUtils::deleteDir(destDocument->persistencePath());
delete destDocument;
UBApplication::showMessage(tr("Import failed."));
return false;
}
}
}
QString UBImportCFF::expandFileToDir(const QFile& pZipFile, const QString& pDir)
{
QuaZip zip(pZipFile.fileName());
if(!zip.open(QuaZip::mdUnzip))
{
qWarning() << "Import failed. Cause zip.open(): " << zip.getZipError();
return "";
}
zip.setFileNameCodec("UTF-8");
QuaZipFileInfo info;
QuaZipFile file(&zip);
//create unique cff document root fodler
//use current date/time and temp number for folder name
QString documentRootFolder;
int tmpNumber = 0;
QDir rootDir;
while (true)
{
QString tempPath = QString("%1/sank%2.%3")
.arg(pDir)
.arg(QDateTime::currentDateTime().toString("dd_MM_yyyy_HH-mm"))
.arg(tmpNumber);
if (!rootDir.exists(tempPath))
{
documentRootFolder = tempPath;
break;
}
tmpNumber++;
if (tmpNumber == 100000)
{
qWarning() << "Import failed. Failed to create temporary directory for iwb file";
return "";
}
}
if (!rootDir.mkdir(documentRootFolder))
{
qWarning() << "Import failed. Couse: failed to create temp folder for cff package";
}
// first we search the metadata.rdf to check the document properties
for(bool more = zip.goToFirstFile(); more; more = zip.goToNextFile())
{
if(!zip.getCurrentFileInfo(&info))
{
qWarning() << "Import failed. Cause: getCurrentFileInfo(): " << zip.getZipError();
return "";
}
QFileInfo currentFileInfo(pDir + "/" + file.getActualFileName());
}
QFile out;
char c;
for(bool more=zip.goToFirstFile(); more; more=zip.goToNextFile())
{
if(!zip.getCurrentFileInfo(&info))
{
//TOD UB 4.3 O display error to user or use crash reporter
qWarning() << "Import failed. Cause: getCurrentFileInfo(): " << zip.getZipError();
return "";
}
if(!file.open(QIODevice::ReadOnly))
{
qWarning() << "Import failed. Cause: file.open(): " << zip.getZipError();
return "";
}
if(file.getZipError()!= UNZ_OK)
{
qWarning() << "Import failed. Cause: file.getFileName(): " << zip.getZipError();
return "";
}
QString newFileName = documentRootFolder + "/" + file.getActualFileName();
QFileInfo newFileInfo(newFileName);
rootDir.mkpath(newFileInfo.absolutePath());
out.setFileName(newFileName);
out.open(QIODevice::WriteOnly);
// Slow like hell (on GNU/Linux at least), but it is not my fault.
// Not ZIP/UNZIP package's fault either.
// The slowest thing here is out.putChar(c).
QByteArray outFileContent = file.readAll();
if (out.write(outFileContent) == -1)
{
qWarning() << "Import failed. Cause: Unable to write file";
out.close();
return "";
}
while(file.getChar(&c))
out.putChar(c);
out.close();
if(file.getZipError()!=UNZ_OK)
{
qWarning() << "Import failed. Cause: " << zip.getZipError();
return "";
}
if(!file.atEnd())
{
qWarning() << "Import failed. Cause: read all but not EOF";
return "";
}
file.close();
if(file.getZipError()!=UNZ_OK)
{
qWarning() << "Import failed. Cause: file.close(): " << file.getZipError();
return "";
}
}
zip.close();
if(zip.getZipError()!=UNZ_OK)
{
qWarning() << "Import failed. Cause: zip.close(): " << zip.getZipError();
return "";
}
return documentRootFolder;
}
UBDocumentProxy* UBImportCFF::importFile(const QFile& pFile, const QString& pGroup)
{
Q_UNUSED(pGroup); // group is defined in the imported file
QFileInfo fi(pFile);
UBApplication::showMessage(tr("Importing file %1...").arg(fi.baseName()), true);
// first unzip the file to the correct place
//TODO create temporary path for iwb file content
QString path = QDir::tempPath();
QString documentRootFolder = expandFileToDir(pFile, path);
QString contentFile;
if (documentRootFolder.isEmpty())
//if file has failed to umzip it is probably just xml file
contentFile = pFile.fileName();
else
//get path to content xml
contentFile = QString("%1/content.xml").arg(documentRootFolder);
if(!contentFile.length()){
UBApplication::showMessage(tr("Import of file %1 failed.").arg(fi.baseName()));
return 0;
}
else{
//create destination document proxy
//fill metadata and save
UBDocumentProxy* destDocument = new UBDocumentProxy(UBPersistenceManager::persistenceManager()->generateUniqueDocumentPath());
QDir dir;
dir.mkdir(destDocument->persistencePath());
if (pGroup.length() > 0)
destDocument->setMetaData(UBSettings::documentGroupName, pGroup);
if (fi.baseName() > 0)
destDocument->setMetaData(UBSettings::documentName, fi.baseName());
destDocument->setMetaData(UBSettings::documentVersion, UBSettings::currentFileVersion);
destDocument->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBDocumentProxy* newDocument = NULL;
//try to import cff to document
if (UBCFFSubsetAdaptor::ConvertCFFFileToUbz(contentFile, destDocument))
{
newDocument = UBPersistenceManager::persistenceManager()->createDocumentFromDir(destDocument->persistencePath());
UBApplication::showMessage(tr("Import successful."));
}
else
{
UBFileSystemUtils::deleteDir(destDocument->persistencePath());
UBApplication::showMessage(tr("Import failed."));
}
delete destDocument;
if (documentRootFolder.length() != 0)
UBFileSystemUtils::deleteDir(documentRootFolder);
return newDocument;
}
}
#ifndef UBIMPORTCFF_H
#define UBIMPORTCFF_H
#include <QtGui>
#include "UBImportAdaptor.h"
class UBDocumentProxy;
class UBImportCFF : public UBImportAdaptor
{
Q_OBJECT;
public:
UBImportCFF(QObject *parent = 0);
virtual ~UBImportCFF();
virtual QStringList supportedExtentions();
virtual QString importFileFilter();
virtual bool addFileToDocument(UBDocumentProxy* pDocument, const QFile& pFile);
//base class method override
virtual UBDocumentProxy* importFile(const QFile& pFile, const QString& pGroup);
private:
virtual QString expandFileToDir(const QFile& pZipFile, const QString& pDir);
};
#endif // UBIMPORTCFF_H
......@@ -12,7 +12,9 @@ HEADERS += src/adaptors/UBExportAdaptor.h\
src/adaptors/UBImportImage.h \
src/adaptors/UBIniFileParser.h \
src/adaptors/UBExportWeb.h \
src/adaptors/UBWebPublisher.h
src/adaptors/UBWebPublisher.h \
src/adaptors/UBImportCFF.h \
src/adaptors/UBCFFSubsetAdaptor.h
HEADERS += src/adaptors/publishing/UBDocumentPublisher.h \
src/adaptors/publishing/UBCapturePublisher.h \
......@@ -35,7 +37,9 @@ SOURCES += src/adaptors/UBExportAdaptor.cpp\
src/adaptors/UBImportImage.cpp \
src/adaptors/UBIniFileParser.cpp \
src/adaptors/UBExportWeb.cpp \
src/adaptors/UBWebPublisher.cpp
src/adaptors/UBWebPublisher.cpp \
src/adaptors/UBImportCFF.cpp \
src/adaptors/UBCFFSubsetAdaptor.cpp
SOURCES += src/adaptors/publishing/UBDocumentPublisher.cpp \
src/adaptors/publishing/UBCapturePublisher.cpp \
......
......@@ -44,6 +44,7 @@
#include "UBSvgSubsetRasterizer.h"
#include "core/memcheck.h"
#include "../../core/UBApplication.h"
UBDocumentPublisher::UBDocumentPublisher(UBDocumentProxy* pDocument, QObject *parent)
......@@ -54,90 +55,52 @@ UBDocumentPublisher::UBDocumentPublisher(UBDocumentProxy* pDocument, QObject *pa
, mPassword("")
, bLoginCookieSet(false)
{
mpWebView = new QWebView(0);
UBApplication::mainWindow->addSankoreWebDocumentWidget(mpWebView);
mpWebView->setWindowTitle(tr("Sankore Uploading Page"));
mpWebView->setAcceptDrops(false);
connect(mpWebView, SIGNAL(loadFinished(bool)), this, SLOT(onLoadFinished(bool)));
connect(mpWebView, SIGNAL(linkClicked(QUrl)), this, SLOT(onLinkClicked(QUrl)));
connect(this, SIGNAL(loginDone()), this, SLOT(onLoginDone()));
init();
}
UBDocumentPublisher::~UBDocumentPublisher()
{
//delete mpWebView;
//delete mPublishingDocument;
if(mSourceDocument){
delete mSourceDocument;
mSourceDocument = NULL;
}
if(mPublishingDocument){
delete mPublishingDocument;
mPublishingDocument = NULL;
}
}
void UBDocumentPublisher::publish()
{
//check that the username and password are stored on preferences
UBSettings* settings = UBSettings::settings();
if(settings->communityUsername().isEmpty() || settings->communityPassword().isEmpty()){
UBApplication::showMessage(tr("Credentials has to not been filled out yet."));
qDebug() << "trying to connect to community without the required credentials";
return;
}
mUsername = settings->communityUsername();
mPassword = settings->communityPassword();
UBPublicationDlg dlg;
if(QDialog::Accepted == dlg.exec())
{
mDocInfos.title = dlg.title();
mDocInfos.description = dlg.description();
//check that the username and password are stored on preferences
UBSettings* settings = UBSettings::settings();
mUsername = settings->communityUsername();
mPassword = settings->communityPassword();
buildUbwFile();
UBApplication::showMessage(tr("Uploading Sankore File on Web."));
login(mUsername, mPassword);
//sendUbw();
sendUbw(mUsername, mPassword);
}
}
void UBDocumentPublisher::onLoginDone()
{
sendUbw();
}
void UBDocumentPublisher::login(QString username, QString password)
{
QString data,crlf;
QByteArray datatoSend;
// Create the request body
data="srid=&j_username=" +username +"&j_password=" +password +crlf+crlf;
datatoSend=data.toAscii(); // convert data string to byte array for request
// Create the request header
QString qsLoginURL = QString("http://sankore.devxwiki.com/xwiki/bin/loginsubmit/XWiki/XWikiLogin?xredirect=%0").arg(DOCPUBLICATION_URL);
QNetworkRequest request(QUrl(qsLoginURL.toAscii().constData()));
request.setRawHeader("Origin", "http://sankore.devxwiki.com");
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
request.setRawHeader("Accept", "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
request.setRawHeader("Referer", DOCPUBLICATION_URL);
request.setHeader(QNetworkRequest::ContentLengthHeader,datatoSend.size());
request.setRawHeader("Accept-Language", "en-US,*");
// Generate a session id
//mSessionID = getSessionID();
// Create the cookie
//QList<QNetworkCookie> cookiesList;
//QString qsCookieValue;
//qsCookieValue = mSessionID;
//qsCookieValue += "; language=en";
//QNetworkCookie cookie("JSESSIONID", qsCookieValue.toAscii().constData());
//cookiesList << cookie;
//request.setHeader(QNetworkRequest::CookieHeader, QVariant::fromValue(cookiesList));
// Send the request
mpNetworkMgr->post(request,datatoSend);
}
void UBDocumentPublisher::buildUbwFile()
{
QDir d;
......@@ -164,7 +127,6 @@ void UBDocumentPublisher::buildUbwFile()
ubzExporter.setVerbode(false);
ubzExporter.persistsDocument(mSourceDocument, mPublishingDocument->persistencePath() + "/" + UBStringUtils::toCanonicalUuid(publishingUuid) + ".ubz");
// remove all useless files
for (int pageIndex = 0; pageIndex < mPublishingDocument->pageCount(); pageIndex++) {
......@@ -586,9 +548,6 @@ void UBDocumentPublisher::generateWidgetPropertyScript(UBGraphicsW3CWidgetItem *
}
}
void UBDocumentPublisher::init()
{
mCrlf=0x0d;
......@@ -599,21 +558,11 @@ void UBDocumentPublisher::init()
mpNetworkMgr = new QNetworkAccessManager(this);
mpCookieJar = new QNetworkCookieJar();
// QNetworkProxy* pProxy = UBSettings::settings()->httpProxy();
// if(NULL != pProxy)
// {
// mpNetworkMgr->setProxy(*pProxy);
// qDebug() << "Proxy set!";
// }
connect(mpNetworkMgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(onFinished(QNetworkReply*)));
connect(mpNetworkMgr, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)), this, SLOT(onProxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)));
}
void UBDocumentPublisher::onFinished(QNetworkReply *reply)
{
QByteArray response = reply->readAll();
QVariant cookieHeader = reply->rawHeader("Set-Cookie");
// First we concatenate all the Set-Cookie values (the packet can contains many of them)
QStringList qslCookie = cookieHeader.toString().split("\n");
......@@ -625,49 +574,6 @@ void UBDocumentPublisher::onFinished(QNetworkReply *reply)
// Now we isolate every cookie value
QStringList qslCookieVals = qsCookieValue.split("; ");
if (!bLoginCookieSet)
{
// Finally we create the cookies
for (int i = 0; i < qslCookieVals.size(); i++)
{
QString cookieString = qslCookieVals.at(i);
QStringList qslCrntCookie = cookieString.split("=");
QNetworkCookie crntCookie;
if (qslCrntCookie.length() == 2)
{
QString qsValue = qslCrntCookie.at(1);
qsValue.remove("\"");
crntCookie = QNetworkCookie(qslCrntCookie.at(0).toAscii().constData(), qsValue.toAscii().constData());
}
else
{
crntCookie = QNetworkCookie(qslCrntCookie.at(0).toAscii().constData());
}
// HACK : keep only the same cookies as the XWiki website does.
if(crntCookie.name() == "JSESSIONID" ||
crntCookie.name() == "username" ||
crntCookie.name() == "password" ||
crntCookie.name() == "rememberme" ||
crntCookie.name() == "validation")
{
mCookies << crntCookie;
}
}
QNetworkCookie langCookie("language", "en");
mCookies << langCookie;
// Set the cookiejar : it set the cookies that will be sent with every packet.
mpCookieJar->setCookiesFromUrl(mCookies, QUrl(DOCPUBLICATION_URL)/*reply->url()*/);
mpNetworkMgr->setCookieJar(mpCookieJar);
bLoginCookieSet = true;
emit loginDone();
}
else
{
if (response.isEmpty())
{
// Verify that the UBW file has been sent correctly
bool bTransferOk = false;
for(int j = 0; j <= qslCookieVals.size(); j++)
{
......@@ -689,12 +595,10 @@ void UBDocumentPublisher::onFinished(QNetworkReply *reply)
{
UBApplication::showMessage(tr("Failed to upload document on the web."));
}
}
}
reply->deleteLater();
}
void UBDocumentPublisher::sendUbw()
void UBDocumentPublisher::sendUbw(QString username, QString password)
{
if (QFile::exists(mTmpZipFile))
{
......@@ -710,6 +614,10 @@ void UBDocumentPublisher::sendUbw()
multipartHeader = "multipart/form-data; boundary="+boundary;
data="--"+boundary+mCrlf;
data+="Content-Disposition: form-data; name=\"title\"" + mCrlf + mCrlf + mDocInfos.title + mCrlf;
data+="--"+boundary+mCrlf;
data+="Content-Disposition: form-data; name=\"description\"" + mCrlf + mCrlf + mDocInfos.description.remove("\n") + mCrlf;
data+="--"+boundary+mCrlf;
data+="Content-Disposition: form-data; name=\"file\"; filename=\""+ fi.fileName() +"\""+mCrlf;
data+="Content-Type: application/octet-stream"+mCrlf+mCrlf;
datatoSend=data.toAscii(); // convert data string to byte array for request
......@@ -717,18 +625,15 @@ void UBDocumentPublisher::sendUbw()
datatoSend += mCrlf;
datatoSend += QString("--%0--%1").arg(boundary).arg(mCrlf);
QNetworkRequest request(QUrl(DOCPUBLICATION_URL));
QNetworkRequest request(QUrl(QString(DOCPUBLICATION_URL).toAscii().constData()));
request.setHeader(QNetworkRequest::ContentTypeHeader, multipartHeader);
request.setHeader(QNetworkRequest::ContentLengthHeader,datatoSend.size());
request.setRawHeader("Accept", "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
QString b64Auth = getBase64Of(QString("%0:%1").arg(username).arg(password));
request.setRawHeader("Authorization", QString("Basic %0").arg(b64Auth).toAscii().constData());
request.setRawHeader("Host", "sankore.devxwiki.com");
request.setRawHeader("Accept", "*/*");
request.setRawHeader("Accept-Language", "en-US,*");
request.setRawHeader("Referer", DOCPUBLICATION_URL);
QNetworkCookie titleCookie("title", mDocInfos.title.toAscii().constData());
QNetworkCookie descCookie("description", mDocInfos.description.remove("\n").toAscii().constData());
mCookies << titleCookie;
mCookies << descCookie;
mpCookieJar->setCookiesFromUrl(mCookies, QUrl(DOCPUBLICATION_URL));
mpNetworkMgr->setCookieJar(mpCookieJar);
......@@ -744,37 +649,6 @@ QString UBDocumentPublisher::getBase64Of(QString stringToEncode)
return stringToEncode.toAscii().toBase64();
}
void UBDocumentPublisher::onLinkClicked(const QUrl &url)
{
// [Basic Auth] Here we interpret the link and send the request with the basic auth header.
QNetworkRequest request;
request.setUrl(url);
QString b64Auth = getBase64Of(QString("%0:%1").arg(mUsername).arg(mPassword));
request.setRawHeader("Authorization", QString("Basic %0").arg(b64Auth).toAscii().constData());
mpNetworkMgr->get(request);
}
void UBDocumentPublisher::onLoadFinished(bool result)
{
Q_UNUSED(result);
// [Basic Auth] This line says: if the user click on a link, do not interpret it.
//mpWebView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
mpWebView->page()->setNetworkAccessManager(mpNetworkMgr);
}
void UBDocumentPublisher::onProxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator)
{
Q_UNUSED(proxy);
UBProxyLoginDlg dlg;
if(QDialog::Accepted == dlg.exec())
{
authenticator->setUser(dlg.username());
authenticator->setPassword(dlg.password());
}
}
// ---------------------------------------------------------
UBProxyLoginDlg::UBProxyLoginDlg(QWidget *parent, const char *name):QDialog(parent)
, mpLayout(NULL)
......
......@@ -21,7 +21,7 @@
#include "ui_webPublishing.h"
#include "UBAbstractPublisher.h"
#define DOCPUBLICATION_URL "http://sankore.devxwiki.com/xwiki/bin/view/CreateResources/UniboardUpload"
#define DOCPUBLICATION_URL "http://sankore.devxwiki.com/xwiki/bin/view/CreateResources/UniboardUpload?xpage=plain&outputSyntax=plain"
#define XWIKI_ORIGIN_HEADER "http://sankore.devxwiki.com"
typedef struct
......@@ -104,21 +104,15 @@ protected:
private slots:
void onFinished(QNetworkReply* reply);
void onLinkClicked(const QUrl& url);
void onLoadFinished(bool result);
void onLoginDone();
void onProxyAuthenticationRequired(const QNetworkProxy & proxy, QAuthenticator * authenticator);
private:
UBDocumentProxy *mSourceDocument;
UBDocumentProxy *mPublishingDocument;
void init();
void sendUbw();
void sendUbw(QString username, QString password);
QString getBase64Of(QString stringToEncode);
QWebView* mpWebView;
QHBoxLayout* mpLayout;
QNetworkAccessManager* mpNetworkMgr;
QNetworkCookieJar* mpCookieJar;
......@@ -128,7 +122,6 @@ private:
bool bLoginCookieSet;
void buildUbwFile();
void login(QString username, QString password);
QString mTmpZipFile;
QList<QNetworkCookie> mCookies;
sDocumentInfos mDocInfos;
......
......@@ -349,11 +349,6 @@ void UBApplication::showDocument()
applicationController->showDocument();
}
void UBApplication::showSankoreWebDocument()
{
applicationController->showSankoreWebDocument();
}
int UBApplication::toolBarHeight()
{
return mainWindow->boardToolBar->rect().height();
......
......@@ -96,7 +96,6 @@ class UBApplication : public QtSingleApplication
void showBoard();
void showInternet();
void showDocument();
void showSankoreWebDocument();
void toolBarPositionChanged(QVariant topOrBottom);
void toolBarDisplayTextChanged(QVariant display);
......
......@@ -417,33 +417,6 @@ void UBApplicationController::showDocument()
emit mainModeChanged(Document);
}
void UBApplicationController::showSankoreWebDocument()
{
mMainWindow->webToolBar->hide();
mMainWindow->boardToolBar->hide();
mMainWindow->tutorialToolBar->hide();
mMainWindow->documentToolBar->show();
mMainMode = WebDocument;
adaptToolBar();
mirroringEnabled(false);
mMainWindow->switchToSankoreWebDocumentWidget();
UBApplication::documentController->hide();
mMainWindow->show();
mUninoteController->hideWindow();
emit mainModeChanged(WebDocument);
}
void UBApplicationController::showDesktop(bool dontSwitchFrontProcess)
{
int desktopWidgetIndex = qApp->desktop()->screenNumber(mMainWindow);
......
......@@ -66,8 +66,6 @@ class UBApplicationController : public QObject
void showDocument();
void showSankoreWebDocument();
void showMessage(const QString& message, bool showSpinningWheel);
void importFile(const QString& pFilePath);
......
......@@ -25,6 +25,7 @@
#include "adaptors/UBImportDocument.h"
#include "adaptors/UBImportPDF.h"
#include "adaptors/UBImportImage.h"
#include "adaptors/UBImportCFF.h"
#include "domain/UBGraphicsScene.h"
#include "domain/UBGraphicsSvgItem.h"
......@@ -75,6 +76,8 @@ UBDocumentManager::UBDocumentManager(QObject *parent)
mImportAdaptors.append(pdfImport);
UBImportImage* imageImport = new UBImportImage(this);
mImportAdaptors.append(imageImport);
UBImportCFF* cffImport = new UBImportCFF(this);
mImportAdaptors.append(cffImport);
}
......
......@@ -36,6 +36,27 @@ qreal UBPreferencesController::sSliderRatio = 10.0;
qreal UBPreferencesController::sMinPenWidth = 0.5;
qreal UBPreferencesController::sMaxPenWidth = 50.0;
UBPreferencesDialog::UBPreferencesDialog(UBPreferencesController* prefController, QWidget* parent,Qt::WindowFlags f)
:QDialog(parent,f)
,mPreferencesController(prefController)
{
}
UBPreferencesDialog::~UBPreferencesDialog()
{
}
void UBPreferencesDialog::closeEvent(QCloseEvent* e)
{
if(mPreferencesController->inputValuesConsistence())
e->accept();
else
e->ignore();
}
UBPreferencesController::UBPreferencesController(QWidget *parent)
: QObject(parent)
, mPreferencesWindow(0)
......@@ -43,8 +64,9 @@ UBPreferencesController::UBPreferencesController(QWidget *parent)
, mPenProperties(0)
, mMarkerProperties(0)
{
mPreferencesWindow = new QDialog(parent, Qt::Dialog);
mPreferencesUI = new Ui::preferencesDialog(); // deleted in UBPreferencesController::destructor
mPreferencesWindow = new UBPreferencesDialog(this,parent, Qt::Dialog);
// mPreferencesWindow = new QDialog(parent, Qt::Dialog);
mPreferencesUI = new Ui::preferencesDialog(); // deleted in
mPreferencesUI->setupUi(mPreferencesWindow);
connect(mPreferencesUI->Username_textBox, SIGNAL(editingFinished()), this, SLOT(onCommunityUsernameChanged()));
connect(mPreferencesUI->Password_textEdit, SIGNAL(editingFinished()), this, SLOT(onCommunityPasswordChanged()));
......@@ -201,15 +223,48 @@ void UBPreferencesController::onCommunityPasswordChanged()
settings->setCommunityPassword(mPreferencesUI->Password_textEdit->text());
}
bool UBPreferencesController::inputValuesConsistence()
{
QString backgroundStyle = "QWidget {background-color: white}";
mPreferencesUI->Username_textBox->setStyleSheet(backgroundStyle);
mPreferencesUI->Password_textEdit->setStyleSheet(backgroundStyle);
QString username = mPreferencesUI->Username_textBox->text();
QString password = mPreferencesUI->Password_textEdit->text();
bool isConsistent = true;
if (username.length() + password.length()){
backgroundStyle = "QWidget {background-color: magenta}";
if(username.isEmpty()){
isConsistent = false;
mPreferencesUI->mainTabWidget->setCurrentWidget(mPreferencesUI->networkTab);
mPreferencesUI->Username_textBox->setStyleSheet(backgroundStyle);
mPreferencesUI->Username_textBox->setFocus();
mPreferencesUI->Username_textBox->setCursorPosition(0);
}
else if(password.isEmpty()){
isConsistent = false;
mPreferencesUI->mainTabWidget->setCurrentWidget(mPreferencesUI->networkTab);
mPreferencesUI->Password_textEdit->setStyleSheet(backgroundStyle);
mPreferencesUI->Password_textEdit->setFocus();
mPreferencesUI->Password_textEdit->setCursorPosition(0);
}
}
return isConsistent;
}
void UBPreferencesController::close()
{
//web
QString homePage = mPreferencesUI->webHomePage->text();
UBSettings::settings()->webHomePage->set(homePage);
UBSettings::settings()->webHomePage->set(homePage);
UBSettings::settings()->setProxyUsername(mPreferencesUI->proxyUsername->text());
UBSettings::settings()->setProxyPassword(mPreferencesUI->proxyPassword->text());
if (!inputValuesConsistence())
return;
mPreferencesWindow->accept();
}
......@@ -485,4 +540,3 @@ UBBrushPropertiesFrame::UBBrushPropertiesFrame(QFrame* owner, const QList<QColor
}
}
......@@ -21,6 +21,7 @@
class UBColorPicker;
class UBApplication;
class UBSettings;
class UBPreferencesController;
namespace Ui
{
......@@ -31,6 +32,21 @@ namespace Ui
class UBBrushPropertiesFrame;
class UBPreferencesDialog : public QDialog
{
Q_OBJECT;
public:
UBPreferencesDialog(UBPreferencesController* prefController, QWidget* parent = 0,Qt::WindowFlags f = 0 );
~UBPreferencesDialog();
protected:
void closeEvent(QCloseEvent* e);
UBPreferencesController *mPreferencesController;
};
class UBPreferencesController : public QObject
{
Q_OBJECT;
......@@ -39,6 +55,8 @@ class UBPreferencesController : public QObject
UBPreferencesController(QWidget *parent);
virtual ~UBPreferencesController();
bool inputValuesConsistence();
public slots:
void show();
......@@ -48,7 +66,7 @@ class UBPreferencesController : public QObject
void wire();
void init();
QDialog* mPreferencesWindow;
UBPreferencesDialog* mPreferencesWindow;
Ui::preferencesDialog* mPreferencesUI;
UBBrushPropertiesFrame* mPenProperties;
UBBrushPropertiesFrame* mMarkerProperties;
......@@ -78,9 +96,7 @@ class UBBrushPropertiesFrame : public Ui::brushProperties
{
public:
UBBrushPropertiesFrame(QFrame* owner, const QList<QColor>& lightBackgroundColors,
const QList<QColor>& darkBackgroundColors, const QList<QColor>& lightBackgroundSelectedColors,
const QList<QColor>& darkBackgroundSelectedColors, UBPreferencesController* controller);
UBBrushPropertiesFrame(QFrame* owner, const QList<QColor>& lightBackgroundColors,const QList<QColor>& darkBackgroundColors, const QList<QColor>& lightBackgroundSelectedColors,const QList<QColor>& darkBackgroundSelectedColors, UBPreferencesController* controller);
virtual ~UBBrushPropertiesFrame(){}
......
......@@ -43,7 +43,7 @@ UBMainWindow::UBMainWindow(QWidget *parent, Qt::WindowFlags flags)
actionPreferences->setShortcut(QKeySequence(Qt::ALT + Qt::Key_Return));
actionQuit->setShortcut(QKeySequence(Qt::ALT + Qt::Key_F4));
#else
// No shortcut on Linux (like GEdit/Nautilius)
actionQuit->setShortcut(QKeySequence(Qt::ALT + Qt::Key_F4));
#endif
}
......@@ -106,19 +106,6 @@ void UBMainWindow::switchToDocumentsWidget()
}
}
void UBMainWindow::addSankoreWebDocumentWidget(QWebView* pWidget)
{
if(!mSankoreWebDocumentWidget){
mSankoreWebDocumentWidget = pWidget;
mStackedLayout->addWidget(mSankoreWebDocumentWidget);
}
}
void UBMainWindow::switchToSankoreWebDocumentWidget()
{
if(mSankoreWebDocumentWidget)
mStackedLayout->setCurrentWidget(mSankoreWebDocumentWidget);
}
void UBMainWindow::keyPressEvent(QKeyEvent *event)
{
QMainWindow::keyPressEvent(event);
......
......@@ -42,9 +42,6 @@ class UBMainWindow : public QMainWindow, public Ui::MainWindow
void addDocumentsWidget(QWidget *pWidget);
void switchToDocumentsWidget();
void addSankoreWebDocumentWidget(QWebView* pWidget);
void switchToSankoreWebDocumentWidget();
public slots:
void onExportDone();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment