First commit, current version 0.2

This commit is contained in:
Némunaire 2011-07-30 00:14:52 +02:00
commit 872acdbc01
353 changed files with 45771 additions and 0 deletions

1
.onyx Normal file
View File

@ -0,0 +1 @@
./onyx2/load.php

17
.project Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>pa4home</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.aptana.ide.core.unifiedBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.aptana.projects.webnature</nature>
</natures>
</projectDescription>

210
ajax.php Normal file
View File

@ -0,0 +1,210 @@
<?php
//Définition de la constante anti-hacking
define("INDEX", 1);
ob_start();
//Inclusion de l'API Onyx
require_once(trim(file_get_contents('./.onyx')));
require_once(ONYX.'include/functions.php');
$SESS = new Session();
//sleep(1);
$json = array("ping" => time(), "statut" => !empty($SESS->values["connecte"]));
if ($json["statut"])
$json["username"] = $SESS->values["username"];
//Création du fichier XML
$xml = new DOMDocument('1.0', 'UTF-8');
$xml->formatOutput = true;
$xml_root = $xml->createElement("root");
$demande = gpc('d');
$value = intval(gpc('i'));
if ($demande == "connecte")
{
$nom = strtolower(gpc("name", "post"));
$mdp = hash("sha512", $nom.'♂♫↨'.gpc("mdp", "post"));
$bdd = new BDD();
$bdd->escape($nom);
$bdd->query("UPDATE users SET last_ip = '".$_SERVER["REMOTE_ADDR"]."', last_visite = ".time()." WHERE pseudo = '$nom' AND password = '$mdp';");
$affected = $bdd->affected();
if ($affected)
$user = $bdd->unique_query("SELECT * FROM users WHERE pseudo = '$nom' AND password = '$mdp';");
$bdd->deconnexion();
if ($affected != 0)
{
$json["statut"] = 1;
$SESS->values["connecte"] = true;
$SESS->values["username"] = $nom;
$SESS->values["id_user"] = $user["id"];
$SESS->put();
}
else
{
$json["statut"] = 0;
$SESS->values["connecte"] = false;
$SESS->values["username"] = "";
$SESS->values["id_user"] = 0;
$SESS->put();
}
}
elseif ($demande == "logout")
{
$SESS->values["connecte"] = false;
$SESS->values["username"] = "";
$SESS->close();
}
elseif ($demande == "accueil")
{
$dir = opendir(APPSDIR);
while (($app = readdir($dir)) !== false)
{
if (is_dir(APPSDIR.$app) && is_file(APPSDIR.$app.'/property.xml'))
{
$applicationXML = new DOMDocument();
$applicationXML->load(APPSDIR.$app.'/property.xml');
if ($applicationXML->documentElement->getAttribute('active') && $applicationXML->getElementsByTagName('application'))
{
//Vérification de sécurités
if (!acces_application($app, $applicationXML))
continue;
$xml_appli = $xml->createElement("application");
$xml_appli->appendChild($xml->createElement("dir", $app));
foreach($applicationXML->getElementsByTagName('property') as $property)
{
$xml_appli->appendChild($xml->createElement($property->getAttribute('value'), $property->textContent));
}
$xml_root->appendChild($xml_appli);
}
}
}
closedir($dir);
}
elseif ($demande == "property" && $app = gpc('a'))
{
if (empty($app) || ereg('/', $app) || !is_file(APPSDIR.$app.'/property.xml'))
send404($xml_root);
else
{
$appXML = new DOMDocument();
$appXML->load(APPSDIR.$app.'/property.xml');
if ($appXML->documentElement->getAttribute('active') && $appXML->getElementsByTagName('application'))
{
//Vérification de sécurités
if (!acces_application($app, $appXML))
continue;
$xml_appli = $xml->createElement("property");
foreach($appXML->getElementsByTagName('property') as $property)
{
$xml_appli->appendChild($xml->createElement($property->getAttribute('value'), $property->textContent));
}
$xml_appli->appendChild($xml->createElement("dir", $app));
$xml_root->appendChild($xml_appli);
}
}
}
elseif ($demande == "display" && $app = gpc('a'))
{
if (empty($app) || ereg('/', $app) || !is_file(APPSDIR.$app.'/property.xml'))
send404($xml_root);
else
{
$appXML = new DOMDocument();
$appXML->load(APPSDIR.$app.'/property.xml');
if ($appXML->documentElement->getAttribute('active') && $appXML->getElementsByTagName('application'))
{
//Vérification de sécurités
if (!acces_application($app, $appXML))
continue;
require(APPSDIR.$app.'/main.php');
$xml_root->appendChild($xml->createElement("dir", $app));
$xml_appli = $xml->createElement("display");
foreach($appXML->getElementsByTagName('display') as $contenu)
{
if ($contenu->getAttribute('value') == "css")
{
$xml_css = $xml->createElement($contenu->getAttribute('value'), $contenu->textContent);
if ($contenu->getAttribute('media'))
$xml_css->setAttribute("media", $contenu->getAttribute('media'));
$xml_appli->appendChild($xml_css);
}
else
$xml_appli->appendChild($xml->createElement($contenu->getAttribute('value'), $contenu->textContent));
}
$xml_root->appendChild($xml_appli);
$xml_appli = $xml->createElement("property");
foreach($appXML->getElementsByTagName('property') as $property)
{
$xml_appli->appendChild($xml->createElement($property->getAttribute('value'), $property->textContent));
}
if ($appXML->getElementsByTagName('menu'))
{
$menu = array();
foreach($appXML->getElementsByTagName('menu') as $item)
$menu[] = array("text" => $item->getAttribute('text'), "eventClick" => $item->getAttribute('eventClick'));
$xml_appli->appendChild($xml->createElement("menu", json_encode($menu)));
}
$xml_root->appendChild($xml_appli);
}
}
}
elseif ($demande == "action" && $app = gpc('a'))
{
if (empty($app) || ereg('/', $app) || !is_file(APPSDIR.$app.'/property.xml'))
send404($xml_root);
else
{
$appXML = new DOMDocument();
$appXML->load(APPSDIR.$app.'/property.xml');
if ($appXML->documentElement->getAttribute('active') && $appXML->getElementsByTagName('application'))
require(APPSDIR.$app.'/main.php');
}
}
elseif ($demande == "page" && $page = gpc('p'))
{
if (empty($page) || ereg('/', $page) || !is_file(PAGESDIR.$page.'.xml'))
send404($xml_root);
else
{
$pageXML = new DOMDocument();
$pageXML->load(PAGESDIR.$page.'.xml');
if ($pageXML->documentElement->getAttribute('active') && $pageXML->getElementsByTagName('page'))
{
//Vérification de sécurité
if (!acces_application($page, $pageXML))
send403($xml_root);
else
{
foreach($pageXML->getElementsByTagName('display') as $contenu)
{
$xml_root->appendChild($xml->createElement($contenu->getAttribute('value'), $contenu->textContent));
}
}
}
}
}
header("X-JSON: ".json_encode($json));
$sortie = ob_get_contents();
ob_end_clean();
if (!empty($sortie))
$xml_root->appendChild($xml->createElement("sortie", $sortie));
$xml->appendChild($xml_root);
print $xml->saveXML();
?>

