﻿// JavaScript File

//////////////////////////////////////
// special characters
// `~^*()+<>;={}[]|
var ILLEGAL_CHARACTERS = 'ILLEGAL_CHARACTERS';
var ILLEGAL_CHARACTER_STRING = '`~^*()+<>;={}[]|';


function validateInt()
{
  var o = document.frmInput.txtInput;
  switch (isInteger(o.value))
  {
     case true:
        alert(o.value + " is an integer")
        break;
     case false:
        alert(o.value + " is not an integer")
  }
}

function validateRange()
{
  var s = document.frmInput.txtInput.value;
  var A = document.frmInput.txtA.value;
  var B = document.frmInput.txtB.value;

  switch (isIntegerInRange(s, A, B))
  {
     case true:
        alert(s + " is in range from " + A + " to " + B)
        break;
     case false:
        alert(s + " is not in range from " + A + " to " + B)
  }
}

// isIntegerInRange (STRING s, INTEGER a, INTEGER b)
function isIntegerInRange (s, a, b)
{  
  if (isEmpty(s))
     if (isIntegerInRange.arguments.length == 1) return false;
     else return (isIntegerInRange.arguments[1] == true);

  // Catch non-integer strings to avoid creating a NaN below,
  // which isn't available on JavaScript 1.0 for Windows.
  if (!isInteger(s, false)) return false;

  // Now, explicitly change the type to integer via parseInt
  // so that the comparison code below will work both on
  // JavaScript 1.2 (which typechecks in equality comparisons)
  // and JavaScript 1.1 and before (which doesn't).
  var num = parseInt (s);
  return ((num >= a) && (num <= b));
}

function isInteger (s)
{
  var i;

  if (isEmpty(s))
  if (isInteger.arguments.length == 1) return 0;
  else return (isInteger.arguments[1] == true);

  for (i = 0; i < s.length; i++)
  {
     var c = s.charAt(i);

     if (!isDigit(c)) return false;
  }

  return true;
}

function isEmpty(s)
{
  return ((s == null) || (s.length == 0))
}

function isDigit (c)
{
  return ((c >= "0") && (c <= "9"))
}


function checkIllegalKey(e)
{
    var keycode = e.keyCode? e.keyCode : e.charCode;
    var key = String.fromCharCode(keycode);
    //alert("you are here ... event=" + e.keyCode);
    if (ILLEGAL_CHARACTER_STRING.indexOf(key) != -1) {
        return false;
    }
    return true;
}

function checkIllegalCharacters(SrcObj, Args)
{
    var s = Args.Value;
    var length = s.length;
    //alert("you are here... Args.Value=" + s + " ... length=" + s.length);
    for (var i = 0; i < s.length; i++) {
        if (ILLEGAL_CHARACTER_STRING.indexOf(s.charAt(i)) != -1) {
            //return true;
            Args.IsValid = false;
            return;
       }
    }
    Args.IsValid = true;
    return;
}

function checkIllegalCharacters_formsubmit(s)
{
    var length = s.length;
    //alert("you are here... Args.Value=" + s + " ... length=" + s.length);
    for (var i = 0; i < s.length; i++) {
        if (ILLEGAL_CHARACTER_STRING.indexOf(s.charAt(i)) != -1) {
            //return true;
            return false;
       }
    }
    return true;
}

