//version mobile if((navigator.userAgent.match(/iPhone/i))||(navigator.userAgent.match(/iPod/i))) { window.location = "index_m.php"; } //Globales fondamentales var IP = "38.107.179.236"; var PSEUDO = "unknown"; var MOD_FAV = 0; //Permet de dire si oui ou non on peut modifier les favoris. Interagit avec 'modifier' //Variables nécéssaires pour le remind à flèches var DERNIERES_COMMANDES = new Array(); var RANG=0; //Conseils donnés aléatoirement pour les connectés var CONSEILS = new Array("Vous pouvez répéter des fonctions précédentes sans avoir à les retaper en utilisant les touches 'haut' et 'bas' de votre clavier.", "Si la bannière du site vous dérange, vous pouvez la masquer en cliquant simplement dessus.", "Sydrus dispose d'un contenu dynamique. Pour vous tenir au courant en temps réel des nouvelles fonctions disponibles, tapez 'help' pour en obtenir une liste complète.", "Vous pouvez éviter de vous reconnecter à chaque visite grâce à la fonction 'memory'.", "Vous pouvez vous déconnecter à tout instant à l'aide de la commande 'disconnect'. Se déconnecter de cette manière annule les effets de 'memory'.", "Votre terminal est surchargé ? Nettoyez le à l'aide de la fonction 'clear'.", "Si vous avez besoin d'aide pour une fonction, n'oubliez jamais que vous pouvez taper 'help fonction' pour plus d'informations.", "Marre de Travailler ? Essayez des fonctions que vous n'avez jamais tapées. Les résultats sont parfois surprenants.", "Vous voulez aider pour le site ? Contactez cgurps@sydrus.fr ou ultimate@sydrus.fr.", "Vous pouvez communiquer avec vos amis à l'aide de la fonction 'send pseudo mon_message'. Ils recevront votre message lors de leur prochaine connection, ou en temps réel si ils sont connectés.", "Vous pouvez changer votre mot de passe actuel. Tapez 'help changepswd' pour plus d'informations.", "Vous pouvez à tout moment faire une recherche google en tapant : 'google Texte à rechercher'.", "Qui se cache derrière sydrus.fr ? Tapez 'who' !"); function afficher_message(message,flag) //Fonction permettant d'ouvrir un petit message en haut a droite de l'écran. { $.jGrowl.defaults.closerTemplate = '
Masquer toutes les notifications
'; $.jGrowl(message, { sticky: flag, life: 10000}); } function derniere_ligne() //Donne le numéro de la dernière ligne { var console = document.getElementById("console"); if(console.lastChild != null) { return console.rows.length; } else return 0; } function hide_bann() { document.getElementById("banniere").setAttribute("style","display:none;"); } function color() { var red = Math.floor(Math.random()*256); var green = Math.floor(Math.random()*256); var blue = Math.floor(Math.random()*256); var style = "color:rgb(" + red + "," + green + "," + blue + ");"; document.getElementById("banniere").setAttribute("style",style); } function ajouter_ligne_utilisateur(texte) //Ajoute une ligne avec le texte renseigné { var contenu = $("#console").html(); contenu += '' + PSEUDO + '@' + IP + ':~$' + texte + ''; $("#console").html(contenu); } function ajouter_ligne_sydrus(texte) //Ajoute une ligne avec le texte renseigné { var contenu = $("#console").html(); contenu += '' + texte + ''; $("#console").html(contenu); } /* function modifier_ligne(numero_de_ligne,texte) //Permet de modifier la ligne n°x avec le texte y { if(numero_de_ligne > derniere_ligne()) { alert("La ligne #" + numero_de_ligne + " ne peut être modifiée. (Elle n'existe pas)"); } else { var ligne = document.getElementById(numero_de_ligne); ligne.innerHTML = '' + texte + ''; } } */ function invite(on) //Fait Spawner l'invite de commande utilisateur : 1 Afficher, 0 Masquer { if(on && document.getElementById("invite") == null) //On l'affiche si elle n'y est pas déja { var contenu = $("#console").html(); var blabla = PSEUDO + '@' + IP + ':~$'; contenu += '' + blabla + '
'; $("#console").html(contenu); document.getElementById("saisie").focus(); } else if(!on) //Sinon on la vire { var invite = document.getElementById("invite"); invite.parentNode.removeChild(invite); } } function comportement_sydrus(resultat) //Fixe le comportement de sydrus avec les fonctions internes { var ordre = resultat.split(" "); //découpe la chaine par mots if(ordre[0]=="!reload") //Fonction de rechargement { location.reload(); ajouter_ligne_sydrus("Rechargement ..."); } else if(ordre[0]=="!redirect") //Fonction de redirection { if(ordre[2] && !ordre[3])//Si on a activé la redirection dans un nouvel onglet, window.open(ordre[1]); else top.location.href=ordre[1]; ajouter_ligne_sydrus("Requête exécutée avec succès."); } else if(ordre[0]=="!cls") //Fonction de redirection { $("#console").html(""); } else if(ordre[0]=="!color") //Fonction de recoloration du menu { color(); ajouter_ligne_sydrus("Couleur modifiée."); } else ajouter_ligne_sydrus(resultat); //Sinon, on affiche simplement le résultat } function envoyer(formulaire) { var commande = formulaire.saisie.value; //On choppe la commande de l'utilisateur ici. A faire communiquer avec AJAX !!!! //Mémorisation des commandes RANG=DERNIERES_COMMANDES.length; DERNIERES_COMMANDES[RANG]=commande; RANG++; formulaire.innerHTML += "";//On affiche l'icone de chargement /////////////////////////////////////////////////// AJAX COMMUNICATION /////////////////////////////////////////////////////////////////// var xhr = new XMLHttpRequest(); // On souhaite juste récupérer le contenu du fichier, la méthode GET suffit amplement : var requete = 'requete.php?req=' + encodeURI(commande); //requete = encodeURIComponent(requete); xhr.open('GET',requete); xhr.onreadystatechange = function() // On gère ici une requête asynchrone { if (xhr.readyState == 4 && xhr.status == 200) // Si le fichier est chargé sans erreur { var resultat = xhr.responseText; //Voila la réponse ! //On efface input invite(0); //On réécrit la commande envoyée ajouter_ligne_utilisateur(commande); //On écrit aussi la réponse OU on exécute le résultat comportement_sydrus(resultat); //On réaffiche l'invite invite(1); window.scrollTo(document.body.scrollWidth,document.body.clientHeight*100000); //On scroll tout en bas } } xhr.send(null); // La requête est prête, on envoie tout ! //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// return false; } function remind(Event)// Event appears to be passed by Mozilla { // Spécial IE ... if(Event==null) Event=event; var saisie = document.getElementById("saisie"); if(Event.keyCode == 38 && RANG > 0) //haut, on evite de sortir avant le 0 { RANG--; saisie.value = DERNIERES_COMMANDES[RANG]; } else if (Event.keyCode == 40 && RANG < DERNIERES_COMMANDES.length-1 ) //bas, on evite de dépasser le tableau { RANG++; saisie.value = DERNIERES_COMMANDES[RANG]; } } function tips() { var id_conseil = Math.floor(Math.random()*(CONSEILS.length)); var message = "Le saviez vous ?