1072
applications/GSM/app.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,28 @@
<?php
//Définition de la constante anti-hacking
define("INDEX", 1);
ob_start();
//Inclusion de l'API Onyx
require_once(trim(file_get_contents('../../.onyx')));
require_once(ONYX.'include/functions.php');
$SESS = new Session();
ob_end_clean();
$nom = gpc('auteur', 'post');
$bdd = new BDD();
$bdd->escape($nom);
$chanteurs = $bdd->query("SELECT chanteur FROM gsm WHERE chanteur LIKE '$nom%' GROUP BY chanteur;");
$bdd->deconnexion();
if (!empty($chanteurs) && !empty($nom))
{
print "<ul>\n";
foreach ($chanteurs as $chanteur)
{
print ' <li>'.$chanteur["chanteur"]."</li>\n";
}
print "</ul>";
}
?>

BIN
applications/GSM/loader.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

99
applications/GSM/main.css Normal file
View File

@ -0,0 +1,99 @@
.front
{
border: solid 1px black;
display: table-cell;
height: 11.5cm;
text-align: center;
vertical-align: middle;
width: 11.5cm;
}
.front .title, .front .cd
{
font-size: 60px;
font-family: sans-serif;
font-weight: bolder;
text-transform: uppercase;
}
.sp
{
margin: 1cm 0;
}
.back
{
border: solid 1px black;
display: table;
height: 11.1cm;
width: 14.4cm;
}
.back .title
{
font-variant: small-caps
}
.back .center .title
{
font-size: 14px;
font-weight: bolder;
}
.back .left, .back .right
{
display: block;
height: 11.1cm;
text-align: left;
vertical-align: top;
width: 0.7cm;
}
.back .left
{
border-right: dashed 1px gray;
float: left;
}
.back .right
{
border-left: dashed 1px gray;
float: right;
}
.back .left .title, .back .right .title
{
font-size: 13pt;
font-weight: bolder;
margin-top: 5.5cm;
margin-left: -5.15cm;
position: absolute;
}
.back .left .title
{
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
text-align: center;
width: 11.1cm;
}
.back .right .title
{
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
text-align: center;
width: 11cm;
}
.back .center
{
text-align: center;
}
.back ol
{
text-align: left;
}
.back .author
{
float: right;
width: 50%;
}

View File

@ -0,0 +1,24 @@
body
{
font-family: serif;
font-size: 10px;
margin: auto;
width: 18cm;
}
h1 {
display: none;
}
#GSM_menu {
display: none;
}
.back .center
{
overflow:hidden;
height: 11.1cm;
}
.back .center ol
{
-webkit-margin-before: 0.5em;
}

331
applications/GSM/style.css Normal file
View File

@ -0,0 +1,331 @@
html {
height: 100%;
}
body {
background: -webkit-gradient(
linear,
left top,
left bottom,
color-stop(0.31, #ffbe86),
color-stop(0.66, #ffebdb),
color-stop(1.00, #ffbe86)
);
background: -moz-linear-gradient(
center bottom,
#ffbe86 31%,
#ffebdb 66%,
#ffbe86 100%
);
font-family: serif;
margin-bottom: 10px;
min-height: 80%;
}
a:link, a:visited {
text-decoration: none;
color:#000000;
}
h1 {
text-align: center;
margin-left: 250px;
}
.pagination a:link, .pagination a:visited {
text-decoration: none;
color:#FFFFFF;
}
.pagination a:hover, a:hover {
text-decoration: underline;
}
.news {
background: -webkit-gradient(
linear,
left top,
right bottom,
color-stop(0.31, #ffa2a1),
color-stop(0.66, #ffdcdb)
);
background: -moz-linear-gradient(
right bottom,
#ffa2a1 31%,
#ffdcdb 66%
);
border: 2px solid #ff6062;
border-radius: 17px;
box-shadow: 3px 4px 5px #444466;
height: 127px;
margin: auto;
padding: 20px;
text-align: left;
width: 75%;
}
.vp {
color: orange;
}
#GSM_menu {
background: -webkit-gradient(
linear,
left top,
left bottom,
color-stop(0.31, #ffa2a1),
color-stop(0.90, #ffd3d3)
);
background: -moz-linear-gradient(
center bottom,
#ffa2a1 31%,
#ffd3d3 90%
);
border-right: 2px dotted white;
color:#FFFFFF;
font-weight: bold;
height: 100%;
left: 0px;
list-style: none;
margin: 0;
-webkit-padding-start: 0;
position: fixed;
text-align: center;
top: 0px;
width: 250px;
}
#GSM_menu h2 {
margin-left: 69px;
}
#GSM_menu li {
margin-bottom: 40px;
text-align: center;
width: 250px;
}
#GSM_menu li[onclick] {
cursor: pointer;
}
#GSM_menu li[onclick]:hover {
text-decoration: underline;
}
label {
font-weight: bold;
}
label:hover {
text-decoration: underline;
}
form {
background: -webkit-gradient(
linear,
left top,
left bottom,
color-stop(0.31, #cc6d1d),
color-stop(0.95, #ff8f26)
);
background: -moz-linear-gradient(
center bottom,
#cc6d1d 31%,
#ff8f26 95%
);
border: 1px solid #ff9b42;
border-radius: 25px;
box-shadow: 2px 2px 5px #553333;
}
form#addAlbms {
margin: auto;
padding: 13px;
text-align: left;
width: 345px;
}
form#addAlbms div {
text-align: center;
}
form#addAlbms div#testColor {
background-color: black;
border: solid 1px black;
display: inline-block;
height: 1em;
margin-left: 5px;
margin-bottom: -4px;
width: 2em;
}
form#ajout {
height: 182px;
margin: 10px auto;
padding: 13px;
text-align: left;
width: 642px;
}
form#ajout input[type=text] {
width: 444px;
}
form#ajout select {
margin-right: 10px;
}
form#ajout label {
float: left;
display: block;
font-weight: bold;
margin: 10px 7px 10px 0;
text-align: right;
width: 110px;
}
form#ajout label:hover {
text-decoration: underline;
}
input[type=text], select {
margin: 10px 0;
transition: background 0.75s;
-moz-transition: background 0.75s;
-webkit-transition: background 0.75s;
-o-transition: background 0.75s;
}
input, select {
background: #FF6600;
border: #CA2A20 solid 1px;
border-radius: 3px;
margin-top: 5px;
}
input:hover, input:focus, select:hover, select:focus {
background: #CC6600;
}
input.erreur, select.erreur {
background: #CC0000;
}
div#GSM_menu {
background: url(backmenu.png);
color:#FFFFFF;
top: 0px;
font-weight: bold;
height: 1200px;
padding-top: 30px;
position: fixed;
text-align: center;
left: 0px;
width: 250px;
}
div#GSM_menu h2 {
margin-bottom: 40px;
}
div#contenu {
margin-left: 250px;
text-align: center;
}
.table {
border: 1px solid black;
border-radius: 10px;
box-shadow: 3px 3px 5px #666666;
margin: auto;
}
.table .body div {
transition: background 500ms;
-moz-transition: background 500ms;
-webkit-transition: background 500ms;
-o-transition: background 500ms;
}
.table .body div.elt0 {
background: #ec7d60;
}
.table .body div.elt1 {
background: #f68063;
}
.table .body div:hover {
background: #fa8022;
}
.table.cols2 div span {
display: inline-block;
width: 40%;
}
.table.cols3 div span {
display: inline-block;
width: 40%;
}
.table.cols3 div span+span+span {
width: 20%;
}
.table div.lign {
display: inline-block;
width: 100%;
}
.table .head {
background: #f26340;
border-bottom: 1px solid black;
border-radius: 10px 10px 0 0;
font-weight: bolder;
display: block;
text-align: center;
width: 100%;
}
.table .foot { border-radius: 0 0 10px 10px; }
.table.stats {
float: left;
margin: 0 1%;
width: 31%;
}
.table#list {
width: 83%;
}
.table#list .head {
cursor: pointer;
}
.table .body div {
cursor: pointer;
}
.pagination {
background: #f26340;
border: 1px solid black;
color: white;
margin: auto;
width: 442px;
}
.pagination.top {
border-radius: 10px 10px 0 0;
border-bottom: none;
}
.pagination.bottom {
border-top: none;
border-radius: 0 0 10px 10px;
box-shadow: 0px 2px 7px #666666;
}
.pagination a {
cursor: pointer;
padding: 0 5px;
}
.front, .back
{
background: white;
}
.back .center
{
overflow:auto;
}
.back ol li:hover
{
background-color: teal;
}
div.autocomplete {
margin-top: 20px;
margin-left: 6px;
}

