--- /dev/null
+/*!
+ * Ext JS Library 3.0.0
+ * Copyright(c) 2006-2009 Ext JS, LLC
+ * licensing@extjs.com
+ * http://www.extjs.com/license
+ */
+\r
+/**\r
+ * @class Ext.data.SortTypes\r
+ * @singleton\r
+ * Defines the default sorting (casting?) comparison functions used when sorting data.\r
+ */\r
+Ext.data.SortTypes = {\r
+ /**\r
+ * Default sort that does nothing\r
+ * @param {Mixed} s The value being converted\r
+ * @return {Mixed} The comparison value\r
+ */\r
+ none : function(s){\r
+ return s;\r
+ },\r
+ \r
+ /**\r
+ * The regular expression used to strip tags\r
+ * @type {RegExp}\r
+ * @property\r
+ */\r
+ stripTagsRE : /<\/?[^>]+>/gi,\r
+ \r
+ /**\r
+ * Strips all HTML tags to sort on text only\r
+ * @param {Mixed} s The value being converted\r
+ * @return {String} The comparison value\r
+ */\r
+ asText : function(s){\r
+ return String(s).replace(this.stripTagsRE, "");\r
+ },\r
+ \r
+ /**\r
+ * Strips all HTML tags to sort on text only - Case insensitive\r
+ * @param {Mixed} s The value being converted\r
+ * @return {String} The comparison value\r
+ */\r
+ asUCText : function(s){\r
+ return String(s).toUpperCase().replace(this.stripTagsRE, "");\r
+ },\r
+ \r
+ /**\r
+ * Case insensitive string\r
+ * @param {Mixed} s The value being converted\r
+ * @return {String} The comparison value\r
+ */\r
+ asUCString : function(s) {\r
+ return String(s).toUpperCase();\r
+ },\r
+ \r
+ /**\r
+ * Date sorting\r
+ * @param {Mixed} s The value being converted\r
+ * @return {Number} The comparison value\r
+ */\r
+ asDate : function(s) {\r
+ if(!s){\r
+ return 0;\r
+ }\r
+ if(Ext.isDate(s)){\r
+ return s.getTime();\r
+ }\r
+ return Date.parse(String(s));\r
+ },\r
+ \r
+ /**\r
+ * Float sorting\r
+ * @param {Mixed} s The value being converted\r
+ * @return {Float} The comparison value\r
+ */\r
+ asFloat : function(s) {\r
+ var val = parseFloat(String(s).replace(/,/g, ""));\r
+ return isNaN(val) ? 0 : val;\r
+ },\r
+ \r
+ /**\r
+ * Integer sorting\r
+ * @param {Mixed} s The value being converted\r
+ * @return {Number} The comparison value\r
+ */\r
+ asInt : function(s) {\r
+ var val = parseInt(String(s).replace(/,/g, ""), 10);\r
+ return isNaN(val) ? 0 : val;\r
+ }\r
+};
\ No newline at end of file