function submitForm(obj){
	var campos = obj.elements;
	var Error = '';
	var primerCampo = false;

	for(i=0;i<campos.length;i++){
		var attr = campos[i].getAttribute('PM');
		var nombre=campos[i].getAttribute('name')
		if(attr != null){
			var res = attr.split(/\|/);
			var tipo = res[0].replace(/^\s+|\s+$/g, "");
			var label = res[1].replace(/^\s+|\s+$/g, "");
			var valor = campos[i].value;
			switch(tipo.toUpperCase()){
				case 'STRING':
					if(!PM_isString(valor)){
						Error += '- "'+label+'" es obligatorio y debe contener caracteres alfanumericos.\n';
						if(!primerCampo) primerCampo = campos[i];
					}
					flag = true;
					break;
				case 'NUMBER':
					if(!PM_isNumber(valor)){
						Error += '- "'+label+'" es obligatorio y debe contener un numero.\n';
						if(!primerCampo) primerCampo = campos[i];
					}
					flag = true;
					break;
				case 'FLOAT':
					if(!PM_isFloat(valor)){
						Error += '- "'+label+'" es obligatorio y debe contener un numero (55 ó 55.25).\n';
						if(!primerCampo) primerCampo = campos[i];
					}
					break;
				case 'LIST':
					if(!PM_isString(valor)){
						Error += '- "'+label+'" es obligatorio, debe seleccionar alguna opcion.\n';
						if(!primerCampo) primerCampo = campos[i];
					}
					flag = true;
					break;
				case 'DATE':
					if(!PM_isDate(valor)){
						Error += '- "'+label+'" es obligatorio y debe contener una fecha valida (dd/mm/AAAA).\n';
						if(!primerCampo) primerCampo = campos[i];
					}
					flag = true;
					break;
				case 'EMAIL':
					if(!PM_isEmail(valor)){
						Error += '- "'+label+'" es obligatorio y debe contener una direccion de correo valida.\n';
						if(!primerCampo) primerCampo = campos[i];
					}
					flag = true;
					break;
				case 'RADIO':
					if(!PM_isRadio(campos[nombre])){
						Error += '- "'+label+'" es obligatorio seleccionar una opcion.\n';
						if(!primerCampo) primerCampo = campos[i];
					}
					flag = true;
					break;
				case 'FILE':
					if(!PM_isString(valor)){
						Error += '- "'+label+'" es obligatorio debe seleccionar un archivo.\n';
						if(!primerCampo) primerCampo = campos[i];
					}
					flag = true;
					break;
			}
		}
	}
	
	
	if(Error!=''){
		var cad = 'Se encontraron los siguientes errores:\n';
		cad += '---------------------------------------------\n';
		cad += Error;
		cad += '---------------------------------------------';
		alert(cad);
		primerCampo.focus();
		return false;
	}
	//msgBox = window.open("", "msgBox", "width=455,height=140 left = 0, top = 0, toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no"); 
	return true;	
	/*if(msgBox)
	   	return true;
	else{
		alert('Tiene las bloqueadas las ventanas emergentes.');
		return false;
	}*/
}
function PM_isNumber(str){
	if(str.match(/^\d+$/))return true;
	else return false;
}	
function PM_isFloat(str){
	if(str.match(/^\d+(\.\d+)?$/))return true;
	else return false;
}
function PM_isString(str){
	var cad = str.replace(/^\s+|\s+$/g, "");
	if(cad!='') return true;
	else return false;
}
function PM_isDate(str){
	if(str.match(/\b(0?[1-9]|[12][0-9]|3[01])[- \/.](0?[1-9]|1[012])[- \/.](19|20)[0-9]{2}\b/)) return true;
	else return false;
}
function PM_isEmail(str){
	if(str.match (/^[A-Za-z][A-Za-z0-9_\-\.]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/)) return true;
	else return false;
}
function PM_isRadio(radioObj) {
	if(!radioObj)
		return false;
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return true;
		else
			return false;
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return true;
		}
	}
	return false;
}

