dates = new Array(22);
dates[0] = 48;
dates[1] = 49;
dates[2] = 50;
dates[3] = 51;
dates[4] = 52;
dates[5] = 53;
dates[6] = 54;
dates[7] = 55;
dates[8] = 56;
dates[9] = 57;
//NumLock
dates[10] = 96;
dates[11] = 97;
dates[12] = 98;
dates[13] = 99;
dates[14] = 100;
dates[15] = 101;
dates[16] = 102;
dates[17] = 103;
dates[18] = 104;
dates[19] = 105;
dates[20] = 109;		//		-	minus sign
dates[21] = 189;		//		-	minus sign

integers = new Array(21);
integers[0] = 48;
integers[1] = 49;
integers[2] = 50;
integers[3] = 51;
integers[4] = 52;
integers[5] = 53;
integers[6] = 54;
integers[7] = 55;
integers[8] = 56;
integers[9] = 57;
//NumLock
integers[10] = 96;
integers[11] = 97;
integers[12] = 98;
integers[13] = 99;
integers[14] = 100;
integers[15] = 101;
integers[16] = 102;
integers[17] = 103;
integers[18] = 104;
integers[19] = 105;

floats = new Array(23);
floats[0] = 48;
floats[1] = 49;
floats[2] = 50;
floats[3] = 51;
floats[4] = 52;
floats[5] = 53;
floats[6] = 54;
floats[7] = 55;
floats[8] = 56;
floats[9] = 57;
//NumLock
floats[10] = 96;
floats[11] = 97;
floats[12] = 98;
floats[13] = 99;
floats[14] = 100;
floats[15] = 101;
floats[16] = 102;
floats[17] = 103;
floats[18] = 104;
floats[19] = 105;
floats[20] = 190;	//		.	decimal point
floats[21] = 110;	//		.	decimal point
floats[22] = 81;	//		.	decimal point BG

forbidden_chars = new Array(10);	//	ASCII
forbidden_chars[0] = 92;				//		\
forbidden_chars[1] = 47;				//		/
forbidden_chars[2] = 58;				//		:
forbidden_chars[3] = 42;				//		*
forbidden_chars[4] = 63;				//		?
forbidden_chars[5] = 34;				//		"
forbidden_chars[6] = 60;				//		<
forbidden_chars[7] = 62;				//		>
forbidden_chars[8] = 124;				//		|
forbidden_chars[9] = 32;				//		" "

var elem_id, mas;
var max_text_field_length = 200;

function set_event_handler(){
	if(navigator.appName == 'Netscape'){
		document.onkeydown = filter_press_NN;
		if(document.layers){
			document.captureEvents(Event.KEYDOWN);
		}
	} else if(navigator.appName == 'Microsoft Internet Explorer'){
		document.onkeydown = filter_press_MSIE;
	} else {
		window.status = 'Text field filters may not work!';
		document.onkeydown = filter_press_NN;
		if(document.layers){
			document.captureEvents(Event.KEYDOWN);
		}
	}
	return;
}

function member_of(cK, d){
	for(i=0; i < d.length; i++){
		if(cK == d[i]){
			return true;
		}
	}
	return false;
}

function filter_press_NN(ev){
	if(elem_id.maxLength < max_text_field_length){
		elem_id.maxLength = max_text_field_length;
	}
	if(!member_of(ev.which, mas)){
		if(elem_id.value.length <= 0){
			elem_id.maxLength = 0;
		} else {
			elem_id.maxLength = elem_id.value.length - 2;
		}
	}
	return;
}

function filter_press_MSIE(){
	if(elem_id.maxLength < max_text_field_length){
		elem_id.maxLength = max_text_field_length;
	}
	if(!member_of(event.keyCode, mas)){
		if(elem_id.value.length <= 0){
			elem_id.maxLength = 0;
		} else {
			elem_id.maxLength = (elem_id.value.length - 1);
		}
	}
	return;
}

function filter_up(){
	elem_id.maxLength = max_text_field_length;
	return;
}

function view_id(e_id, type){
	set_event_handler();
	if(type == 'i'){
		mas = integers;
	} else if(type == 'f'){
		mas = floats;
	} else if(type == 'fc'){
		mas = forbidden_chars;
	} else if(type == 'd'){
		mas = dates;
	}
	elem_id = e_id;
	elem_id.maxLength = 0;
	return;
}

function no_Paste(){
	elem_id.maxLength = 0;
	return;
}
