﻿// JScript File

intComparer = function(a, b)
{
    var _a, _b;
    _a = typeof(a) == "string" ? parseInt(a) : isnull(a, 0);
    _b = typeof(b) == "string" ? parseInt(b) : isnull(b, 0);
    
    return _a - _b;
}

intComparer_desc = function(a, b)
{
    var _a, _b;
    _a = typeof(a) == "string" ? parseInt(a) : isnull(a, 0);
    _b = typeof(b) == "string" ? parseInt(b) : isnull(b, 0);
    
    return _b - _a;
}

stringComparer_caseSensitive = function(a, b)
{
    var _a = isnull(a, "").toString();
    var _b = isnull(b, "").toString();
    
    if(_a < _b)
        Debug.WriteLevel("stringComparer: " + _a + " < " + _b, DebugLevels.VeryVerbose);
    else if (_a > _b)
        Debug.WriteLevel("stringComparer: " + _a + " > " + _b, DebugLevels.VeryVerbose);
    else
        Debug.WriteLevel("stringComparer: " + _a + " = " + _b, DebugLevels.VeryVerbose);
    
    if(_a < _b) return -1;
    if(_b < _a) return 1;
    return 0;
}

stringComparer_caseInSensitive = function(a, b)
{
    var _a = isnull(a, "").toString().toLowerCase();
    var _b = isnull(b, "").toString().toLowerCase();
    
    return stringComparer_caseSensitive(_a, _b);
}

stringComparer_desc_caseSensitive = function(a, b)
{
    return stringComparer_caseSensitive(b, a);
}

stringComparer_desc_caseInSensitive = function(a, b)
{
    return stringComparer_caseInSensitive(b, a);
}       

dateComparer = function(a, b)
{
    if(a == null && b == null)
        return 0;
    else if (a == null && b != null)
        return 1;
    else if (a != null && b == null)
        return - 1;
    else 
        return a.getTime() - b.getTime();
}

dateComparer_desc = function(a, b)
{
    return dateComparer(b,a);
}