537
applications/GSPC/app.js Normal file
View File

@ -0,0 +1,537 @@
var GSPC_origin_liste = false;
var GSPC_liste = false;
var GSPC_lastSort = -1;
var GSPC_delay = null;
var nbParPage = 50;
//On charge la liste des porte-clés
function GSPC_loadList()
{
GSPC_origin_liste = false;
GSPC_liste = false;
GSPC_lastSort = -1;
$('nbpc').innerHTML = '<img src="applications/GSPC/loader.gif" alt="Chargement en cours ...">';
new Ajax.Request(
'ajax.php',
{
method: 'get',
parameters: {d: "action", a: "GSPC", p: "liste"},
onSuccess: GSPC_parseList,
onFailure: function() { printEtat(3); }
}
);
}
GSPC_loadList();
//Une fois la liste reçue, on la parse
function GSPC_parseList(transport, json)
{
$('nbpc').innerHTML = json.nombre;
var liste = transport.responseXML.documentElement.getElementsByTagName("liste")[0].getElementsByTagName("porteclef");
GSPC_origin_liste = new Array();
for (var i = 0; i < liste.length; i++)
{
var elt = liste[i];
GSPC_origin_liste.push([elt.getAttribute("id"), elt.getAttribute("nom"), elt.getAttribute("caracteristique"), elt.getAttribute("ligne"), elt.getAttribute("special")])
}
}
//Met en place le formulaire d'ajout de porte-clé
function GSPC_add()
{
if (GSPC_delay)
clearTimeout(GSPC_delay);
$('contenu').innerHTML = "";
var titre = document.createElement("h2");
titre.innerHTML = "Ajout d'un porte-clef à la base de données";
$('contenu').appendChild(titre);
GSPC_addScreen(false);
}
//Affiche la liste des porte-clés
function GSPC_list()
{
if (GSPC_delay)
clearTimeout(GSPC_delay);
window.scrollTo(0,0);
$('contenu').innerHTML = "";
var titre = document.createElement("h2");
titre.innerHTML = "Liste des porte-clefs";
$('contenu').appendChild(titre);
GSPC_liste = false;
GSPC_lastSort = -1;
GSPC_viewliste();
}
//Affiche la page de statistiques
function GSPC_stats()
{
if (GSPC_delay)
clearTimeout(GSPC_delay);
window.scrollTo(0,0);
$('contenu').innerHTML = "";
var titre = document.createElement("h2");
titre.innerHTML = "Statistiques";
$('contenu').appendChild(titre);
var tableau = document.createElement("div");
tableau.className = "table cols2";
tableau.id = "stats";
var tableau_head = document.createElement("div");
tableau_head.className = "head";
var head_th = document.createElement("span");
head_th.innerHTML = "Ligne";
tableau_head.appendChild(head_th);
var head_th = document.createElement("span");
head_th.innerHTML = "Nombre";
tableau_head.appendChild(head_th);
tableau.appendChild(tableau_head);
var tableau_body = document.createElement("div");
tableau_body.className = "body";
tableau_body.innerHTML = '<div class="lign elt0 foot">Téléchargement des statistiques en cours ... <img src="applications/GSPC/loader.gif" alt="Veuillez patienter"></div>';
tableau.appendChild(tableau_body);
$('contenu').appendChild(tableau);
new Ajax.Request(
'ajax.php',
{
method: 'get',
parameters: {d: "action", a: "GSPC", p: "stats"},
onSuccess: function(transport, json)
{
var stats = transport.responseXML.documentElement.getElementsByTagName("statistiques")[0];
var nbPC = stats.getElementsByTagName("ligne").length;
tableau_body.innerHTML = "";
for (var i = 0; i < nbPC; i++)
{
if (stats.getElementsByTagName("ligne")[i].getAttribute("nom") != "")
{
var lign = document.createElement("div");
lign.className = "elt" + (i%2);
GSPC_addStatLign(lign, stats.getElementsByTagName("ligne")[i].getAttribute("nom"));
var col = document.createElement("span");
col.innerHTML = stats.getElementsByTagName("ligne")[i].getAttribute("nom");
lign.appendChild(col);
var col = document.createElement("span");
col.innerHTML = stats.getElementsByTagName("ligne")[i].getAttribute("nombre");
lign.appendChild(col);
tableau_body.appendChild(lign);
}
}
lign.className += " foot";
},
onFailure: function() { printEtat(3); }
}
);
}
function GSPC_addStatLign(lign, ligne)
{
lign.onclick = function() { window.scrollTo(0,0); GSPC_viewligne(ligne) };
}
function GSPC_viewligne(ligne)
{
$('contenu').innerHTML = "";
var titre = document.createElement("h2");
titre.innerHTML = "Liste des porte-clefs de la ligne " + ligne;
$('contenu').appendChild(titre);
GSPC_delay_viewligne(ligne);
}
function GSPC_delay_viewligne(ligne)
{
if (GSPC_origin_liste == false)
GSPC_delay = setTimeout(GSPC_delay_viewligne, 200, ligne);
else
{
GSPC_liste = new Array();
for (var i = 0; i < GSPC_origin_liste.length; i++)
{
if (GSPC_origin_liste[i][3] == ligne)
GSPC_liste.push(GSPC_origin_liste[i]);
}
GSPC_lastSort = -1;
GSPC_viewliste();
}
}
function GSPC_addScreen(modif)
{
formulaire = document.createElement("form");
formulaire.id = "add"
formulaire.onsubmit = function(){ checkAndAdd(modif); return false; }
lab_nom = document.createElement("label");
lab_nom.innerHTML = "Nom/marque :";
lab_nom.setAttribute("for", "nompc");
inp_nom = document.createElement("input");
if(modif)
inp_nom.value = GSPC_liste[modif-1][1];
inp_nom.type = "text";
inp_nom.size = "34";
inp_nom.maxLength = "250";
inp_nom.id = "nompc";
lab_carac = document.createElement("label");
lab_carac.innerHTML = "Caractéristiques :";
lab_carac.setAttribute("for", "caracpc");
inp_carac = document.createElement("input");
if(modif)
inp_carac.value = GSPC_liste[modif-1][2];
inp_carac.type = "text";
inp_carac.size = "34";
inp_carac.maxLength = "250";
inp_carac.id = "caracpc";
lab_lign = document.createElement("label");
lab_lign.innerHTML = "Ligne :";
lab_lign.setAttribute("for", "lignepc");
inp_lign = document.createElement("input");
if(modif)
inp_lign.value = GSPC_liste[modif-1][3];
inp_lign.type = "text";
inp_lign.size = "10";
inp_lign.maxLength = "3";
inp_lign.id = "lignepc";
lab_quan = document.createElement("label");
lab_quan.innerHTML = "Quantité :";
lab_quan.setAttribute("for", "quantitepc");
sel_quan = document.createElement("select");
sel_quan.id = "quantitepc";
sel_quan_1 = document.createElement("option");
sel_quan_1.value = "1";
sel_quan_1.innerHTML = "Simple";
sel_quan_2 = document.createElement("option");
sel_quan_2.value = "2";
sel_quan_2.innerHTML = "Double";
sel_quan_3 = document.createElement("option");
sel_quan_3.value = "3";
sel_quan_3.innerHTML = "Triple";
sel_quan_4 = document.createElement("option");
sel_quan_4.value = "4";
sel_quan_4.innerHTML = "Quadruple";
inp_submit = document.createElement("input");
inp_submit.type = "submit";
if (modif)
inp_submit.value = "Modifier";
else
inp_submit.value = "Ajouter";
inp_submit.style.marginLeft = "165px";
formulaire.appendChild(lab_nom);
formulaire.appendChild(inp_nom);
formulaire.appendChild(document.createElement("br"));
formulaire.appendChild(lab_carac);
formulaire.appendChild(inp_carac);
formulaire.appendChild(document.createElement("br"));
formulaire.appendChild(lab_lign);
formulaire.appendChild(inp_lign);
formulaire.appendChild(document.createElement("br"));
formulaire.appendChild(lab_quan);
sel_quan.appendChild(sel_quan_1);
sel_quan.appendChild(sel_quan_2);
sel_quan.appendChild(sel_quan_3);
sel_quan.appendChild(sel_quan_4);
formulaire.appendChild(sel_quan);
formulaire.appendChild(document.createElement("br"));
if(modif)
sel_quan.value = GSPC_liste[modif-1][4];
formulaire.appendChild(document.createElement("br"));
formulaire.appendChild(inp_submit);
if (modif)
{
inp_del = document.createElement("input");
inp_del.type = "button";
inp_del.value = "Supprimer";
inp_del.onclick = function() { GSPC_del(modif); };
inp_del.style.marginLeft = "15px";
formulaire.appendChild(inp_del);
}
$('contenu').appendChild(formulaire);
$('nompc').focus();
confirmation = document.createElement("h3");
confirmation.style.color = "teal";
confirmation.id = "confirm";
$('contenu').appendChild(confirmation);
}
function GSPC_del(modif)
{
$('nompc').disabled = true;
$('caracpc').disabled = true;
$('lignepc').disabled = true;
$('quantitepc').disabled = true;
var ligne = GSPC_liste[modif-1][3];
new Ajax.Request(
'ajax.php?d=action&a=GSPC&p=del',
{
method: 'post',
parameters: {id: GSPC_liste[modif-1][0]},
onSuccess: function(transport, json)
{
if (json.statut != 1)
{
firstLoad();
alert("Vous avez été déconnecté. Le porte-clef n'a pas été enregistré");
}
else
{
$('contenu').innerHTML = "";
confirmation = document.createElement("h2");
confirmation.style.color = "teal";
confirmation.innerHTML = "Porte-clef supprimé avec succès !";
$('contenu').appendChild(confirmation);
$('nbpc').innerHTML = json.nombre;
GSPC_loadList();
GSPC_delay_viewligne(ligne);
}
},
onFailure: function() { printEtat(3); }
}
);
$('contenu').innerHTML = "<h2 class=\"vp\">Veuillez patienter suppression du porte-clef en cours ...</h2>";
}
function checkAndAdd(modif)
{
if(modif)
modif = "&id=" + GSPC_liste[modif-1][0];
else
modif = "";
if ($('nompc').value == "")
{
$('nompc').className = "erreur";
alert('Veuillez indiquer une marque ou un nom !');
$('nompc').focus();
}
else if ($('lignepc').value == "")
{
$('lignepc').className = "erreur";
alert('Veuillez indiquer une ligne !');
$('lignepc').focus();
}
else
{
$('nompc').disabled = true;
$('caracpc').disabled = true;
$('lignepc').disabled = true;
$('quantitepc').disabled = true;
new Ajax.Request(
'ajax.php?d=action&a=GSPC' + modif,
{
method: 'post',
parameters: {nom: $('nompc').value, caracteristique: $('caracpc').value, ligne: $('lignepc').value, quantite: $('quantitepc').value},
onSuccess: function(transport, json)
{
if (json.statut != 1)
{
firstLoad();
alert("Vous avez été déconnecté. Le porte-clef n'a pas été enregistré");
}
else
{
GSPC_loadList();
if(modif)
{
$('contenu').innerHTML = "";
confirmation = document.createElement("h2");
confirmation.style.color = "teal";
confirmation.innerHTML = "Porte-clef modifié avec succès !";
$('contenu').appendChild(confirmation);
$('nbpc').innerHTML = json.nombre;
GSPC_delay_viewligne(lign);
}
else
{
$('nompc').value = "";
$('nompc').className = "";
$('caracpc').value = "";
$('lignepc').className = "";
$('quantitepc').value = 1;
$('nompc').disabled = false;
$('caracpc').disabled = false;
$('lignepc').disabled = false;
$('quantitepc').disabled = false;
$('nbpc').innerHTML = json.nombre;
$('confirm').innerHTML = "Porte-clef ajouté avec succès !";
setTimeout("$('confirm').innerHTML = '';", 3500);
$('nompc').focus();
}
}
},
onFailure: function() { printEtat(3); }
}
);
if(modif)
{
lign = $('lignepc').value;
$('contenu').innerHTML = "<h2 class=\"vp\">Veuillez patienter, modification du porte-clef en cours ...</h2>";
}
}
}
function GSPC_viewliste()
{
var pagination = document.createElement("div");
pagination.className = "pagination top";
pagination.id = "pagination1";
$('contenu').appendChild(pagination);
var tableau = document.createElement("div");
tableau.className = "table cols3";
tableau.id = "list";
var tableau_head = document.createElement("div");
tableau_head.className = "head";
var head_th = document.createElement("span");
head_th.innerHTML = "Nom/Marque";
head_th.onclick = function(){ GSPC_showliste(1, 0); }
tableau_head.appendChild(head_th);
var head_th = document.createElement("span");
head_th.innerHTML = "Caractéristique";
head_th.onclick = function(){ GSPC_showliste(2, 0); }
tableau_head.appendChild(head_th);
var head_th = document.createElement("span");
head_th.innerHTML = "Ligne";
head_th.onclick = function(){ GSPC_showliste(3, 0); }
tableau_head.appendChild(head_th);
tableau.appendChild(tableau_head);
var tableau_body = document.createElement("div");
tableau_body.className = "body";
tableau_body.id = "bodyList";
tableau_body.innerHTML = '<div class="lign elt0 foot">Chargement de la liste en cours ... <img src="applications/GSPC/loader.gif" alt="Veuillez patienter"></div>';
tableau.appendChild(tableau_body);
$('contenu').appendChild(tableau);
var pagination = document.createElement("div");
pagination.className = "pagination bottom";
pagination.id = "pagination2";
$('contenu').appendChild(pagination);
GSPC_showliste(-1, 0);
}
function GSPC_showliste(tri, page)
{
if (GSPC_origin_liste == false)
setTimeout(GSPC_showliste, 200, tri);
else
{
if (GSPC_liste == false)
GSPC_liste = GSPC_origin_liste;
//On tente un tri
if (GSPC_lastSort != tri)
{
$('bodyList').innerHTML = '<div class="lign elt0 foot">Tri de la liste en cours ...</div>';
GSPC_liste = GSPC_liste.sort(function(a,b){return a[tri].localeCompare(b[tri]);});
GSPC_lastSort = tri;
}
nbPages = Math.ceil(GSPC_liste.length / nbParPage);
$('pagination1').innerHTML = "";
$('pagination2').innerHTML = "";
for (var i = 0; i < 4 && i < nbPages; i++)
GSPC_addLinkPagination(i);
if (page > 5 && i < nbPages)
{
$('pagination1').innerHTML += "...";
$('pagination2').innerHTML += "...";
}
for (var i = (page < 6?4:page - 2); (i < page + 3 && i < nbPages); i++)
GSPC_addLinkPagination(i);
if (page <= 5 && i < nbPages)
{
$('pagination1').innerHTML += "...";
$('pagination2').innerHTML += "...";
for (var i = Math.ceil(nbPages/2) - 2; i < nbPages/2 + 2; i++)
GSPC_addLinkPagination(i);
}
if (page + 3 < nbPages - 4)
{
$('pagination1').innerHTML += "...";
$('pagination2').innerHTML += "...";
}
for (var i = (page + 3 >= nbPages - 4?page + 3:nbPages - 4); (i < nbPages); i++)
GSPC_addLinkPagination(i);
start = page * nbParPage;
$('bodyList').innerHTML = "";
for (var i = 0; i < nbParPage && i + start < GSPC_liste.length; i++)
{
var lign = document.createElement("div");
lign.className = "elt" + (i%2);
GSPC_addLinkPC(lign, i + start);
var col = document.createElement("span");
col.innerHTML = GSPC_liste[i + start][1];
lign.appendChild(col);
var col = document.createElement("span");
col.innerHTML = GSPC_liste[i + start][2];
lign.appendChild(col);
var col = document.createElement("span");
col.innerHTML = GSPC_liste[i + start][3];
lign.appendChild(col);
$('bodyList').appendChild(lign);
}
lign.className += " foot"
}
}
function GSPC_addLinkPagination(page)
{
var lnkP = document.createElement("a");
lnkP.href = "javascript:GSPC_showliste(" + GSPC_lastSort + ", " + page + ");";
lnkP.innerHTML = page+1;
$('pagination1').appendChild(lnkP);
var lnkP = document.createElement("a");
lnkP.href = "javascript:GSPC_showliste(" + GSPC_lastSort + ", " + page + ");";
lnkP.innerHTML = page+1;
$('pagination2').appendChild(lnkP);
}
function GSPC_addLinkPC(elt, idPC)
{
elt.onclick = function() {
$('contenu').innerHTML = "";
var titre = document.createElement("h2");
titre.innerHTML = "Modification d'un porte-clef";
$('contenu').appendChild(titre);
GSPC_addScreen(idPC+1);
}
}
function GSPC_apropos()
{
aproposApp("GSPC", "contenu");
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

280
applications/GSPC/style.css Normal file
View File

@ -0,0 +1,280 @@
html {
height: 100%;
}
body {
background: -webkit-gradient(
linear,
left top,
left bottom,
color-stop(0.31, #9eeaff),
color-stop(0.66, #e4f9ff),
color-stop(1.00, #9eeaff)
);
background: -moz-linear-gradient(
center bottom,
#9eeaff 31%,
#e4f9ff 66%,
#9eeaff 100%
);
font-family: serif;
min-height: 80%;
}
a:link, a:visited {
text-decoration: none;
color:#000000;
}
h1 {
text-align: center;
margin-left: 250px;
}
#GSPC_menu a:link, #GSPC_menu a:visited, .pagination a:link, .pagination a:visited {
text-decoration: none;
color:#FFFFFF;
}
#GSPC_menu a:hover, .pagination a:hover, a:hover {
text-decoration: underline;
}
.news {
background: -webkit-gradient(
linear,
left top,
right bottom,
color-stop(0.31, #93b4ff),
color-stop(0.66, #c5ceff)
);
background: -moz-linear-gradient(
right bottom,
#93b4ff 31%,
#c5ceff 66%
);
border: 2px solid #5290ff;
border-radius: 17px;
box-shadow: 3px 4px 5px #444466;
height: 127px;
margin: auto;
padding: 20px;
text-align: left;
width: 75%;
}
.vp {
color: orange;
}
#GSPC_menu {
background: -webkit-gradient(
linear,
left top,
left bottom,
color-stop(0.31, #5290ff),
color-stop(0.90, #a3c4ff)
);
background: -moz-linear-gradient(
center bottom,
#5290ff 31%,
#a3c4ff 90%
);
border-right: 2px dotted white;
color:#FFFFFF;
font-weight: bold;
height: 100%;
left: 0px;
list-style: none;
margin: 0;
-webkit-padding-start: 0;
position: fixed;
text-align: center;
top: 0px;
width: 250px;
}
#GSPC_menu h2 {
margin-left: 69px;
}
#GSPC_menu li {
margin-bottom: 40px;
text-align: center;
width: 250px;
}
#GSPC_menu li[onclick] {
cursor: pointer;
}
#GSPC_menu li[onclick]:hover {
text-decoration: underline;
}
span#nompc img {
margin-top: 3px;
}
div#contenu {
margin-left: 250px;
text-align: center;
}
form#add {
background: -webkit-gradient(
linear,
left top,
right bottom,
color-stop(0.31, #c9b5e8),
color-stop(0.95, #e4daf4)
);
background: -moz-linear-gradient(
center bottom,
#c9b5e8 31%,
#e4daf4 95%
);
border: 1px solid #8A77A1;
border-radius: 25px;
box-shadow: 2px 2px 5px #333355;
height: 205px;
margin: auto;
padding: 13px;
text-align: left;
width: 456px;
}
label {
float: left;
display: block;
font-weight: bold;
margin: 10px 7px 10px 0;
text-align: right;
width: 170px;
}
label:hover {
text-decoration: underline;
}
input[type=text], select {
margin: 10px 0;
transition: background 0.75s;
-moz-transition: background 0.75s;
-webkit-transition: background 0.75s;
-o-transition: background 0.75s;
}
input, select {
background: #00EAF5;
border: #009AA5 solid 1px;
border-radius: 3px;
margin-top: 5px;
}
input:hover, input:focus, select:hover, select:focus {
background: #95cdff;
}
input#nompc {
font-variant: small-caps;
}
input#lignepc {
text-transform:uppercase;
}
input.erreur, select.erreur {
background: #CC0000;
border: #A59A00 solid 1px;
}
.table {
border: 1px solid black;
border-radius: 10px;
box-shadow: 3px 3px 5px #666666;
margin: auto;
}
.table .body div {
transition: background 500ms;
-moz-transition: background 500ms;
-webkit-transition: background 500ms;
-o-transition: background 500ms;
}
.table .body div.elt0 {
background: #5c93a0;
}
.table .body div.elt1 {
background: #5c96a5;
}
.table .body div:hover {
background: #73B14b;
}
.table.cols2 div span {
display: inline-block;
width: 50%;
}
.table.cols3 div span {
display: inline-block;
width: 45%;
}
.table.cols3 div span+span+span {
width: 10%;
}
.table.cols3 div.body span {
text-transform: uppercase;
}
.table.cols3 div.body span+span {
text-transform: none;
}
.table.cols3 div.body span+span+span {
text-transform: uppercase;
}
.table div.lign {
display: inline-block;
width: 100%;
}
.table .head {
background: #1070c9;
border-bottom: 1px solid black;
border-radius: 10px 10px 0 0;
font-weight: bolder;
display: block;
text-align: center;
width: 100%;
}
.table .foot { border-radius: 0 0 10px 10px; }
.table#stats {
width: 42%;
}
.table#list {
width: 83%;
}
.table#list .head {
cursor: pointer;
}
.table .body div {
cursor: pointer;
}
.pagination {
background: #1070c9;
border: 1px solid black;
color: white;
margin: auto;
width: 442px;
}
.pagination.top {
border-radius: 10px 10px 0 0;
border-bottom: none;
}
.pagination.bottom {
border-top: none;
border-radius: 0 0 10px 10px;
box-shadow: 0px 2px 7px #666666;
}
.pagination a {
cursor: pointer;
padding: 0 5px;
}

