﻿// ********************************************************************************************************
function Input_Digit(e) {
	// verify that keypress is a valid digit value (0-9)
	var key = "";
	
  if (document.all) {
    key = e.keyCode;
    src = e.srcElement.tagName;
    shift = e.shiftKey;
    ctrl = e.ctrlKey;
  } else {
    key = e.keyCode;
    src = e.target.tagName;
    shift = e.modifiers & Event.SHIFT_MASK;
    ctrl = e.modifiers & Event.CONTROL_MASK;
  }

	switch (key) {
		// numerals
		case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: case 96: case 97: case 98: case 99: case 100: case 101: case 102: case 103: case 104: case 105: 
			if (shift) {
				return false;
				break;
			}
			return true;
			break;
		case 8: case 9: case 45: case 46: case 35: case 36: case 37: case 39: case 27:
			return true;
			break;
		// editing hotkeys
		case 67: case 86: case 88: case 90: 
			if (ctrl) {
				return true;
				break;
			}
		default:
			return false;
	}
}

function Input_Float(e) {
	// verify that keypress is a valid float value (0-9, ",", ".")
	var key = "";
	
  if (document.all) {
    key = e.keyCode;
    src = e.srcElement.tagName;
    shift = e.shiftKey;
    ctrl = e.ctrlKey;
  } else {
    key = e.keyCode;
    src = e.target.tagName;
    shift = e.modifiers & Event.SHIFT_MASK;
    ctrl = e.modifiers & Event.CONTROL_MASK;
  }

	switch (key) {
		// numerals
		case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: case 96: case 97: case 98: case 99: case 100: case 101: case 102: case 103: case 104: case 105: case 110: case 188: case 190:
			if (shift) {
				return false;
				break;
			}
			return true;
			break;
		case 8: case 9: case 45: case 46: case 35: case 36: case 37: case 39: case 27:
			return true;
			break;
		// editing hotkeys
		case 67: case 86: case 88: case 90: 
			if (ctrl) {
				return true;
				break;
			}
		default:
			return false;
	}
}

function Input_Hex(e) {
	// verify that keypress is a valid hexadecimal value
	var key = "";
	
  if (document.all) {
    key = e.keyCode;
    src = e.srcElement.tagName;
    shift = e.shiftKey;
    ctrl = e.ctrlKey;
  } else {
    key = e.keyCode;
    src = e.target.tagName;
    shift = e.modifiers & Event.SHIFT_MASK;
    ctrl = e.modifiers & Event.CONTROL_MASK;
  }

	switch (key) {
		// numerals
		case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: case 96: case 97: case 98: case 99: case 100: case 101: case 102: case 103: case 104: case 105:
			if (shift) {
				return false;
				break;
			}
		// A-Z, a-z
		case 65: case 66: case 67: case 68: case 69: case 70:
		// misc.
		case 8: case 9: case 45: case 46: case 35: case 36: case 37: case 39: case 27:
			return true;
			break;
		// editing hotkeys
		case 67: case 86: case 88: case 90: 
			if (ctrl) {
				return true;
				break;
			}
		default:
			return false;
	}
}

function Input_Alpha(e) {
	// verify that keypress is a valid alphabetic value
	var key = "";
	
  if (document.all) {
    key = e.keyCode;
    src = e.srcElement.tagName;
    shift = e.shiftKey;
    ctrl = e.ctrlKey;
  } else {
    key = e.keyCode;
    src = e.target.tagName;
    shift = e.modifiers & Event.SHIFT_MASK;
    ctrl = e.modifiers & Event.CONTROL_MASK;
  }

	//alert(key);
	switch (key) {
		// hyphen and slash
		case 191: case 189:
			if (shift) {
				return false;
				break;
			}
		// A-Z, a-z
		case 67: case 86: case 88: case 90: 
			/*if (ctrl) {
				return true;
				break;
			}*/
		case 32: case 65: case 66: case 68: case 69: case 70: case 71: case 72: case 73: case 74: case 75: case 76: case 77: case 78: case 79: case 80: case 81: case 82: case 83: case 84: case 85: case 87: case 89:
		// misc.
		case 8: case 9: case 45: case 46: case 35: case 36: case 37: case 39: case 27:
			return true;
			break;
		default:
			return false;
	}
}

function Input_VIN(e) {
	// verify that keypress is a valid VIN character
	var key = "";
	
  if (document.all) {
    key = e.keyCode;
    src = e.srcElement.tagName;
    shift = e.shiftKey;
    ctrl = e.ctrlKey;
  } else {
    key = e.keyCode;
    src = e.target.tagName;
    shift = e.modifiers & Event.SHIFT_MASK;
    ctrl = e.modifiers & Event.CONTROL_MASK;
  }

	switch (key) {
		// numerals
		case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: case 96: case 97: case 98: case 99: case 100: case 101: case 102: case 103: case 104: case 105:
			if (shift) {
				return false;
				break;
			}
		// A-Z, a-z, except for O and I
		case 67: case 86: case 88: case 90: 
		case 32: case 65: case 66: case 68: case 69: case 70: case 71: case 72: case 74: case 75: case 76: case 77: case 78: case 80: case 81: case 82: case 83: case 84: case 85: case 87: case 89:
		// misc.
		case 8: case 9: case 45: case 46: case 35: case 36: case 37: case 39: case 27:
			return true;
			break;
		default:
			return false;
	}
}

function ForceUpper(field) {
  if (field.value!=field.value.toUpperCase()) {
    field.value = field.value.toUpperCase();
  }
}
