--- /dev/null
+/*\r
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ * - GNU General Public License Version 2 or later (the "GPL")\r
+ * http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ * http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ * - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ * http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ * Extensions to the JavaScript Core.\r
+ *\r
+ * All custom extensions functions are PascalCased to differ from the standard\r
+ * camelCased ones.\r
+ */\r
+\r
+String.prototype.Contains = function( textToCheck )\r
+{\r
+ return ( this.indexOf( textToCheck ) > -1 ) ;\r
+}\r
+\r
+String.prototype.Equals = function()\r
+{\r
+ var aArgs = arguments ;\r
+\r
+ // The arguments could also be a single array.\r
+ if ( aArgs.length == 1 && aArgs[0].pop )\r
+ aArgs = aArgs[0] ;\r
+\r
+ for ( var i = 0 ; i < aArgs.length ; i++ )\r
+ {\r
+ if ( this == aArgs[i] )\r
+ return true ;\r
+ }\r
+ return false ;\r
+}\r
+\r
+String.prototype.IEquals = function()\r
+{\r
+ var thisUpper = this.toUpperCase() ;\r
+\r
+ var aArgs = arguments ;\r
+\r
+ // The arguments could also be a single array.\r
+ if ( aArgs.length == 1 && aArgs[0].pop )\r
+ aArgs = aArgs[0] ;\r
+\r
+ for ( var i = 0 ; i < aArgs.length ; i++ )\r
+ {\r
+ if ( thisUpper == aArgs[i].toUpperCase() )\r
+ return true ;\r
+ }\r
+ return false ;\r
+}\r
+\r
+String.prototype.ReplaceAll = function( searchArray, replaceArray )\r
+{\r
+ var replaced = this ;\r
+\r
+ for ( var i = 0 ; i < searchArray.length ; i++ )\r
+ {\r
+ replaced = replaced.replace( searchArray[i], replaceArray[i] ) ;\r
+ }\r
+\r
+ return replaced ;\r
+}\r
+\r
+String.prototype.StartsWith = function( value )\r
+{\r
+ return ( this.substr( 0, value.length ) == value ) ;\r
+}\r
+\r
+// Extends the String object, creating a "EndsWith" method on it.\r
+String.prototype.EndsWith = function( value, ignoreCase )\r
+{\r
+ var L1 = this.length ;\r
+ var L2 = value.length ;\r
+\r
+ if ( L2 > L1 )\r
+ return false ;\r
+\r
+ if ( ignoreCase )\r
+ {\r
+ var oRegex = new RegExp( value + '$' , 'i' ) ;\r
+ return oRegex.test( this ) ;\r
+ }\r
+ else\r
+ return ( L2 == 0 || this.substr( L1 - L2, L2 ) == value ) ;\r
+}\r
+\r
+String.prototype.Remove = function( start, length )\r
+{\r
+ var s = '' ;\r
+\r
+ if ( start > 0 )\r
+ s = this.substring( 0, start ) ;\r
+\r
+ if ( start + length < this.length )\r
+ s += this.substring( start + length , this.length ) ;\r
+\r
+ return s ;\r
+}\r
+\r
+String.prototype.Trim = function()\r
+{\r
+ // We are not using \s because we don't want "non-breaking spaces to be caught".\r
+ return this.replace( /(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '' ) ;\r
+}\r
+\r
+String.prototype.LTrim = function()\r
+{\r
+ // We are not using \s because we don't want "non-breaking spaces to be caught".\r
+ return this.replace( /^[ \t\n\r]*/g, '' ) ;\r
+}\r
+\r
+String.prototype.RTrim = function()\r
+{\r
+ // We are not using \s because we don't want "non-breaking spaces to be caught".\r
+ return this.replace( /[ \t\n\r]*$/g, '' ) ;\r
+}\r
+\r
+String.prototype.ReplaceNewLineChars = function( replacement )\r
+{\r
+ return this.replace( /\n/g, replacement ) ;\r
+}\r
+\r
+String.prototype.Replace = function( regExp, replacement, thisObj )\r
+{\r
+ if ( typeof replacement == 'function' )\r
+ {\r
+ return this.replace( regExp,\r
+ function()\r
+ {\r
+ return replacement.apply( thisObj || this, arguments ) ;\r
+ } ) ;\r
+ }\r
+ else\r
+ return this.replace( regExp, replacement ) ;\r
+}\r
+\r
+Array.prototype.AddItem = function( item )\r
+{\r
+ var i = this.length ;\r
+ this[ i ] = item ;\r
+ return i ;\r
+}\r
+\r
+Array.prototype.IndexOf = function( value )\r
+{\r
+ for ( var i = 0 ; i < this.length ; i++ )\r
+ {\r
+ if ( this[i] == value )\r
+ return i ;\r
+ }\r
+ return -1 ;\r
+}\r