Commits

Benoît Bar committed a89c8f5 Merge
  • Participants
  • Parent commits 357080f, af4d36b
  • Branches develop

Comments (0)

Files changed (203)

 
 syntax: regexp
-^\.project$
+^\.project$
+syntax: regexp
+^\.pydevproject$
+syntax: glob
+media/js/jscop*.js
+syntax: regexp
+^\.settings$
+syntax: regexp
+^doc$

example/game/index.html

File contents unchanged.

example/game/main.js

 	var gameArea = $('#game')[0];
     var speed = 0.1;
     var Game = function Game(){
-    this.control = new _.KeyListener($(document));
-    this.addListener(this);
-    
-    this.canvas = new _.Canvas(gameArea, 640, 480);
-    this.circle = new _.Circle(75, 75, 30, 0);
-    this.canvas.addChild(this.circle);
-    this.canvas.render();
-}.extend(_.FrameUpdater);
+	    this.control = new jscop.KeyListener($(document));
+	    this.addListener(this);
+	    
+	    this.canvas = new jscop.Canvas(gameArea, 640, 480);
+	    this.circle = new jscop.Circle(75, 75, 30, 0);
+	    this.canvas.addChild(this.circle);
+	    this.canvas.render();
+	}.extend(jscop.FrameUpdater);
     
     Game.method('update', function(step){
         this.circle.x += step * this.control.getHDirection() * speed;
 {
 	var gameArea = $('#parallax')[0];
     var Game = function Game(){
-        this.control = new _.KeyListener($(document));
+        this.control = new jscop.KeyListener($(document));
         this.addListener(this);
         
-        this.canvas = new _.Canvas(gameArea, 500, 150);
+        this.canvas = new jscop.Canvas(gameArea, 500, 150);
         
-        var fond = new _.Image('img/fond.png', 0, 0);
+        var fond = new jscop.Image('img/fond.png', 0, 0);
         this.canvas.addChild(fond);
-        var nuage = new _.Image('img/nuage.png', 0, 0);
+        var nuage = new jscop.Image('img/nuage.png', 0, 0);
         this.canvas.addChild(nuage);
-        var montagne = new _.Image('img/montagne.png', 0, 0);
+        var montagne = new jscop.Image('img/montagne.png', 0, 0);
         this.canvas.addChild(montagne);
-        var plaine = new _.Image('img/plaine.png', 0, 0);
+        var plaine = new jscop.Image('img/plaine.png', 0, 0);
         this.canvas.addChild(plaine);
-        var arbre1 = new _.Image('img/arbre1.png', 0, 0);
+        var arbre1 = new jscop.Image('img/arbre1.png', 0, 0);
         this.canvas.addChild(arbre1);
-        var arbre2 = new _.Image('img/arbre2.png', 0, 0);
+        var arbre2 = new jscop.Image('img/arbre2.png', 0, 0);
         this.canvas.addChild(arbre2);
-        var obstacle = new _.Image('img/obstacle.png', 0, 0);
+        var obstacle = new jscop.Image('img/obstacle.png', 0, 0);
         this.canvas.addChild(obstacle);
-        var sol = new _.Image('img/sol.png', 0, 0);
+        var sol = new jscop.Image('img/sol.png', 0, 0);
         this.canvas.addChild(sol);
         this.parallax = new jscop.Parallax([nuage, montagne, plaine, arbre1, arbre2, obstacle, sol], [0.01, 0.02, 0.03, 0.06, 0.095, 0.1, 0.1]);
         this.canvas.render();
-    }.extend(_.FrameUpdater);
+    }.extend(jscop.FrameUpdater);
     
     Game.method('update', function(step){
         this.parallax.moveLayer(-this.control.getHDirection(), step);

example/game/style.css

File contents unchanged.

example/logger/main.js

File contents unchanged.

example/notifier/index.html

File contents unchanged.

example/notifier/main.js

 $(document).ready(function(){
-    var notifier = new _.Notifier(_.notifier.stacking.APPEND, 2000);
+    var notifier = new jscop.Notifier(jscop.notifier.stacking.APPEND, 2000);
     $(document).click(function(event){
         notifier.notify('Position : ' + event.pageX + ', ' + event.pageY);
     });

media/css/jquery/images/ui-bg_diagonals-thick_18_b81900_40x40.png

Old
Old image
New
New image

media/css/jquery/images/ui-bg_diagonals-thick_20_666666_40x40.png

Old
Old image
New
New image

media/css/jquery/images/ui-bg_flat_10_000000_40x100.png

Old
Old image
New
New image

media/css/jquery/images/ui-bg_glass_100_f6f6f6_1x400.png

Old
Old image
New
New image

media/css/jquery/images/ui-bg_glass_100_fdf5ce_1x400.png

Old
Old image
New
New image

media/css/jquery/images/ui-bg_glass_65_ffffff_1x400.png

Old
Old image
New
New image

media/css/jquery/images/ui-bg_gloss-wave_35_f6a828_500x100.png

Old
Old image
New
New image

media/css/jquery/images/ui-bg_highlight-soft_100_eeeeee_1x100.png

Old
Old image
New
New image

media/css/jquery/images/ui-bg_highlight-soft_75_ffe45c_1x100.png

Old
Old image
New
New image

media/css/jquery/images/ui-icons_222222_256x240.png

Old
Old image
New
New image

media/css/jquery/images/ui-icons_228ef1_256x240.png

Old
Old image
New
New image

media/css/jquery/images/ui-icons_ef8c08_256x240.png

Old
Old image
New
New image

media/css/jquery/images/ui-icons_ffd27a_256x240.png

Old
Old image
New
New image

media/css/jquery/images/ui-icons_ffffff_256x240.png

Old
Old image
New
New image

media/css/jquery/jquery-ui-1.7.2.custom.css

File contents unchanged.

media/css/style.css

File contents unchanged.

media/css/testRunner.css

File contents unchanged.

media/img/loader.gif

Added
New image

media/js/jscop-min.js

-jscop=_={JS_URL:"",CSS_URL:"",cache:[],preload:function(){var c=arguments.length;for(var b=c;b--;){var a=document.createElement("img");a.src=arguments[b];jscop.cache.push(a)}}};Function.prototype.method=function(a,b){this.prototype[a]=b;return this};Function.method("extend",function(c){var e={},b=(this.prototype=new c());this.method("parent",function a(g){if(!(g in e)){e[g]=0}var i,d,h=e[g],f=c.prototype;if(h){while(h){f=f.constructor.prototype;h-=1}i=f[g]}else{i=b[g];if(i==this[g]){i=f[g]}}e[g]+=1;d=i.apply(this,Array.prototype.slice.apply(arguments,[1]));e[g]-=1;return d});return this});Function.method("partial",function(c){for(var b=1;b<arguments.length;b+=1){var a=arguments[b];this.prototype[a]=c.prototype[a]}return this});jscop.utils={toString:function(c){var b="<object ";for(var a in c){if(!$.isFunction(c[a])){b+=a+'="'+c[a]+'" '}}if(b.length>1){b=b.substr(0,b.length-1)}b+=" />";return b},getClassName:function(b){if(b&&b.constructor&&b.constructor.toString){var a=b.constructor.toString().match(/function\s*(\w+)/);if(a&&a.length==2){return a[1]}}return undefined},help:function(c){var b=this.getClassName(c)+"[ ";for(var a in c){if(c.hasOwnProperty(a)){b+=a;b+=$.isFunction(c[a])?"(), ":", "}}if(b.length>2){b=b.substr(0,b.length-2)}b+=" ]";return b}};String.prototype.startWith=function(a){return this.substring(a.length,0)==a};String.prototype.endWith=function(a){return this.substring(a.length,this.length)==a};jscop.date={};jscop.date.masks={"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"};jscop.date.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]};Date.prototype.format=function(q,a){var c=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,n=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,u=/[^-+\dA-Z]/g,r=function(m,d){m=String(m);d=d||2;while(m.length<d){m="0"+m}return m};var j=jscop.date;var v=this;q=String(j.masks[q]||q||j.masks["default"]);if(q.slice(0,4)=="UTC:"){q=q.slice(4);a=true}var w=a?"getUTC":"get",t=v[w+"Date"](),k=v[w+"Day"](),p=v[w+"Month"](),g=v[w+"FullYear"](),h=v[w+"Hours"](),e=v[w+"Minutes"](),i=v[w+"Seconds"](),f=v[w+"Milliseconds"](),l=a?0:v.getTimezoneOffset(),b={d:t,dd:r(t),ddd:j.i18n.dayNames[k],dddd:j.i18n.dayNames[k+7],m:p+1,mm:r(p+1),mmm:j.i18n.monthNames[p],mmmm:j.i18n.monthNames[p+12],yy:String(g).slice(2),yyyy:g,h:h%12||12,hh:r(h%12||12),H:h,HH:r(h),M:e,MM:r(e),s:i,ss:r(i),l:r(f,3),L:r(f>99?Math.round(f/10):f),t:h<12?"a":"p",tt:h<12?"am":"pm",T:h<12?"A":"P",TT:h<12?"AM":"PM",Z:a?"UTC":(String(v).match(n)||[""]).pop().replace(u,""),o:(l>0?"-":"+")+r(Math.floor(Math.abs(l)/60)*100+Math.abs(l)%60,4),S:["th","st","nd","rd"][t%10>3?0:(t%100-t%10!=10)*t%10]};return q.replace(c,function(d){return d in b?b[d]:d.slice(1,d.length-1)})};Array.prototype.contains=function(a){return(this.indexOf(a)>-1)};Array.prototype.removeAt=function(a){this.splice(a,1)};Array.prototype.remove=function(a){if(this.contains(a)){this.removeAt(this.indexOf(a));return true}return false};Array.prototype.removeAll=function(a){var b=0;while(this.contains(a)){this.remove(a);b++}return b};Array.prototype.last=function(){return this[this.length-1]};jscop.logger={};jscop.logger.event={MESSAGE_PREPEND_EVENT:"messageprepend"};jscop.logger.level={DEBUG:0,INFO:1,WARN:2,ERROR:3,FATAL:4};jscop.FirebugLoggerAppender=function FirebugLoggerAppender(a){this.logger=a};jscop.FirebugLoggerAppender.method("debug",function(a){try{console.debug(this.formatMessage(a,"DEBUG"))}catch(b){}});jscop.FirebugLoggerAppender.method("info",function(a){try{console.info(this.formatMessage(a,"INFO"))}catch(b){}});jscop.FirebugLoggerAppender.method("warn",function(a){try{console.warn(this.formatMessage(a,"WARN"))}catch(b){}});jscop.FirebugLoggerAppender.method("error",function(a){try{console.error(this.formatMessage(a,"ERROR"))}catch(b){}});jscop.FirebugLoggerAppender.method("fatal",function(a){try{console.error(this.formatMessage(a,"FATAL"))}catch(b){}});jscop.FirebugLoggerAppender.method("formatMessage",function(c,f){var a=new Date();var e=a.format(jscop.logger.setting.dateFormat);var b=jscop.logger.setting.formating;b=b.replace("%D",e);b=b.replace("%L",f);b=b.replace("%C",this.logger.classLogged);b=b.replace("%M",c);return b});jscop.HtmlLoggerAppender=function HtmlLoggerAppender(b){this.logger=b;var a=this;this.console=$("#jscop-logger-console");this.isVisible=true;this.timeout;if(!this.console.get(0)){var c=$('<div id="jscop-logger-console-taskbar">Clear</div>');c.css("background-color","#F2F2F2");c.css("text-align","right");c.css("padding-right","5px");c.css("cursor","pointer");c.css("border","1px solid #A4A1A1");c.css("font-size","100%");c.css("font-weight","bolder");c.height("20px");c.click(function(e){a.console.empty()});this.console=$('<div id="jscop-logger-console"></div>');this.console.css("overflow-y","scroll");this.console.css("height","500px");var d=$('<div id="jscop-logger-console-container"></div>');d.css("position","absolute");d.css("top",0);d.css("right",0);d.css("padding","2px");d.css("padding-top","0");d.css("background-color","#E9E8E8");d.width("40%");d.css("opacity",0.9);d.bind("mouseenter",function(e){if(!a.isVisible){$(this).animate({width:"40%",opacity:0.9},"high",function(){a.isVisible=true});c.css("display","block")}else{clearTimeout(a.timeout)}});d.bind(jscop.logger.event.MESSAGE_PREPEND_EVENT,function(e){if(!a.isVisible){$(this).animate({width:"40%",opacity:0.9},"high",function(){a.isVisible=true});c.css("display","block");a.timeout=setTimeout(function(){d.trigger("mouseleave")},5000)}else{clearTimeout(a.timeout);a.timeout=setTimeout(function(){d.trigger("mouseleave")},5000)}});d.bind("mouseleave",function(e){if(a.isVisible){$(this).animate({width:"0",opacity:0},"high",function(){c.css("display","none");a.isVisible=false})}});this.console.appendTo(d);c.appendTo(d);d.prependTo(document.body);setTimeout(function(){d.trigger("mouseleave")},700)}};jscop.HtmlLoggerAppender.method("debug",function(b){var a=this.formatMessage(b,"DEBUG");a.css("border","2px solid #AAAAAA");a.css("background-color","#D6D6D6");a.css("color","#424242");this.console.prepend(a)});jscop.HtmlLoggerAppender.method("info",function(b){var a=this.formatMessage(b,"INFO");a.css("border","2px solid #418DD4");a.css("background-color","#BEDDFA");a.css("color","#00659C");this.console.prepend(a)});jscop.HtmlLoggerAppender.method("warn",function(b){var a=this.formatMessage(b,"WARN");a.css("border","2px solid #FFD324");a.css("background-color","#FFF94A");a.css("color","#755D00");this.console.prepend(a)});jscop.HtmlLoggerAppender.method("error",function(b){var a=this.formatMessage(b,"ERROR");a.css("border","2px solid #FFB3B5");a.css("background-color","#FFD4D5");a.css("color","#8A1F11");this.console.prepend(a)});jscop.HtmlLoggerAppender.method("fatal",function(b){var a=this.formatMessage(b,"FATAL");a.css("border","2px solid #000000");a.css("background-color","#3B3B3B");a.css("color","#CCCCCC");this.console.prepend(a)});jscop.HtmlLoggerAppender.method("formatMessage",function(e,g){var b=new Date();var f=b.format(jscop.logger.setting.dateFormat);var c=jscop.logger.setting.formating;c=c.replace("%D","<em>"+f+"</em>");c=c.replace("%L","<strong>"+g+"</strong>");c=c.replace("%C",this.logger.classLogged);c=c.replace("%M",e);var a=$("<div>&nbsp;</div>");a.addClass("jscop-logger-log");a.css("padding","2px");a.css("margin-top","2px");a.css("margin-right","2px");a.append(c);this.console.trigger(jscop.logger.event.MESSAGE_PREPEND_EVENT);return a});jscop.logger.setting={root:jscop.logger.level.DEBUG,appender:jscop.HtmlLoggerAppender,formating:"%D %L [%C] %M",dateFormat:"dd/mm/yyyy HH:MM:ss",level:{}};jscop.Logger=function Logger(b,a){this.classLogged=b;this.appender=(null==a?new jscop.logger.setting.appender(this):new a(this))};jscop.Logger.method("checkLevel",function(a){return((jscop.logger.setting.root<=a&&jscop.logger.setting.level[this.classLogged]===undefined)||jscop.logger.setting.level[this.classLogged]<=a)});jscop.Logger.method("debug",function(a){if(this.checkLevel(jscop.logger.level.DEBUG)){this.appender.debug(a)}});jscop.Logger.method("info",function(a){if(this.checkLevel(jscop.logger.level.INFO)){this.appender.info(a)}});jscop.Logger.method("warn",function(a){if(this.checkLevel(jscop.logger.level.WARN)){this.appender.warn(a)}});jscop.Logger.method("error",function(a){if(this.checkLevel(jscop.logger.level.ERROR)){this.appender.error(a)}});jscop.Logger.method("fatal",function(a){if(this.checkLevel(jscop.logger.level.FATAL)){this.appender.fatal(a)}});var firebug=new jscop.Logger("root",jscop.FirebugLoggerAppender);

media/js/jscop.js

-/**
- * Framework root namespace and attributs
- *
- */
-jscop = _ = {
-    JS_URL: '',
-    CSS_URL: '',
-    cache: [],
-    
-    /**
-     * Preload images parameters
-     */
-    preload: function(){
-        var args_len = arguments.length;
-        for (var i = args_len; i--;) {
-            var cacheImage = document.createElement('img');
-            cacheImage.src = arguments[i];
-            jscop.cache.push(cacheImage);
-        }
-    }
-};/**
- * Based on http://www.crockford.com/javascript/inheritance.html
- * This package provides methods for inheritance.
- * 
- * @example 
- * 	Class augmentation 
- * 		function Parenizor(value) {
- * 			this.setValue(value);
- * 		}
- * 		Parenizor.method('setValue', function (value) {
- *     		this.value = value;
- *     		return this;
- * 		});
- * 		Parenizor.method('getValue', function () {
- * 		    return this.value;
- * 		});
- * 		Parenizor.method('toString', function () {
- * 		    return '(' + this.getValue() + ')';
- * 		});
- * 
- * 	Class Inheritance
- * 		function ZParenizor(value) {
- * 		    this.setValue(value);
- * 		}
- * 		ZParenizor.extend(Parenizor);
- * 		ZParenizor.method('toString', function () {
- * 		    if (this.getValue()) {
- * 				return this.parent('toString');
- * 		    }
- * 			return "-0-";
- * 		});
- * 
- * 	Multiple Inheritance
- * 		Suppose there is a NumberValue class that has a setValue method that checks that the value 
- * 		is a number in a certain range, throwing an exception if necessary. We only want its setValue 
- * 		and setRange methods for our ZParenizor. We certainly don't want its toString method. So, we write
- * 
- * 		ZParenizor.partial(NumberValue, 'setValue', 'setRange');
- */
-
-
-/**
- * Class augmentation. This method takes a method name and a function, adding them to the class as a public method.
- * @param {String} name - Required. The method name
- * @param {Function} func - Required. Function
- * @return Current class
- */
-Function.prototype.method = function(name, func){
-    this.prototype[name] = func;
-    return this;
-};
-
-/**
- * Class Inheritance. Indicates that one class inherits from another. 
- * It should be called after both classes are defined, but before the inheriting class's methods are added.
- * Adding a 'parent' method to call parent class methods
- * @param {Class} parentClass - Required. The parent class
- * @return Current class  
- */
-Function.method('extend', function(parentClass){
-    var d = {}, proto = (this.prototype = new parentClass());
-    this.method('parent', function parent(name){
-        if (!(name in d)) {
-            d[name] = 0;
-        }
-        var func, result, t = d[name], v = parentClass.prototype;
-        if (t) {
-            while (t) {
-                v = v.constructor.prototype;
-                t -= 1;
-            }
-            func = v[name];
-        }
-        else {
-            func = proto[name];
-            if (func == this[name]) {
-                func = v[name];
-            }
-        }
-        d[name] += 1;
-        result = func.apply(this, Array.prototype.slice.apply(arguments, [1]));
-        d[name] -= 1;
-        return result;
-    });
-    return this;
-});
-
-/**
- * Multiple Inheritance. This method loops through the arguments. For each name, it copies a member 
- * from the parent's prototype to the new class's prototype.
- * @param {Class} parent - Required. The parent class
- * @param {String} args - Optional. A list of method name to copy from parent class
- * @return Current class
- */
-Function.method('partial', function(parentClass){
-    for (var i = 1; i < arguments.length; i += 1) {
-        var name = arguments[i];
-        this.prototype[name] = parentClass.prototype[name];
-    }
-    return this;
-});/**
- * This package provide utils methods
- */
-jscop.utils = {
-    toString: function(obj){
-        var s = '<object ';
-        for (var i in obj) {
-            if (!$.isFunction(obj[i])) {
-                s += i + '="' + obj[i] + '" ';
-            }
-        }
-        if (s.length > 1) {
-            s = s.substr(0, s.length - 1);
-        }
-        s += ' />';
-        return s;
-    },
-    
-	/**
-	 * Return the className of the given object
-	 * @param {Object} obj - Required. Object for which the class name will be returned
-	 * @return the class name of the given object
-	 */
-    getClassName: function(obj){
-        if (obj && obj.constructor && obj.constructor.toString) {
-            var arr = obj.constructor.toString().match(/function\s*(\w+)/);
-            if (arr && arr.length == 2) {
-                return arr[1];
-            }
-        }
-        return undefined;
-    },
-    
-    /**
-     * Return all methods name of the given object
-     * @param {Object} obj - Required. Object for which the class name will be returned
-	 * @return the methods name of the given object
-     */
-    help: function(obj){
-        var s = this.getClassName(obj) + '[ ';
-        for (var i in obj) {
-			if (obj.hasOwnProperty(i)) {
-				s += i;
-				s += $.isFunction(obj[i]) ? '(), ' : ', ';
-			}
-        }
-        if (s.length > 2) {
-            s = s.substr(0, s.length - 2);
-        }
-        s += ' ]';
-        return s;
-    }
-};/**
- * This package provide methods for String
- */
-
-/**
- * Check if string start with value parameter
- *
- * @param {String} value - Required. The search value in this string
- * @return true if this string start with the specified value
- */
-String.prototype.startWith = function(value){
-    return this.substring(value.length, 0) == value;
-};
-
-/**
- * Check if string end with value parameter
- *
- * @param {String} value - Required. The search value in this string
- * @return true if string end with the specified value.
- */
-String.prototype.endWith = function(value){
-    return this.substring(value.length, this.length) == value;
-};
-/**
- * Based on Javascript Date Format from http://blog.stevenlevithan.com/archives/date-time-format
- * 
- * This package provide methods for date
- * 
- *  *********************
- *  Possible mask values:
- *  *********************
- * 	d  				Day of the month as digits; no leading zero for single-digit days.
- *	dd 				Day of the month as digits; leading zero for single-digit days.
- *	ddd 			Day of the week as a three-letter abbreviation.
- *	dddd 			Day of the week as its full name.
- *	m 				Month as digits; no leading zero for single-digit months.
- *	mm 				Month as digits; leading zero for single-digit months.
- *	mmm 			Month as a three-letter abbreviation.
- *	mmmm 			Month as its full name.
- *	yy 				Year as last two digits; leading zero for years less than 10.
- *	yyyy 			Year represented by four digits.
- *	h 				Hours; no leading zero for single-digit hours (12-hour clock).
- *	hh 				Hours; leading zero for single-digit hours (12-hour clock).
- * 	H 				Hours; no leading zero for single-digit hours (24-hour clock).
- *	HH 				Hours; leading zero for single-digit hours (24-hour clock).
- *	M 				Minutes; no leading zero for single-digit minutes. Uppercase M unlike CF timeFormat's m to avoid conflict with months.
- *	MM 				Minutes; leading zero for single-digit minutes. Uppercase MM unlike CF timeFormat's mm to avoid conflict with months.
- *	s 				Seconds; no leading zero for single-digit seconds.
- *	ss 				Seconds; leading zero for single-digit seconds.
- *	l or L 			Milliseconds. l gives 3 digits. L gives 2 digits.
- *	t 				Lowercase, single-character time marker string: a or p. No equivalent in CF.
- *	tt 				Lowercase, two-character time marker string: am or pm. No equivalent in CF.
- *	T 				Uppercase, single-character time marker string: A or P. Uppercase T unlike CF's t to allow for user-specified casing.
- *	TT 				Uppercase, two-character time marker string: AM or PM. Uppercase TT unlike CF's tt to allow for user-specified casing.
- *	Z 				US timezone abbreviation, e.g. EST or MDT. With non-US timezones or in the Opera browser, the GMT/UTC offset is returned, e.g. GMT-0500. No equivalent in CF.
- *	o 				GMT/UTC timezone offset, e.g. -0500 or +0230. No equivalent in CF.
- *	S 				The date's ordinal suffix (st, nd, rd, or th). Works well with d. No equivalent in CF.
- *	'…' or "…" 		Literal character sequence. Surrounding quotes are removed. No equivalent in CF.
- *	UTC: 			Must be the first four characters of the mask. Converts the date from local time to UTC/GMT/Zulu time before applying the mask. The "UTC:" prefix is removed. No equivalent in CF.
- *
- *	default  		ddd mmm dd yyyy HH:MM:ss
- *	shortDate 		m/d/yy
- *	mediumDate 		mmm d, yyyy
- * 	longDate 		mmmm d, yyyy
- *	fullDate 		dddd, mmmm d, yyyy
- *	shortTime 		h:MM TT
- *	mediumTime 		h:MM:ss TT
- *	longTime 		h:MM:ss TT Z
- *	isoDate 		yyyy-mm-dd
- *	isoTime 		HH:MM:ss
- *	isoDateTime 	yyyy-mm-dd'T'HH:MM:ss
- *	isoUtcDateTime 	UTC:yyyy-mm-dd'T'HH:MM:ss'Z'
- *
- *	@example:
- *		var date = new Date();
- *		var d = date.format('dd/mm/yyyy HH:MM:ss');
- */
-jscop.date = {};
-
-/**
- * Usual masks
- */
-jscop.date.masks = {
-    "default": "ddd mmm dd yyyy HH:MM:ss",
-    shortDate: "m/d/yy",
-    mediumDate: "mmm d, yyyy",
-    longDate: "mmmm d, yyyy",
-    fullDate: "dddd, mmmm d, yyyy",
-    shortTime: "h:MM TT",
-    mediumTime: "h:MM:ss TT",
-    longTime: "h:MM:ss TT Z",
-    isoDate: "yyyy-mm-dd",
-    isoTime: "HH:MM:ss",
-    isoDateTime: "yyyy-mm-dd'T'HH:MM:ss",
-    isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
-};
-
-/**
- * i18n days and months name
- */
-jscop.date.i18n = {
-    dayNames: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
-    monthNames: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
-};
-
-/**
- * Return a formated date corresponding to a mask
- * @param {String} mask - Optional. Mask for date formatting.
- * @param {Boolean} utc - Optional. Specified if date is utc or not.
- * @return the fomated date depending of the specified format.
- */
-Date.prototype.format = function(mask, utc){
-    var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, timezoneClip = /[^-+\dA-Z]/g, pad = function(val, len){
-        val = String(val);
-        len = len || 2;
-        while (val.length < len) {
-            val = "0" + val;
-        }
-        return val;
-    };
-    
-    // Regexes and supporting functions are cached through closure
-    var dF = jscop.date;
-    
-    // Passing date through Date applies Date.parse, if necessary
-    var date = this;
-    mask = String(dF.masks[mask] || mask || dF.masks["default"]);
-    
-    // Allow setting the utc argument via the mask
-    if (mask.slice(0, 4) == "UTC:") {
-        mask = mask.slice(4);
-        utc = true;
-    }
-    
-    var _ = utc ? "getUTC" : "get", d = date[_ + "Date"](), D = date[_ + "Day"](), m = date[_ + "Month"](), y = date[_ + "FullYear"](), H = date[_ + "Hours"](), M = date[_ + "Minutes"](), s = date[_ + "Seconds"](), L = date[_ + "Milliseconds"](), o = utc ? 0 : date.getTimezoneOffset(), flags = {
-        d: d,
-        dd: pad(d),
-        ddd: dF.i18n.dayNames[D],
-        dddd: dF.i18n.dayNames[D + 7],
-        m: m + 1,
-        mm: pad(m + 1),
-        mmm: dF.i18n.monthNames[m],
-        mmmm: dF.i18n.monthNames[m + 12],
-        yy: String(y).slice(2),
-        yyyy: y,
-        h: H % 12 || 12,
-        hh: pad(H % 12 || 12),
-        H: H,
-        HH: pad(H),
-        M: M,
-        MM: pad(M),
-        s: s,
-        ss: pad(s),
-        l: pad(L, 3),
-        L: pad(L > 99 ? Math.round(L / 10) : L),
-        t: H < 12 ? "a" : "p",
-        tt: H < 12 ? "am" : "pm",
-        T: H < 12 ? "A" : "P",
-        TT: H < 12 ? "AM" : "PM",
-        Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
-        o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
-        S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
-    };
-    
-    return mask.replace(token, function($0){
-        return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
-    });
-};
-/**
- * This package provide method for Array
- */
-
-/**
- * Returns true if this array contains the specified element.
- * @param {mixed} elt - Required. Element whose presence in this array is to be tested.
- * @return true if this array contains the specified element . 
- */
-Array.prototype.contains = function(elt){
-    return (this.indexOf(elt) > -1);
-};
-
-/**
- * Removes the element at specified index from this array and returns the removed element.
- * @param {Integer} index - Required. An integer that specifies at what position to remove element.
- * @return the removed element
- */
-Array.prototype.removeAt = function(index){
-    this.splice(index, 1);
-};
-
-/**
- * Removes a single instance of the specified element from this array, if it is present.
- * Returns true if this array contained the specified element.
- * @param {mixed} elt - Required. Element to be removed from this array, if present.
- * @return true if this array changed as a result of the call. 
- */
-Array.prototype.remove = function(elt){
-    if (this.contains(elt)) {
-        this.removeAt(this.indexOf(elt));
-        return true;
-    }
-    return false;
-};
-
-/**
- * Removes all instance of the specified element from this array.
- * @param {mixed} elt - Required. Element to be removed from this array
- * @return the number of element removed 
- */
-Array.prototype.removeAll = function(elt){
-	var countRemove = 0;
-    while (this.contains(elt)) {
-        this.remove(elt);
-        countRemove++;
-    }
-    return countRemove;
-};
-
-/**
- * Return the last element of this array
- * @return the last element of this array
- */
-Array.prototype.last = function(){
-    return this[this.length - 1];
-};
-/**
- * This package provide a console logger
- * 
- * By default, logger used this settings :
- * 		jscop.logger.setting = {
- *     		root: jscop.logger.level.DEBUG,
- *     		appender: jscop.HtmlLoggerAppender,
- *     		formating: '%D %L [%C] %M',
- *     		dateFormat: 'dd/mm/yyyy HH:MM:ss',
- * 			level: {}
- * 		};
- * 
- * @example
- *  Build a logger with default settings
- * 		var logger = new jscop.Logger( MyClass );
- * 
- * 	Log messages in firebug console
- * 		jscop.logger.settings.appender = jscop.FirebugLoggerAppender;
- * 		var logger = new jscop.Logger( 'MyClass' );
- * 
- *  Specified level for a class
- *  	jscop.logger.settings.level = {
- *  		'MyClass': jscop.logger.level.DEBUG,
- *  		'OtherClass' : jscop.logger.level.FATAL
- *  	}
- *  
- *  Note : the root level has priority over class levels
- */
-jscop.logger = {};
-
-/**
- * Logger events definition
- */
-jscop.logger.event = {
-    MESSAGE_PREPEND_EVENT: 'messageprepend'
-};
-
-/**
- * Logger levels definition
- */
-jscop.logger.level = {
-    DEBUG: 0,
-    INFO: 1,
-    WARN: 2,
-    ERROR: 3,
-    FATAL: 4
-};
-
-/**
- * This logger output display message in Firebug console
- */
-jscop.FirebugLoggerAppender = function FirebugLoggerAppender(logger){
-    this.logger = logger;
-};
-
-jscop.FirebugLoggerAppender.method('debug', function(message){
-    try {
-        console.debug(this.formatMessage(message, 'DEBUG'));
-    } 
-    catch (e) {
-    }
-});
-
-jscop.FirebugLoggerAppender.method('info', function(message){
-    try {
-	    console.info(this.formatMessage(message, 'INFO'));
-    } 
-    catch (e) {
-    }
-});
-
-jscop.FirebugLoggerAppender.method('warn', function(message){
-    try {
-	    console.warn(this.formatMessage(message, 'WARN'));
-    } 
-    catch (e) {
-    }
-});
-
-jscop.FirebugLoggerAppender.method('error', function(message){
-    try {
-	    console.error(this.formatMessage(message, 'ERROR'));
-    } 
-    catch (e) {
-    }
-});
-
-jscop.FirebugLoggerAppender.method('fatal', function(message){
-    try {
-	    console.error(this.formatMessage(message, 'FATAL'));
-    } 
-    catch (e) {
-    }
-});
-
-jscop.FirebugLoggerAppender.method('formatMessage', function(message, level){
-    var date = new Date();
-    var d = date.format(jscop.logger.setting.dateFormat);
-    var s = jscop.logger.setting.formating;
-    s = s.replace('%D', d);
-    s = s.replace('%L', level);
-    s = s.replace('%C', this.logger.classLogged);
-    s = s.replace('%M', message);
-    return s;
-});
-
-/**
- * This logger output display message in a float div element
- */
-jscop.HtmlLoggerAppender = function HtmlLoggerAppender(logger){
-    this.logger = logger;
-    var self = this;
-    this.console = $('#jscop-logger-console');
-    this.isVisible = true;
-    this.timeout;
-    if (!this.console.get(0)) {
-        var consoleTaskbar = $('<div id="jscop-logger-console-taskbar">Clear</div>');
-        consoleTaskbar.css('background-color', '#F2F2F2');
-        consoleTaskbar.css('text-align', 'right');
-        consoleTaskbar.css('padding-right', '5px');
-        consoleTaskbar.css('cursor', 'pointer');
-        consoleTaskbar.css('border', '1px solid #A4A1A1');
-        consoleTaskbar.css('font-size', '100%');
-        consoleTaskbar.css('font-weight', 'bolder');
-        consoleTaskbar.height('20px');
-        consoleTaskbar.click(function(event){
-            self.console.empty();
-        });
-        
-        this.console = $('<div id="jscop-logger-console"></div>');
-        this.console.css('overflow-y', 'scroll');
-        this.console.css('height', '500px');
-        
-        var consoleContainer = $('<div id="jscop-logger-console-container"></div>');
-        consoleContainer.css('position', 'absolute');
-        consoleContainer.css('top', 0);
-        consoleContainer.css('right', 0);
-        consoleContainer.css('padding', '2px');
-        consoleContainer.css('padding-top', '0');
-        consoleContainer.css('background-color', '#E9E8E8');
-        consoleContainer.width('40%');
-        consoleContainer.css('opacity', 0.9);
-        consoleContainer.bind('mouseenter', function(event){
-            if (!self.isVisible) {
-                $(this).animate({
-                    'width': '40%',
-                    'opacity': 0.9
-                }, 'high', function(){
-                    self.isVisible = true;
-                });
-                consoleTaskbar.css('display', 'block');
-            }
-            else {
-                clearTimeout(self.timeout);
-            }
-        });
-        consoleContainer.bind(jscop.logger.event.MESSAGE_PREPEND_EVENT, function(event){
-            if (!self.isVisible) {
-                $(this).animate({
-                    'width': '40%',
-                    'opacity': 0.9
-                }, 'high', function(){
-                    self.isVisible = true;
-                });
-                consoleTaskbar.css('display', 'block');
-                self.timeout = setTimeout(function(){
-                    consoleContainer.trigger('mouseleave');
-                }, 5000);
-            }
-            else {
-                clearTimeout(self.timeout);
-                self.timeout = setTimeout(function(){
-                    consoleContainer.trigger('mouseleave');
-                }, 5000);
-            }
-        });
-        consoleContainer.bind('mouseleave', function(event){
-            if (self.isVisible) {
-                $(this).animate({
-                    'width': '0',
-                    'opacity': 0
-                }, 'high', function(){
-                    consoleTaskbar.css('display', 'none');
-                    self.isVisible = false;
-                });
-            }
-        });
-        
-        this.console.appendTo(consoleContainer);
-        consoleTaskbar.appendTo(consoleContainer);
-        consoleContainer.prependTo(document.body);
-        
-        setTimeout(function(){
-            consoleContainer.trigger('mouseleave');
-        }, 700);
-    }
-};
-
-jscop.HtmlLoggerAppender.method('debug', function(message){
-    var elt = this.formatMessage(message, 'DEBUG');
-    elt.css('border', '2px solid #AAAAAA');
-    elt.css('background-color', '#D6D6D6');
-    elt.css('color', '#424242');
-    this.console.prepend(elt);
-});
-
-jscop.HtmlLoggerAppender.method('info', function(message){
-    var elt = this.formatMessage(message, 'INFO');
-    elt.css('border', '2px solid #418DD4');
-    elt.css('background-color', '#BEDDFA');
-    elt.css('color', '#00659C');
-    this.console.prepend(elt);
-});
-
-jscop.HtmlLoggerAppender.method('warn', function(message){
-    var elt = this.formatMessage(message, 'WARN');
-    elt.css('border', '2px solid #FFD324');
-    elt.css('background-color', '#FFF94A');
-    elt.css('color', '#755D00');
-    this.console.prepend(elt);
-});
-
-jscop.HtmlLoggerAppender.method('error', function(message){
-    var elt = this.formatMessage(message, 'ERROR');
-    elt.css('border', '2px solid #FFB3B5');
-    elt.css('background-color', '#FFD4D5');
-    elt.css('color', '#8A1F11');
-    this.console.prepend(elt);
-});
-
-jscop.HtmlLoggerAppender.method('fatal', function(message){
-    var elt = this.formatMessage(message, 'FATAL');
-    elt.css('border', '2px solid #000000');
-    elt.css('background-color', '#3B3B3B');
-    elt.css('color', '#CCCCCC');
-    this.console.prepend(elt);
-});
-
-jscop.HtmlLoggerAppender.method('formatMessage', function(message, level){
-    var date = new Date();
-    var d = date.format(jscop.logger.setting.dateFormat);
-    var s = jscop.logger.setting.formating;
-    s = s.replace('%D', '<em>' + d + '</em>');
-    s = s.replace('%L', '<strong>' + level + '</strong>');
-    s = s.replace('%C', this.logger.classLogged);
-    s = s.replace('%M', message);
-    var elt = $('<div>&nbsp;</div>');
-    elt.addClass('jscop-logger-log');
-    elt.css('padding', '2px');
-    elt.css('margin-top', '2px');
-    elt.css('margin-right', '2px');
-    elt.append(s);
-    this.console.trigger(jscop.logger.event.MESSAGE_PREPEND_EVENT);
-    return elt;
-});
-
-/**
- * Default settings for logger
- */
-jscop.logger.setting = {
-    root: jscop.logger.level.DEBUG,
-    appender: jscop.HtmlLoggerAppender,
-    formating: '%D %L [%C] %M',
-    dateFormat: 'dd/mm/yyyy HH:MM:ss',
-    level: {}
-};
-
-/**
- * Logger Constructor
- * @param {String} classLogged - Required. The class name to log
- */
-jscop.Logger = function Logger(classLogged, appender){
-    this.classLogged = classLogged;
-    this.appender = (null == appender ? new jscop.logger.setting.appender(this) : new appender(this));
-};
-
-/**
- * Return true if the given level can be show for this logger depending on the settings  
- */
-jscop.Logger.method('checkLevel', function(level){
-    return ((jscop.logger.setting.root <= level && jscop.logger.setting.level[this.classLogged] === undefined) || jscop.logger.setting.level[this.classLogged] <= level);
-});
-
-/**
- * Append a debug message if it is to be displayed
- */
-jscop.Logger.method('debug', function(message){
-    if (this.checkLevel(jscop.logger.level.DEBUG)) {
-        this.appender.debug(message);
-    }
-});
-
-/**
- * Append a info message if it is to be displayed
- */
-jscop.Logger.method('info', function(message){
-    if (this.checkLevel(jscop.logger.level.INFO)) {
-        this.appender.info(message);
-    }
-});
-
-/**
- * Append a warn message if it is to be displayed
- */
-jscop.Logger.method('warn', function(message){
-    if (this.checkLevel(jscop.logger.level.WARN)) {
-        this.appender.warn(message);
-    }
-});
-
-/**
- * Append a error message if it is to be displayed
- */
-jscop.Logger.method('error', function(message){
-    if (this.checkLevel(jscop.logger.level.ERROR)) {
-        this.appender.error(message);
-    }
-});
-
-/**
- * Append a fatal message if it is to be displayed
- */
-jscop.Logger.method('fatal', function(message){
-    if (this.checkLevel(jscop.logger.level.FATAL)) {
-        this.appender.fatal(message);
-    }
-});
-
-// A root logger for firebug that already initialized
-// Use firebug.debug('My log message')
-var firebug = new jscop.Logger('root', jscop.FirebugLoggerAppender);

misc/build/build.properties

+licence = /*\nThe contents of this file are subject to the Mozilla Public License\nVersion 1.1 (the "License"); you may not use this file except in\ncompliance with the License. You may obtain a copy of the License at\nhttp://www.mozilla.org/MPL/\n\nSoftware distributed under the License is distributed on an "AS IS"\nbasis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the\nLicense for the specific language governing rights and limitations\nunder the License.\n\nThe Original Code is Jscop javascript library.\n\nThe Initial Developer of the Original Code is Benoit Bar <benoit.bar@scopart.fr>.\nPortions created by Initial Developer are Copyright (C) 2011\nthe Initail Developer. All Rights Reserved.\n\nContributor(s):\n\tJulien Antony <julien.antony@scopart.fr>\n\tAlexis Couronne <alexis.couronne@scopart.fr>\n\nAlternatively, the contents of this file may be used under the terms\nof the GNU General Public License Version 2 or later (the  "GPL"), or\nthe GNU Lesser General Public License Version 2.1 or later (the "LGPL"),\nin which case the provisions of the GPL or the LGPL are applicable instead\nof those above. If you wish to allow use of your version of this file only\nunder the terms of either the GPL or the LGPL, and not to allow others to\nuse your version of this file under the terms of the MPL, indicate your\ndecision by deleting  the provisions above and replace them with the notice\nand other provisions required by the GPL or the LGPL. If you do not delete\nthe provisions above, a recipient may use your version of this file under\nthe terms of any one of the MPL, the GPL or the LGPL.\n*/
 src.dir = src
 dist.dir = media/js
-js.list = jscop/jscop.js, jscop/core/extend.js, jscop/core/utils.js, jscop/core/string.js, jscop/core/date.js, jscop/core/array.js, jscop/core/logger.js
-js.dest = jscop.js
+jsdoc.dir = misc/lib/jsdoc-toolkit
+jsdoc.dest = doc
+#core
+#jscop/jscop.js, jscop/core/string.js, jscop/core/date.js, jscop/core/array.js, jscop/core/math.js, jscop/core/extend.js, jscop/core/utils.js, jscop/core/logger.js
+#display
+#jscop/display/loader.js, jscop/display/notifier.js
+#game
+#jscop/game/canvas.js, jscop/game/shape.js, jscop/game/frame.js, jscop/game/control.js, jscop/game/parallax.js, jscop/game/collision.js
+#jquery
+#jscop/jquery/rating.js, jscop/jquery/scrollcall.js, jscop/jquery/imageloader.js
+js.list = jscop/jscop.js, jscop/core/string.js, jscop/core/date.js, jscop/core/array.js, jscop/core/math.js, jscop/core/extend.js, jscop/core/utils.js, jscop/core/logger.js, jscop/game/canvas.js, jscop/game/shape.js
+js.version = 0.3
 compressor.jar = misc/lib/yuicompressor-2.4.2/build/yuicompressor-2.4.2.jar

misc/build/build.xml

         </concat>
     </target>
     
+	<target name="licence">
+		<concat destfile="${dest}">
+	    	<header filtering="no" trimleading="yes">
+	        	${licence}
+	      	</header>
+	      	<path path="${file}"/>
+	   	</concat>
+	</target>
+	
+	<target name="remove">
+		<delete file="${file}" quiet="true"/>
+	</target>
+	
+	<target name="doc" depends="-init">
+		<java jar="${jsdoc.dir}/jsrun.jar" fork="true" failonerror="true">
+            <arg line="${jsdoc.dir}/app/run.js"/>
+            <arg line="-a"/>
+            <arg line="-t=${jsdoc.dir}/templates/codeview.1.2"/>
+            <arg line="-d=${jsdoc.dest}"/>
+            <arg line="-D='title:Jscop Library'"/>
+            <arg line="-D='index:files'"/>
+            <arg line="-r=4"/>
+            <arg line="${src.dir}"/>
+        </java>
+	</target>
+	
     <target name="compress" depends="-init">
         <antcall target="concat">
-            <param name="dest" value="${dist.dir}/${js.dest}"/>
+            <param name="dest" value="${dist.dir}/jscop-${js.version}.js"/>
             <param name="filelist" value="${js.list}"/>
         </antcall>
         <java jar="${compressor.jar}" fork="true" failonerror="true">
             <arg line="-o ${dist.dir}/jscop-min.js"/>
             <arg line="--charset utf-8"/>
-            <arg line="${dist.dir}/jscop.js"/>
+            <arg line="${dist.dir}/jscop-${js.version}.js"/>
         </java>
+    	<antcall target="licence">
+            <param name="dest" value="${dist.dir}/jscop-${js.version}-min.js"/>
+            <param name="file" value="${dist.dir}/jscop-min.js"/>
+        </antcall>
     </target>
 </project>

misc/jscop-formatting.xml

+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<profiles version="11">
+<profile kind="CodeFormatterProfile" name="scopart" version="11">
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block_in_case" value="next_line"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.indent_empty_lines" value="false"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_annotation" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_header" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_block_comments" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_object_initializer" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations" value="0"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_assignment" value="0"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="4"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_else_in_if_statement" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns" value="false"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_objlit_initializer" value="1"/>
+<setting id="org.eclipse.wst.jsdt.core.compiler.compliance" value="1.5"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_objlit_initializer" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_source_code" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.wrap_before_binary_operator" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="1"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_comma_in_objlit_initializer" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_while_in_do_statement" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_javadoc_comments" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.indentation.size" value="4"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_objlit_initializer" value="end_of_line"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.compiler.source" value="1.5"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch" value="next_line"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="2"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression" value="80"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.comment.indent_parameter_description" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="1"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.comment.indent_root_tags" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="0"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="1"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_enum_constants" value="0"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="1"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="160"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_html" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="1"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.compiler.codegen.targetPlatform" value="1.5"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.keep_empty_objlit_initializer_on_one_line" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_block" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_line_comments" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
+<setting id="org.eclipse.wst.jsdt.core.compiler.problem.assertIdentifier" value="error"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_for_parameter" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_object_initializer" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.comment.line_length" value="80"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block" value="next_line"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_body" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="space"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_import_groups" value="1"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="1"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_objlit_initializer" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="1"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="insert"/>
+<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
+</profile>
+</profiles>

misc/lib/jquery.easing.1.3.js

File contents unchanged.

misc/lib/jsdoc-toolkit/README.txt

+======================================================================
+
+DESCRIPTION:
+
+This is the source code for JsDoc Toolkit, an automatic documentation
+generation tool for JavaScript. It is written in JavaScript and is run
+from a command line (or terminal) using Java and Mozilla's Rhino
+JavaScript runtime engine.
+
+Using this tool you can automatically turn JavaDoc-like comments in
+your JavaScript source code into published output files, such as HTML
+or XML.
+
+For more information, to report a bug, or to browse the technical
+documentation for this tool please visit the official JsDoc Toolkit
+project homepage at http://code.google.com/p/jsdoc-toolkit/
+
+For the most up-to-date documentation on JsDoc Toolkit see the 
+official wiki at http://code.google.com/p/jsdoc-toolkit/w/list
+
+======================================================================
+
+REQUIREMENTS:
+
+JsDoc Toolkit is known to work with:
+java version "1.6.0_03"
+Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
+on Windows XP,
+and java version "1.5.0_19"
+Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02-304)
+on Mac OS X 10.5.
+
+Other versions of java may or may not work with JsDoc Toolkit.
+
+======================================================================
+
+USAGE:
+
+Running JsDoc Toolkit requires you to have Java installed on your
+computer. For more information see http://www.java.com/getjava/
+
+Before running the JsDoc Toolkit app you should change your current
+working directory to the jsdoc-toolkit folder. Then follow the
+examples below, or as shown on the project wiki.
+
+On a computer running Windows a valid command line to run JsDoc
+Toolkit might look like this:
+
+> java -jar jsrun.jar app\run.js -a -t=templates\jsdoc mycode.js
+
+On Mac OS X or Linux the same command would look like this:
+
+$ java -jar jsrun.jar app/run.js -a -t=templates/jsdoc mycode.js
+
+The above assumes your current working directory contains jsrun.jar,
+the "app" and "templates" subdirectories from the standard JsDoc
+Toolkit distribution and that the relative path to the code you wish
+to document is "mycode.js".
+
+The output documentation files will be saved to a new directory named
+"out" (by default) in the current directory, or if you specify a
+-d=somewhere_else option, to the somewhere_else directory.
+
+For help (usage notes) enter this on the command line:
+
+$ java -jar jsrun.jar app/run.js --help
+
+More information about the various command line options used by JsDoc
+Toolkit are available on the project wiki.
+
+======================================================================
+
+RUNNING VIA SHELL SCRIPT
+
+Avi Deitcher has contributed the file jsrun.sh with the following usage notes:
+
+A script to simplify running jsdoc from the command-line, especially when
+running from within a development or build environment such as ant.
+
+Normally, to run jsdoc, you need a command-line as the following:
+java -Djsdoc.dir=/some/long/dir/path/to/jsdoc -jar
+/some/long/dir/path/to/jsdoc/jsrun.jar /some/long/dir/path/to/jsdoc/app/run.js
+-t=template -r=4 /some/long/dir/path/to/my/src/code
+
+This can get tedious to redo time and again, and difficult to use from within a build environment.
+
+To simplify the process, jsrun.sh will automatically run this path, as well as passing through any arguments.
+
+Usage: jsrun.sh <run.js arguments>
+
+All <run.js arguments> will be passed through.
+Additionally, jsrun.sh will take the following actions:
+1) If the environment variable JSDOCDIR is set, it will add
+"-Djsdoc.dir=$JSDOCDIR" to the command-line
+2) If the environment variable JSDOCTEMPLATEDIR is set, it will add
+"-Djsdoc.template.dir=$JSDOCTEMPLATEDIR" to the command-line
+3) java with the appropriate path to jsrun.jar and run.js will be instantiated
+
+If not variables are set, it is assumed that the path to jsrun.jar and app/ is in the current working directory.
+
+Example:
+# jsrun.sh ./src/
+Assuming JSDOCDIR=/some/path/to/my/jsdoc will cause the following command to
+execute:
+java -Djsdoc.dir=/some/path/to/my/jsdoc -jar /some/path/to/my/jsdoc/jsrun.jar
+/some/path/to/my/jsdoc/app/run.js ./src/
+
+======================================================================
+
+TESTING:
+
+To run the suite of unit tests included with JsDoc Toolkit enter this
+on the command line:
+
+$ java -jar jsrun.jar app/run.js -T
+
+To see a dump of the internal data structure that JsDoc Toolkit has
+built from your source files use this command:
+
+$ java -jar jsrun.jar app/run.js mycode.js -Z
+
+======================================================================
+
+LICENSE:
+
+JSDoc.pm
+
+This project is based on the JSDoc.pm tool, created by Michael
+Mathews and Gabriel Reid. More information on JsDoc.pm can
+be found on the JSDoc.pm homepage: http://jsdoc.sourceforge.net/
+
+Complete documentation on JsDoc Toolkit can be found on the project
+wiki at http://code.google.com/p/jsdoc-toolkit/w/list
+
+Rhino
+
+Rhino (JavaScript in Java) is open source and licensed by Mozilla
+under the MPL 1.1 or later/GPL 2.0 or later licenses, the text of
+which is available at http://www.mozilla.org/MPL/
+
+You can obtain the source code for Rhino from the Mozilla web site at
+http://www.mozilla.org/rhino/download.html
+
+JsDoc Toolkit is a larger work that uses the Rhino JavaScript engine
+but is not derived from it in any way. The Rhino library is used 
+without modification and without any claims whatsoever.
+
+The Rhino Debugger
+
+You can obtain more information about the Rhino Debugger from the 
+Mozilla web site at http://www.mozilla.org/rhino/debugger.html
+
+JsDoc Toolkit is a larger work that uses the Rhino Debugger but
+is not derived from it in any way. The Rhino Debugger is used
+without modification and without any claims whatsoever.
+
+JsDoc Toolkit
+
+All code specific to JsDoc Toolkit are free, open source and licensed
+for use under the X11/MIT License.
+
+JsDoc Toolkit is Copyright (c)2009 Michael Mathews <micmath@gmail.com>
+
+This program is free software; you can redistribute it and/or
+modify it under the terms below.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions: The above copyright notice and this
+permission notice must be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

