//MANUEL PADILLA 
//12.08.05
//funcion para validar con telefonos con mas rigidez
//y mails con otro mail de verificacion
//30.06.05
//funcion para validar con mensajes en idioma ingles
//15.03.05 V1.0.1
	//validaciond de cada campo, en una funcion unica
	//para que valide campos en ingles
	
//06.09.04 V1.0.0

function MM_findObj(n, d) { 
  	
	var p,i,x;  
  	if(!d) 
   		d=document; 

 	if((p=n.indexOf("?"))>0 && parent.frames.length) 
	{
    	d=parent.frames[n.substring(p+1)].document; 
		n=n.substring(0,p);
	}
  	if(!(x=d[n])&&d.all)
		x=d.all[n]; 
	for (i=0;!x&&i<d.forms.length;i++) 
		x=d.forms[i][n];
  	
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) 
		x=MM_findObj(n,d.layers[i].document);
	
	if(!x && document.getElementById) 
		x=document.getElementById(n); 
	
	return x;
}

function ValidarCampo() {
	var swerror,i,p,q,nm,test,num,min,max,errors='',args=ValidarCampo.arguments;
	
	errors = '';
	swerror = 0;

	test=args[3]; 

	val=MM_findObj(args[0]);
	val=val.value;

	nm=args[1];

	if ((val)!=""){
		
		if ((test.indexOf('isPass')!=-1) && !swerror){ 
			if(args[2] != ""){
				val2=MM_findObj(args[2]);
				val2=val2.value;
			}
			if (val.length<6) {
				errors+='- '+nm+' debe poseer al menos 6 caracteres.\n';
				swerror=1;
			}else{
				if (args[2] != "" && val!=val2){
					errors+='- '+nm+' no coincide con la confirmacion.\n';
					swerror=1;
				}
			}
		}

		if ((test.indexOf('isEmail')!=-1 )&& !swerror){ 

			if ((test.indexOf('ConConfirmacion')!=-1) && !swerror){
				
				if(args[2] != ""){
					val2=MM_findObj(args[2]);
					val2=val2.value;
				}
				
				p=val.indexOf('@');
				if (p<1 || p==(val.length-1)) {
					errors+='- '+nm+' debe contener una direccion de e-mail valida.\n';
					swerror=1;
				}else{
					if (args[2] != "" && val!=val2){
						errors+='- '+nm+' no coincide con la confirmacion.\n';
						swerror=1;
					}
				}
				
			}else{
				p=val.indexOf('@');
				if (p<1 || p==(val.length-1)) {
					errors+='- '+nm+' debe contener una direccion de e-mail valida.\n';
					swerror=1;
				}
			}
			
		} 
		
		if ((test.indexOf('isTelefono')!=-1) && !swerror){
			
			if ((test.indexOf('isTelefonoCodPais')!=-1) && !swerror){
				
				num = parseFloat(val);
				for (j=0;j<val.length && !swerror;j++){
					if ((isNaN( parseInt(val.charAt(j)))) ){
						errors+='- '+nm+' solo puede contener números.\n';
						swerror=1;
					}
				}
				if (val.length <2 && !swerror) {
					errors+='- '+nm+' debe contener al menos 2 números\n';
					swerror=1;
				}
				
			}else if ((test.indexOf('isTelefonoCodArea')!=-1) && !swerror){
				
				num = parseFloat(val);
				for (j=0;j<val.length && !swerror;j++){
					if ((isNaN( parseInt(val.charAt(j)))) ){
						errors+='- '+nm+' solo puede contener números.\n';
						swerror=1;
					}
				}
				if (val.length <2 && !swerror) {
					errors+='- '+nm+' debe contener al menos 2 números\n';
					swerror=1;
				}
				
			}else{
					
				num = parseFloat(val);
				for (j=0;j<val.length && !swerror;j++){
					if ((isNaN( parseInt(val.charAt(j)))) && (val.charAt(j)!="-") && (val.charAt(j)!=" ")){
						errors+='- '+nm+' solo puede contener números o guiones (-).\n';
						swerror=1;
					}
				}
				
				if (val.length <7 && !swerror) {
					errors+='- '+nm+' debe contener al menos 7 dígitos\n';
					swerror=1;
				}
			}
		}
		
		if ((test.indexOf('esNumero') != -1) && !swerror){ 
			if( (test.indexOf('Decimal') != -1) ){
				for (j=0;j<val.length && !swerror;j++){
					if ((isNaN( parseInt(val.charAt(j)))) &&  (val.charAt(j)!=".") ){
						errors+='- '+nm+' solo puede contener números o puntos (.).\n';
						swerror=1;
					}
				}		
				if(!swerror){
					num = parseFloat(val);
					if (isNaN( num) ){
						errors+='- '+nm+' no posee un formato de numero decimal correcto.\n';
						swerror=1;
					}
				}
				if((test.length > test.indexOf('Decimal') + 7 ) && !swerror){
					cantidad= parseInt( test.charAt(test.indexOf('Decimal') + 7 )   ) ;
					cantidadAux = -1;
					swPunto=0;
					
					for (j=0;j<val.length && !swerror;j++){
						if (val.charAt(j)=="."){
							swPunto=1;
						}
						if(swPunto){
							cantidadAux +=1;
							if(cantidadAux>cantidad){
								errors+='- '+nm+' no puede tener mas de '+ cantidad +' decimales.\n';
								swerror=1;
							}
						}
					}
				}		
			}else{
				for (j=0;j<val.length && !swerror;j++){
					if ((isNaN( parseInt(val.charAt(j)))) ){
						errors+='- '+nm+' solo puede contener números.\n';
						swerror=1;
					}
				}	
				if(!swerror){
					num = parseInt(val);
					if (isNaN( num) ){
						errors+='- '+nm+' no posee un formato de numero entero correcto.\n';
						swerror=1;
					}
				}
			}	
		} 
		if ((test.indexOf('inRange') != -1) && !swerror){ 
			p=test.indexOf(':');
			min=test.substring(8,p); 
			max=test.substring(p+1);
			if (num<min || max<num){
				errors+='- '+nm+' debe contener numeros entre '+min+' y '+max+'.\n';
				swerror=1;
			}
		} 
	}else{

		if (test.indexOf('enIngles') != -1){
			test = test.replace(/enIngles/gi,' ');

			errors = ValidarCampo(args[0]+'_en',args[1],args[2],test);

			if (errors!='') {
				swerror = 1;
			}

		}else{
			if (test.charAt(0) == 'R'){
				errors += '- '+nm+' es obligatorio.\n'; 
				swerror=1
			}
		}
	}
	
	if(swerror){
		return errors;
	}else{
		return '';
	}
	
}
 