95
applications/chat/app.js Normal file
View File

@ -0,0 +1,95 @@
var chat_lastTime = 0;
var chat_refresh_time = 1500;
function chat_MAJ()
{
new Ajax.Request(
'ajax.php',
{
method: 'get',
parameters: {time: chat_lastTime, d: "action", a: "chat"},
onSuccess: function(transport, json) {
if (json.messages.length > 0)
{
for(i=json.messages.length-1; i>=0; i--)
{
//On tranforme le timestamp en date correcte
var date = new Date();
var now = new Date();
date.setTime(json.messages[i]["timestamp"]*1000);
//On affiche tout
var newRow = $('chat').insertRow(0);
var newCell = newRow.insertCell(0);
if (date.getDay() != now.getDay())
newCell.innerHTML = '[' + json.messages[i]["pseudo"] + '] ' + (date.getDay()<10?"0"+date.getDay():date.getDay()) + "/" + (date.getMonth()<10?"0"+date.getMonth():date.getMonth()) + " " + (date.getHours()<10?"0"+date.getHours():date.getHours()) + ":" + (date.getMinutes()<10?"0"+date.getMinutes():date.getMinutes()) + ":" + (date.getSeconds()<10?"0"+date.getSeconds():date.getSeconds());
else
newCell.innerHTML = '[' + json.messages[i]["pseudo"] + '] ' + (date.getHours()<10?"0"+date.getHours():date.getHours()) + ":" + (date.getMinutes()<10?"0"+date.getMinutes():date.getMinutes()) + ":" + (date.getSeconds()<10?"0"+date.getSeconds():date.getSeconds());
newCell = newRow.insertCell(1);
newCell.innerHTML = json.messages[i]["message"];
if (chat_lastTime < json.messages[i]["timestamp"])
chat_lastTime = json.messages[i]["timestamp"];
}
}
},
onFailure: function() { chat_MAJ(); }
}
);
chat_refresh = setTimeout("chat_MAJ()", chat_refresh_time);
}
function chat_clearScreen()
{
$('chat').innerHTML = "";
chat_write("JS", "Nettoyage de l'écran");
}
function chat_refreshScreen()
{
chat_refresh = setTimeout("chat_MAJ()", 1);
}
function chat_reset()
{
chat_lastTime = 0;
}
function chat_changeRefreshTime(newTime)
{
if (newTime > 0)
{
if (newTime < 999)
newTime *= 1000;
chat_refresh_time = newTime;
chat_write("JS", "Temps de rafraîchissement passé à " + newTime/1000 + " seconde(s)");
}
}
function chat_sendCommande(commande)
{
new Ajax.Request(
'ajax.php?d=action&a=chat',
{
method: 'post',
parameters: {comm: commande},
onSuccess: function(transport, json) {
if (json.confirm)
chat_write("Server", json.confirm);
else
chat_write("Server", "Rien");
},
onFailure: function() { alert("La requête a échouée!"); }
}
);
}
function chat_write(posteur, message)
{
var date = new Date();
var newRow = $('chat').insertRow(0);
var newCell = newRow.insertCell(0);
newCell.innerHTML = '<em>' + posteur + '</em> ' + (date.getHours()<10?"0"+date.getHours():date.getHours()) + ":" + (date.getMinutes()<10?"0"+date.getMinutes():date.getMinutes()) + ":" + (date.getSeconds()<10?"0"+date.getSeconds():date.getSeconds());
newCell = newRow.insertCell(1);
newCell.innerHTML = "<em>" + message + "</em>";
}

