// tout euphorik est contenu dans cet objet
var euphorik = {}
// ;; euphorik.include =
-// ;; euphorik.include = function(f) { var s = document.createElement('script'); s.type = 'text/javascript'; s.src = "js/" + f + ".js"; document.getElementsByTagName('head')[0].appendChild(s); }
+ //;; euphorik.include = function(f) { var s = document.createElement('script'); s.type = 'text/javascript'; s.src = "js/" + f + ".js"; document.getElementsByTagName('head')[0].appendChild(s); }
// version jQuery : function(f) { jQuery.ajax({async : false, url : "js/" + f + ".js", dataType : "script"}) }
;; euphorik.include = function(f) {
;; var req, url = 'js/' + f + '.js'
;; if (window.XMLHttpRequest) {
-;; req = new XMLHttpRequest(); req.open("GET", url, false /* async */); req.send(null);
+;; req = new XMLHttpRequest(); req.open("GET", url, false); req.send(null);
;; } else if (window.ActiveXObject) {
;; req = new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 5') != -1) ? "Microsoft.XMLHTTP" : "Msxml2.XMLHTTP");
;; if (req) { req.open("GET", url, false); req.send(); }
;; }
;; if (req!==false) { if (req.status==200) { window.eval(req.responseText); } else if (req.status==404) { alert("erreur de chargement (404) de : " + url) } }
-;; }
-
-;; euphorik.include("jquery")
-;; euphorik.include("jquery.lightbox")
-;; euphorik.include("md5")
-;; euphorik.include("json2")
-
-;; euphorik.include("conf")
-;; euphorik.include("util")\r
-;; euphorik.include("formateur")\r
-;; euphorik.include("pages")
-
-;; euphorik.include("pageMinichat")
-;; euphorik.include("pageAdmin")
-;; euphorik.include("pageProfile")
-;; euphorik.include("pageRegister")
-;; euphorik.include("pageAbout")
-\r
-\r
-// tout un tas d'améliorations de JavaScript ;)\r
-/**\r
- * Pour chaque propriété de l'objet execute f(p, v) ou p est le nom de la propriété et v sa valeur.\r
- * Ne parcours pas les propriétés des prototypes.\r
- */\r
-Object.prototype.each = function(f) {\r
- for (var k in this) {\r
- if (this.hasOwnProperty(k)) {\r
- f(k, this[k])\r
- }\r
- }\r
-}\r
-\r
-Array.prototype.each = function(f) {\r
- for (var i = 0; i < this.length; i++) {\r
- f(i, this[i])\r
- }\r
-}\r
+;; };
+
+
+// tout un tas d'améliorations de JavaScript ;)
+/**
+ * Pour chaque propriété de l'objet execute f(p, v) ou p est le nom de la propriété et v sa valeur.
+ * Ne parcours pas les propriétés des prototypes.
+ * FIXME : Normalement : Object.prototype.each = function(f) mais non supporté par jquery
+ */
+//Object.prototype.each = function(f) {
+var objectEach = function(o, f) {
+ for (var k in o) {
+ if (o.hasOwnProperty(k)) {
+ f(k, o[k]);
+ }
+ }
+};
+
+var objectMemberCount = function(o) {
+ var nb = 0;
+ for (var k in o) {
+ if (o.hasOwnProperty(k)) {
+ nb += 1;
+ }
+ }
+ return nb;
+};
+
+Array.prototype.each = function(f) {
+ for (var i = 0; i < this.length; i++) {
+ f(i, this[i]);
+ }
+};
+
+Array.prototype.map = function(f) {
+ for (var i = 0; i < this.length; i++) {
+ this[i] = f(this[i])
+ }
+};
String.prototype.trim = function() {
return jQuery.trim(this) // anciennement : this.replace(/^\s+|\s+$/g, "");
}
+/**
+ * Voir : http://www.coolpage.com/developer/javascript/Correct%20OOP%20for%20Javascript.html
+ *
+ * Exemple :
+ *
+ * function Mammal(name) {
+ * this.name = name;
+ * }
+ *
+ * Cat.Inherits(Mammal);
+ * function Cat(name) {
+ * this.Super(Mammal, name);
+ * }
+ */
+/*Object.prototype.Super = function(parent) {
+ if(arguments.length > 1) {
+ parent.apply( this, Array.prototype.slice.call( arguments, 1 ) );
+ } else {
+ parent.call( this );
+ }
+}
+Function.prototype.Inherits = function(parent) {
+ this.prototype = new parent();
+ this.prototype.constructor = this;
+}*/
+
+
+
///////////////////////////////////////////////////////////////////////////////////////////////////
// le main
$(document).ready(
function()
- {
+ {
var formateur = new euphorik.Formateur()
- var util = new euphorik.Util(formateur)
- var client = new Client(util)
+ var util = new euphorik.Util(formateur)
+ var client = new euphorik.Client(util)
var pages = new euphorik.Pages()
+
// connexion vers le serveur (utilise un cookie qui traine)
client.connexionCookie()
// TODO : simplifier et pouvoir créer des liens par exemple : <span class="lien" href="conditions">Conditions d'utilisation</span>
$("#footer .conditions").click(function(){ pages.afficherPage("conditions_utilisation") })
- pages.ajouterPage(new PageMinichat(client, formateur, util))
- pages.ajouterPage(new PageAdmin(client, formateur, util))
- pages.ajouterPage(new PageProfile(client, formateur, util))
- pages.ajouterPage(new PageRegister(client, formateur, util))
- pages.ajouterPage(new PageAbout(client, formateur, util))
+ pages.ajouterPage(new euphorik.PageMinichat(client, formateur, util))
+ pages.ajouterPage(new euphorik.PageAdmin(client, formateur, util))
+ pages.ajouterPage(new euphorik.PageProfile(client, formateur, util))
+ pages.ajouterPage(new euphorik.PageRegister(client, formateur, util))
+ pages.ajouterPage(new euphorik.PageAbout(client, formateur, util))
pages.ajouterPage("conditions_utilisation")
pages.afficherPage("minichat")