	function formatnumber(num,d)
		{
			nn=0
			ceros="000000"
			t=num.toString();
			if (num != "") {nn=0;if (isNaN(num)) {nn=1;}}
			if (nn==0)
				{
					n="";
					n=num.toString()						
					if (n!=""){						
						punto=n.search("[.]")						
						if (punto==-1){t= n+","+ceros.substr(1,d)}
						else 
							{
								t= n.substr(0,punto) + ',' 
								if (n.substr(punto+1,d).length < d) {t=t+n.substr(punto+1,d)+ceros.substr(1,d-n.substr(punto+1,d).length)}
								else {t=t+ n.substr(punto+1,d)}
							}						
					}
					coma=t.search("[,]")						
					if (coma==-1){te=t;td="";} 
					else{te=t.substr(0,coma);td=t.substr(coma+1,t.length-coma)}
					te=te.toString()
					lc=te.length;			
					if (lc>3 && lc<=6) {te=te.substr(0,lc-3) +"." + te.substr(lc-3,3);}			
					if (lc>6 && lc<=9) {te=te.substr(0,lc-6) +"." + te.substr(lc-6,3)+"." + te.substr(lc-3,3);}
					if (lc>9 && lc<=12) {te=te.substr(0,lc-9) +"."+te.substr(lc-6,3) +"." + te.substr(lc-6,3)+"." + te.substr(lc-3,3);}
					if (lc>12 && lc<=15) {te=te.substr(0,lc-12) +"." + te.substr(lc-9,3)+"." + te.substr(lc-6,3)+"." + te.substr(lc-3,3);}
					if (td=="") {t=te}
					else{t=te+","+td;}
				}
			return t;
			
		}
	function RepText(strFieldValue) {
		if (strFieldValue != "") {
			strFieldValue = strFieldValue.toLowerCase();
			strFieldValue = strFieldValue.replace(/á/g,"a");
			strFieldValue = strFieldValue.replace(/é/g,"e");
			strFieldValue = strFieldValue.replace(/í/g,"i");
			strFieldValue = strFieldValue.replace(/ó/g,"o");
			strFieldValue = strFieldValue.replace(/ú/g,"u");
			strFieldValue = strFieldValue.replace(/\W/g,"");
			return(strFieldValue);
		}
	}
	function CheckSpecified(strFieldValue, strMsg) {
		if (strFieldValue == "" || strFieldValue == null) {
			MsgRequerido = MsgRequerido + "\n" + strMsg;
			a = 1;
		}
	}
	function CheckSpecifiedC(strFieldValue, strMsg) {
		if (!strFieldValue) {
			MsgRequerido = MsgRequerido + "\n" + strMsg;
			a = 1;
		}
	}
	function Isnum(strFieldValue, strMsg,SD,desde,SH,hasta) {
		if (SD == ">"){SD = "<=";}//SD = ">" entonces "mayor que"		
		if (SD == ">="){SD = "<";}//SD = ">=" entonces "mayor o igual que"		
		if (SH == "<"){SH = ">=";}//HD = "<" entonces "menor que"		
		if (SH == "<="){SH = ">";}//HD = "<=" entonces "menor o igual que"				
		if (strFieldValue != "") {
			n=0;
			strFieldValue=strFieldValue.replace(/[ ]/g,"-");
			if (isNaN(strFieldValue)) {n=1;}
			else {
				
				if ((desde!="N") && (hasta!="N"))
					{
						if ((eval(strFieldValue+SD+desde)) || (eval(strFieldValue+SH+hasta))){n=1;} //Si estan puestos los 2 intervalo incluido los extremos
					}
				else
					{
						if ((desde!="N")) {if (eval(strFieldValue+SD+desde)){n=1;}}						
						if ((hasta!="N")) {if (eval(strFieldValue+SH+hasta)){n=1;}}//si está puesto hasta que sea menor que					
					}				
			}
			if (n==1) {
				Msg = Msg + "\n" + strMsg;
				a = 1;
			}
		}
	}
	function CheckDate(dia, mes, ano, strMsg,obligatorio,miny,maxy) {	
			if (dia=="" && mes=="" && ano=="")
			{
				fechacompuesta = "";
				if (obligatorio==1)
				{
					Msg = Msg + "\n" + strMsg;
					a = 1;
				}
				var arr = new Array();
				arr[0]=""
				arr[1]=""
				arr[2]=""
				arr[3]=""
				return arr;
			}
			else
			{
			mes = mes - 1;
			if (dia > 0 && mes >=0 && ano >= miny && ano <= maxy && dia < 32 && mes < 12)
				{
				d = new Date(ano,mes,dia);
				mes=eval(d.getMonth())
				mes=mes+1
				tmes=new String(mes)
				if(tmes.length==1){tmes="0"+tmes;}
				tano=new String(d.getFullYear())
				tdia=new String(d.getDate())
				if(tdia.length==1){tdia="0"+tdia;}
				fechacompuesta = tano + tmes + tdia;
				var arr = new Array();
				arr[0]=fechacompuesta
				arr[1]=dia
				arr[2]=mes
				arr[3]=tano				
				return arr;
				//return (fechacompuesta,d.getDate(),mes,ano);
				}
			else
				{
				fechacompuesta = "";
				Msg = Msg + "\n" + strMsg;
				a = 1;
				var arr = new Array();				
				arr[0]=""
				arr[1]=dia
				arr[2]=mes+1
				arr[3]=ano
				return arr;
				}			
			}
		}
	
	function Isemail(email,strMsg){			
			if (email != "")
			{
				var emails=new Array();
				var error;
				var ok;
				emails=email.split(";");				
				for(i=0; i < emails.length ;i++){
					if (!subIsemail(emails[i])){error=true;break;}				}
				if (error){a=1;Msg = Msg + "\n" + strMsg;}				
			}
		}
	// Email Validation. Written by PerlScriptsJavaScripts.com
	function subIsemail(mail){			
			if (mail != ""){
				ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";								
				for(x=0; x<mail.length ;x++){if(ok.indexOf(mail.charAt(x))<0){return (false);}
				}
				re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
				re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
				if (!mail.match(re) && mail.match(re_two)) {return (true);}
				else {return false;}
			}
			return (true);
		}
		
	function TextL(strFieldValue,lon,strMsg){
			if (strFieldValue!= "")
			{
				if (strFieldValue.length>lon)
				{
					a=1;
					Msg = Msg + "\n" + strMsg;
				}
			}
		}
	function nif(strFieldValue){
			if (strFieldValue != "")
			{
				strFieldValue = strFieldValue.replace(/[^A-Za-z]/g,"") + strFieldValue.replace(/[^0-9]/g,"") 
				return  strFieldValue	
			}
			else {return ""}
		}

	/////////////////////////////// Buscar en la select[LISTA] //////////////////////////////////////////////////
	
	var digitos=10 //cantidad de digitos buscados 
	var puntero=0 
	var buffer=new Array(digitos) //declaración del array Buffer 
	var cadena="" 	

	function buscar_op(obj,objfoco){ 
	   var letra = String.fromCharCode(event.keyCode) 
	   if(puntero >= digitos){ 
	       cadena=""; 
	       puntero=0; 
	    } 
	   //si se presiona la tecla ENTER, borro el array de teclas presionadas y salto a otro objeto... 
	   if (event.keyCode == 13){ 
	       borrar_buffer(); 
	       if(objfoco!=0) objfoco.focus(); //evita foco a otro objeto si objfoco=0 
	    } 
	   //sino busco la cadena tipeada dentro del combo... 
	   else{ 
	       buffer[puntero]=letra; 
	       //guardo en la posicion puntero la letra tipeada 
	       cadena=cadena+buffer[puntero]; //armo una cadena con los datos que van ingresando al array 
	       puntero++; 

	       //barro todas las opciones que contiene el combo y las comparo la cadena... 
	       for (var opcombo=0;opcombo < obj.length;opcombo++){ 
	          if(obj[opcombo].text.substr(0,puntero).toLowerCase()==cadena.toLowerCase()){ 
	          obj.selectedIndex=opcombo;
	          break;
	          } 
	       } 
	    } 
	   event.returnValue = false; //invalida la acción de pulsado de tecla para evitar busqueda del primer caracter 
	}
	
	function borrar_buffer(){ 
	   //inicializa la cadena buscada 
	    cadena=""; 
	    puntero=0; 
	} 