217
applications/users/app.js Normal file
View File

@ -0,0 +1,217 @@
var USERS_liste = false;
function USERS_add()
{
$('corps').innerHTML = "";
USERS_display("add", false);
}
function USERS_modif(id)
{
$('corps').innerHTML = "";
if (!USERS_liste)
USERS_loadListe(false);
USERS_display("modif", USERS_liste[id]);
}
function USERS_delete(id)
{
alert("Demande de suppression de l'utilisateur : " + id);
}
function USERS_loadListe(async)
{
new Ajax.Request(
'ajax.php',
{
method: 'get',
asynchronous: async,
parameters: {d: "action", a: "users"},
onSuccess: function(transport, json)
{
USERS_liste = USERS_liste;
},
onFailure: function() { printEtat(3); }
}
);
}
function USERS_display(page, plus)
{
alert('pom');
if (page == "add" || page == "modif")
{
formMod = document.createElement("form");
if (plus)
formMod.onsubmit = function() { USERS_sendModif(plus.id); return false; }
else
formMod.onsubmit = USERS_sendAdd;
fieldMod = document.createElement("fieldset");
fieldMod.style.width = "500px";
fieldMod.style.margin = "auto";
fieldleg = document.createElement("legend");
fieldleg.innerHTML = "Utilisateur";
fieldMod.appendChild(fieldleg);
labelchamp = document.createElement("label");
labelchamp.innerHTML = "Nom :";
labelchamp.setAttribute("for", "nom");
fieldMod.appendChild(labelchamp);
fieldMod.innerHTML += " ";
inputchamp = document.createElement("input");
inputchamp.type = "text";
inputchamp.id = "nom";
if (plus)
inputchamp.value = plus.pseudo;
fieldMod.appendChild(inputchamp);
fieldMod.appendChild(document.createElement("br"));
labelchamp = document.createElement("label");
labelchamp.innerHTML = "Mot de passe :";
labelchamp.setAttribute("for", "mdp");
fieldMod.appendChild(labelchamp);
fieldMod.innerHTML += " ";
inputchamp = document.createElement("input");
inputchamp.type = "password";
inputchamp.id = "mdp";
fieldMod.appendChild(inputchamp);
fieldMod.appendChild(document.createElement("br"));
labelchamp = document.createElement("label");
labelchamp.innerHTML = "Confirmer mot de passe :";
labelchamp.setAttribute("for", "conf");
fieldMod.appendChild(labelchamp);
fieldMod.innerHTML += " ";
inputchamp = document.createElement("input");
inputchamp.type = "password";
inputchamp.id = "conf";
fieldMod.appendChild(inputchamp);
fieldMod.appendChild(document.createElement("br"));
fieldMod.appendChild(document.createElement("br"));
labelchamp = document.createElement("label");
labelchamp.innerHTML = "Adresse électronique :";
labelchamp.setAttribute("for", "mail");
fieldMod.appendChild(labelchamp);
fieldMod.innerHTML += " ";
inputchamp = document.createElement("input");
inputchamp.type = "text";
if (plus)
inputchamp.value = plus.mail;
inputchamp.id = "mail";
fieldMod.appendChild(inputchamp);
fieldMod.appendChild(document.createElement("br"));
fieldMod.appendChild(document.createElement("br"));
inputchamp = document.createElement("input");
inputchamp.type = "submit";
inputchamp.value = "Continuer";
fieldMod.appendChild(inputchamp);
formMod.appendChild(fieldMod);
$('corps').appendChild(formMod);
}
else
{
if (plus)
USERS_liste = plus.users;
tableMessages = document.createElement("table");
tableMessages.style.margin = "auto";
tableMessages.style.width = "90%";
theMess = document.createElement("thead");
trMess = document.createElement("tr");
thMess = document.createElement("th");
thMess.innerHTML = "Action";
trMess.appendChild(thMess);
thMess = document.createElement("th");
thMess.innerHTML = "Utilisateur";
trMess.appendChild(thMess);
thMess = document.createElement("th");
thMess.innerHTML = "Adresse électronique";
trMess.appendChild(thMess);
thMess = document.createElement("th");
thMess.innerHTML = "Dernière connexion";
trMess.appendChild(thMess);
thMess = document.createElement("th");
thMess.innerHTML = "Dernière IP";
trMess.appendChild(thMess);
theMess.appendChild(trMess);
tableMessages.appendChild(theMess);
tboMess = document.createElement("tbody");
tboMess.id = "users";
tableMessages.appendChild(tboMess);
$('corps').appendChild(tableMessages);
nbUsers = USERS_liste.length;
for(i=0; i<nbUsers; i++)
{
var date = new Date();
date.setTime(USERS_liste[i].last_visite*1000);
var newRow = $('users').insertRow(-1);
var newCell = newRow.insertCell(0);
newCell.innerHTML = '<a href="javascript:USERS_modif(' + i + ');">Modifier</a>';
var newCell = newRow.insertCell(1);
newCell.innerHTML = USERS_liste[i].pseudo;
var newCell = newRow.insertCell(2);
newCell.innerHTML = USERS_liste[i].mail;
var newCell = newRow.insertCell(3);
newCell.innerHTML = (date.getDay()<10?"0"+date.getDay():date.getDay()) + "/" + (date.getMonth()<10?"0"+date.getMonth():date.getMonth()) + "/" + date.getFullYear() + " " + (date.getHours()<10?"0"+date.getHours():date.getHours()) + ":" + (date.getMinutes()<10?"0"+date.getMinutes():date.getMinutes()) + ":" + (date.getSeconds()<10?"0"+date.getSeconds():date.getSeconds());
var newCell = newRow.insertCell(4);
newCell.innerHTML = USERS_liste[i].last_ip;
}
var newRow = $('users').insertRow(-1);
var newCell = newRow.insertCell(0);
newCell.innerHTML = '<a href="javascript:USERS_add();">Ajouter</a>';
}
}
function USERS_sendAdd()
{
if ($('mdp').value.length < 5)
alert("Le mot de passe est trop court !\nIl doit faire au moins 5 caractères.");
else if ($('mdp').value != $('conf').value)
alert("Le mot de passe est sa confirmation est différent !");
else
{
new Ajax.Request(
'ajax.php?d=action&a=users',
{
method: 'post',
asynchronous: async,
parameters: {nom: $('nom').value, mdp: $('mdp').value, mail: $('mail').value},
onSuccess: function(transport, json)
{
USERS_liste = json.users;
},
onFailure: function() { printEtat(3); }
}
);
}
return false;
}
function USERS_sendModif(id)
{
if ($('mdp').value.length < 5)
alert("Le mot de passe est trop court !\nIl doit faire au moins 5 caractères.");
else if ($('mdp').value != $('conf').value)
alert("Le mot de passe est sa confirmation est différent !");
else
{
alert("Demande de modification pour l'utilisateur ayant l'ID : " + id);
}
$('mdp').value = "";
$('conf').value = "";
}

