/**
 *      String prototypes
 */
 
if (String.prototype.checkTime == null)
{
    String.prototype.checkTime = function (format)
    {
        var ok  = false;
        
        if (format)
        {
            var end = false;
            var str = '';
            var tmp = format;
            
            while (!end)
            {
                var r1  = new RegExp('^([^hms]+)');     //reg1 for special chars
                var r2  = new RegExp('^([hms]+)');      //reg2 for h|m|s
                var r2c = new RegExp('^([hms]+)(.*)');      //reg2 complete for length
                var reg = new RegExp('^(.{1})');        //first char reg
                
                if (tmp.match(r1))
                {
                    var replace = true;
                
                    while (replace)
                    {
                        str += '\\' + tmp.replace(r1,'$1')[0];
                        tmp  = tmp.replace(reg,'');
                        
                        if (!tmp.match(r1))
                        {
                            break;
                        }
                    }//while
                }//if (tmp.match(r1))
                else if (tmp.match(r2))
                {
                    str += '([0-9]{' + tmp.replace(r2c,'$1').length + '})';
                    tmp  = tmp.replace(r2,'');
                }//else if
            
                if (tmp == '')
                {
                    break;
                }
            }//while
            
            var reg = new RegExp('^' + str + '$');
        }//if (format)
        else
        {
            var reg = new RegExp('^([0-9]{2}):([0-9]{2})$');
        }
    
        if (this.match(reg))
        {
            var hour   = this.replace(reg,'$1');
            
            hour       = parseInt(hour,10);
            
            var minute = this.replace(reg,'$2');
            
            minute     = parseInt(minute,10);
        
            if ((hour >= 0) && (hour < 24) && (minute >= 0) && (minute < 59))
            {
                ok = true;
            }
        }//if (this.match(reg))
        
        return ok;
    }//String.prototype.checkTime
}//if (String.prototype.checkTime == null)

if (String.prototype.checkDate == null)
{
    String.prototype.checkDate = function (leadingZerosRequired)
    {
        var ok  = false;
        
        if (leadingZerosRequired)
        {
            var reg = new RegExp('^([0-9]{2})\.([0-9]{2})\.([0-9]{4})$');
        }
        else
        {
            var reg = new RegExp('^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})$');
        }
    
        if (this.match(reg))
        {
            var day   = this.replace(reg,'$1');
            
            day       = parseInt(day,10);
            
            var month = this.replace(reg,'$2');
            
            month     = parseInt(month,10);
        
            if ((day > 0) && (day < 32) && (month > 0) && (month < 13))
            {
                ok = true;
            }
        }//if (this.match(reg))
        
        return ok;
    }//String.prototype.checkDate
}//if (String.prototype.checkDate == null)

if (String.prototype.checkMail == null)
{
    String.prototype.checkMail = function ()
    {
        var ok  = false;
        var reg = new RegExp('^([a-zA-Z0-9]|[a-zA-Z0-9]+[a-zA-Z0-9\\._-]*[a-zA-Z0-9]+)@([a-zA-Z0-9]|[a-zA-Z0-9]+[a-zA-Z0-9\\._-~]*[a-zA-Z0-9]+)\\.([a-zA-Z]{2,3})$');
    
        if (this.match(reg))
        {
            ok = true;
        }//if (this.match(reg))
        
        return ok;
    }//String.prototype.checkMail
}//if (String.prototype.checkMail == null)

if (String.prototype.checkNumber == null)
{
    String.prototype.checkNumber = function (spacesAllowed)
    {
        var ok  = false;
        
        if (spacesAllowed)
        {
            var reg = new RegExp('^([0-9 ]+)$');
        }
        else
        {
            var reg = new RegExp('^([0-9]+)$');
        }
    
        if (this.match(reg))
        {
            ok = true;
        }//if (this.match(reg))
        
        return ok;
    }//String.prototype.checkNumber
}//if (String.prototype.checkNumber == null)

if (String.prototype.checkPhone == null)
{
    String.prototype.checkPhone = function ()
    {
        var ok  = false;
        var reg = new RegExp('^([0-9/\(\)\+ -]+)$');
    
        if ($.trim(this).match(reg))
        {
            ok = true;
        }//if (this.match(reg))
        
        return ok;
    }//String.prototype.checkPhone
}//if (String.prototype.checkPhone == null)

if (String.prototype.checkWords == null)
{
    String.prototype.checkWords = function (settings)
    {
        var ok   = false;
        
        var reg  = new RegExp('([0-9]+)','g');
        
        var mask = settings.replace(reg,'([^ ]{$1,})');
        
        if (this.match('^' + mask))
        {
            ok = true;
        }
        
        return ok;
    }//String.prototype.checkWords
}//if (String.prototype.checkWords == null)
