diff --git a/thirdparty/greybox/AmiJS.js b/thirdparty/greybox/AmiJS.js new file mode 100644 index 000000000..2e45b728e --- /dev/null +++ b/thirdparty/greybox/AmiJS.js @@ -0,0 +1,378 @@ +//AJS JavaScript library (minify'ed version) +//Copyright (c) 2006 Amir Salihefendic. All rights reserved. +//Copyright (c) 2005 Bob Ippolito. All rights reserved. +//License: http://www.opensource.org/licenses/mit-license.php +//Visit http://orangoo.com/AmiNation/AJS for full version. +AJS = { +BASE_URL: "", +drag_obj: null, +drag_elm: null, +_drop_zones: [], +_cur_pos: null, + +_unloadListeners: function() { +if(AJS.listeners) +AJS.map(AJS.listeners, function(elm, type, fn) {AJS.removeEventListener(elm, type, fn)}); +AJS.listeners = []; +}, +getElement: function(id) { +if(AJS.isString(id) || AJS.isNumber(id)) +return document.getElementById(id); +else +return id; +}, +getScrollTop: function() { +//From: http://www.quirksmode.org/js/doctypes.html +var t; +if (document.documentElement && document.documentElement.scrollTop) +t = document.documentElement.scrollTop; +else if (document.body) +t = document.body.scrollTop; +return t; +}, +isArray: function(obj) { +return obj instanceof Array; +}, +removeElement: function(/*elm1, elm2...*/) { +var args = AJS.flattenList(arguments); +AJS.map(args, function(elm) { AJS.swapDOM(elm, null); }); +}, +isDict: function(o) { +var str_repr = String(o); +return str_repr.indexOf(" Object") != -1; +}, +isString: function(obj) { +return (typeof obj == 'string'); +}, +getIndex: function(elm, list/*optional*/, eval_fn) { +for(var i=0; i < list.length; i++) +if(eval_fn && eval_fn(list[i]) || elm == list[i]) +return i; +return -1; +}, +createDOM: function(name, attrs) { +var i=0, attr; +elm = document.createElement(name); +if(AJS.isDict(attrs[i])) { +for(k in attrs[0]) { +attr = attrs[0][k]; +if(k == "style") +elm.style.cssText = attr; +else if(k == "class" || k == 'className') +elm.className = attr; +else { +elm.setAttribute(k, attr); +} +} +i++; +} +if(attrs[0] == null) +i = 1; +AJS.map(attrs, function(n) { +if(n) { +if(AJS.isString(n) || AJS.isNumber(n)) +n = AJS.TN(n); +elm.appendChild(n); +} +}, i); +return elm; +}, +isIe: function() { +return (navigator.userAgent.toLowerCase().indexOf("msie") != -1 && navigator.userAgent.toLowerCase().indexOf("opera") == -1); +}, +addEventListener: function(elm, type, fn, /*optional*/listen_once, cancle_bubble) { +if(!cancle_bubble) +cancle_bubble = false; +var elms = AJS.$A(elm); +AJS.map(elms, function(elmz) { +if(listen_once) +fn = AJS._listenOnce(elmz, type, fn); +if(AJS.isIn(type, ['submit', 'load', 'scroll', 'resize'])) { +var old = elm['on' + type]; +elm['on' + type] = function() { +if(old) { +fn(arguments); +return old(arguments); +} +else +return fn(arguments); +}; +return; +} +if (elmz.attachEvent) { +//FIXME: We ignore cancle_bubble for IE... hmmz +elmz.attachEvent("on" + type, fn); +} +else if(elmz.addEventListener) +elmz.addEventListener(type, fn, cancle_bubble); +AJS.listeners = AJS.$A(AJS.listeners); +AJS.listeners.push([elmz, type, fn]); +}); +}, +swapDOM: function(dest, src) { +dest = AJS.getElement(dest); +var parent = dest.parentNode; +if (src) { +src = AJS.getElement(src); +parent.replaceChild(src, dest); +} else { +parent.removeChild(dest); +} +return src; +}, +getLast: function(list) { +if(list.length > 0) +return list[list.length-1]; +else +return null; +}, +map: function(list, fn,/*optional*/ start_index, end_index) { +var i = 0, l = list.length; +if(start_index) +i = start_index; +if(end_index) +l = end_index; +for(i; i < l; i++) +fn.apply(null, [list[i]]); +}, +getElementsByTagAndClassName: function(tag_name, class_name, /*optional*/ parent) { +var class_elements = []; +if(!AJS.isDefined(parent)) +parent = document; +if(!AJS.isDefined(tag_name)) +tag_name = '*'; +var els = parent.getElementsByTagName(tag_name); +var els_len = els.length; +var pattern = new RegExp("(^|\\s)" + class_name + "(\\s|$)"); +for (i = 0, j = 0; i < els_len; i++) { +if ( pattern.test(els[i].className) || class_name == null ) { +class_elements[j] = els[i]; +j++; +} +} +return class_elements; +}, +isOpera: function() { +return (navigator.userAgent.toLowerCase().indexOf("opera") != -1); +}, +setLeft: function(/*elm1, elm2..., left*/) { +var args = AJS.flattenList(arguments); +var l = AJS.getLast(args); +AJS.map(args, function(elm) { elm.style.left = AJS.getCssDim(l)}, 0, args.length-1); +}, +getBody: function() { +return AJS.$bytc('body')[0] +}, +getWindowSize: function() { +var win_w, win_h; +if (self.innerHeight) { +win_w = self.innerWidth; +win_h = self.innerHeight; +} else if (document.documentElement && document.documentElement.clientHeight) { +win_w = document.documentElement.clientWidth; +win_h = document.documentElement.clientHeight; +} else if (document.body) { +win_w = document.body.clientWidth; +win_h = document.body.clientHeight; +} +return {'w': win_w, 'h': win_h}; +}, +showElement: function(/*elms...*/) { +var args = AJS.flattenList(arguments); +AJS.map(args, function(elm) { elm.style.display = ''}); +}, +removeEventListener: function(elm, type, fn, /*optional*/cancle_bubble) { +if(!cancle_bubble) +cancle_bubble = false; +if(elm.removeEventListener) { +elm.removeEventListener(type, fn, cancle_bubble); +if(AJS.isOpera()) +elm.removeEventListener(type, fn, !cancle_bubble); +} +else if(elm.detachEvent) +elm.detachEvent("on" + type, fn); +}, +_getRealScope: function(fn, /*optional*/ extra_args, dont_send_event, rev_extra_args) { +var scope = window; +extra_args = AJS.$A(extra_args); +if(fn._cscope) +scope = fn._cscope; +return function() { +//Append all the orginal arguments + extra_args +var args = []; +var i = 0; +if(dont_send_event) +i = 1; +AJS.map(arguments, function(arg) { args.push(arg) }, i); +args = args.concat(extra_args); +if(rev_extra_args) +args = args.reverse(); +return fn.apply(scope, args); +}; +}, +_createDomShortcuts: function() { +var elms = [ +"ul", "li", "td", "tr", "th", +"tbody", "table", "input", "span", "b", +"a", "div", "img", "button", "h1", +"h2", "h3", "br", "textarea", "form", +"p", "select", "option", "iframe", "script", +"center", "dl", "dt", "dd", "small", +"pre" +]; +var createDOM = AJS.createDOM; +var extends_ajs = function(elm) { +var c_dom = "return createDOM.apply(null, ['" + elm + "', arguments]);"; +var c_fun_dom = 'function() { ' + c_dom + ' }'; +eval("AJS." + elm.toUpperCase() + "=" + c_fun_dom); +} +AJS.map(elms, extends_ajs); +AJS.TN = function(text) { return document.createTextNode(text) }; +}, +isNumber: function(obj) { +return (typeof obj == 'number'); +}, +bind: function(fn, scope, /*optional*/ extra_args, dont_send_event, rev_extra_args) { +fn._cscope = scope; +return AJS._getRealScope(fn, extra_args, dont_send_event, rev_extra_args); +}, +setTop: function(/*elm1, elm2..., top*/) { +var args = AJS.flattenList(arguments); +var t = AJS.getLast(args); +AJS.map(args, function(elm) { elm.style.top = AJS.getCssDim(t)}, 0, args.length-1); +}, +appendChildNodes: function(elm/*, elms...*/) { +if(arguments.length >= 2) { +AJS.map(arguments, function(n) { +if(AJS.isString(n)) +n = AJS.TN(n); +if(AJS.isDefined(n)) +elm.appendChild(n); +}, 1); +} +return elm; +}, +isDefined: function(o) { +return (o != "undefined" && o != null) +}, +isIn: function(elm, list) { +var i = AJS.getIndex(elm, list); +if(i != -1) +return true; +else +return false; +}, +setHeight: function(/*elm1, elm2..., height*/) { +var args = AJS.flattenList(arguments); +var h = AJS.getLast(args); +AJS.map(args, function(elm) { elm.style.height = AJS.getCssDim(h)}, 0, args.length-1); +}, +hideElement: function(elm) { +var args = AJS.flattenList(arguments); +AJS.map(args, function(elm) { elm.style.display = 'none'}); +}, +createArray: function(v) { +if(AJS.isArray(v) && !AJS.isString(v)) +return v; +else if(!v) +return []; +else +return [v]; +}, +setWidth: function(/*elm1, elm2..., width*/) { +var args = AJS.flattenList(arguments); +var w = AJS.getLast(args); +AJS.map(args, function(elm) { elm.style.width = AJS.getCssDim(w)}, 0, args.length-1); +}, +getCssDim: function(dim) { +if(AJS.isString(dim)) +return dim; +else +return dim + "px"; +}, +_listenOnce: function(elm, type, fn) { +var r_fn = function() { +AJS.removeEventListener(elm, type, r_fn); +fn(arguments); +} +return r_fn; +}, +flattenList: function(list) { +var r = []; +var _flatten = function(r, l) { +AJS.map(l, function(o) { +if (AJS.isArray(o)) +_flatten(r, o); +else +r.push(o); +}); +} +_flatten(r, list); +return r; +} +} + +AJS.$ = AJS.getElement; +AJS.$$ = AJS.getElements; +AJS.$f = AJS.getFormElement; +AJS.$b = AJS.bind; +AJS.$A = AJS.createArray; +AJS.DI = AJS.documentInsert; +AJS.ACN = AJS.appendChildNodes; +AJS.RCN = AJS.replaceChildNodes; +AJS.AEV = AJS.addEventListener; +AJS.REV = AJS.removeEventListener; +AJS.$bytc = AJS.getElementsByTagAndClassName; + +AJS.addEventListener(window, 'unload', AJS._unloadListeners); +AJS._createDomShortcuts() + +AJSDeferred = function(req) { +this.callbacks = []; +this.errbacks = []; +this.req = req; +}; +AJSDeferred.prototype = { +excCallbackSeq: function(req, list) { +var data = req.responseText; +while (list.length > 0) { +var fn = list.pop(); +var new_data = fn(data, req); +if(new_data) +data = new_data; +} +}, +callback: function () { +this.excCallbackSeq(this.req, this.callbacks); +}, +errback: function() { +if(this.errbacks.length == 0) +alert("Error encountered:\n" + this.req.responseText); +this.excCallbackSeq(this.req, this.errbacks); +}, +addErrback: function(fn) { +this.errbacks.unshift(fn); +}, +addCallback: function(fn) { +this.callbacks.unshift(fn); +}, +addCallbacks: function(fn1, fn2) { +this.addCallback(fn1); +this.addErrback(fn2); +}, +sendReq: function(data) { +if(AJS.isObject(data)) { +var post_data = []; +for(k in data) { +post_data.push(k + "=" + AJS.urlencode(data[k])); +} +post_data = post_data.join("&"); +this.req.send(post_data); +} +else if(AJS.isDefined(data)) +this.req.send(data); +else { +this.req.send(""); +} +} +} \ No newline at end of file diff --git a/thirdparty/greybox/blank.gif b/thirdparty/greybox/blank.gif new file mode 100644 index 000000000..75b945d25 Binary files /dev/null and b/thirdparty/greybox/blank.gif differ diff --git a/thirdparty/greybox/blank.html b/thirdparty/greybox/blank.html new file mode 100644 index 000000000..002462cd8 --- /dev/null +++ b/thirdparty/greybox/blank.html @@ -0,0 +1,8 @@ + + + + Blank + + + + diff --git a/thirdparty/greybox/close.gif b/thirdparty/greybox/close.gif new file mode 100644 index 000000000..3c05b150c Binary files /dev/null and b/thirdparty/greybox/close.gif differ diff --git a/thirdparty/greybox/greybox.css b/thirdparty/greybox/greybox.css new file mode 100644 index 000000000..fdb850064 --- /dev/null +++ b/thirdparty/greybox/greybox.css @@ -0,0 +1,128 @@ +/* Last-Modified: 28/06/06 00:08:22 */ + +/** + * Current style + */ +.GB_t_frame { + /*color: #444;*/ + color: #CCDEF3; + font-size: 12px; + line-height: 12px; +} + +.GB_content { + background-color: #fff; + /*border: 3px solid #666;*/ + border: 3px solid #CCDEF3; +} + +.GB_loader { + color: #616161; + background-color: #fff; +} + +.GB_header { + /*border-bottom: 1px solid #ccc;*/ + border-bottom: 3px solid #CCDEF3; + /*background: #000 url(../../cms/images/textures/obar-18.gif) repeat-x;*/ + background: #ccdef3 url(../../cms/images/mainmenu/current.gif) repeat-x; + /*color: #fff;*/ + color: #555; +} + +.GB_caption { + font-weight: bold; + font-size: 13px; +} + +/** + * Base stuff + */ +#GB_overlay { + position: absolute; + margin: auto; + top: 0; + left: 0; + z-index: 100; +} + +#GB_window { + font-family: helvetica, verdana, sans-serif; + left: 0; + top: 0; + font-size: 1px; + position: absolute; + overflow: visible; + z-index: 150; +} + +#GB_frame { + border: 0; + margin: 0; + padding: 0; + overflow: auto; +} + + +/** + * Content + */ +.GB_t_frame { + margin: 0; + padding: 0; + border-collapse: collapse; +} + +.GB_content { + padding: 0; + margin: 0; + vertical-align: top; + margin-bottom: 25px; + z-index: 155; +} + +.GB_loader { + z-index: 500; + left: 6px; + font-size: 16px; + text-align: center; +} + + +/** + * Header + */ +.GB_caption { +} + +.GB_header { + width: 100%; + text-align: left; + vertical-align: middle; + padding: 2px 1px 2px 1px; + margin: 0; + /*border-bottom: 1px solid #aaa;*/ +} + +.GB_close { + white-space: nowrap; + text-align: right; + width: 10%; + top: 0; + z-index: 200; + cursor: pointer; + font-size: 13px; + font-weight: bold; +} + +.GB_close img { + width: 11px; + height: 11px; + padding: 0; + margin-right: 3px; +} + +.GB_container { + margin: 0; + padding: 0 0 10px 0; +} diff --git a/thirdparty/greybox/header_bg.gif b/thirdparty/greybox/header_bg.gif new file mode 100755 index 000000000..3913cfdfd Binary files /dev/null and b/thirdparty/greybox/header_bg.gif differ diff --git a/thirdparty/greybox/indicator.gif b/thirdparty/greybox/indicator.gif new file mode 100755 index 000000000..f864d5fd3 Binary files /dev/null and b/thirdparty/greybox/indicator.gif differ diff --git a/thirdparty/greybox/loader_frame.html b/thirdparty/greybox/loader_frame.html new file mode 100755 index 000000000..c2ec37423 --- /dev/null +++ b/thirdparty/greybox/loader_frame.html @@ -0,0 +1,74 @@ + + + + + + +
+
+ LOADING +
+ + + + + + \ No newline at end of file diff --git a/thirdparty/greybox/logo.gif b/thirdparty/greybox/logo.gif new file mode 100755 index 000000000..ebbbe9a8d Binary files /dev/null and b/thirdparty/greybox/logo.gif differ diff --git a/thirdparty/greybox/logo.png b/thirdparty/greybox/logo.png new file mode 100644 index 000000000..c233cbf11 Binary files /dev/null and b/thirdparty/greybox/logo.png differ diff --git a/thirdparty/greybox/overlay.png b/thirdparty/greybox/overlay.png new file mode 100644 index 000000000..7a35cc15e Binary files /dev/null and b/thirdparty/greybox/overlay.png differ diff --git a/thirdparty/greybox/overlay_dark.png b/thirdparty/greybox/overlay_dark.png new file mode 100755 index 000000000..0371768b6 Binary files /dev/null and b/thirdparty/greybox/overlay_dark.png differ diff --git a/thirdparty/greybox/overlay_light.png b/thirdparty/greybox/overlay_light.png new file mode 100755 index 000000000..d1e05dd70 Binary files /dev/null and b/thirdparty/greybox/overlay_light.png differ