116
common.css Normal file
View File

@ -0,0 +1,116 @@
body {
background: url('images/background.jpg') fixed #E1E2E4;
font-family: sans-serif;
}
#btMenu {
background-image: url('images/menu.png');
height: 60px;
left: 10px;
position: fixed;
top: 1px;
width: 60px;
z-index: 10;
}
#btMenu:hover {
background-position: 0 -60px;
}
#btMenu:active {
background-position: 0 -120px;
}
#btMenu span {
display: none;
}
.submenu
{
background: #D6EDF8;
border: solid 1px #B6CDD8;
display: none;
padding: 0px;
text-align: left;
overflow: hidden;
z-index: 10;
}
#menu {
margin: 10px;
position: fixed;
top: 5px;
left: 20px;
width: 155px;
}
#menu #nameApp {
font-family: serif;
text-align: center;
font-weight: bold;
}
#menu #nameApp, .submenu li.hr {
border-bottom: groove 3px gray;
margin-bottom: 2px;
padding-bottom: 3px;
}
.submenu ul {
list-style: none;
}
.submenu li.item {
color: #6BCCD6;
display: block;
line-height: 20px;
padding: 0 5px 0 5px;
text-decoration: none;
}
.submenu li.item:hover {
background-color: #797979;
text-decoration: none;
}
div#etat {
background-color: #CDF;
border-right: solid 1px #89B;
border-top: solid 1px #89B;
border-radius: 5px;
bottom: 0px;
font-size: small;
font-style: italic;
left: 0px;
padding: 1px 4px;
position: fixed;
}
div.autocomplete {
position: absolute;
width: 500px;
background-color: white;
border: 1px solid #888;
margin: 0px;
padding: 0px;
}
div.autocomplete ul {
list-style-type: none;
margin: 0px;
padding: 0px;
max-height: 20em;
overflow: auto;
}
div.autocomplete ul li.selected {
background-color: #ffb;
}
div.autocomplete ul li {
list-style-type:none;
display: block;
margin: 0;
padding: 2px;
cursor: pointer;
}
div.autocomplete ul li span.informal {
color: gray;
}

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

