function decimalOnly(e){
	return numbersOnly(e, true);}
function numbersOnly(e, decimal){
	if (!e) e = window.event;//Para resolver las diferencias entre IE y el standard
	var valor;
	if (e.target) valor = e.target.value;
	else if (e.srcElement) valor = e.srcElement.value;
	var key;
	if (e.keyCode) key = e.keyCode;//Para resolver las diferencias entre IE y el standard
	else if (e.which) key = e.which;
	var 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;
	// decimal point jump
	else if (decimal && (keychar == '.') && valor.indexOf('.')==-1) {
		if (e.target) field = e.target;//Gecko y Opera
		else if (e.srcElement) field = e.srcElement;//IE
		if (field.nodeType == 3) // defeat Safari bug (!=1)
			field = tarfieldg.parentNode;
		if (document.focus){
			var i;
			for(i=0; i<field.form.elements.length; i++)
				if (field.form.elements[i]==field){
					field.form.elements[i+1].focus();
					break;}}
		return false;}
	return false;}



var downStrokeField;
function autojump(field, nextField, fakeMaxLength, name_id, formId) {
	var myField;
	//hallamos el form myForm, el elemento myField, y el campo siguiente de myField
	var myForm;
	if (name_id){
		if (document.getElementById && formId)
			myForm = document.getElementById(formId);
		else if (document.forms){
			myForm = document.forms[formId];
			if (myForm==null) 
				myForm = document.forms[document.forms.length - 1];}
		myField = myForm.elements[field];
		myField.nextField = myForm.elements[nextField];}
	else{
		if (document.getElementById){
			myField = document.getElementById(field);
			myField.nextField = document.getElementById(nextField);}
		else if (document.forms){
			myForm = document.forms[formId];
			if (myForm==null) 
				myForm = document.forms[document.forms.length - 1];
			myField = myForm.elements[field];
			myField.nextField = myForm.elements[nextField];}}
	//definimos la longitud de myField antes de saltar del campo
	myField.maxLength = fakeMaxLength+1;
	//añadimos los eventos
	myField.onkeydown = autojump_keyDown;
	myField.onkeyup = autojump_keyUp;}

function autojump_keyDown() {
	this.beforeLength = this.value.length;
	downStrokeField = this;}

function autojump_keyUp() {
	if ((this == downStrokeField)//corresponde a la tecla pulsada (ver autojump_keyDown)
		&& (this.value.length > this.beforeLength)//protección contra teclas de control, retroceso...
		&& (this.value.length >= this.maxLength-1))//alcanzada longitud necesaria para saltar
		this.nextField.focus();
	downStrokeField = null;}



function verifyNumbers(field){
	var numero = field.value;
	for(var i=0; i<numero.length; i++)
		if ("1234567890".indexOf(numero.charAt(i))==-1) {
			alert("Valor no permitido");
			field.value = "1";
			if (field.focus) field.focus();
			return false;}
	return true;}
function verifyNoSpaces(field){
	var texto = field.value;
	if (texto.indexOf(" ")!=-1) {
		alert("Valor no permitido");
		field.value = "";
		if (field.focus) field.focus();
		return false;}
	return true;}
function verifyLength(field, minLength, maxLength){
	var texto = field.value;
	if (texto.length<minLength || texto.length>maxLength) {
		alert("Valor no permitido");
		field.value = "";
		if (field.focus) field.focus();
		return false;}
	return true;}
function verifyNoGap(form){
	var array;
	var bien = true;
	if (form.getElementsByTagName)
		array = form.getElementsByTagName('input');
	else if (form.elements)
		array = form.elements;
	for (var i=0; i<array.length; i++)
			if (!array[i].value)
				bien = false;
	if (!bien) alert('Hay campos vacios');
	return bien;}