misc/lib/jsdoc-toolkit/app/frame.js

+IO.include("frame/Opt.js");
+IO.include("frame/Chain.js");
+IO.include("frame/Link.js");
+IO.include("frame/String.js");
+IO.include("frame/Hash.js");
+IO.include("frame/Namespace.js");
+//IO.include("frame/Reflection.js");
+
+/** A few helper functions to make life a little easier. */
+
+function defined(o) {
+	return (o !== undefined);
+}
+
+function copy(o) { // todo check for circular refs
+	if (o == null || typeof(o) != 'object') return o;
+	var c = new o.constructor();
+	for(var p in o)	c[p] = copy(o[p]);
+	return c;
+}
+
+function isUnique(arr) {
+	var l = arr.length;
+	for(var i = 0; i < l; i++ ) {
+		if (arr.lastIndexOf(arr[i]) > i) return false;
+	}
+	return true;
+}
+
+/** Returns the given string with all regex meta characters backslashed. */
+RegExp.escapeMeta = function(str) {
+	return str.replace(/([$^\\\/()|?+*\[\]{}.-])/g, "\\$1");
+}

misc/lib/jsdoc-toolkit/app/frame/Chain.js

+/**@constructor*/
+function ChainNode(object, link) {
+	this.value = object;
+	this.link = link; // describes this node's relationship to the previous node
+}
+
+/**@constructor*/
+function Chain(valueLinks) {
+	this.nodes = [];
+	this.cursor = -1;
+	
+	if (valueLinks && valueLinks.length > 0) {
+		this.push(valueLinks[0], "//");
+		for (var i = 1, l = valueLinks.length; i < l; i+=2) {
+			this.push(valueLinks[i+1], valueLinks[i]);
+		}
+	}
+}
+
+Chain.prototype.push = function(o, link) {
+	if (this.nodes.length > 0 && link) this.nodes.push(new ChainNode(o, link));
+	else this.nodes.push(new ChainNode(o));
+}
+
+Chain.prototype.unshift = function(o, link) {
+	if (this.nodes.length > 0 && link) this.nodes[0].link = link;
+	this.nodes.unshift(new ChainNode(o));
+	this.cursor++;
+}
+
+Chain.prototype.get = function() {
+	if (this.cursor < 0 || this.cursor > this.nodes.length-1) return null;
+	return this.nodes[this.cursor];
+}
+
+Chain.prototype.first = function() {
+	this.cursor = 0;
+	return this.get();
+}
+
+Chain.prototype.last = function() {
+	this.cursor = this.nodes.length-1;
+	return this.get();
+}
+
+Chain.prototype.next = function() {
+	this.cursor++;
+	return this.get();
+}
+
+Chain.prototype.prev = function() {
+	this.cursor--;
+	return this.get();
+}
+
+Chain.prototype.toString = function() {
+	var string = "";
+	for (var i = 0, l = this.nodes.length; i < l; i++) {
+		if (this.nodes[i].link) string += " -("+this.nodes[i].link+")-> ";
+		string += this.nodes[i].value.toString();
+	}
+	return string;
+}
+
+Chain.prototype.joinLeft = function() {
+	var result = "";
+	for (var i = 0, l = this.cursor; i < l; i++) {
+		if (result && this.nodes[i].link) result += this.nodes[i].link;
+		result += this.nodes[i].value.toString();
+	}
+	return result;
+}
+
+
+/* USAGE:
+
+var path = "one/two/three.four/five-six";
+var pathChain = new Chain(path.split(/([\/.-])/));
+print(pathChain);
+
+var lineage = new Chain();
+lineage.push("Port");
+lineage.push("Les", "son");
+lineage.push("Dawn", "daughter");
+lineage.unshift("Purdie", "son");
+
+print(lineage);
+
+// walk left
+for (var node = lineage.last(); node !== null; node = lineage.prev()) {
+	print("< "+node.value);
+}
+
+// walk right
+var node = lineage.first()
+while (node !== null) {
+	print(node.value);
+	node = lineage.next();
+	if (node && node.link) print("had a "+node.link+" named");
+}
+
+*/

