var $_, $hxClasses = $hxClasses || {}, $estr = function() { return js.Boot.__string_rec(this,''); }
function $extend(from, fields) {
function inherit() {}; inherit.prototype = from; var proto = new inherit();
for (var name in fields) proto[name] = fields[name];
return proto;
}
var js = js || {}
js.Selection = $hxClasses["js.Selection"] = function(doc) {
this.doc = doc;
}
js.Selection.__name__ = ["js","Selection"];
js.Selection.prototype = {
doc: null
,get: function() {
if(this.doc.selectionStart != null) return this.doc.value.substring(this.doc.selectionStart,this.doc.selectionEnd);
var range = js.Lib.document.selection.createRange();
if(range.parentElement() != this.doc) return "";
return range.text;
}
,select: function(start,end) {
this.doc.focus();
if(this.doc.selectionStart != null) {
this.doc.selectionStart = start;
this.doc.selectionEnd = end;
return;
}
var value = this.doc.value;
var p = 0, delta = 0;
while(true) {
var i = value.indexOf("\r\n",p);
if(i < 0 || i > start) break;
delta++;
p = i + 2;
}
start -= delta;
while(true) {
var i = value.indexOf("\r\n",p);
if(i < 0 || i > end) break;
delta++;
p = i + 2;
}
end -= delta;
var r = this.doc.createTextRange();
r.moveEnd("textedit",-1);
r.moveStart("character",start);
r.moveEnd("character",end - start);
r.select();
}
,insert: function(left,text,right) {
this.doc.focus();
if(this.doc.selectionStart != null) {
var top = this.doc.scrollTop;
var start = this.doc.selectionStart;
var end = this.doc.selectionEnd;
this.doc.value = this.doc.value.substr(0,start) + left + text + right + this.doc.value.substr(end);
this.doc.selectionStart = start + left.length;
this.doc.selectionEnd = start + left.length + text.length;
this.doc.scrollTop = top;
return;
}
var range = js.Lib.document.selection.createRange();
range.text = left + text + right;
range.moveStart("character",-text.length - right.length);
range.moveEnd("character",-right.length);
range.select();
}
,__class__: js.Selection
}
var StringTools = $hxClasses["StringTools"] = function() { }
StringTools.__name__ = ["StringTools"];
StringTools.urlEncode = function(s) {
return encodeURIComponent(s);
}
StringTools.urlDecode = function(s) {
return decodeURIComponent(s.split("+").join(" "));
}
StringTools.htmlEscape = function(s) {
return s.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;");
}
StringTools.htmlUnescape = function(s) {
return s.split("&gt;").join(">").split("&lt;").join("<").split("&amp;").join("&");
}
StringTools.startsWith = function(s,start) {
return s.length >= start.length && s.substr(0,start.length) == start;
}
StringTools.endsWith = function(s,end) {
var elen = end.length;
var slen = s.length;
return slen >= elen && s.substr(slen - elen,elen) == end;
}
StringTools.isSpace = function(s,pos) {
var c = s.charCodeAt(pos);
return c >= 9 && c <= 13 || c == 32;
}
StringTools.ltrim = function(s) {
var l = s.length;
var r = 0;
while(r < l && StringTools.isSpace(s,r)) r++;
if(r > 0) return s.substr(r,l - r); else return s;
}
StringTools.rtrim = function(s) {
var l = s.length;
var r = 0;
while(r < l && StringTools.isSpace(s,l - r - 1)) r++;
if(r > 0) return s.substr(0,l - r); else return s;
}
StringTools.trim = function(s) {
return StringTools.ltrim(StringTools.rtrim(s));
}
StringTools.rpad = function(s,c,l) {
var sl = s.length;
var cl = c.length;
while(sl < l) if(l - sl < cl) {
s += c.substr(0,l - sl);
sl = l;
} else {
s += c;
sl += cl;
}
return s;
}
StringTools.lpad = function(s,c,l) {
var ns = "";
var sl = s.length;
if(sl >= l) return s;
var cl = c.length;
while(sl < l) if(l - sl < cl) {
ns += c.substr(0,l - sl);
sl = l;
} else {
ns += c;
sl += cl;
}
return ns + s;
}
StringTools.replace = function(s,sub,by) {
return s.split(sub).join(by);
}
StringTools.hex = function(n,digits) {
var s = "";
var hexChars = "0123456789ABCDEF";
do {
s = hexChars.charAt(n & 15) + s;
n >>>= 4;
} while(n > 0);
if(digits != null) while(s.length < digits) s = "0" + s;
return s;
}
StringTools.fastCodeAt = function(s,index) {
return s.cca(index);
}
StringTools.isEOF = function(c) {
return c != c;
}
StringTools.prototype = {
__class__: StringTools
}
var EReg = $hxClasses["EReg"] = function(r,opt) {
opt = opt.split("u").join("");
this.r = new RegExp(r,opt);
}
EReg.__name__ = ["EReg"];
EReg.prototype = {
r: null
,match: function(s) {
this.r.m = this.r.exec(s);
this.r.s = s;
return this.r.m != null;
}
,matched: function(n) {
return this.r.m != null && n >= 0 && n < this.r.m.length?this.r.m[n]:(function($this) {
var $r;
throw "EReg::matched";
return $r;
}(this));
}
,matchedLeft: function() {
if(this.r.m == null) throw "No string matched";
return this.r.s.substr(0,this.r.m.index);
}
,matchedRight: function() {
if(this.r.m == null) throw "No string matched";
var sz = this.r.m.index + this.r.m[0].length;
return this.r.s.substr(sz,this.r.s.length - sz);
}
,matchedPos: function() {
if(this.r.m == null) throw "No string matched";
return { pos : this.r.m.index, len : this.r.m[0].length};
}
,split: function(s) {
var d = "#__delim__#";
return s.replace(this.r,d).split(d);
}
,replace: function(s,by) {
return s.replace(this.r,by);
}
,customReplace: function(s,f) {
var buf = new StringBuf();
while(true) {
if(!this.match(s)) break;
buf.add(this.matchedLeft());
buf.add(f(this));
s = this.matchedRight();
}
buf.b[buf.b.length] = s == null?"null":s;
return buf.b.join("");
}
,__class__: EReg
}
var Xml = $hxClasses["Xml"] = function() {
}
Xml.__name__ = ["Xml"];
Xml.Element = null;
Xml.PCData = null;
Xml.CData = null;
Xml.Comment = null;
Xml.DocType = null;
Xml.Prolog = null;
Xml.Document = null;
Xml.parse = function(str) {
var rules = [Xml.enode,Xml.epcdata,Xml.eend,Xml.ecdata,Xml.edoctype,Xml.ecomment,Xml.eprolog];
var nrules = rules.length;
var current = Xml.createDocument();
var stack = new List();
while(str.length > 0) {
var i = 0;
try {
while(i < nrules) {
var r = rules[i];
if(r.match(str)) {
switch(i) {
case 0:
var x = Xml.createElement(r.matched(1));
current.addChild(x);
str = r.matchedRight();
while(Xml.eattribute.match(str)) {
x.set(Xml.eattribute.matched(1),Xml.eattribute.matched(3));
str = Xml.eattribute.matchedRight();
}
if(!Xml.eclose.match(str)) {
i = nrules;
throw "__break__";
}
if(Xml.eclose.matched(1) == ">") {
stack.push(current);
current = x;
}
str = Xml.eclose.matchedRight();
break;
case 1:
var x = Xml.createPCData(r.matched(0));
current.addChild(x);
str = r.matchedRight();
break;
case 2:
if(current._children != null && current._children.length == 0) {
var e = Xml.createPCData("");
current.addChild(e);
}
if(r.matched(1) != current._nodeName || stack.isEmpty()) {
i = nrules;
throw "__break__";
}
current = stack.pop();
str = r.matchedRight();
break;
case 3:
str = r.matchedRight();
if(!Xml.ecdata_end.match(str)) throw "End of CDATA section not found";
var x = Xml.createCData(Xml.ecdata_end.matchedLeft());
current.addChild(x);
str = Xml.ecdata_end.matchedRight();
break;
case 4:
var pos = 0;
var count = 0;
var old = str;
try {
while(true) {
if(!Xml.edoctype_elt.match(str)) throw "End of DOCTYPE section not found";
var p = Xml.edoctype_elt.matchedPos();
pos += p.pos + p.len;
str = Xml.edoctype_elt.matchedRight();
switch(Xml.edoctype_elt.matched(0)) {
case "[":
count++;
break;
case "]":
count--;
if(count < 0) throw "Invalid ] found in DOCTYPE declaration";
break;
default:
if(count == 0) throw "__break__";
}
}
} catch( e ) { if( e != "__break__" ) throw e; }
var x = Xml.createDocType(old.substr(10,pos - 11));
current.addChild(x);
break;
case 5:
if(!Xml.ecomment_end.match(str)) throw "Unclosed Comment";
var p = Xml.ecomment_end.matchedPos();
var x = Xml.createComment(str.substr(4,p.pos + p.len - 7));
current.addChild(x);
str = Xml.ecomment_end.matchedRight();
break;
case 6:
var prolog = r.matched(0);
var x = Xml.createProlog(prolog.substr(2,prolog.length - 4));
current.addChild(x);
str = r.matchedRight();
break;
}
throw "__break__";
}
i += 1;
}
} catch( e ) { if( e != "__break__" ) throw e; }
if(i == nrules) {
if(str.length > 10) throw "Xml parse error : Unexpected " + str.substr(0,10) + "..."; else throw "Xml parse error : Unexpected " + str;
}
}
if(!stack.isEmpty()) throw "Xml parse error : Unclosed " + stack.last().getNodeName();
return current;
}
Xml.createElement = function(name) {
var r = new Xml();
r.nodeType = Xml.Element;
r._children = new Array();
r._attributes = new Hash();
r.setNodeName(name);
return r;
}
Xml.createPCData = function(data) {
var r = new Xml();
r.nodeType = Xml.PCData;
r.setNodeValue(data);
return r;
}
Xml.createCData = function(data) {
var r = new Xml();
r.nodeType = Xml.CData;
r.setNodeValue(data);
return r;
}
Xml.createComment = function(data) {
var r = new Xml();
r.nodeType = Xml.Comment;
r.setNodeValue(data);
return r;
}
Xml.createDocType = function(data) {
var r = new Xml();
r.nodeType = Xml.DocType;
r.setNodeValue(data);
return r;
}
Xml.createProlog = function(data) {
var r = new Xml();
r.nodeType = Xml.Prolog;
r.setNodeValue(data);
return r;
}
Xml.createDocument = function() {
var r = new Xml();
r.nodeType = Xml.Document;
r._children = new Array();
return r;
}
Xml.prototype = {
nodeType: null
,nodeName: null
,nodeValue: null
,parent: null
,_nodeName: null
,_nodeValue: null
,_attributes: null
,_children: null
,_parent: null
,getNodeName: function() {
if(this.nodeType != Xml.Element) throw "bad nodeType";
return this._nodeName;
}
,setNodeName: function(n) {
if(this.nodeType != Xml.Element) throw "bad nodeType";
return this._nodeName = n;
}
,getNodeValue: function() {
if(this.nodeType == Xml.Element || this.nodeType == Xml.Document) throw "bad nodeType";
return this._nodeValue;
}
,setNodeValue: function(v) {
if(this.nodeType == Xml.Element || this.nodeType == Xml.Document) throw "bad nodeType";
return this._nodeValue = v;
}
,getParent: function() {
return this._parent;
}
,get: function(att) {
if(this.nodeType != Xml.Element) throw "bad nodeType";
return this._attributes.get(att);
}
,set: function(att,value) {
if(this.nodeType != Xml.Element) throw "bad nodeType";
this._attributes.set(att,value);
}
,remove: function(att) {
if(this.nodeType != Xml.Element) throw "bad nodeType";
this._attributes.remove(att);
}
,exists: function(att) {
if(this.nodeType != Xml.Element) throw "bad nodeType";
return this._attributes.exists(att);
}
,attributes: function() {
if(this.nodeType != Xml.Element) throw "bad nodeType";
return this._attributes.keys();
}
,iterator: function() {
if(this._children == null) throw "bad nodetype";
return { cur : 0, x : this._children, hasNext : function() {
return this.cur < this.x.length;
}, next : function() {
return this.x[this.cur++];
}};
}
,elements: function() {
if(this._children == null) throw "bad nodetype";
return { cur : 0, x : this._children, hasNext : function() {
var k = this.cur;
var l = this.x.length;
while(k < l) {
if(this.x[k].nodeType == Xml.Element) break;
k += 1;
}
this.cur = k;
return k < l;
}, next : function() {
var k = this.cur;
var l = this.x.length;
while(k < l) {
var n = this.x[k];
k += 1;
if(n.nodeType == Xml.Element) {
this.cur = k;
return n;
}
}
return null;
}};
}
,elementsNamed: function(name) {
if(this._children == null) throw "bad nodetype";
return { cur : 0, x : this._children, hasNext : function() {
var k = this.cur;
var l = this.x.length;
while(k < l) {
var n = this.x[k];
if(n.nodeType == Xml.Element && n._nodeName == name) break;
k++;
}
this.cur = k;
return k < l;
}, next : function() {
var k = this.cur;
var l = this.x.length;
while(k < l) {
var n = this.x[k];
k++;
if(n.nodeType == Xml.Element && n._nodeName == name) {
this.cur = k;
return n;
}
}
return null;
}};
}
,firstChild: function() {
if(this._children == null) throw "bad nodetype";
return this._children[0];
}
,firstElement: function() {
if(this._children == null) throw "bad nodetype";
var cur = 0;
var l = this._children.length;
while(cur < l) {
var n = this._children[cur];
if(n.nodeType == Xml.Element) return n;
cur++;
}
return null;
}
,addChild: function(x) {
if(this._children == null) throw "bad nodetype";
if(x._parent != null) x._parent._children.remove(x);
x._parent = this;
this._children.push(x);
}
,removeChild: function(x) {
if(this._children == null) throw "bad nodetype";
var b = this._children.remove(x);
if(b) x._parent = null;
return b;
}
,insertChild: function(x,pos) {
if(this._children == null) throw "bad nodetype";
if(x._parent != null) x._parent._children.remove(x);
x._parent = this;
this._children.insert(pos,x);
}
,toString: function() {
if(this.nodeType == Xml.PCData) return this._nodeValue;
if(this.nodeType == Xml.CData) return "<![CDATA[" + this._nodeValue + "]]>";
if(this.nodeType == Xml.Comment) return "<!--" + this._nodeValue + "-->";
if(this.nodeType == Xml.DocType) return "<!DOCTYPE " + this._nodeValue + ">";
if(this.nodeType == Xml.Prolog) return "<?" + this._nodeValue + "?>";
var s = new StringBuf();
if(this.nodeType == Xml.Element) {
s.b[s.b.length] = "<";
s.add(this._nodeName);
var $it0 = this._attributes.keys();
while( $it0.hasNext() ) {
var k = $it0.next();
s.b[s.b.length] = " ";
s.b[s.b.length] = k == null?"null":k;
s.b[s.b.length] = "=\"";
s.add(this._attributes.get(k));
s.b[s.b.length] = "\"";
}
if(this._children.length == 0) {
s.b[s.b.length] = "/>";
return s.b.join("");
}
s.b[s.b.length] = ">";
}
var $it1 = this.iterator();
while( $it1.hasNext() ) {
var x = $it1.next();
s.add(x.toString());
}
if(this.nodeType == Xml.Element) {
s.b[s.b.length] = "</";
s.add(this._nodeName);
s.b[s.b.length] = ">";
}
return s.b.join("");
}
,__class__: Xml
}
var Reflect = $hxClasses["Reflect"] = function() { }
Reflect.__name__ = ["Reflect"];
Reflect.hasField = function(o,field) {
if(o.hasOwnProperty != null) return o.hasOwnProperty(field);
var arr = Reflect.fields(o);
var $it0 = arr.iterator();
while( $it0.hasNext() ) {
var t = $it0.next();
if(t == field) return true;
}
return false;
}
Reflect.field = function(o,field) {
var v = null;
try {
v = o[field];
} catch( e ) {
}
return v;
}
Reflect.setField = function(o,field,value) {
o[field] = value;
}
Reflect.callMethod = function(o,func,args) {
return func.apply(o,args);
}
Reflect.fields = function(o) {
if(o == null) return new Array();
var a = new Array();
if(o.hasOwnProperty) {
for(var i in o) if( o.hasOwnProperty(i) ) a.push(i);
} else {
var t;
try {
t = o.__proto__;
} catch( e ) {
t = null;
}
if(t != null) o.__proto__ = null;
for(var i in o) if( i != "__proto__" ) a.push(i);
if(t != null) o.__proto__ = t;
}
return a;
}
Reflect.isFunction = function(f) {
return typeof(f) == "function" && f.__name__ == null;
}
Reflect.compare = function(a,b) {
return a == b?0:a > b?1:-1;
}
Reflect.compareMethods = function(f1,f2) {
if(f1 == f2) return true;
if(!Reflect.isFunction(f1) || !Reflect.isFunction(f2)) return false;
return f1.scope == f2.scope && f1.method == f2.method && f1.method != null;
}
Reflect.isObject = function(v) {
if(v == null) return false;
var t = typeof(v);
return t == "string" || t == "object" && !v.__enum__ || t == "function" && v.__name__ != null;
}
Reflect.deleteField = function(o,f) {
if(!Reflect.hasField(o,f)) return false;
delete(o[f]);
return true;
}
Reflect.copy = function(o) {
var o2 = { };
var _g = 0, _g1 = Reflect.fields(o);
while(_g < _g1.length) {
var f = _g1[_g];
++_g;
o2[f] = Reflect.field(o,f);
}
return o2;
}
Reflect.makeVarArgs = function(f) {
return function() {
var a = new Array();
var _g1 = 0, _g = arguments.length;
while(_g1 < _g) {
var i = _g1++;
a.push(arguments[i]);
}
return f(a);
};
}
Reflect.prototype = {
__class__: Reflect
}
var haxe = haxe || {}
haxe.Log = $hxClasses["haxe.Log"] = function() { }
haxe.Log.__name__ = ["haxe","Log"];
haxe.Log.trace = function(v,infos) {
js.Boot.__trace(v,infos);
}
haxe.Log.clear = function() {
js.Boot.__clear_trace();
}
haxe.Log.prototype = {
__class__: haxe.Log
}
js.Pagination = $hxClasses["js.Pagination"] = function(n,npp,nb,previous,next) {
this.name = n;
this.nbPerPage = npp;
this.total = nb;
this.nbPage = Math.ceil(Math.max(1,this.total / this.nbPerPage));
this.page = 0;
this.pText = previous;
this.nText = next;
this.divNav = js.Lib.document.getElementById(this.name + "-nav");
this.buttons();
this.display();
}
js.Pagination.__name__ = ["js","Pagination"];
js.Pagination.prototype = {
name: null
,nbPerPage: null
,total: null
,nbPage: null
,page: null
,divNav: null
,pText: null
,nText: null
,buttons: function() {
var sb = "";
sb += "<div class=\"prev\">";
if(this.page > 0) sb += "<a onclick=\"" + this.name + ".prev(); return false;\" href=\"#\">" + this.pText + "</a>";
sb += "</div>";
sb += "<div class=\"next\">";
if(this.page < this.nbPage - 1) sb += "<a onclick=\"" + this.name + ".next(); return false;\" href=\"#\">" + this.nText + "</a>";
sb += "</div>";
sb += "Page " + (this.page + 1) + "/" + this.nbPage;
this.divNav.innerHTML = sb;
}
,prev: function() {
if(this.page > 0) {
this.page--;
this.buttons();
this.display();
}
}
,next: function() {
if(this.page < this.nbPage - 1) {
this.page++;
this.buttons();
this.display();
}
}
,display: function() {
var _g1 = 0, _g = this.nbPage;
while(_g1 < _g) {
var i = _g1++;
if(i == this.page) js.App.removeClass(this.name + "-" + i,"hidden"); else js.App.addClass(this.name + "-" + i,"hidden");
}
}
,__class__: js.Pagination
}
var StringBuf = $hxClasses["StringBuf"] = function() {
this.b = new Array();
}
StringBuf.__name__ = ["StringBuf"];
StringBuf.prototype = {
add: function(x) {
this.b[this.b.length] = x == null?"null":x;
}
,addSub: function(s,pos,len) {
this.b[this.b.length] = s.substr(pos,len);
}
,addChar: function(c) {
this.b[this.b.length] = String.fromCharCode(c);
}
,toString: function() {
return this.b.join("");
}
,b: null
,__class__: StringBuf
}
if(!haxe.remoting) haxe.remoting = {}
haxe.remoting.Connection = $hxClasses["haxe.remoting.Connection"] = function() { }
haxe.remoting.Connection.__name__ = ["haxe","remoting","Connection"];
haxe.remoting.Connection.prototype = {
resolve: null
,call: null
,__class__: haxe.remoting.Connection
}
var Hash = $hxClasses["Hash"] = function() {
this.h = {}
if(this.h.__proto__ != null) {
this.h.__proto__ = null;
delete(this.h.__proto__);
}
}
Hash.__name__ = ["Hash"];
Hash.prototype = {
h: null
,set: function(key,value) {
this.h["$" + key] = value;
}
,get: function(key) {
return this.h["$" + key];
}
,exists: function(key) {
try {
key = "$" + key;
return this.hasOwnProperty.call(this.h,key);
} catch( e ) {
for(var i in this.h) if( i == key ) return true;
return false;
}
}
,remove: function(key) {
if(!this.exists(key)) return false;
delete(this.h["$" + key]);
return true;
}
,keys: function() {
var a = new Array();
for(var i in this.h) a.push(i.substr(1));
return a.iterator();
}
,iterator: function() {
return { ref : this.h, it : this.keys(), hasNext : function() {
return this.it.hasNext();
}, next : function() {
var i = this.it.next();
return this.ref["$" + i];
}};
}
,toString: function() {
var s = new StringBuf();
s.b[s.b.length] = "{";
var it = this.keys();
while( it.hasNext() ) {
var i = it.next();
s.b[s.b.length] = i == null?"null":i;
s.b[s.b.length] = " => ";
s.add(Std.string(this.get(i)));
if(it.hasNext()) s.b[s.b.length] = ", ";
}
s.b[s.b.length] = "}";
return s.b.join("");
}
,__class__: Hash
}
haxe.remoting.ExternalConnection = $hxClasses["haxe.remoting.ExternalConnection"] = function(data,path) {
this.__data = data;
this.__path = path;
}
haxe.remoting.ExternalConnection.__name__ = ["haxe","remoting","ExternalConnection"];
haxe.remoting.ExternalConnection.__interfaces__ = [haxe.remoting.Connection];
haxe.remoting.ExternalConnection.escapeString = function(s) {
return s;
}
haxe.remoting.ExternalConnection.doCall = function(name,path,params) {
try {
var cnx = haxe.remoting.ExternalConnection.connections.get(name);
if(cnx == null) throw "Unknown connection : " + name;
if(cnx.__data.ctx == null) throw "No context shared for the connection " + name;
var params1 = new haxe.Unserializer(params).unserialize();
var ret = cnx.__data.ctx.call(path.split("."),params1);
var s = new haxe.Serializer();
s.serialize(ret);
return s.toString() + "#";
} catch( e ) {
var s = new haxe.Serializer();
s.serializeException(e);
return s.toString();
}
}
haxe.remoting.ExternalConnection.flashConnect = function(name,flashObjectID,ctx) {
var cnx = new haxe.remoting.ExternalConnection({ ctx : ctx, name : name, flash : flashObjectID},[]);
haxe.remoting.ExternalConnection.connections.set(name,cnx);
return cnx;
}
haxe.remoting.ExternalConnection.prototype = {
__data: null
,__path: null
,resolve: function(field) {
var e = new haxe.remoting.ExternalConnection(this.__data,this.__path.copy());
e.__path.push(field);
return e;
}
,close: function() {
haxe.remoting.ExternalConnection.connections.remove(this.__data.name);
}
,call: function(params) {
var s = new haxe.Serializer();
s.serialize(params);
var params1 = s.toString();
var data = null;
var fobj = window.document[this.__data.flash];
if(fobj == null) fobj = window.document.getElementById(this.__data.flash);
if(fobj == null) throw "Could not find flash object '" + this.__data.flash + "'";
try {
data = fobj.externalRemotingCall(this.__data.name,this.__path.join("."),params1);
} catch( e ) {
}
if(data == null) {
var domain, pageDomain;
try {
domain = fobj.src.split("/")[2];
pageDomain = js.Lib.window.location.host;
} catch( e ) {
domain = null;
pageDomain = null;
}
if(domain != pageDomain) throw "ExternalConnection call failure : SWF need allowDomain('" + pageDomain + "')";
throw "Call failure : ExternalConnection is not " + "initialized in Flash";
}
return new haxe.Unserializer(data).unserialize();
}
,__class__: haxe.remoting.ExternalConnection
}
if(!haxe.io) haxe.io = {}
haxe.io.Bytes = $hxClasses["haxe.io.Bytes"] = function(length,b) {
this.length = length;
this.b = b;
}
haxe.io.Bytes.__name__ = ["haxe","io","Bytes"];
haxe.io.Bytes.alloc = function(length) {
var a = new Array();
var _g = 0;
while(_g < length) {
var i = _g++;
a.push(0);
}
return new haxe.io.Bytes(length,a);
}
haxe.io.Bytes.ofString = function(s) {
var a = new Array();
var _g1 = 0, _g = s.length;
while(_g1 < _g) {
var i = _g1++;
var c = s.cca(i);
if(c <= 127) a.push(c); else if(c <= 2047) {
a.push(192 | c >> 6);
a.push(128 | c & 63);
} else if(c <= 65535) {
a.push(224 | c >> 12);
a.push(128 | c >> 6 & 63);
a.push(128 | c & 63);
} else {
a.push(240 | c >> 18);
a.push(128 | c >> 12 & 63);
a.push(128 | c >> 6 & 63);
a.push(128 | c & 63);
}
}
return new haxe.io.Bytes(a.length,a);
}
haxe.io.Bytes.ofData = function(b) {
return new haxe.io.Bytes(b.length,b);
}
haxe.io.Bytes.prototype = {
length: null
,b: null
,get: function(pos) {
return this.b[pos];
}
,set: function(pos,v) {
this.b[pos] = v & 255;
}
,blit: function(pos,src,srcpos,len) {
if(pos < 0 || srcpos < 0 || len < 0 || pos + len > this.length || srcpos + len > src.length) throw haxe.io.Error.OutsideBounds;
var b1 = this.b;
var b2 = src.b;
if(b1 == b2 && pos > srcpos) {
var i = len;
while(i > 0) {
i--;
b1[i + pos] = b2[i + srcpos];
}
return;
}
var _g = 0;
while(_g < len) {
var i = _g++;
b1[i + pos] = b2[i + srcpos];
}
}
,sub: function(pos,len) {
if(pos < 0 || len < 0 || pos + len > this.length) throw haxe.io.Error.OutsideBounds;
return new haxe.io.Bytes(len,this.b.slice(pos,pos + len));
}
,compare: function(other) {
var b1 = this.b;
var b2 = other.b;
var len = this.length < other.length?this.length:other.length;
var _g = 0;
while(_g < len) {
var i = _g++;
if(b1[i] != b2[i]) return b1[i] - b2[i];
}
return this.length - other.length;
}
,readString: function(pos,len) {
if(pos < 0 || len < 0 || pos + len > this.length) throw haxe.io.Error.OutsideBounds;
var s = "";
var b = this.b;
var fcc = String.fromCharCode;
var i = pos;
var max = pos + len;
while(i < max) {
var c = b[i++];
if(c < 128) {
if(c == 0) break;
s += fcc(c);
} else if(c < 224) s += fcc((c & 63) << 6 | b[i++] & 127); else if(c < 240) {
var c2 = b[i++];
s += fcc((c & 31) << 12 | (c2 & 127) << 6 | b[i++] & 127);
} else {
var c2 = b[i++];
var c3 = b[i++];
s += fcc((c & 15) << 18 | (c2 & 127) << 12 | c3 << 6 & 127 | b[i++] & 127);
}
}
return s;
}
,toString: function() {
return this.readString(0,this.length);
}
,toHex: function() {
var s = new StringBuf();
var chars = [];
var str = "0123456789abcdef";
var _g1 = 0, _g = str.length;
while(_g1 < _g) {
var i = _g1++;
chars.push(str.charCodeAt(i));
}
var _g1 = 0, _g = this.length;
while(_g1 < _g) {
var i = _g1++;
var c = this.b[i];
s.b[s.b.length] = String.fromCharCode(chars[c >> 4]);
s.b[s.b.length] = String.fromCharCode(chars[c & 15]);
}
return s.b.join("");
}
,getData: function() {
return this.b;
}
,__class__: haxe.io.Bytes
}
var IntIter = $hxClasses["IntIter"] = function(min,max) {
this.min = min;
this.max = max;
}
IntIter.__name__ = ["IntIter"];
IntIter.prototype = {
min: null
,max: null
,hasNext: function() {
return this.min < this.max;
}
,next: function() {
return this.min++;
}
,__class__: IntIter
}
haxe.Timer = $hxClasses["haxe.Timer"] = function(time_ms) {
var arr = haxe_timers;
this.id = arr.length;
arr[this.id] = this;
this.timerId = window.setInterval("haxe_timers[" + this.id + "].run();",time_ms);
}
haxe.Timer.__name__ = ["haxe","Timer"];
haxe.Timer.delay = function(f,time_ms) {
var t = new haxe.Timer(time_ms);
t.run = function() {
t.stop();
f();
};
return t;
}
haxe.Timer.measure = function(f,pos) {
var t0 = haxe.Timer.stamp();
var r = f();
haxe.Log.trace(haxe.Timer.stamp() - t0 + "s",pos);
return r;
}
haxe.Timer.stamp = function() {
return Date.now().getTime() / 1000;
}
haxe.Timer.prototype = {
id: null
,timerId: null
,stop: function() {
if(this.id == null) return;
window.clearInterval(this.timerId);
var arr = haxe_timers;
arr[this.id] = null;
if(this.id > 100 && this.id == arr.length - 1) {
var p = this.id - 1;
while(p >= 0 && arr[p] == null) p--;
arr = arr.slice(0,p + 1);
}
this.id = null;
}
,run: function() {
}
,__class__: haxe.Timer
}
haxe.io.Error = $hxClasses["haxe.io.Error"] = { __ename__ : ["haxe","io","Error"], __constructs__ : ["Blocked","Overflow","OutsideBounds","Custom"] }
haxe.io.Error.Blocked = ["Blocked",0];
haxe.io.Error.Blocked.toString = $estr;
haxe.io.Error.Blocked.__enum__ = haxe.io.Error;
haxe.io.Error.Overflow = ["Overflow",1];
haxe.io.Error.Overflow.toString = $estr;
haxe.io.Error.Overflow.__enum__ = haxe.io.Error;
haxe.io.Error.OutsideBounds = ["OutsideBounds",2];
haxe.io.Error.OutsideBounds.toString = $estr;
haxe.io.Error.OutsideBounds.__enum__ = haxe.io.Error;
haxe.io.Error.Custom = function(e) { var $x = ["Custom",3,e]; $x.__enum__ = haxe.io.Error; $x.toString = $estr; return $x; }
var Type = $hxClasses["Type"] = function() { }
Type.__name__ = ["Type"];
Type.getClass = function(o) {
if(o == null) return null;
if(o.__enum__ != null) return null;
return o.__class__;
}
Type.getEnum = function(o) {
if(o == null) return null;
return o.__enum__;
}
Type.getSuperClass = function(c) {
return c.__super__;
}
Type.getClassName = function(c) {
var a = c.__name__;
return a.join(".");
}
Type.getEnumName = function(e) {
var a = e.__ename__;
return a.join(".");
}
Type.resolveClass = function(name) {
var cl = $hxClasses[name];
if(cl == null || cl.__name__ == null) return null;
return cl;
}
Type.resolveEnum = function(name) {
var e = $hxClasses[name];
if(e == null || e.__ename__ == null) return null;
return e;
}
Type.createInstance = function(cl,args) {
if(args.length <= 3) return new cl(args[0],args[1],args[2]);
if(args.length > 8) throw "Too many arguments";
return new cl(args[0],args[1],args[2],args[3],args[4],args[5],args[6],args[7]);
}
Type.createEmptyInstance = function(cl) {
function empty() {}; empty.prototype = cl.prototype;
return new empty();
}
Type.createEnum = function(e,constr,params) {
var f = Reflect.field(e,constr);
if(f == null) throw "No such constructor " + constr;
if(Reflect.isFunction(f)) {
if(params == null) throw "Constructor " + constr + " need parameters";
return f.apply(e,params);
}
if(params != null && params.length != 0) throw "Constructor " + constr + " does not need parameters";
return f;
}
Type.createEnumIndex = function(e,index,params) {
var c = e.__constructs__[index];
if(c == null) throw index + " is not a valid enum constructor index";
return Type.createEnum(e,c,params);
}
Type.getInstanceFields = function(c) {
var a = [];
for(var i in c.prototype) a.push(i);
a.remove("__class__");
return a;
}
Type.getClassFields = function(c) {
var a = Reflect.fields(c);
a.remove("__name__");
a.remove("__interfaces__");
a.remove("__super__");
a.remove("prototype");
return a;
}
Type.getEnumConstructs = function(e) {
var a = e.__constructs__;
return a.copy();
}
Type["typeof"] = function(v) {
switch(typeof(v)) {
case "boolean":
return ValueType.TBool;
case "string":
return ValueType.TClass(String);
case "number":
if(Math.ceil(v) == v % 2147483648.0) return ValueType.TInt;
return ValueType.TFloat;
case "object":
if(v == null) return ValueType.TNull;
var e = v.__enum__;
if(e != null) return ValueType.TEnum(e);
var c = v.__class__;
if(c != null) return ValueType.TClass(c);
return ValueType.TObject;
case "function":
if(v.__name__ != null) return ValueType.TObject;
return ValueType.TFunction;
case "undefined":
return ValueType.TNull;
default:
return ValueType.TUnknown;
}
}
Type.enumEq = function(a,b) {
if(a == b) return true;
try {
if(a[0] != b[0]) return false;
var _g1 = 2, _g = a.length;
while(_g1 < _g) {
var i = _g1++;
if(!Type.enumEq(a[i],b[i])) return false;
}
var e = a.__enum__;
if(e != b.__enum__ || e == null) return false;
} catch( e ) {
return false;
}
return true;
}
Type.enumConstructor = function(e) {
return e[0];
}
Type.enumParameters = function(e) {
return e.slice(2);
}
Type.enumIndex = function(e) {
return e[1];
}
Type.allEnums = function(e) {
var all = [];
var cst = e.__constructs__;
var _g = 0;
while(_g < cst.length) {
var c = cst[_g];
++_g;
var v = Reflect.field(e,c);
if(!Reflect.isFunction(v)) all.push(v);
}
return all;
}
Type.prototype = {
__class__: Type
}
haxe.Unserializer = $hxClasses["haxe.Unserializer"] = function(buf) {
this.buf = buf;
this.length = buf.length;
this.pos = 0;
this.scache = new Array();
this.cache = new Array();
var r = haxe.Unserializer.DEFAULT_RESOLVER;
if(r == null) {
r = Type;
haxe.Unserializer.DEFAULT_RESOLVER = r;
}
this.setResolver(r);
}
haxe.Unserializer.__name__ = ["haxe","Unserializer"];
haxe.Unserializer.initCodes = function() {
var codes = new Array();
var _g1 = 0, _g = haxe.Unserializer.BASE64.length;
while(_g1 < _g) {
var i = _g1++;
codes[haxe.Unserializer.BASE64.cca(i)] = i;
}
return codes;
}
haxe.Unserializer.run = function(v) {
return new haxe.Unserializer(v).unserialize();
}
haxe.Unserializer.prototype = {
buf: null
,pos: null
,length: null
,cache: null
,scache: null
,resolver: null
,setResolver: function(r) {
if(r == null) this.resolver = { resolveClass : function(_) {
return null;
}, resolveEnum : function(_) {
return null;
}}; else this.resolver = r;
}
,getResolver: function() {
return this.resolver;
}
,get: function(p) {
return this.buf.cca(p);
}
,readDigits: function() {
var k = 0;
var s = false;
var fpos = this.pos;
while(true) {
var c = this.buf.cca(this.pos);
if(c != c) break;
if(c == 45) {
if(this.pos != fpos) break;
s = true;
this.pos++;
continue;
}
if(c < 48 || c > 57) break;
k = k * 10 + (c - 48);
this.pos++;
}
if(s) k *= -1;
return k;
}
,unserializeObject: function(o) {
while(true) {
if(this.pos >= this.length) throw "Invalid object";
if(this.buf.cca(this.pos) == 103) break;
var k = this.unserialize();
if(!Std["is"](k,String)) throw "Invalid object key";
var v = this.unserialize();
o[k] = v;
}
this.pos++;
}
,unserializeEnum: function(edecl,tag) {
var constr = Reflect.field(edecl,tag);
if(constr == null) throw "Unknown enum tag " + Type.getEnumName(edecl) + "." + tag;
if(this.buf.cca(this.pos++) != 58) throw "Invalid enum format";
var nargs = this.readDigits();
if(nargs == 0) {
this.cache.push(constr);
return constr;
}
var args = new Array();
while(nargs > 0) {
args.push(this.unserialize());
nargs -= 1;
}
var e = constr.apply(edecl,args);
this.cache.push(e);
return e;
}
,unserialize: function() {
switch(this.buf.cca(this.pos++)) {
case 110:
return null;
case 116:
return true;
case 102:
return false;
case 122:
return 0;
case 105:
return this.readDigits();
case 100:
var p1 = this.pos;
while(true) {
var c = this.buf.cca(this.pos);
if(c >= 43 && c < 58 || c == 101 || c == 69) this.pos++; else break;
}
return Std.parseFloat(this.buf.substr(p1,this.pos - p1));
case 121:
var len = this.readDigits();
if(this.buf.cca(this.pos++) != 58 || this.length - this.pos < len) throw "Invalid string length";
var s = this.buf.substr(this.pos,len);
this.pos += len;
s = StringTools.urlDecode(s);
this.scache.push(s);
return s;
case 107:
return Math.NaN;
case 109:
return Math.NEGATIVE_INFINITY;
case 112:
return Math.POSITIVE_INFINITY;
case 97:
var buf = this.buf;
var a = new Array();
this.cache.push(a);
while(true) {
var c = this.buf.cca(this.pos);
if(c == 104) {
this.pos++;
break;
}
if(c == 117) {
this.pos++;
var n = this.readDigits();
a[a.length + n - 1] = null;
} else a.push(this.unserialize());
}
return a;
case 111:
var o = { };
this.cache.push(o);
this.unserializeObject(o);
return o;
case 114:
var n = this.readDigits();
if(n < 0 || n >= this.cache.length) throw "Invalid reference";
return this.cache[n];
case 82:
var n = this.readDigits();
if(n < 0 || n >= this.scache.length) throw "Invalid string reference";
return this.scache[n];
case 120:
throw this.unserialize();
break;
case 99:
var name = this.unserialize();
var cl = this.resolver.resolveClass(name);
if(cl == null) throw "Class not found " + name;
var o = Type.createEmptyInstance(cl);
this.cache.push(o);
this.unserializeObject(o);
return o;
case 119:
var name = this.unserialize();
var edecl = this.resolver.resolveEnum(name);
if(edecl == null) throw "Enum not found " + name;
return this.unserializeEnum(edecl,this.unserialize());
case 106:
var name = this.unserialize();
var edecl = this.resolver.resolveEnum(name);
if(edecl == null) throw "Enum not found " + name;
this.pos++;
var index = this.readDigits();
var tag = Type.getEnumConstructs(edecl)[index];
if(tag == null) throw "Unknown enum index " + name + "@" + index;
return this.unserializeEnum(edecl,tag);
case 108:
var l = new List();
this.cache.push(l);
var buf = this.buf;
while(this.buf.cca(this.pos) != 104) l.add(this.unserialize());
this.pos++;
return l;
case 98:
var h = new Hash();
this.cache.push(h);
var buf = this.buf;
while(this.buf.cca(this.pos) != 104) {
var s = this.unserialize();
h.set(s,this.unserialize());
}
this.pos++;
return h;
case 113:
var h = new IntHash();
this.cache.push(h);
var buf = this.buf;
var c = this.buf.cca(this.pos++);
while(c == 58) {
var i = this.readDigits();
h.set(i,this.unserialize());
c = this.buf.cca(this.pos++);
}
if(c != 104) throw "Invalid IntHash format";
return h;
case 118:
var d = Date.fromString(this.buf.substr(this.pos,19));
this.cache.push(d);
this.pos += 19;
return d;
case 115:
var len = this.readDigits();
var buf = this.buf;
if(this.buf.cca(this.pos++) != 58 || this.length - this.pos < len) throw "Invalid bytes length";
var codes = haxe.Unserializer.CODES;
if(codes == null) {
codes = haxe.Unserializer.initCodes();
haxe.Unserializer.CODES = codes;
}
var i = this.pos;
var rest = len & 3;
var size = (len >> 2) * 3 + (rest >= 2?rest - 1:0);
var max = i + (len - rest);
var bytes = haxe.io.Bytes.alloc(size);
var bpos = 0;
while(i < max) {
var c1 = codes[buf.cca(i++)];
var c2 = codes[buf.cca(i++)];
bytes.b[bpos++] = (c1 << 2 | c2 >> 4) & 255;
var c3 = codes[buf.cca(i++)];
bytes.b[bpos++] = (c2 << 4 | c3 >> 2) & 255;
var c4 = codes[buf.cca(i++)];
bytes.b[bpos++] = (c3 << 6 | c4) & 255;
}
if(rest >= 2) {
var c1 = codes[buf.cca(i++)];
var c2 = codes[buf.cca(i++)];
bytes.b[bpos++] = (c1 << 2 | c2 >> 4) & 255;
if(rest == 3) {
var c3 = codes[buf.cca(i++)];
bytes.b[bpos++] = (c2 << 4 | c3 >> 2) & 255;
}
}
this.pos += len;
this.cache.push(bytes);
return bytes;
case 67:
var name = this.unserialize();
var cl = this.resolver.resolveClass(name);
if(cl == null) throw "Class not found " + name;
var o = Type.createEmptyInstance(cl);
this.cache.push(o);
o.hxUnserialize(this);
if(this.buf.cca(this.pos++) != 103) throw "Invalid custom data";
return o;
default:
}
this.pos--;
throw "Invalid char " + this.buf.charAt(this.pos) + " at position " + this.pos;
}
,__class__: haxe.Unserializer
}
haxe.remoting.Context = $hxClasses["haxe.remoting.Context"] = function() {
this.objects = new Hash();
}
haxe.remoting.Context.__name__ = ["haxe","remoting","Context"];
haxe.remoting.Context.share = function(name,obj) {
var ctx = new haxe.remoting.Context();
ctx.addObject(name,obj);
return ctx;
}
haxe.remoting.Context.prototype = {
objects: null
,addObject: function(name,obj,recursive) {
this.objects.set(name,{ obj : obj, rec : recursive});
}
,call: function(path,params) {
if(path.length < 2) throw "Invalid path '" + path.join(".") + "'";
var inf = this.objects.get(path[0]);
if(inf == null) throw "No such object " + path[0];
var o = inf.obj;
var m = Reflect.field(o,path[1]);
if(path.length > 2) {
if(!inf.rec) throw "Can't access " + path.join(".");
var _g1 = 2, _g = path.length;
while(_g1 < _g) {
var i = _g1++;
o = m;
m = Reflect.field(o,path[i]);
}
}
if(!Reflect.isFunction(m)) throw "No such method " + path.join(".");
return m.apply(o,params);
}
,__class__: haxe.remoting.Context
}
var Std = $hxClasses["Std"] = function() { }
Std.__name__ = ["Std"];
Std["is"] = function(v,t) {
return js.Boot.__instanceof(v,t);
}
Std.string = function(s) {
return js.Boot.__string_rec(s,"");
}
Std["int"] = function(x) {
if(x < 0) return Math.ceil(x);
return Math.floor(x);
}
Std.parseInt = function(x) {
var v = parseInt(x,10);
if(v == 0 && x.charCodeAt(1) == 120) v = parseInt(x);
if(isNaN(v)) return null;
return v;
}
Std.parseFloat = function(x) {
return parseFloat(x);
}
Std.random = function(x) {
return Math.floor(Math.random() * x);
}
Std.prototype = {
__class__: Std
}
var Lambda = $hxClasses["Lambda"] = function() { }
Lambda.__name__ = ["Lambda"];
Lambda.array = function(it) {
var a = new Array();
var $it0 = it.iterator();
while( $it0.hasNext() ) {
var i = $it0.next();
a.push(i);
}
return a;
}
Lambda.list = function(it) {
var l = new List();
var $it0 = it.iterator();
while( $it0.hasNext() ) {
var i = $it0.next();
l.add(i);
}
return l;
}
Lambda.map = function(it,f) {
var l = new List();
var $it0 = it.iterator();
while( $it0.hasNext() ) {
var x = $it0.next();
l.add(f(x));
}
return l;
}
Lambda.mapi = function(it,f) {
var l = new List();
var i = 0;
var $it0 = it.iterator();
while( $it0.hasNext() ) {
var x = $it0.next();
l.add(f(i++,x));
}
return l;
}
Lambda.has = function(it,elt,cmp) {
if(cmp == null) {
var $it0 = it.iterator();
while( $it0.hasNext() ) {
var x = $it0.next();
if(x == elt) return true;
}
} else {
var $it1 = it.iterator();
while( $it1.hasNext() ) {
var x = $it1.next();
if(cmp(x,elt)) return true;
}
}
return false;
}
Lambda.exists = function(it,f) {
var $it0 = it.iterator();
while( $it0.hasNext() ) {
var x = $it0.next();
if(f(x)) return true;
}
return false;
}
Lambda.foreach = function(it,f) {
var $it0 = it.iterator();
while( $it0.hasNext() ) {
var x = $it0.next();
if(!f(x)) return false;
}
return true;
}
Lambda.iter = function(it,f) {
var $it0 = it.iterator();
while( $it0.hasNext() ) {
var x = $it0.next();
f(x);
}
}
Lambda.filter = function(it,f) {
var l = new List();
var $it0 = it.iterator();
while( $it0.hasNext() ) {
var x = $it0.next();
if(f(x)) l.add(x);
}
return l;
}
Lambda.fold = function(it,f,first) {
var $it0 = it.iterator();
while( $it0.hasNext() ) {
var x = $it0.next();
first = f(x,first);
}
return first;
}
Lambda.count = function(it,pred) {
var n = 0;
if(pred == null) {
var $it0 = it.iterator();
while( $it0.hasNext() ) {
var _ = $it0.next();
n++;
}
} else {
var $it1 = it.iterator();
while( $it1.hasNext() ) {
var x = $it1.next();
if(pred(x)) n++;
}
}
return n;
}
Lambda.empty = function(it) {
return !it.iterator().hasNext();
}
Lambda.indexOf = function(it,v) {
var i = 0;
var $it0 = it.iterator();
while( $it0.hasNext() ) {
var v2 = $it0.next();
if(v == v2) return i;
i++;
}
return -1;
}
Lambda.concat = function(a,b) {
var l = new List();
var $it0 = a.iterator();
while( $it0.hasNext() ) {
var x = $it0.next();
l.add(x);
}
var $it1 = b.iterator();
while( $it1.hasNext() ) {
var x = $it1.next();
l.add(x);
}
return l;
}
Lambda.prototype = {
__class__: Lambda
}
haxe.Serializer = $hxClasses["haxe.Serializer"] = function() {
this.buf = new StringBuf();
this.cache = new Array();
this.useCache = haxe.Serializer.USE_CACHE;
this.useEnumIndex = haxe.Serializer.USE_ENUM_INDEX;
this.shash = new Hash();
this.scount = 0;
}
haxe.Serializer.__name__ = ["haxe","Serializer"];
haxe.Serializer.run = function(v) {
var s = new haxe.Serializer();
s.serialize(v);
return s.toString();
}
haxe.Serializer.prototype = {
buf: null
,cache: null
,shash: null
,scount: null
,useCache: null
,useEnumIndex: null
,toString: function() {
return this.buf.b.join("");
}
,serializeString: function(s) {
var x = this.shash.get(s);
if(x != null) {
this.buf.add("R");
this.buf.add(x);
return;
}
this.shash.set(s,this.scount++);
this.buf.add("y");
s = StringTools.urlEncode(s);
this.buf.add(s.length);
this.buf.add(":");
this.buf.add(s);
}
,serializeRef: function(v) {
var vt = typeof(v);
var _g1 = 0, _g = this.cache.length;
while(_g1 < _g) {
var i = _g1++;
var ci = this.cache[i];
if(typeof(ci) == vt && ci == v) {
this.buf.add("r");
this.buf.add(i);
return true;
}
}
this.cache.push(v);
return false;
}
,serializeFields: function(v) {
var _g = 0, _g1 = Reflect.fields(v);
while(_g < _g1.length) {
var f = _g1[_g];
++_g;
this.serializeString(f);
this.serialize(Reflect.field(v,f));
}
this.buf.add("g");
}
,serialize: function(v) {
var $e = (Type["typeof"](v));
switch( $e[1] ) {
case 0:
this.buf.add("n");
break;
case 1:
if(v == 0) {
this.buf.add("z");
return;
}
this.buf.add("i");
this.buf.add(v);
break;
case 2:
if(Math.isNaN(v)) this.buf.add("k"); else if(!Math.isFinite(v)) this.buf.add(v < 0?"m":"p"); else {
this.buf.add("d");
this.buf.add(v);
}
break;
case 3:
this.buf.add(v?"t":"f");
break;
case 6:
var c = $e[2];
if(c == String) {
this.serializeString(v);
return;
}
if(this.useCache && this.serializeRef(v)) return;
switch(c) {
case Array:
var ucount = 0;
this.buf.add("a");
var l = v["length"];
var _g = 0;
while(_g < l) {
var i = _g++;
if(v[i] == null) ucount++; else {
if(ucount > 0) {
if(ucount == 1) this.buf.add("n"); else {
this.buf.add("u");
this.buf.add(ucount);
}
ucount = 0;
}
this.serialize(v[i]);
}
}
if(ucount > 0) {
if(ucount == 1) this.buf.add("n"); else {
this.buf.add("u");
this.buf.add(ucount);
}
}
this.buf.add("h");
break;
case List:
this.buf.add("l");
var v1 = v;
var $it0 = v1.iterator();
while( $it0.hasNext() ) {
var i = $it0.next();
this.serialize(i);
}
this.buf.add("h");
break;
case Date:
var d = v;
this.buf.add("v");
this.buf.add(d.toString());
break;
case Hash:
this.buf.add("b");
var v1 = v;
var $it1 = v1.keys();
while( $it1.hasNext() ) {
var k = $it1.next();
this.serializeString(k);
this.serialize(v1.get(k));
}
this.buf.add("h");
break;
case IntHash:
this.buf.add("q");
var v1 = v;
var $it2 = v1.keys();
while( $it2.hasNext() ) {
var k = $it2.next();
this.buf.add(":");
this.buf.add(k);
this.serialize(v1.get(k));
}
this.buf.add("h");
break;
case haxe.io.Bytes:
var v1 = v;
var i = 0;
var max = v1.length - 2;
var chars = "";
var b64 = haxe.Serializer.BASE64;
while(i < max) {
var b1 = v1.b[i++];
var b2 = v1.b[i++];
var b3 = v1.b[i++];
chars += b64.charAt(b1 >> 2) + b64.charAt((b1 << 4 | b2 >> 4) & 63) + b64.charAt((b2 << 2 | b3 >> 6) & 63) + b64.charAt(b3 & 63);
}
if(i == max) {
var b1 = v1.b[i++];
var b2 = v1.b[i++];
chars += b64.charAt(b1 >> 2) + b64.charAt((b1 << 4 | b2 >> 4) & 63) + b64.charAt(b2 << 2 & 63);
} else if(i == max + 1) {
var b1 = v1.b[i++];
chars += b64.charAt(b1 >> 2) + b64.charAt(b1 << 4 & 63);
}
this.buf.add("s");
this.buf.add(chars.length);
this.buf.add(":");
this.buf.add(chars);
break;
default:
this.cache.pop();
if(v.hxSerialize != null) {
this.buf.add("C");
this.serializeString(Type.getClassName(c));
this.cache.push(v);
v.hxSerialize(this);
this.buf.add("g");
} else {
this.buf.add("c");
this.serializeString(Type.getClassName(c));
this.cache.push(v);
this.serializeFields(v);
}
}
break;
case 4:
if(this.useCache && this.serializeRef(v)) return;
this.buf.add("o");
this.serializeFields(v);
break;
case 7:
var e = $e[2];
if(this.useCache && this.serializeRef(v)) return;
this.cache.pop();
this.buf.add(this.useEnumIndex?"j":"w");
this.serializeString(Type.getEnumName(e));
if(this.useEnumIndex) {
this.buf.add(":");
this.buf.add(v[1]);
} else this.serializeString(v[0]);
this.buf.add(":");
var l = v["length"];
this.buf.add(l - 2);
var _g = 2;
while(_g < l) {
var i = _g++;
this.serialize(v[i]);
}
this.cache.push(v);
break;
case 5:
throw "Cannot serialize function";
break;
default:
throw "Cannot serialize " + Std.string(v);
}
}
,serializeException: function(e) {
this.buf.add("x");
this.serialize(e);
}
,__class__: haxe.Serializer
}
var List = $hxClasses["List"] = function() {
this.length = 0;
}
List.__name__ = ["List"];
List.prototype = {
h: null
,q: null
,length: null
,add: function(item) {
var x = [item];
if(this.h == null) this.h = x; else this.q[1] = x;
this.q = x;
this.length++;
}
,push: function(item) {
var x = [item,this.h];
this.h = x;
if(this.q == null) this.q = x;
this.length++;
}
,first: function() {
return this.h == null?null:this.h[0];
}
,last: function() {
return this.q == null?null:this.q[0];
}
,pop: function() {
if(this.h == null) return null;
var x = this.h[0];
this.h = this.h[1];
if(this.h == null) this.q = null;
this.length--;
return x;
}
,isEmpty: function() {
return this.h == null;
}
,clear: function() {
this.h = null;
this.q = null;
this.length = 0;
}
,remove: function(v) {
var prev = null;
var l = this.h;
while(l != null) {
if(l[0] == v) {
if(prev == null) this.h = l[1]; else prev[1] = l[1];
if(this.q == l) this.q = prev;
this.length--;
return true;
}
prev = l;
l = l[1];
}
return false;
}
,iterator: function() {
return { h : this.h, hasNext : function() {
return this.h != null;
}, next : function() {
if(this.h == null) return null;
var x = this.h[0];
this.h = this.h[1];
return x;
}};
}
,toString: function() {
var s = new StringBuf();
var first = true;
var l = this.h;
s.b[s.b.length] = "{";
while(l != null) {
if(first) first = false; else s.b[s.b.length] = ", ";
s.add(Std.string(l[0]));
l = l[1];
}
s.b[s.b.length] = "}";
return s.b.join("");
}
,join: function(sep) {
var s = new StringBuf();
var first = true;
var l = this.h;
while(l != null) {
if(first) first = false; else s.b[s.b.length] = sep == null?"null":sep;
s.add(l[0]);
l = l[1];
}
return s.b.join("");
}
,filter: function(f) {
var l2 = new List();
var l = this.h;
while(l != null) {
var v = l[0];
l = l[1];
if(f(v)) l2.add(v);
}
return l2;
}
,map: function(f) {
var b = new List();
var l = this.h;
while(l != null) {
var v = l[0];
l = l[1];
b.add(f(v));
}
return b;
}
,__class__: List
}
var mt = mt || {}
if(!mt.js) mt.js = {}
mt.js.Tip = $hxClasses["mt.js.Tip"] = function() { }
mt.js.Tip.__name__ = ["mt","js","Tip"];
mt.js.Tip.lastRef = null;
mt.js.Tip.placeRef = null;
mt.js.Tip.initialized = null;
mt.js.Tip.tooltip = null;
mt.js.Tip.tooltipContent = null;
mt.js.Tip.mousePos = null;
mt.js.Tip.onHide = null;
mt.js.Tip.excludeList = null;
mt.js.Tip.show = function(refObj,contentHTML,cName,pRef) {
mt.js.Tip.init();
if(mt.js.Tip.tooltip == null) {
mt.js.Tip.tooltip = js.Lib.document.getElementById(mt.js.Tip.tooltipId);
if(mt.js.Tip.tooltip == null) {
mt.js.Tip.tooltip = js.Lib.document.createElement("div");
mt.js.Tip.tooltip.id = mt.js.Tip.tooltipId;
js.Lib.document.body.insertBefore(mt.js.Tip.tooltip,js.Lib.document.body.firstChild);
}
mt.js.Tip.tooltip.style.top = "-1000px";
mt.js.Tip.tooltip.style.position = "absolute";
mt.js.Tip.tooltip.style.zIndex = 10;
}
if(mt.js.Tip.tooltipContent == null) {
mt.js.Tip.tooltipContent = js.Lib.document.getElementById(mt.js.Tip.tooltipContentId);
if(mt.js.Tip.tooltipContent == null) {
mt.js.Tip.tooltipContent = js.Lib.document.createElement("div");
mt.js.Tip.tooltipContent.id = mt.js.Tip.tooltipContentId;
mt.js.Tip.tooltip.appendChild(mt.js.Tip.tooltipContent);
}
}
if(pRef == null) pRef = false;
mt.js.Tip.placeRef = pRef;
if(cName == null) mt.js.Tip.tooltip.className = mt.js.Tip.defaultClass; else mt.js.Tip.tooltip.className = cName;
if(mt.js.Tip.lastRef != null && mt.js.Tip.onHide != null) {
mt.js.Tip.onHide();
mt.js.Tip.onHide = null;
}
mt.js.Tip.lastRef = refObj;
mt.js.Tip.tooltipContent.innerHTML = contentHTML;
if(mt.js.Tip.placeRef) mt.js.Tip.placeTooltipRef(); else mt.js.Tip.placeTooltip();
}
mt.js.Tip.exclude = function(id) {
var e = js.Lib.document.getElementById(id);
if(e == null) throw id + " not found";
if(mt.js.Tip.excludeList == null) mt.js.Tip.excludeList = new List();
mt.js.Tip.excludeList.add(e);
}
mt.js.Tip.placeTooltip = function() {
if(mt.js.Tip.mousePos == null) return;
var tts = mt.js.Tip.elementSize(mt.js.Tip.tooltip);
var w = mt.js.Tip.windowSize();
var top = 0;
var left = 0;
left = mt.js.Tip.mousePos.x + mt.js.Tip.xOffset;
top = mt.js.Tip.mousePos.y + mt.js.Tip.yOffset;
if(top + tts.height > w.height - 2 + w.scrollTop) {
if(mt.js.Tip.mousePos.y - tts.height > 5 + w.scrollTop) top = mt.js.Tip.mousePos.y - tts.height - 5; else top = w.height - 2 + w.scrollTop - tts.height;
}
if(left + tts.width > w.width - 22 + w.scrollLeft) {
if(mt.js.Tip.mousePos.x - tts.width > 5 + w.scrollLeft) left = mt.js.Tip.mousePos.x - tts.width - 5; else left = w.width - 22 + w.scrollLeft - tts.width;
}
if(top < 0) top = 0;
if(left < 0) left = 0;
if(mt.js.Tip.excludeList != null) {
var $it0 = mt.js.Tip.excludeList.iterator();
while( $it0.hasNext() ) {
var e = $it0.next();
var s = mt.js.Tip.elementSize(e);
if(left > s.x + s.width || left + tts.width < s.x || top > s.y + s.height || top + tts.height < s.y) continue;
var dx1 = left - (s.x + s.width);
var dx2 = left + tts.width - s.x;
var dx = Math.abs(dx1) > Math.abs(dx2)?dx2:dx1;
var dy1 = top - (s.y + s.height);
var dy2 = top + tts.height - s.y;
var dy = Math.abs(dy1) > Math.abs(dy2)?dy2:dy1;
var cx = left + tts.width / 2 - mt.js.Tip.mousePos.x;
var cy = top + tts.height / 2 - mt.js.Tip.mousePos.y;
if((cx - dx) * (cx - dx) + cy * cy > cx * cx + (cy - dy) * (cy - dy)) top -= dy; else left -= dx;
}
}
mt.js.Tip.tooltip.style.left = left + "px";
mt.js.Tip.tooltip.style.top = top + "px";
}
mt.js.Tip.placeTooltipRef = function() {
var o = mt.js.Tip.elementSize(mt.js.Tip.lastRef);
var tts = mt.js.Tip.elementSize(mt.js.Tip.tooltip);
if(o.width <= 0) mt.js.Tip.tooltip.style.left = o.x + "px"; else mt.js.Tip.tooltip.style.left = o.x - tts.width * 0.5 + o.width * 0.5 + "px";
mt.js.Tip.tooltip.style.top = o.y + Math.max(mt.js.Tip.minOffsetY,o.height) + "px";
}
mt.js.Tip.showTip = function(refObj,title,contentBase) {
contentBase = "<p>" + contentBase + "</p>";
mt.js.Tip.show(refObj,"<div class=\"title\">" + title + "</div>" + contentBase);
}
mt.js.Tip.hide = function() {
if(mt.js.Tip.lastRef == null) return;
mt.js.Tip.lastRef = null;
if(mt.js.Tip.onHide != null) {
mt.js.Tip.onHide();
mt.js.Tip.onHide = null;
}
mt.js.Tip.tooltip.style.top = "-1000px";
mt.js.Tip.tooltip.style.width = "";
}
mt.js.Tip.clean = function() {
if(mt.js.Tip.lastRef == null) return;
if(mt.js.Tip.lastRef.parentNode == null) return mt.js.Tip.hide();
if(mt.js.Tip.lastRef.id != null && mt.js.Tip.lastRef.id != "") {
if(js.Lib.document.getElementById(mt.js.Tip.lastRef.id) != mt.js.Tip.lastRef) return mt.js.Tip.hide();
}
return;
}
mt.js.Tip.elementSize = function(o) {
var ret = { x : 0, y : 0, width : o.clientWidth, height : o.clientHeight};
var p = o;
while(p != null) {
if(p.offsetParent != null) {
ret.x += p.offsetLeft - p.scrollLeft;
ret.y += p.offsetTop - p.scrollTop;
} else {
ret.x += p.offsetLeft;
ret.y += p.offsetTop;
}
p = p.offsetParent;
}
return ret;
}
mt.js.Tip.windowSize = function() {
var ret = { x : 0, y : 0, width : js.Lib.window.innerWidth, height : js.Lib.window.innerHeight, scrollLeft : js.Lib.document.body.scrollLeft + js.Lib.document.documentElement.scrollLeft, scrollTop : js.Lib.document.body.scrollTop + js.Lib.document.documentElement.scrollTop};
var body = js.Lib.isIE?js.Lib.document.documentElement:js.Lib.document.body;
if(ret.width == null) ret.width = body.clientWidth;
if(ret.height == null) ret.height = body.clientHeight;
return ret;
}
mt.js.Tip.onMouseMove = function(evt) {
try {
var posx = 0;
var posy = 0;
if(evt == null) evt = js.Lib.window.event;
var e = evt;
if(e.pageX || e.pageY) {
posx = e.pageX;
posy = e.pageY;
} else if(e.clientX || e.clientY) {
posx = e.clientX + js.Lib.document.body.scrollLeft + js.Lib.document.documentElement.scrollLeft;
posy = e.clientY + js.Lib.document.body.scrollTop + js.Lib.document.documentElement.scrollTop;
}
mt.js.Tip.mousePos = { x : posx, y : posy};
if(mt.js.Tip.lastRef != null && !mt.js.Tip.placeRef) mt.js.Tip.placeTooltip();
} catch( e ) {
}
}
mt.js.Tip.trackMenu = function(elt,onOut) {
mt.js.Tip.init();
var ftrack = null;
var body = js.Lib.document.body;
ftrack = function(evt) {
if(mt.js.Tip.mousePos == null) return;
var size = mt.js.Tip.elementSize(elt);
if(mt.js.Tip.mousePos.x < size.x || mt.js.Tip.mousePos.y < size.y || mt.js.Tip.mousePos.x > size.x + size.width || mt.js.Tip.mousePos.y > size.y + size.height) {
if(body.attachEvent) body.detachEvent("onmousemove",ftrack); else body.removeEventListener("mousemove",ftrack,false);
onOut();
}
};
if(body.attachEvent) body.attachEvent("onmousemove",ftrack); else body.addEventListener("mousemove",ftrack,false);
}
mt.js.Tip.init = function() {
if(mt.js.Tip.initialized) return;
if(document.body != null) {
mt.js.Tip.initialized = true;
document.body.onmousemove = mt.js.Tip.onMouseMove;
}
}
mt.js.Tip.prototype = {
__class__: mt.js.Tip
}
mt.js.EditorAction = $hxClasses["mt.js.EditorAction"] = { __ename__ : ["mt","js","EditorAction"], __constructs__ : ["AImage","ANode","ASpan","ALink","AReg"] }
mt.js.EditorAction.AImage = function(tag,url) { var $x = ["AImage",0,tag,url]; $x.__enum__ = mt.js.EditorAction; $x.toString = $estr; return $x; }
mt.js.EditorAction.ANode = function(node,html) { var $x = ["ANode",1,node,html]; $x.__enum__ = mt.js.EditorAction; $x.toString = $estr; return $x; }
mt.js.EditorAction.ASpan = function(node,span) { var $x = ["ASpan",2,node,span]; $x.__enum__ = mt.js.EditorAction; $x.toString = $estr; return $x; }
mt.js.EditorAction.ALink = function(text1,text2,node) { var $x = ["ALink",3,text1,text2,node]; $x.__enum__ = mt.js.EditorAction; $x.toString = $estr; return $x; }
mt.js.EditorAction.AReg = function(ereg,replace) { var $x = ["AReg",4,ereg,replace]; $x.__enum__ = mt.js.EditorAction; $x.toString = $estr; return $x; }
mt.js.Editor = $hxClasses["mt.js.Editor"] = function(name) {
this.name = name;
this.contentName = name + "_content";
this.config = { buttons : new List(), icons : new List(), iconsUrl : "", autoLink : true, linkTarget : "_blank", uploadData : null, uploadColors : { bg : 0, fg : 16777215, fill : 32768}};
}
mt.js.Editor.__name__ = ["mt","js","Editor"];
mt.js.Editor.getElementPosition = function(o) {
var ret = { x : 0, y : 0, width : o.clientWidth, height : o.clientHeight};
if(ret.width == 0) ret.width = o.offsetWidth;
if(ret.height == 0) ret.height = o.offsetHeight;
var p = o;
while(p != null) {
if(p.offsetParent != null) {
ret.x += p.offsetLeft - p.scrollLeft;
ret.y += p.offsetTop - p.scrollTop;
} else {
ret.x += p.offsetLeft;
ret.y += p.offsetTop;
}
p = p.offsetParent;
}
return ret;
}
mt.js.Editor.prototype = {
contentName: null
,name: null
,sections: null
,config: null
,image: function(img) {
return this.config.iconsUrl.split("::img::").join(img);
}
,formatNode: function(txt,node,h1,h2) {
return txt.split("[" + node + "]").join(h1).split("[/" + node + "]").join(h2);
}
,linkTarget: function() {
return this.config.linkTarget == null?"":" target=\"" + this.config.linkTarget + "\"";
}
,addSection: function(text) {
var sid = this.sections.length;
this.sections.push(text);
return "<s:" + sid + "/>";
}
,compareIcons: function(a,b) {
return (function($this) {
var $r;
var $e = (a.act);
switch( $e[1] ) {
case 0:
var taga = $e[2];
$r = (function($this) {
var $r;
var $e = (b.act);
switch( $e[1] ) {
case 0:
var tagb = $e[2];
$r = Reflect.compare(tagb,taga);
break;
default:
$r = Reflect.compare(a,b);
}
return $r;
}($this));
break;
default:
$r = Reflect.compare(a,b);
}
return $r;
}(this));
}
,formatAction: function(txt,act) {
return (function($this) {
var $r;
var $e = (act);
switch( $e[1] ) {
case 0:
var img = $e[3], tag = $e[2];
$r = txt.split(tag).join("<img src=\"" + $this.image(img) + "\" alt=\"\"/>");
break;
case 1:
var html = $e[3], node = $e[2];
$r = $this.formatNode(txt,node,"<" + html + ">","</" + html + ">");
break;
case 2:
var span = $e[3], node = $e[2];
$r = $this.formatNode(txt,node,"<span class=\"" + span + "\">","</span>");
break;
case 3:
var node = $e[4];
$r = (function($this) {
var $r;
var r = new EReg("\\[" + node + "\\](https?://[^\"]*?)\\[\\/" + node + "\\]","ig");
txt = r.replace(txt,"<a href=\"$1\"" + $this.linkTarget() + ">$1</a>");
r = new EReg("\\[" + node + "=(https?://[^\"]*?)\\](.*?)\\[\\/" + node + "\\]","i");
var me = $this;
$r = r.customReplace(txt,function(r1) {
return me.addSection("<a href=\"" + r1.matched(1) + "\"" + me.linkTarget() + ">") + r1.matched(2) + "</a>";
});
return $r;
}($this));
break;
case 4:
var replace = $e[3], ereg = $e[2];
$r = (function($this) {
var $r;
var r = new EReg(ereg,"ig");
$r = r.replace(txt,replace);
return $r;
}($this));
break;
}
return $r;
}(this));
}
,wordify: function(b,x) {
switch(x.nodeType) {
case Xml.Document:
var $it0 = x.iterator();
while( $it0.hasNext() ) {
var x1 = $it0.next();
this.wordify(b,x1);
}
break;
case Xml.Element:
b.add("<" + x.getNodeName());
var $it1 = x.attributes();
while( $it1.hasNext() ) {
var a = $it1.next();
b.add(" " + a + "=\"" + x.get(a) + "\"");
}
if(x.firstChild() == null) b.b[b.b.length] = "/>"; else {
b.b[b.b.length] = ">";
var $it2 = x.iterator();
while( $it2.hasNext() ) {
var x1 = $it2.next();
this.wordify(b,x1);
}
b.add("</" + x.getNodeName() + ">");
}
break;
case Xml.PCData:case Xml.CData:
var first = true;
var _g = 0, _g1 = x.getNodeValue().split(" ");
while(_g < _g1.length) {
var data = _g1[_g];
++_g;
if(first) first = false; else b.b[b.b.length] = " ";
while(data.length > 40) {
b.add(data.substr(0,40));
b.b[b.b.length] = " ";
data = data.substr(40);
}
b.b[b.b.length] = data == null?"null":data;
}
break;
default:
}
}
,format: function(txt) {
if(txt == "" || txt == null) return "";
this.sections = [];
txt = StringTools.htmlEscape(txt);
txt = txt.split("\r\n").join("\n");
txt = txt.split("\r").join("\n");
txt = StringTools.trim(txt);
txt = txt.split("\\0")[0];
if(txt == null) return "";
var me = this;
if(this.config.autoLink) {
txt = new EReg("([^@=>\\]\"])(http://[a-zA-Z0-9/?;&=%_.#-]+)","").customReplace(txt,function(r) {
return r.matched(1) + me.addSection("<a href=\"" + r.matched(2) + "\"" + me.linkTarget() + ">" + r.matched(2) + "</a>");
});
txt = new EReg("^(http://[a-zA-Z0-9/?;&=%_.#-]+)","").customReplace(txt,function(r) {
var url = r.matched(1);
return me.addSection("<a href=\"" + url + "\"" + me.linkTarget() + ">" + url + "</a>");
});
}
if(this.config.uploadData != null) txt = new EReg("@([A-Za-z0-9/_.]+)@","").customReplace(txt,function(r) {
return me.addSection("<img src=\"" + me.config.uploadData.url + r.matched(1) + "\"/>");
});
var icons = Lambda.array(this.config.icons);
icons.sort(this.compareIcons.$bind(this));
var _g = 0;
while(_g < icons.length) {
var i = icons[_g];
++_g;
txt = this.formatAction(txt,i.act);
}
var $it0 = this.config.buttons.iterator();
while( $it0.hasNext() ) {
var b = $it0.next();
txt = this.formatAction(txt,b.act);
}
txt = new EReg("<s:([0-9]+)/>","").customReplace(txt,function(r) {
return me.sections[Std.parseInt(r.matched(1))];
});
this.sections = null;
txt = new EReg("<([a-z]+)></\\1>","i").replace(txt,"");
var schar = String.fromCharCode(1);
txt = txt.split(schar).join("");
txt = new EReg("<([a-zA-Z0-9]+[^>]*/>)","g").replace(txt,schar + "$1");
var r = new EReg("<([a-zA-Z0-9]+)([^>]*>[^<]*)</\\1>","g");
while(true) {
var t = r.replace(txt,schar + "$1$2" + schar + "/$1>");
if(t == txt) break;
txt = t;
}
txt = new EReg("</?[a-zA-Z0-9]+[^>]*>","g").replace(txt,"");
txt = txt.split(schar).join("<");
var b = new StringBuf();
this.wordify(b,(function($this) {
var $r;
try {
$r = Xml.parse(txt);
} catch( e ) {
$r = (function($this) {
var $r;
throw "Invalid XML " + txt + " (" + Std.string(e) + ")";
return $r;
}($this));
}
return $r;
}(this)));
return b.b.join("");
}
,setUploadButton: function(target,act) {
var id = target + "_swf";
var loaded = false;
js.Lib.document.write("<div id=\"" + id + "\"></div>");
var but = js.Lib.document.getElementById(target);
var me = this;
but.onmouseover = function(_) {
if(loaded) return;
loaded = true;
var doc = js.Lib.document;
var win = js.Lib.window;
var swf = doc.getElementById(id);
swf.style.position = "absolute";
swf.style.left = "0px";
swf.style.top = "0px";
var p = mt.js.Editor.getElementPosition(but);
swf.style.width = p.width + "px";
swf.style.height = p.height + "px";
swf.style.zIndex = 10;
var p2 = mt.js.Editor.getElementPosition(swf);
swf.style.top = p.y - p2.y + "px";
swf.style.left = p.x - p2.x + "px";
me.initUpload(id,act,but);
};
}
,getDocument: function() {
return js.Lib.document.getElementsByName(this.contentName)[0];
}
,loadConfig: function(str) {
this.config = haxe.Unserializer.run(str);
}
,execute: function(act) {
var act1 = haxe.Unserializer.run(act);
var $e = (act1);
switch( $e[1] ) {
case 0:
var tag = $e[2];
this.insert(tag);
break;
case 1:
case 2:
var tag = $e[2];
this.quoteSelection("[" + tag + "]","[/" + tag + "]");
break;
case 3:
var node = $e[4], text = $e[3], addr = $e[2];
var url = js.Lib.window.prompt(addr,"http://");
if(url == null || url.length == 0 || url == "http://") return false;
var comment = js.Lib.window.prompt(text,url);
if(comment.length == 0 || comment == url) this.insert("[" + node + "]" + url + "[/" + node + "]"); else this.insert("[" + node + "=" + url + "]" + comment + "[/" + node + "]");
break;
case 4:
break;
}
return false;
}
,insert: function(txt) {
this.quoteSelection(txt,"");
}
,insertImage: function(url) {
this.insert("@" + url + "@");
}
,quoteSelection: function(begin,end) {
var doc = this.getDocument();
var sel = new js.Selection(doc);
sel.insert(begin,sel.get(),end);
if(doc.onkeyup != null) doc.onkeyup(null);
}
,updatePreview: function(id) {
var doc = js.Lib.document.getElementById(id);
doc.innerHTML = this.format(this.getDocument().value);
}
,initUpload: function(id,act,target) {
if(this.config.uploadData == null) throw "No data domain";
var cnxName = "edcnx_" + id + "_" + this.name;
var me = this;
var api = { uploadResult : function(url) {
act(url);
}, uploadError : function(e) {
js.Lib.alert(me.config.uploadData.error + "\n(" + e + ")");
}};
var cnx = haxe.remoting.ExternalConnection.flashConnect(cnxName,null,haxe.remoting.Context.share("api",api));
var params = [this.config.uploadData.url + "upload/upload.swf","swf_" + id,"100%","100%",9];
var swfobj;
try {
swfobj = js.Lib.eval("js.SWFObject");
if(swfobj == null) throw null;
} catch( e ) {
swfobj = js.Lib.eval("SWFObject");
}
var obj = Type.createInstance(swfobj,params);
obj.addParam("AllowScriptAccess","always");
var c = this.config.uploadColors;
var colors = "&bgcolor=" + c.bg + "&fgcolor=" + c.fg + "&color=" + c.fill;
obj.addParam("FlashVars","name=" + cnxName + "&site=" + this.config.uploadData.site + "&prefix=" + this.config.uploadData.uid + colors + (target != null?"&click=1":""));
obj.addParam("wmode","transparent");
obj.write(id);
return false;
}
,__class__: mt.js.Editor
}
var ValueType = $hxClasses["ValueType"] = { __ename__ : ["ValueType"], __constructs__ : ["TNull","TInt","TFloat","TBool","TObject","TFunction","TClass","TEnum","TUnknown"] }
ValueType.TNull = ["TNull",0];
ValueType.TNull.toString = $estr;
ValueType.TNull.__enum__ = ValueType;
ValueType.TInt = ["TInt",1];
ValueType.TInt.toString = $estr;
ValueType.TInt.__enum__ = ValueType;
ValueType.TFloat = ["TFloat",2];
ValueType.TFloat.toString = $estr;
ValueType.TFloat.__enum__ = ValueType;
ValueType.TBool = ["TBool",3];
ValueType.TBool.toString = $estr;
ValueType.TBool.__enum__ = ValueType;
ValueType.TObject = ["TObject",4];
ValueType.TObject.toString = $estr;
ValueType.TObject.__enum__ = ValueType;
ValueType.TFunction = ["TFunction",5];
ValueType.TFunction.toString = $estr;
ValueType.TFunction.__enum__ = ValueType;
ValueType.TClass = function(c) { var $x = ["TClass",6,c]; $x.__enum__ = ValueType; $x.toString = $estr; return $x; }
ValueType.TEnum = function(e) { var $x = ["TEnum",7,e]; $x.__enum__ = ValueType; $x.toString = $estr; return $x; }
ValueType.TUnknown = ["TUnknown",8];
ValueType.TUnknown.toString = $estr;
ValueType.TUnknown.__enum__ = ValueType;
js.Lib = $hxClasses["js.Lib"] = function() { }
js.Lib.__name__ = ["js","Lib"];
js.Lib.isIE = null;
js.Lib.isOpera = null;
js.Lib.document = null;
js.Lib.window = null;
js.Lib.alert = function(v) {
alert(js.Boot.__string_rec(v,""));
}
js.Lib.eval = function(code) {
return eval(code);
}
js.Lib.setErrorHandler = function(f) {
js.Lib.onerror = f;
}
js.Lib.prototype = {
__class__: js.Lib
}
js.Boot = $hxClasses["js.Boot"] = function() { }
js.Boot.__name__ = ["js","Boot"];
js.Boot.__unhtml = function(s) {
return s.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;");
}
js.Boot.__trace = function(v,i) {
var msg = i != null?i.fileName + ":" + i.lineNumber + ": ":"";
msg += js.Boot.__string_rec(v,"");
var d = document.getElementById("haxe:trace");
if(d != null) d.innerHTML += js.Boot.__unhtml(msg) + "<br/>"; else if(typeof(console) != "undefined" && console.log != null) console.log(msg);
}
js.Boot.__clear_trace = function() {
var d = document.getElementById("haxe:trace");
if(d != null) d.innerHTML = "";
}
js.Boot.__string_rec = function(o,s) {
if(o == null) return "null";
if(s.length >= 5) return "<...>";
var t = typeof(o);
if(t == "function" && (o.__name__ != null || o.__ename__ != null)) t = "object";
switch(t) {
case "object":
if(o instanceof Array) {
if(o.__enum__ != null) {
if(o.length == 2) return o[0];
var str = o[0] + "(";
s += "\t";
var _g1 = 2, _g = o.length;
while(_g1 < _g) {
var i = _g1++;
if(i != 2) str += "," + js.Boot.__string_rec(o[i],s); else str += js.Boot.__string_rec(o[i],s);
}
return str + ")";
}
var l = o.length;
var i;
var str = "[";
s += "\t";
var _g = 0;
while(_g < l) {
var i1 = _g++;
str += (i1 > 0?",":"") + js.Boot.__string_rec(o[i1],s);
}
str += "]";
return str;
}
var tostr;
try {
tostr = o.toString;
} catch( e ) {
return "???";
}
if(tostr != null && tostr != Object.toString) {
var s2 = o.toString();
if(s2 != "[object Object]") return s2;
}
var k = null;
var str = "{\n";
s += "\t";
var hasp = o.hasOwnProperty != null;
for( var k in o ) { ;
if(hasp && !o.hasOwnProperty(k)) {
continue;
}
if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__") {
continue;
}
if(str.length != 2) str += ", \n";
str += s + k + " : " + js.Boot.__string_rec(o[k],s);
}
s = s.substring(1);
str += "\n" + s + "}";
return str;
case "function":
return "<function>";
case "string":
return o;
default:
return String(o);
}
}
js.Boot.__interfLoop = function(cc,cl) {
if(cc == null) return false;
if(cc == cl) return true;
var intf = cc.__interfaces__;
if(intf != null) {
var _g1 = 0, _g = intf.length;
while(_g1 < _g) {
var i = _g1++;
var i1 = intf[i];
if(i1 == cl || js.Boot.__interfLoop(i1,cl)) return true;
}
}
return js.Boot.__interfLoop(cc.__super__,cl);
}
js.Boot.__instanceof = function(o,cl) {
try {
if(o instanceof cl) {
if(cl == Array) return o.__enum__ == null;
return true;
}
if(js.Boot.__interfLoop(o.__class__,cl)) return true;
} catch( e ) {
if(cl == null) return false;
}
switch(cl) {
case Int:
return Math.ceil(o%2147483648.0) === o;
case Float:
return typeof(o) == "number";
case Bool:
return o === true || o === false;
case String:
return typeof(o) == "string";
case Dynamic:
return true;
default:
if(o == null) return false;
return o.__enum__ == cl || cl == Class && o.__name__ != null || cl == Enum && o.__ename__ != null;
}
}
js.Boot.__init = function() {
js.Lib.isIE = typeof document!='undefined' && document.all != null && typeof window!='undefined' && window.opera == null;
js.Lib.isOpera = typeof window!='undefined' && window.opera != null;
Array.prototype.copy = Array.prototype.slice;
Array.prototype.insert = function(i,x) {
this.splice(i,0,x);
};
Array.prototype.remove = Array.prototype.indexOf?function(obj) {
var idx = this.indexOf(obj);
if(idx == -1) return false;
this.splice(idx,1);
return true;
}:function(obj) {
var i = 0;
var l = this.length;
while(i < l) {
if(this[i] == obj) {
this.splice(i,1);
return true;
}
i++;
}
return false;
};
Array.prototype.iterator = function() {
return { cur : 0, arr : this, hasNext : function() {
return this.cur < this.arr.length;
}, next : function() {
return this.arr[this.cur++];
}};
};
if(String.prototype.cca == null) String.prototype.cca = String.prototype.charCodeAt;
String.prototype.charCodeAt = function(i) {
var x = this.cca(i);
if(x != x) return null;
return x;
};
var oldsub = String.prototype.substr;
String.prototype.substr = function(pos,len) {
if(pos != null && pos != 0 && len != null && len < 0) return "";
if(len == null) len = this.length;
if(pos < 0) {
pos = this.length + pos;
if(pos < 0) pos = 0;
} else if(len < 0) len = this.length + len - pos;
return oldsub.apply(this,[pos,len]);
};
Function.prototype["$bind"] = function(o) {
var f = function() {
return f.method.apply(f.scope,arguments);
};
f.scope = o;
f.method = this;
return f;
};
}
js.Boot.prototype = {
__class__: js.Boot
}
var IntHash = $hxClasses["IntHash"] = function() {
this.h = {}
if(this.h.__proto__ != null) {
this.h.__proto__ = null;
delete(this.h.__proto__);
}
}
IntHash.__name__ = ["IntHash"];
IntHash.prototype = {
h: null
,set: function(key,value) {
this.h[key] = value;
}
,get: function(key) {
return this.h[key];
}
,exists: function(key) {
return this.h[key] != null;
}
,remove: function(key) {
if(this.h[key] == null) return false;
delete(this.h[key]);
return true;
}
,keys: function() {
var a = new Array();
for( x in this.h ) a.push(x);
return a.iterator();
}
,iterator: function() {
return { ref : this.h, it : this.keys(), hasNext : function() {
return this.it.hasNext();
}, next : function() {
var i = this.it.next();
return this.ref[i];
}};
}
,toString: function() {
var s = new StringBuf();
s.b[s.b.length] = "{";
var it = this.keys();
while( it.hasNext() ) {
var i = it.next();
s.b[s.b.length] = i == null?"null":i;
s.b[s.b.length] = " => ";
s.add(Std.string(this.get(i)));
if(it.hasNext()) s.b[s.b.length] = ", ";
}
s.b[s.b.length] = "}";
return s.b.join("");
}
,__class__: IntHash
}
js.App = $hxClasses["js.App"] = function() { }
js.App.__name__ = ["js","App"];
js.App["void"] = function() {
}
js.App.main = function() {
}
js.App.setField = function(id,value) {
var e = js.Lib.document.getElementById(id);
e.value = value;
}
js.App.displayDebrief = function() {
var div = js.Lib.document.getElementById("debrief");
div.className = "";
}
js.App.addClass = function(id,className) {
var e = js.Lib.document.getElementById(id);
if(e == null) return;
var cn = e.className.split(" ");
cn.remove(className);
cn.push(className);
e.className = cn.join(" ");
}
js.App.removeClass = function(id,className) {
var e = js.Lib.document.getElementById(id);
if(e == null) return;
var cn = e.className.split(" ");
cn.remove(className);
e.className = cn.join(" ");
}
js.App.normalize = function(i) {
i.value = new EReg("[^A-Za-z0-9 #.!*$()_/,+:;'<>@\"^&=?[~`%\\]-]","g").split(i.value).join("");
}
js.App.lbcpl = function(p) {
var d = js.Lib.document.getElementById("dcpl");
var a = js.Lib.document.getElementById("acpl");
d.className = "warning";
a.setAttribute("href","/setPass?p=" + p);
}
js.App.prototype = {
__class__: js.App
}
js.Boot.__res = {}
js.Boot.__init();
{
/**
* SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
*
* SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*
*/
if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;;
js.SWFObject = deconcept.SWFObject;
}
{
Xml.Element = "element";
Xml.PCData = "pcdata";
Xml.CData = "cdata";
Xml.Comment = "comment";
Xml.DocType = "doctype";
Xml.Prolog = "prolog";
Xml.Document = "document";
}
{
var d = Date;
d.now = function() {
return new Date();
};
d.fromTime = function(t) {
var d1 = new Date();
d1["setTime"](t);
return d1;
};
d.fromString = function(s) {
switch(s.length) {
case 8:
var k = s.split(":");
var d1 = new Date();
d1["setTime"](0);
d1["setUTCHours"](k[0]);
d1["setUTCMinutes"](k[1]);
d1["setUTCSeconds"](k[2]);
return d1;
case 10:
var k = s.split("-");
return new Date(k[0],k[1] - 1,k[2],0,0,0);
case 19:
var k = s.split(" ");
var y = k[0].split("-");
var t = k[1].split(":");
return new Date(y[0],y[1] - 1,y[2],t[0],t[1],t[2]);
default:
throw "Invalid date format : " + s;
}
};
d.prototype["toString"] = function() {
var date = this;
var m = date.getMonth() + 1;
var d1 = date.getDate();
var h = date.getHours();
var mi = date.getMinutes();
var s = date.getSeconds();
return date.getFullYear() + "-" + (m < 10?"0" + m:"" + m) + "-" + (d1 < 10?"0" + d1:"" + d1) + " " + (h < 10?"0" + h:"" + h) + ":" + (mi < 10?"0" + mi:"" + mi) + ":" + (s < 10?"0" + s:"" + s);
};
d.prototype.__class__ = $hxClasses["Date"] = d;
d.__name__ = ["Date"];
}
if(typeof(haxe_timers) == "undefined") haxe_timers = [];
{
String.prototype.__class__ = $hxClasses["String"] = String;
String.__name__ = ["String"];
Array.prototype.__class__ = $hxClasses["Array"] = Array;
Array.__name__ = ["Array"];
Int = $hxClasses["Int"] = { __name__ : ["Int"]};
Dynamic = $hxClasses["Dynamic"] = { __name__ : ["Dynamic"]};
Float = $hxClasses["Float"] = Number;
Float.__name__ = ["Float"];
Bool = $hxClasses["Bool"] = { __ename__ : ["Bool"]};
Class = $hxClasses["Class"] = { __name__ : ["Class"]};
Enum = { };
Void = $hxClasses["Void"] = { __ename__ : ["Void"]};
}
{
Math.__name__ = ["Math"];
Math.NaN = Number["NaN"];
Math.NEGATIVE_INFINITY = Number["NEGATIVE_INFINITY"];
Math.POSITIVE_INFINITY = Number["POSITIVE_INFINITY"];
$hxClasses["Math"] = Math;
Math.isFinite = function(i) {
return isFinite(i);
};
Math.isNaN = function(i) {
return isNaN(i);
};
}
mt.js.Tip.init();
{
js.Lib.document = document;
js.Lib.window = window;
onerror = function(msg,url,line) {
var f = js.Lib.onerror;
if( f == null )
return false;
return f(msg,[url+":"+line]);
}
}
Xml.enode = new EReg("^<([a-zA-Z0-9:_-]+)","");
Xml.ecdata = new EReg("^<!\\[CDATA\\[","i");
Xml.edoctype = new EReg("^<!DOCTYPE ","i");
Xml.eend = new EReg("^</([a-zA-Z0-9:_-]+)>","");
Xml.epcdata = new EReg("^[^<]+","");
Xml.ecomment = new EReg("^<!--","");
Xml.eprolog = new EReg("^<\\?[^\\?]+\\?>","");
Xml.eattribute = new EReg("^\\s*([a-zA-Z0-9:_-]+)\\s*=\\s*([\"'])([^\\2]*?)\\2","");
Xml.eclose = new EReg("^[ \r\n\t]*(>|(/>))","");
Xml.ecdata_end = new EReg("\\]\\]>","");
Xml.edoctype_elt = new EReg("[\\[|\\]>]","");
Xml.ecomment_end = new EReg("-->","");
haxe.remoting.ExternalConnection.connections = new Hash();
haxe.Unserializer.DEFAULT_RESOLVER = Type;
haxe.Unserializer.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:";
haxe.Unserializer.CODES = null;
haxe.Serializer.USE_CACHE = false;
haxe.Serializer.USE_ENUM_INDEX = false;
haxe.Serializer.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:";
mt.js.Tip.xOffset = 3;
mt.js.Tip.yOffset = 22;
mt.js.Tip.defaultClass = "normalTip";
mt.js.Tip.tooltipId = "tooltip";
mt.js.Tip.tooltipContentId = "tooltipContent";
mt.js.Tip.minOffsetY = 23;
js.Lib.onerror = null;
js.App.ref = [mt.js.Tip,mt.js.Editor,js.Pagination];
js.App.main()
