summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2011-08-19 15:40:58 +0200
committerAndreas Gohr <andi@splitbrain.org>2011-08-19 15:40:58 +0200
commit26fc53c6a8fe022cd60b5df5474cfbe35afd34e4 (patch)
tree0d6faf3abacf42545604ab88afd33ac30f919324
parent38331508a78e955e63596e778f863996dfa7763b (diff)
downloadrpg-26fc53c6a8fe022cd60b5df5474cfbe35afd34e4.tar.gz
rpg-26fc53c6a8fe022cd60b5df5474cfbe35afd34e4.tar.bz2
moved more stuff out from script.js
the file is nearly empty now
-rw-r--r--lib/scripts/compatibility.js87
-rw-r--r--lib/scripts/helpers.js178
-rw-r--r--lib/scripts/script.js128
3 files changed, 197 insertions, 196 deletions
diff --git a/lib/scripts/compatibility.js b/lib/scripts/compatibility.js
index a5cc87e58..ddc8823d3 100644
--- a/lib/scripts/compatibility.js
+++ b/lib/scripts/compatibility.js
@@ -1,6 +1,78 @@
/*jslint sloppy: true */
/*global dw_index, dw_qsearch, DEPRECATED_WRAP */
+/**
+ * Mark a JavaScript function as deprecated
+ *
+ * This will print a warning to the JavaScript console (if available) in
+ * Firebug and Chrome and a stack trace (if available) to easily locate the
+ * problematic function call.
+ *
+ * @param msg optional message to print
+ */
+function DEPRECATED(msg){
+ if(!window.console) return;
+ if(!msg) msg = '';
+
+ var func;
+ if(arguments.callee) func = arguments.callee.caller.name;
+ if(func) func = ' '+func+'()';
+ var line = 'DEPRECATED function call'+func+'. '+msg;
+
+ if(console.warn){
+ console.warn(line);
+ }else{
+ console.log(line);
+ }
+
+ if(console.trace) console.trace();
+}
+
+/**
+ * Construct a wrapper function for deprecated function names
+ *
+ * This function returns a wrapper function which just calls DEPRECATED
+ * and the new function.
+ *
+ * @param func The new function
+ * @param context Optional; The context (`this`) of the call
+ */
+function DEPRECATED_WRAP(func, context) {
+ return function () {
+ DEPRECATED();
+ return func.apply(context || this, arguments);
+ }
+}
+
+/**
+ * Handy shortcut to document.getElementById
+ *
+ * This function was taken from the prototype library
+ *
+ * @link http://prototype.conio.net/
+ */
+function $() {
+ DEPRECATED('Please use the JQuery() function instead.');
+
+ var elements = new Array();
+
+ for (var i = 0; i < arguments.length; i++) {
+ var element = arguments[i];
+ if (typeof element == 'string')
+ element = document.getElementById(element);
+
+ if (arguments.length == 1)
+ return element;
+
+ elements.push(element);
+ }
+
+ return elements;
+}
+
+
+
+
var index = {
throbber_delay: dw_index.throbber_delay,
toggle: DEPRECATED_WRAP(dw_index.toggle, dw_index),
@@ -123,3 +195,18 @@ function addInitEvent(func) {
jQuery(func);
}
+
+function jsEscape(text){
+ DEPRECATED('Insert text through jQuery.text() instead of escaping on your own');
+ var re=new RegExp("\\\\","g");
+ text=text.replace(re,"\\\\");
+ re=new RegExp("'","g");
+ text=text.replace(re,"\\'");
+ re=new RegExp('"',"g");
+ text=text.replace(re,'&quot;');
+ re=new RegExp("\\\\\\\\n","g");
+ text=text.replace(re,"\\n");
+ return text;
+}
+
+
diff --git a/lib/scripts/helpers.js b/lib/scripts/helpers.js
index b286965cf..b0f76cdb0 100644
--- a/lib/scripts/helpers.js
+++ b/lib/scripts/helpers.js
@@ -1,134 +1,161 @@
/**
- * Differrent helper functions
+ * Various helper functions
+ */
+
+
+/**
+ * Simple function to check if a global var is defined
*
- * @author Ilya Lebedev <ilya@lebedev.net>
- * @license LGPL
+ * @author Kae Verens
+ * @link http://verens.com/archives/2005/07/25/isset-for-javascript/#comment-2835
*/
-//-----------------------------------------------------------------------------
-// Variable/property checks
-//-----------------------------------------------------------------------------
+function isset(varname){
+ return(typeof(window[varname])!='undefined');
+}
+
/**
- * Checks if property is undefined
+ * Checks if property is undefined
*
- * @param {Object} prop value to check
- * @return {Boolean} true if matched
- * @scope public
+ * @param {Object} prop value to check
+ * @return {Boolean} true if matched
+ * @scope public
+ * @author Ilya Lebedev <ilya@lebedev.net>
*/
function isUndefined (prop /* :Object */) /* :Boolean */ {
- return (typeof prop == 'undefined');
+ return (typeof prop == 'undefined');
}
+
/**
- * Checks if property is function
+ * Checks if property is function
*
- * @param {Object} prop value to check
- * @return {Boolean} true if matched
- * @scope public
+ * @param {Object} prop value to check
+ * @return {Boolean} true if matched
+ * @scope public
+ * @author Ilya Lebedev <ilya@lebedev.net>
*/
function isFunction (prop /* :Object */) /* :Boolean */ {
- return (typeof prop == 'function');
+ return (typeof prop == 'function');
}
/**
- * Checks if property is string
+ * Checks if property is string
*
- * @param {Object} prop value to check
- * @return {Boolean} true if matched
- * @scope public
+ * @param {Object} prop value to check
+ * @return {Boolean} true if matched
+ * @scope public
+ * @author Ilya Lebedev <ilya@lebedev.net>
*/
function isString (prop /* :Object */) /* :Boolean */ {
- return (typeof prop == 'string');
+ return (typeof prop == 'string');
}
+
/**
- * Checks if property is number
+ * Checks if property is number
*
- * @param {Object} prop value to check
- * @return {Boolean} true if matched
- * @scope public
+ * @param {Object} prop value to check
+ * @return {Boolean} true if matched
+ * @scope public
+ * @author Ilya Lebedev <ilya@lebedev.net>
*/
function isNumber (prop /* :Object */) /* :Boolean */ {
- return (typeof prop == 'number');
+ return (typeof prop == 'number');
}
+
/**
- * Checks if property is the calculable number
+ * Checks if property is the calculable number
*
- * @param {Object} prop value to check
- * @return {Boolean} true if matched
- * @scope public
+ * @param {Object} prop value to check
+ * @return {Boolean} true if matched
+ * @scope public
+ * @author Ilya Lebedev <ilya@lebedev.net>
*/
function isNumeric (prop /* :Object */) /* :Boolean */ {
- return isNumber(prop)&&!isNaN(prop)&&isFinite(prop);
+ return isNumber(prop)&&!isNaN(prop)&&isFinite(prop);
}
+
/**
- * Checks if property is array
+ * Checks if property is array
*
- * @param {Object} prop value to check
- * @return {Boolean} true if matched
- * @scope public
+ * @param {Object} prop value to check
+ * @return {Boolean} true if matched
+ * @scope public
+ * @author Ilya Lebedev <ilya@lebedev.net>
*/
function isArray (prop /* :Object */) /* :Boolean */ {
- return (prop instanceof Array);
+ return (prop instanceof Array);
}
+
/**
* Checks if property is regexp
*
- * @param {Object} prop value to check
- * @return {Boolean} true if matched
- * @scope public
+ * @param {Object} prop value to check
+ * @return {Boolean} true if matched
+ * @scope public
+ * @author Ilya Lebedev <ilya@lebedev.net>
*/
function isRegExp (prop /* :Object */) /* :Boolean */ {
- return (prop instanceof RegExp);
+ return (prop instanceof RegExp);
}
+
/**
- * Checks if property is a boolean value
+ * Checks if property is a boolean value
*
- * @param {Object} prop value to check
- * @return {Boolean} true if matched
- * @scope public
+ * @param {Object} prop value to check
+ * @return {Boolean} true if matched
+ * @scope public
+ * @author Ilya Lebedev <ilya@lebedev.net>
*/
function isBoolean (prop /* :Object */) /* :Boolean */ {
- return ('boolean' == typeof prop);
+ return ('boolean' == typeof prop);
}
+
/**
- * Checks if property is a scalar value (value that could be used as the hash key)
+ * Checks if property is a scalar value (value that could be used as the hash key)
*
- * @param {Object} prop value to check
- * @return {Boolean} true if matched
- * @scope public
+ * @param {Object} prop value to check
+ * @return {Boolean} true if matched
+ * @scope public
+ * @author Ilya Lebedev <ilya@lebedev.net>
*/
function isScalar (prop /* :Object */) /* :Boolean */ {
- return isNumeric(prop)||isString(prop);
+ return isNumeric(prop)||isString(prop);
}
+
/**
- * Checks if property is empty
+ * Checks if property is empty
*
- * @param {Object} prop value to check
- * @return {Boolean} true if matched
- * @scope public
+ * @param {Object} prop value to check
+ * @return {Boolean} true if matched
+ * @scope public
+ * @author Ilya Lebedev <ilya@lebedev.net>
*/
function isEmpty (prop /* :Object */) /* :Boolean */ {
- if (isBoolean(prop)) return false;
- if (isRegExp(prop) && new RegExp("").toString() == prop.toString()) return true;
- if (isString(prop) || isNumber(prop)) return !prop;
- if (Boolean(prop)&&false != prop) {
- for (var i in prop) if(prop.hasOwnProperty(i)) return false;
- }
- return true;
+ if (isBoolean(prop)) return false;
+ if (isRegExp(prop) && new RegExp("").toString() == prop.toString()) return true;
+ if (isString(prop) || isNumber(prop)) return !prop;
+ if (Boolean(prop)&&false != prop) {
+ for (var i in prop) if(prop.hasOwnProperty(i)) return false;
+ }
+ return true;
}
/**
- * Checks if property is derived from prototype, applies method if it is not exists
+ * Checks if property is derived from prototype, applies method if it is not exists
*
- * @param string property name
- * @return bool true if prototyped
- * @access public
+ * @param string property name
+ * @return bool true if prototyped
+ * @access public
+ * @author Ilya Lebedev <ilya@lebedev.net>
*/
if ('undefined' == typeof Object.hasOwnProperty) {
- Object.prototype.hasOwnProperty = function (prop) {
- return !('undefined' == typeof this[prop] || this.constructor && this.constructor.prototype[prop] && this[prop] === this.constructor.prototype[prop]);
- };
+ Object.prototype.hasOwnProperty = function (prop) {
+ return !('undefined' == typeof this[prop] || this.constructor && this.constructor.prototype[prop] && this[prop] === this.constructor.prototype[prop]);
+ };
}
/**
* Very simplistic Flash plugin check, probably works for Flash 8 and higher only
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
*/
function hasFlash(version){
var ver = 0;
@@ -192,3 +219,18 @@ function bind(fnc/*, ... */) {
static_args.concat(Aps.call(arguments, 0)));
};
}
+
+/**
+ * Get the computed style of a node.
+ *
+ * @link https://acidmartin.wordpress.com/2008/08/26/style-get-any-css-property-value-of-an-object/
+ * @link http://svn.dojotoolkit.org/src/dojo/trunk/_base/html.js
+ */
+function gcs(node){
+ if(node.currentStyle){
+ return node.currentStyle;
+ }else{
+ return node.ownerDocument.defaultView.getComputedStyle(node, null);
+ }
+}
+
diff --git a/lib/scripts/script.js b/lib/scripts/script.js
index caa2a107c..8db223d61 100644
--- a/lib/scripts/script.js
+++ b/lib/scripts/script.js
@@ -4,53 +4,6 @@ if ('function' === typeof jQuery && 'function' === typeof jQuery.noConflict) {
}
/**
- * Mark a JavaScript function as deprecated
- *
- * This will print a warning to the JavaScript console (if available) in
- * Firebug and Chrome and a stack trace (if available) to easily locate the
- * problematic function call.
- *
- * @param msg optional message to print
- */
-function DEPRECATED(msg){
- if(!window.console) return;
- if(!msg) msg = '';
-
- var func;
- if(arguments.callee) func = arguments.callee.caller.name;
- if(func) func = ' '+func+'()';
- var line = 'DEPRECATED function call'+func+'. '+msg;
-
- if(console.warn){
- console.warn(line);
- }else{
- console.log(line);
- }
-
- if(console.trace) console.trace();
-}
-
-/**
- * Construct a wrapper function for deprecated function names
- *
- * This function returns a wrapper function which just calls DEPRECATED
- * and the new function.
- *
- * @param func The new function
- * @param context Optional; The context (`this`) of the call
- */
-function DEPRECATED_WRAP(func, context) {
- return function () {
- DEPRECATED();
- return func.apply(context || this, arguments);
- }
-}
-
-/**
- * Some of these scripts were taken from wikipedia.org and were modified for DokuWiki
- */
-
-/**
* Some browser detection
*/
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
@@ -66,87 +19,6 @@ if (clientPC.indexOf('opera')!=-1) {
}
/**
- * Handy shortcut to document.getElementById
- *
- * This function was taken from the prototype library
- *
- * @link http://prototype.conio.net/
- */
-function $() {
- DEPRECATED('Please use the JQuery() function instead.');
-
- var elements = new Array();
-
- for (var i = 0; i < arguments.length; i++) {
- var element = arguments[i];
- if (typeof element == 'string')
- element = document.getElementById(element);
-
- if (arguments.length == 1)
- return element;
-
- elements.push(element);
- }
-
- return elements;
-}
-
-/**
- * Simple function to check if a global var is defined
- *
- * @author Kae Verens
- * @link http://verens.com/archives/2005/07/25/isset-for-javascript/#comment-2835
- */
-function isset(varname){
- return(typeof(window[varname])!='undefined');
-}
-
-/**
- * Get the computed style of a node.
- *
- * @link https://acidmartin.wordpress.com/2008/08/26/style-get-any-css-property-value-of-an-object/
- * @link http://svn.dojotoolkit.org/src/dojo/trunk/_base/html.js
- */
-function gcs(node){
- if(node.currentStyle){
- return node.currentStyle;
- }else{
- return node.ownerDocument.defaultView.getComputedStyle(node, null);
- }
-}
-
-/**
- * Escape special chars in JavaScript
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-function jsEscape(text){
- var re=new RegExp("\\\\","g");
- text=text.replace(re,"\\\\");
- re=new RegExp("'","g");
- text=text.replace(re,"\\'");
- re=new RegExp('"',"g");
- text=text.replace(re,'&quot;');
- re=new RegExp("\\\\\\\\n","g");
- text=text.replace(re,"\\n");
- return text;
-}
-
-/**
- * This function escapes some special chars
- * @deprecated by above function
- */
-function escapeQuotes(text) {
- var re=new RegExp("'","g");
- text=text.replace(re,"\\'");
- re=new RegExp('"',"g");
- text=text.replace(re,'&quot;');
- re=new RegExp("\\n","g");
- text=text.replace(re,"\\n");
- return text;
-}
-
-/**
* Prints a animated gif to show the search is performed
*
* Because we need to modify the DOM here before the document is loaded