"; message += CONSEILS[id_conseil]; afficher_message(message,false); setTimeout(tips,180000); } function chat() //Permet de recevoir les messages envoyés. { /////////////////////////////////////////////////// AJAX COMMUNICATION /////////////////////////////////////////////////////////////////// var xhr = new XMLHttpRequest(); // On souhaite juste récupérer le contenu du fichier, la méthode GET suffit amplement : var requete = 'messages.php'; //requete = encodeURIComponent(requete); xhr.open('GET',requete); xhr.onreadystatechange = function() // On gère ici une requête asynchrone { if (xhr.readyState == 4 && xhr.status == 200) // Si le fichier est chargé sans erreur { var resultat = xhr.responseText; //Voila la réponse ! //alert(resultat); var donnees = resultat.split("\n"); //On sépare les différents messages var donneestemp = new Array(); var i = 0; var message = ""; while (i"; afficher_message(message,true); } else { message = "Nouveau message de " + donneestemp[0] + "

"; message += ""+donnees[i].substring(donnees[i].indexOf(donneestemp[1]))+""; afficher_message(message,true); } i++; } } } xhr.send(null); // La requête est prête, on envoie tout ! //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// setTimeout(chat,15000); } function aide() //Pour afficher l'aide en cas de besoin ;) { alert("aide !!"); } function initialiser() { invite(1); //On affiche la bannière document.getElementById("banniere").innerHTML="                  __                               ___         
                 /\\ \\                            /'___\\        
  ____  __  __   \\_\\ \\  _ __   __  __    ____   /\\ \\__/  _ __  
 /',__\\/\\ \\/\\ \\  /'_` \\/\\`'__\\/\\ \\/\\ \\  /',__\\  \\ \\ ,__\\/\\`'__\\
/\\__, `\\ \\ \\_\\ \\/\\ \\_\\ \\ \\ \\/ \\ \\ \\_\\ \\/\\__, `\\__\\ \\ \\_/\\ \\ \\/ 
\\/\\____/\\/`____ \\ \\___,_\\ \\_\\  \\ \\____/\\/\\____/\\_\\\\ \\_\\  \\ \\_\\ 
 \\/___/  `/___/> \\/__,_ /\\/_/   \\/___/  \\/___/\\/_/ \\/_/   \\/_/ 
            /\\___/                                             
            \\/__/ 
"; //Troll anti SOPA //document.getElementById("banniere").innerHTML = ''; color(); //On colore aléatoirement la bannière ;) if(PSEUDO == "unknown") //Si le mec n'est pas inscrit, on l'aide un peu. { var message = "Bienvenue sur Sydrus.fr !"; message+="

Sydrus.fr est un service d'invite de commande. "; message+="Il est ainsi possible à l'aide de sydrus.fr de résoudre certains problèmes mathématiques, mais aussi d'exécuter "; message+="diverses commandes informatiques."; afficher_message(message,true); var message2 = "Votre inscription..."; message2+="

Afin de pouvoir profiter pleinement du site, nous vous recommendons de vous inscrire. "; message2+="Pour ce faire, tapez 'register', puis pressez la touche ENTREE de votre clavier."; afficher_message(message2,true); } //On lance la machine a conseils si le mec est connecté if(PSEUDO!="unknown") { tips(); chat(); //Réception du chat } } function mod_fav(arg) { if (MOD_FAV) //On met a jour la modification des favoris ... ou non =) MOD_FAV=0; else MOD_FAV=1 refresh_fav(MOD_FAV); } function ad_fav(formulaire) //Permet d'ajouter un favori { fade(document.getElementById('favoris'),0); /////////////////////////////////////////////////// AJAX COMMUNICATION /////////////////////////////////////////////////////////////////// var xhr = new XMLHttpRequest(); // On souhaite juste récupérer le contenu du fichier, la méthode GET suffit amplement : var nom = formulaire.favname.value; var url = formulaire.favurl.value; var requete = 'ad_fav.php?nom='+nom+'&url='+url; //requete = encodeURIComponent(requete); xhr.open('GET',requete); xhr.onreadystatechange = function() // On gère ici une requête asynchrone { if (xhr.readyState == 4 && xhr.status == 200) // Si le fichier est chargé sans erreur { var resultat = xhr.responseText; //Voila la réponse ! afficher_message(resultat,false); refresh_fav(MOD_FAV); fade(document.getElementById('favoris'),1); } } xhr.send(null); // La requête est prête, on envoie tout ! //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// return false; } function refresh_fav(supprimer) //Permet de rafraichir un favori { /////////////////////////////////////////////////// AJAX COMMUNICATION /////////////////////////////////////////////////////////////////// var xhr = new XMLHttpRequest(); // On souhaite juste récupérer le contenu du fichier, la méthode GET suffit amplement : var requete = 'display_fav.php?del='+supprimer; //requete = encodeURIComponent(requete); xhr.open('GET',requete); xhr.onreadystatechange = function() // On gère ici une requête asynchrone { if (xhr.readyState == 4 && xhr.status == 200) // Si le fichier est chargé sans erreur { var resultat = xhr.responseText; //Voila la réponse ! document.getElementById("favoris").innerHTML = "
Favoris [Modifier]
" + resultat; } } xhr.send(null); // La requête est prête, on envoie tout ! //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// return false; } function del_fav(ident) { fade(document.getElementById('favoris'),0); /////////////////////////////////////////////////// AJAX COMMUNICATION /////////////////////////////////////////////////////////////////// var xhr = new XMLHttpRequest(); // On souhaite juste récupérer le contenu du fichier, la méthode GET suffit amplement : var requete = 'remove_fav.php?id='+ident; //requete = encodeURIComponent(requete); xhr.open('GET',requete); xhr.onreadystatechange = function() // On gère ici une requête asynchrone { if (xhr.readyState == 4 && xhr.status == 200) // Si le fichier est chargé sans erreur { var resultat = xhr.responseText; //Voila la réponse ! refresh_fav(MOD_FAV); fade(document.getElementById('favoris'),1); } } xhr.send(null); // La requête est prête, on envoie tout ! //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// return false; } function mod_user_input(texte) { document.getElementById('saisie').value = texte; document.getElementById('saisie').focus(); return false; }