// Functions for validating user input


// <summary>
// Validates user input and displays alert message if input is invalid
// </summary>
// <history>
// Dominik M. – Woolpert, Inc. (Created) 3/23/2007
// </history>
function ValidateValue(value,type,message){
    var isValid = false;
    
    switch (type){
        case "number":
            isValid = ValidateNumber(value);
            if (!isValid && message == ""){
                message = "Entered value is not valid number! Please enter valid value.";
            }            
        break;
        
        case "integer":
            isValid = ValidateInteger(value);
            if (!isValid && message == ""){
                message = "Entered value is not valid whole number! Please enter valid value.";
            }
        break;
                
        case "required":
            isValid = ValidateRequired(value);
            if (!isValid && message == ""){
                message = "Value is required but it was not entered! Please enter valid value.";
            }
        break;
        
        case "email":
            isValid = ValidateEmail(value);
            if (!isValid && message == ""){
                message = "Entered value is not valid e-mail address! Please enter valid value.";
            }
        break;
        
        case "WhereClause":
            isValid = ValidateWhereClause(value);
            if (!isValid && message == ""){
                message = "Invalid query statement. Query operator is not specified.";
            }
        break;
        
        default:
        //nothing to do here
    }
    
    if (isValid){
        return true;    
    }else{
        //alert (message);
        return false;
    }
}
// <summary>
// Check if value is number
// </summary>
// <history>
// Dominik M. – Woolpert, Inc. (Created) 3/23/2007
// </history>
function ValidateNumber(value){
    var isValid = true;
    var validChars = "0123456789.";
    var character;
    
    //check if value is numeric
    for (i = 0; i < value.length; i++){ 
        character = value.charAt(i); 
        if (validChars.indexOf(character) == -1){
            isValid = false;
            break;
        }
    }
    return isValid;
}

// <summary>
// Check if value is integer
// </summary>
// <history>
// Dominik M. – Woolpert, Inc. (Created) 3/23/2007
// </history>
function ValidateInteger(value){
    var isValid = false;
    //check if it is number
    if (ValidateNumber(value)){
        //check if it is integer
        isValid = value.indexOf(".") == -1
    }
    return isValid;
}

// <summary>
// Check if value is populated
// </summary>
// <history>
// Dominik M. – Woolpert, Inc. (Created) 3/23/2007
// </history>
function ValidateRequired(value){
    return value.length > 0;
}

// <summary>
// Check if value is valid email address
// </summary>
// <history>
// Dominik M. – Woolpert, Inc. (Created) 3/23/2007
// </history>
function ValidateEmail(value){
    return ((value.indexOf("@") > 1) && (value.indexOf(".") > 3));
}

// <summary>
// Check for at lest one query operator
// </summary>
// <history>
// Dominik M. – Woolpert, Inc. (Created) 4/18/2007
// </history>
function ValidateWhereClause(value){
    var isValid = false;
    // verify that there is at least one query operator inthere
    var validChars = new Array();
    validChars[0]="=";
    validChars[1]=">";
    validChars[2]="<";
    validChars[3]="LIKE";
    validChars[4]="IN";
    
    for (x in validChars){
        if (value.indexOf(validChars[x]) > -1){
            isValid = true;
            break;
        }
    }
    return isValid; 
}