function Validar() {

	var swerror,i,p,q,nm,test,num,min,max,errors='',args=Validar.arguments;

	errors = '';
	swerror = 0;
	
	for (i=0; i<(args.length-3); i+=4) 	{ 
		errors = errors + ValidarCampo(args[i],args[i+1],args[i+2],args[i+3]);
	} 

	if (errors!='') {
		swerror = 1;
		alert('Error al procesar el formulario:\n'+errors);
	}

	return  (!(swerror==1));
}


function ValidarCampo_Ingles() {
	var swerror,i,p,q,nm,test,num,min,max,errors='',args=ValidarCampo_Ingles.arguments;
	
	errors = '';
	swerror = 0;

	test=args[3]; 

	val=MM_findObj(args[0]);
	
	val=val.value;

	nm=args[1];

	if ((val)!=""){
		if ((test.indexOf('isPass')!=-1) && !swerror){ 
			if(args[2] != ""){
				val2=MM_findObj(args[2]);
				val2=val2.value;
			}
			if (val.length<6) {
				errors+='- '+nm+' should have 6 characters at least.\n';
				swerror=1;
			}else{
				if (args[2] != "" && val!=val2){
					errors+='- '+nm+' don\'t coincide.\n';
					swerror=1;
				}
			}
		} 
		if ((test.indexOf('isEmail')!=-1 )&& !swerror){ 
			
			if ((test.indexOf('ConConfirmacion')!=-1) && !swerror){
				
				if(args[2] != ""){
					val2=MM_findObj(args[2]);
					val2=val2.value;
				}
				
				p=val.indexOf('@');
				if (p<1 || p==(val.length-1)) {
					errors+='- '+nm+' should contain a valid e-mail address.\n';
					swerror=1;
				}else{
					if (args[2] != "" && val!=val2){
						errors+='- '+nm+' don\'t coincide.\n';
						swerror=1;
					}
				}
				
			}else{
				p=val.indexOf('@');
				if (p<1 || p==(val.length-1)) {
					errors+='- '+nm+' should contain a valid e-mail address.\n';
					swerror=1;
				}
			}
		
		} 
		if ((test.indexOf('isTelefono')!=-1) && !swerror){
					
			if ((test.indexOf('isTelefonoCodPais')!=-1) && !swerror){
				
				num = parseFloat(val);
				for (j=0;j<val.length && !swerror;j++){
					if ((isNaN( parseInt(val.charAt(j)))) && (val.charAt(j)!="-") && (val.charAt(j)!=" ")){
						errors+='- '+nm+' only can contain numbers.\n';
						swerror=1;
					}
				}	
				if (val.length <2 && !swerror) {
					errors+='- '+nm+' should have 2 numbers at least\n';
					swerror=1;
				}
			}else if ((test.indexOf('isTelefonoCodArea')!=-1) && !swerror){
				
				num = parseFloat(val);
				for (j=0;j<val.length && !swerror;j++){
					if ((isNaN( parseInt(val.charAt(j)))) && (val.charAt(j)!="-") && (val.charAt(j)!=" ")){
						errors+='- '+nm+' only can contain numbers.\n';
						swerror=1;
					}
				}	
				if (val.length <2 && !swerror) {
					errors+='- '+nm+' should have 2 numbers at least\n';
					swerror=1;
				}
				
			}else{
					
				num = parseFloat(val);
				for (j=0;j<val.length && !swerror;j++){
					if ((isNaN( parseInt(val.charAt(j)))) && (val.charAt(j)!="-") && (val.charAt(j)!=" ")){
						errors+='- '+nm+' only can contain numbers or \'-\' char.\n';
						swerror=1;
					}
				}	
				if (val.length <7 && !swerror) {
					errors+='- '+nm+' should have 7 digits at least\n';
					swerror=1;
				}
			}
						
		}
		if ((test.indexOf('esNumero') != -1) && !swerror){ 
			if( (test.indexOf('Decimal') != -1) ){
				for (j=0;j<val.length && !swerror;j++){
					if ((isNaN( parseInt(val.charAt(j)))) &&  (val.charAt(j)!=".") ){
						errors+='- '+nm+' only can contain numbers or \'.\' char.\n';
						swerror=1;
					}
				}		
				if(!swerror){
					num = parseFloat(val);
					if (isNaN( num) ){
						errors+='- '+nm+' should contain a valid decimal number.\n';
						swerror=1;
					}
				}
				if((test.length > test.indexOf('Decimal') + 7 ) && !swerror){
					cantidad= parseInt( test.charAt(test.indexOf('Decimal') + 7 )   ) ;
					cantidadAux = -1;
					swPunto=0;
					
					for (j=0;j<val.length && !swerror;j++){
						if (val.charAt(j)=="."){
							swPunto=1;
						}
						if(swPunto){
							cantidadAux +=1;
							if(cantidadAux>cantidad){
								errors+='- '+nm+' cannot have more than '+ cantidad +' decimals.\n';
								swerror=1;
							}
						}
					}
				}		
			}else{
				for (j=0;j<val.length && !swerror;j++){
					if ((isNaN( parseInt(val.charAt(j)))) ){
						errors+='- '+nm+' only can contain numbers.\n';
						swerror=1;
					}
				}	
				if(!swerror){
					num = parseInt(val);
					if (isNaN( num) ){
						errors+='- '+nm+' should contain a valid integer number.\n';
						swerror=1;
					}
				}
			}	
		} 
		if ((test.indexOf('inRange') != -1) && !swerror){ 
			p=test.indexOf(':');
			min=test.substring(8,p); 
			max=test.substring(p+1);
			if (num<min || max<num){
				errors+='- '+nm+' should contain number between '+min+' and '+max+'.\n';
				swerror=1;
			}
		} 
	}else{

		if (test.indexOf('enIngles') != -1){
			test = test.replace(/enIngles/gi,' ');

			errors = ValidarCampo(args[0]+'_en',args[1],args[2],test);

			if (errors!='') {
				swerror = 1;
			}

		}else{
			if (test.charAt(0) == 'R'){
				errors += '- '+nm+' is obligatory.\n'; 
				swerror=1
			}
		}
	}
	
	if(swerror){
		return errors;
	}else{
		return '';
	}
	
}
 

function Validar_Ingles() {
	var swerror,i,p,q,nm,test,num,min,max,errors='',args=Validar_Ingles.arguments;

	errors = '';
	swerror = 0;
	
	for (i=0; i<(args.length-3); i+=4) 	{ 
		errors = errors + ValidarCampo_Ingles(args[i],args[i+1],args[i+2],args[i+3]);
	} 

	if (errors!='') {
		swerror = 1;
		alert('Error when processing the form:\n'+errors);
	}

	return  (!(swerror==1));
}
function confirmLink(theLink, theSqlQuery){

    var is_confirmed = confirm('Esta seguro que\n' + theSqlQuery);
    if (is_confirmed) {
        theLink.href;
    }

    return is_confirmed;
}


function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' debe contener una direccioon de e-mail valida.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' es obligatorio.\n'; }
  } if (errors) alert('Error al procesar el formulario:\n'+errors);
  document.MM_returnValue = (errors == '');
}


function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}



