﻿/******************************************************
* Validator
******************************************************/
function Validator(){

}

Validator._instance = null;

Validator.getInstance = function() {

   if(Validator._instance == null) {
      Validator._instance = new Validator();
   } 
   
   return Validator._instance;   
}

Validator.NumberRange = function(obj, args) { 

    var ctrl = $(obj);
    var min = ctrl.getAttribute('minimum');
    var max = ctrl.getAttribute("maximum");
    
    if (min.toString() != 'NaN' && max.toString() != 'NaN') {
        if (args != null && args.Value != null && args.Value != ""){
            if (max != null && max != "" && min != null && min != "")  {
                max = parseFloat(max);
                min = parseFloat(min);
                
                var value = parseFloat(args.Value);
                if (value.toString() != 'NaN' && !(max >= value && value >= min)){
                    args.IsValid = false;
                    return;
                }
            }
        }
    }
    
    args.IsValid = true;    
}

Validator.DateRange = function(obj, args) { 

    var ctrl = $(obj);
      
    var min = ctrl.getAttribute('startdate');
    var max = ctrl.getAttribute("enddate");
    
    var year = $(ctrl.controltovalidate + "_year").getValue();   
    var month = $(ctrl.controltovalidate + "_month").getValue();   
    var day = $(ctrl.controltovalidate + "_day").getValue();   
    
    var value = '';
    
    if (year.length == 2){
        value += "20" + year;
    }else{
        value += year;
    }

    if (month.length == 1){
        value += "0" + month;
    }else{
        value += month;
    }
    
    if (day.length == 1){
        value += "0" + day;
    }else{
        value += day;
    }    
        
    value += "T120000";
            
    if (args != null && args.Value != null && args.Value != ""){
        if (max != null && max != "" && min != null && min != "")  {
        
            if (!(max >= value && value >= min)){
                args.IsValid = false;
                return;
            }
        }
    }
    
    args.IsValid = true;    
}