misc/lib/jsdoc-toolkit/app/frame/Dumper.js

+/**
+ * @class
+<pre>
+This is a lightly modified version of Kevin Jones' JavaScript
+library Data.Dump. To download the original visit:
+    <a href="http://openjsan.org/doc/k/ke/kevinj/Data/Dump/">http://openjsan.org/doc/k/ke/kevinj/Data/Dump/</a>
+
+AUTHORS
+
+The Data.Dump JavaScript module is written by Kevin Jones 
+(kevinj@cpan.org), based on Data::Dump by Gisle Aas (gisle@aas.no),
+based on Data::Dumper by Gurusamy Sarathy (gsar@umich.edu).
+
+COPYRIGHT
+
+Copyright 2007 Kevin Jones. Copyright 1998-2000,2003-2004 Gisle Aas.
+Copyright 1996-1998 Gurusamy Sarathy.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the Perl Artistic License
+
+See http://www.perl.com/perl/misc/Artistic.html
+</pre>
+ * @static
+ */
+Dumper = {
+	/** @param [...] The objects to dump. */
+	dump: function () {
+	    if (arguments.length > 1)
+	        return this._dump(arguments);
+	    else if (arguments.length == 1)
+	        return this._dump(arguments[0]);
+	    else
+	        return "()";
+	},
+	
+	_dump: function (obj) {
+		if (typeof obj == 'undefined') return 'undefined';
+		var out;
+		if (obj.serialize) { return obj.serialize(); }
+		var type = this._typeof(obj);
+		if (obj.circularReference) obj.circularReference++;
+		switch (type) {
+			case 'circular':
+				out = "{ //circularReference\n}";
+				break;
+			case 'object':
+				var pairs = new Array;
+				
+				for (var prop in obj) {
+					if (prop != "circularReference" && obj.hasOwnProperty(prop)) { //hide inherited properties
+						pairs.push(prop + ': ' + this._dump(obj[prop]));
+					}
+				}
+	
+				out = '{' + this._format_list(pairs) + '}';
+				break;
+	
+			case 'string':
+				for (var prop in Dumper.ESC) {
+					if (Dumper.ESC.hasOwnProperty(prop)) {
+						obj = obj.replace(prop, Dumper.ESC[prop]);
+					}
+				}
+	
+			// Escape UTF-8 Strings
+				if (obj.match(/^[\x00-\x7f]*$/)) {
+					out = '"' + obj.replace(/\"/g, "\\\"").replace(/([\n\r]+)/g, "\\$1") + '"';
+				}
+				else {
+					out = "unescape('"+escape(obj)+"')";
+				}
+				break;
+	
+			case 'array':
+				var elems = new Array;
+	
+				for (var i=0; i<obj.length; i++) {
+					elems.push( this._dump(obj[i]) );
+				}
+	
+				out = '[' + this._format_list(elems) + ']';
+				break;
+	
+			case 'date':
+			// firefox returns GMT strings from toUTCString()...
+			var utc_string = obj.toUTCString().replace(/GMT/,'UTC');
+				out = 'new Date("' + utc_string + '")';
+				break;
+	
+			case 'element':
+				// DOM element
+				out = this._dump_dom(obj);
+				break;
+		
+				default:
+					out = obj;
+		}
+	
+		out = String(out).replace(/\n/g, '\n    ');
+		out = out.replace(/\n    (.*)$/,"\n$1");
+	
+		return out;
+	},
+	
+	_format_list: function (list) {
+		if (!list.length) return '';
+		var nl = list.toString().length > 60 ? '\n' : ' ';
+		return nl + list.join(',' + nl) + nl;
+    },
+    
+    _typeof: function (obj) {
+    	if (obj && obj.circularReference && obj.circularReference > 1) return 'circular';
+		if (Array.prototype.isPrototypeOf(obj)) return 'array';
+		if (Date.prototype.isPrototypeOf(obj)) return 'date';
+		if (typeof obj.nodeType != 'undefined') return 'element';
+		return typeof(obj);
+	},
+	
+	_dump_dom: function (obj) {
+		return '"' + Dumper.nodeTypes[obj.nodeType] + '"';