function checkCR(evt){
   var evt  = (evt) ? evt : ((event) ? event : null);
   var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
   if ((evt.keyCode == 13) && (node.type=="text")) {return false;}
}
document.onkeypress = checkCR;

function isblank(e){
	if (e.value == null || e.value == "") 
		return true;
	for(var i = 0; i < e.value.length; i++){
		var c = e.value.charAt(i);
		if ((c != ' ') && (c != '\n') && (c != '\t')) 
			return false;
	}
	return true;
}

// Checks if an optional field is blank
function checkblank(e){
	if (isblank(e)){
		alert("El campo " + e.description + " debe ser llenado.");
		return false;
	}
	return true;
}

// Checks if a field is numeric.
// If the optional min property is set, it checks it is greater than
// its value
// If the optional max property is set, it checks it is less than
// its value
function checknumber(e){
	var v = parseFloat(e.value);
	if (isNaN(v)){
		alert("El campo " + e.description + " debe ser numérico");
		return false;
	}
	if ((e.minNumber != null) && (v < e.minNumber)){
		alert("El campo " + e.description + " debe ser mayor o igual a " + e.minNumber);
		return false;
	}
	if (e.maxNumber != null && v > e.maxNumber){
		alert("El campo " + e.description + " debe ser menor o igual a " + e.maxNumber);
		return false;
	}	
	return true;
}

// Checks if a field looks like a date in the 99/99/9999 format
function checkdate(e){
	var slashCount = 0;
	if (e.value.length != 10){
		alert(" El campo " + e.description + " debe tener el formato 99/99/9999" + " y ser de 10 caracteres de longitud");
		return false;
	}
	for(var j = 0; j < e.value.length; j++){
		var c = e.value.charAt(j);
		if ((c == '/'))
			slashCount++;
		if (c != '/' && (c < '0' || c > '9')){
			alert(" El campo " + e.description + " solo puede contener numeros y diagonales (/)");
			return false;
		}
	}
	if (slashCount != 2){
		alert(" El campo " + e.description + " debe tener el formato 99/99/9999");
		return false;
	}
	return true;
}

// Checks if a field contains any whitespace
function checkwhitespace(e){
	var seenAt = false;
	for(var j = 0; j < e.value.length; j++){
		var c = e.value.charAt(j);
		if ((c == ' ') || (c == '\n') || (c == '\t')){
			alert("El campo " + e.description + " no debe contener espacios");
			return false;
		}
	}
	return true;
}

// Now check for fields that are supposed to be emails.
// Only checks that there's one @ symbol and no whitespace
function checkemail(e){
	var seenAt = false;
	for(var j = 0; j < e.value.length; j++){
		var c = e.value.charAt(j);
		if ((c == ' ') || (c == '\n') || (c == '\t')){
			alert("El campo " + e.description + " no debe contener espacios");
			return false;
		}
		if ((c == '@') && (seenAt == true)){
			alert("El campo " + e.description + " debe contener sólo una @");
			return false;
		}
		if ((c == '@'))
			seenAt = true;
	}
	if (seenAt == false){
		alert("El campo " + e.description + " debe contener una @");
		return false;
	}
	return true;
}

// This is the function that performs <form> validation.
// It is invoked from the onSubmit( ) event handler.
// The handler should return whatever value this function
// returns.
function verify(f){
	// Loop through the elements of the form, looking for all
	// text and textarea elements. Report errors using a post validation,
	// field-by-field approach
	for(var i = 0; i < f.length; i++){
		var e = f.elements[i];
		if(!e.description) e.description = e.name;
		if (((e.type == "text") || (e.type == "textarea"))){
			// first check if the field is empty and shouldn't be
			if (!e.isOptional && !checkblank(e)) return false;			
			// Now check for fields that are supposed to be numeric.
			if (!isblank(e) && e.isNumeric && !checknumber(e)) return false;
			// Now check for fields that are supposed to be dates
			if (!isblank(e) && e.isDate && !checkdate(e)) return false;
			// Now check for fields that are supposed to be emails
			if (!isblank(e) && e.isEmail && !checkemail(e)) return false;
			// Now check for fields that are supposed
			// not to have whitespace
			if (!isblank(e) && e.hasNospaces && !checkwhitespace(e)) return false;
		} // if (type is text or textarea)
	} // for each character in field
	// There were no errors if we got this far
	return true;
}

var BrowserName=new String(navigator.appName);
var BrowserVersion=new String(navigator.appVersion.charAt(0));
var ie4 = (BrowserName.search(/Microsoft/)!=-1) ? true : false;
var ns4 = (BrowserName.search(/Netscape/)!=-1 && BrowserVersion<4) ? true : false;
var ns6 = (BrowserName.search(/Netscape/)!=-1 && BrowserVersion>4) ? true : false;
//agregado por FM Feb.21.2007
//var ff2 = (BrowserName.search(/Mozilla/)!=-1 && BrowserVersion > 1 ? true : false;
// termina agregado
function fchObj(objectname) { if(ie4) return document.all[objectname]; else if(ns4) return document.layers[objectname]; else if(ns6) return document.getElementById([objectname]); }

//alert(ie4+" "+ns4+" "+ns6+" "+BrowserName+" "+BrowserVersion);

function showListing(arg) 
{
	lay="spanItem"+arg;
	if (fchObj(lay).style.display== "block") fchObj(lay).style.display = "none";
	else fchObj(lay).style.display = "block";
}

function jm_phonemask(t){
	var patt1 = /(\d{3}).*(\d{3}).*(\d{4})/;
	var patt2 = /^\((\d{3})\).(\d{3})-(\d{4})$/;
	var str = t.value;
	var result;
	if (!str.match(patt2)){
		result = str.match(patt1);
		if (result!= null){
			t.value = t.value.replace(/[^\d]/gi,'');
			str = '(' + result[1] + ') ' + result[2] + '-' + result[3];
			t.value = str;
		}else{
			if (t.value.match(/[^\d]/gi))
				t.value = t.value.replace(/[^\d]/gi,'');
		}
	}
}

function jm_currencymask(t){
	var patt = /(\d*)\.{1}(\d{0,2})/;
	var donepatt = /^(\d*)\.{1}(\d{2})$/;
	var str = t.value;
	var result;
	if (!str.match(donepatt)){
		result = str.match(patt);
		if (result!= null){
			t.value = t.value.replace(/[^\d]/gi,'');
			str = result[1] + '.' + result[2] ;
			t.value = str;
		}else{
			if (t.value.match(/[^\d]/gi))
				t.value = t.value.replace(/[^\d]/gi,'');
		}
	}
}
//-->

