/*!
 * Ext JS Library 3.2.2
 * Copyright(c) 2006-2010 Ext JS, Inc.
 * licensing@extjs.com
 * http://www.extjs.com/license
 */

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