BIN
fonts/kidprint.ttf Normal file

Binary file not shown.

BIN
images/background.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
images/etats/alpha.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
images/etats/beta.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
images/etats/final.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

BIN
images/logog.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

BIN
images/menu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
images/menu.xcf Normal file

Binary file not shown.

BIN
images/pomme.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

BIN
images/titres/403.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
images/titres/403en.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
images/titres/404.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
images/titres/404en.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
images/titres/UK.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
images/titres/US.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
images/titres/accueil.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

BIN
images/titres/allemagne.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

BIN
images/titres/allemand.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
images/titres/bienvenue.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
images/titres/chat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
images/titres/cluedo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
images/titres/commande.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
images/titres/contact.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
images/titres/download.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
images/titres/downloads.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

BIN
images/titres/drafts.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
images/titres/england.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
images/titres/etatsunis.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

BIN
images/titres/feed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

BIN
images/titres/fluxrss.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
images/titres/forum.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
images/titres/france.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
images/titres/germany.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

BIN
images/titres/histoire.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
images/titres/history.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

BIN
images/titres/home.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
images/titres/homepage.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

BIN
images/titres/journal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
images/titres/login.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

BIN
images/titres/news.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
images/titres/newspaper.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
images/titres/paiement.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
images/titres/partage.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

BIN
images/titres/pommail.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

BIN
images/titres/popmail.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Some files were not shown because too many files have changed in this diff Show More