
function ValidChars(e)
{
 var key;
 var keychar;

 if (window.event)
  key = window.event.keyCode;
 else if (e)
  key = e.which;
 else
  return true;

 keychar = String.fromCharCode(key);
// control keys
 if ((key == null) || (key == 0) || (key == 8) || (key == 9) || (key == 13) || (key == 27))
  return true;
// numbers, letters, certain symbols, space
 else if ((("0123456789ABCDEFGHIJKLMONPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz;+_ )(*&^%$#@!").indexOf(keychar) > -1))
  return true;
 else
  return false;
}

function onlyNumbers(e)
{
 var key;
 var keychar;

 if (window.event)
  key = window.event.keyCode;
 else if (e)
  key = e.which;
 else
  return true;

 keychar = String.fromCharCode(key);
// control keys
 if ((key == null) || (key == 0) || (key == 8) || (key == 9) || (key == 13) || (key == 27))
  return true;
// numbers
 else if ((("0123456789").indexOf(keychar) > -1))
  return true;
 else
  return false;
}

function getCaretPosition(elemid)
{
 var obj = document.getElementById(elemid);
 var len = 0;

 if (obj.selectionStart)
 {
  len = obj.selectionStart;
 }
 else
 {
  var currentRange = document.selection.createRange();
  var workRange = currentRange.duplicate();

  obj.select();

  var allRange = document.selection.createRange();
  while (workRange.compareEndPoints("StartToStart",allRange)>0)
  {
   workRange.moveStart("character",-1);
   len++;
  }
  currentRange.select();
 }
 return len -1;
}

function setCaretPosition(elemId, caretPos)
{
 var elem = document.getElementById(elemId);

 if (elem != null)
 {
  if (elem.selectionStart)
  {
   elem.focus();
   elem.setSelectionRange(caretPos, caretPos);
  }
  else if (elem.createTextRange)
  {
   var range = elem.createTextRange();
   range.move('character', caretPos);
   range.select();
  }
  else
   elem.focus();
 }
}

function OnlyInt(e)
{
 var key;
 var keychar;

 if (window.event)
  key = window.event.keyCode;
 else if (e)
  key = e.which;
 else
  return true;

 keychar = String.fromCharCode(key);
// control keys
 if ((key == null) || (key == 0) || (key == 8) || (key == 9) || (key == 13) || (key == 27))
  return true;
// numbers, negate sign
 else if ((("0123456789-").indexOf(keychar) > -1))
  return true;
 else
  return false;
}

function OnlyInt2(elemId)
{
 var obj;
 var str1;
 var str2;
 var curpos;

 obj = document.getElementById(elemId);
//remove extraneous "-" characters
 if (obj.value.indexOf("-") > -1 && obj.value.lastIndexOf("-") > 0)
 {
  curpos = getCaretPosition(elemId);
  str1 = obj.value.substring(0,obj.value.lastIndexOf("-"));
  str2 = obj.value.substring(obj.value.lastIndexOf("-")+1,obj.value.length);
  obj.value = str1 + str2;
  setCaretPosition(elemId,curpos);
 }
}

function OnlyDec(e)
{
 var key;
 var keychar;

 if (window.event)
  key = window.event.keyCode;
 else if (e)
  key = e.which;
 else
  return true;

 keychar = String.fromCharCode(key);
// control keys
 if ((key == null) || (key == 0) || (key == 8) || (key == 9) || (key == 13) || (key == 27))
  return true;
// numbers, negate sign
 else if (((".0123456789-").indexOf(keychar) > -1))
  return true;
 else
  return false;
}

function OnlyDec2(elemId)
{
 var obj;
 var str1;
 var str2;
 var curpos;

 obj = document.getElementById(elemId);
//remove extraneous "-" characters
 if (obj.value.indexOf("-") > -1 && obj.value.lastIndexOf("-") > 0)
 {
  curpos = getCaretPosition(elemId);
  str1 = obj.value.substring(0,obj.value.lastIndexOf("-"));
  str2 = obj.value.substring(obj.value.lastIndexOf("-")+1,obj.value.length);
  obj.value = str1 + str2;
  setCaretPosition(elemId,curpos);
 }
//remove extraneous "." characters
 if ((obj.value.indexOf(".") > -1) && (obj.value.indexOf(".") != obj.value.lastIndexOf(".")))
 {
  curpos = getCaretPosition(elemId);
  str1 = obj.value.substring(0,obj.value.lastIndexOf("."));
  str2 = obj.value.substring(obj.value.lastIndexOf(".")+1,obj.value.length);
  obj.value = str1 + str2;
  setCaretPosition(elemId,curpos);
 }
}

