﻿// JScript File
ValidatorCommonOnSubmit = function()
{                   
    ClearValidatorCallouts();
    var result = SetValidatorCallouts();                                                                                          
    return result;
}

ValidatorValidate = function(val, validationGroup, event)
{
    val.isvalid = true;
    if ((typeof(val.enabled) == 'undefined' || val.enabled != false) && IsValidationGroupMatch(val, validationGroup))
    {
        if (typeof(val.evaluationfunction) == 'function')
        {
            val.isvalid = val.evaluationfunction(val);
            if (!val.isvalid && Page_InvalidControlToBeFocused == null && typeof(val.focusOnError) == 'string' && val.focusOnError == 't')
            {
                ValidatorSetFocus(val, event);
            }
    }

}

    ClearValidatorCallouts();
    SetValidatorCallouts();
    ValidatorUpdateDisplay(val);
}

SetValidatorCallouts = function()
{
    var i;
    var pageValid = true;                   
    for (i = 0; i < Page_Validators.length; i++)
    {        
        var inputControl = document.getElementById(Page_Validators[i].controltovalidate);              
        if (!Page_Validators[i].isvalid)
        {  
            if(pageValid)
                inputControl.focus();
            WebForm_AppendToClassName(inputControl, 'error');
            pageValid = false;                                                    
        }                       
    }                   

  return pageValid;
}

ClearValidatorCallouts = function()
{
    var i;                   
    var invalidConrols = [];
    for (i = 0; i < Page_Validators.length; i++)
    {        
        var inputControl = document.getElementById(Page_Validators[i].controltovalidate);              
        WebForm_RemoveClassName(inputControl, 'error');                                                 
    }                                       
}

function WebForm_RemoveClassName(element, className)
{
    var current = element.className;
    if (current)
    {
      if (current.substring(current.length - className.length - 1, current.length) == ' ' + className)
      {
        element.className = current.substring(0, current.length - className.length - 1);
        return;
      }
     
      if (current == className)
      {
        element.className = "";
        return;
      }
     
      var index = current.indexOf(' ' + className + ' ');
      if (index != -1)
      {
        /* BUG 1: index + 1 instead of index to include one space */
        element.className = current.substring(0, index + 1) + current.substring(index + className.length + 2, current.length);
        return;
      }
     
      /* BUG 2: className.length + 1 instead of className.length in order that the comparison is true */
      if (current.substring(0, className.length + 1) == className + ' ')
        element.className = current.substring(className.length + 1, current.length);
    }
}
function WebForm_AppendToClassName(element, className)
{
    var current = element.className;
    if (current)
    {
        if (current.charAt(current.length - 1) != ' ')
        {
            current += ' ';
        }
        current += className;
    }
    else
    {
        current = className;
    }
    element.className = current;
}
