var monthLength = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

function formato_fecha(fecha){	
	//buscamos los espacios
	var r=fecha;
	var fechaCorta=false;
	var fechaSinFormato=false;
	if(fecha!=""){	
		var espacioTemp =r.indexOf(" ", 0);
		var guion =r.indexOf("-", 0);
		var barra =r.indexOf("/", 0);
		
		chars = "0123456789/";
		//busco un car q no sea num o / y lo remplazo por /
		for(i=0;i<r.length;i++){
			letra=r[i];
			if(chars.indexOf(letra)==-1){
				r=remplaza(r, letra);
			}
		}
		//si existe un // lo reemplazo por /
		r=remplaza(r, "//");
		//parseamos la fecha en formato DDMMYYYY
		if((barra==-1)&&(guion==-1)&&(espacioTemp==-1)&&r.length> 5){
			r=r.substr(0, 2) + "/"+r.substr(2, 2)+"/"+r.substr(4, r.length);
			fechaSinFormato=true;
		}
		//parseamos la fecha en formato DDMM
		if((barra==-1)&&(guion==-1)&&(espacioTemp==-1)&&(r.length== 4)){
			d = new Date();	
			r=r.substr(0, 2) + "/"+r.substr(2, 2)+"/"+d.getUTCFullYear();
			fechaSinFormato=true;
		}
		//parseamos para formato fecha D/MM
		if(barra!=-1){
			if(r.length<=4){
				if (barra==1){
					r="0"+r;
				}
			}
			barra =r.indexOf("/", 0);
			if(r.length==4&&barra==2){
				r=r.substr(0, 3)+"0"+r.substr(barra+1, r.length);
			}
		}
		
		//parseamos para formato fecha DD/MM
		if(!fechaSinFormato){
			if (r.length<3){
			   if(r.length==1)
				r="0"+r;
				d = new Date();					
				if ((d.getUTCMonth() + 1)<10)
					mes="0"+(d.getUTCMonth() + 1);
				else
					mes=d.getUTCMonth() + 1;
				r += "/" + mes + "/";
				r += d.getUTCFullYear();
			   fechaCorta=true;
			}
			else if (r.length==3){
				if(r[2]!="/"){
				 d = new Date();	
				 r=r.substr(0, 2)+"/0"+r.substr(2, 1)+"/"+d.getUTCFullYear();
				}
				else{
					d = new Date();					
					if ((d.getUTCMonth() + 1)<10)
						mes="0"+(d.getUTCMonth() + 1);
					else
						mes=d.getUTCMonth() + 1;
					r +=  mes + "/";
					r += d.getUTCFullYear();
				}
			}else if (r.length<6){
			   d = new Date();   
			   r += "/"+d.getUTCFullYear();
			   fechaCorta=true;
			}
			if (r.length<7){
			   d = new Date();   
			   r += d.getUTCFullYear();
			   fechaCorta=true;
			}
		}
		if(!fechaCorta){	  
		  if (fecha.length>5) {
			////parseamos para formato fecha DD MM YYYY
			var espacio =r.indexOf(" ", 0);		
			if(espacio>-1){
				r=remplaza(r, " ");
			}
			//parseamos para formato fecha DD-MM-YYYY
			espacio =fecha.indexOf("-", 0);
			if(espacio>-1){
				r=remplaza(r, "-");
			}
	
			//ponemos los guiones del mes y el aņo
			//miramos los meses	
			espacio = r.indexOf("/", 0);
			espacio2 = r.indexOf("/", espacio+1);
			var distancia = espacio2 - espacio -1;
	
			if (distancia<2){
				r = r.substr(0, espacio+1) + '0' + r.substr(espacio+1, r.length);
			}
			//miramos los dias
			if (espacio<2){
				r = '0' + r;//.substr(espacio+1, r.length);		
			}
			//miramos los aņos
			long_anyo =r.substr(espacio2+1, r.length).length;
			if (long_anyo==2){
				anyo=r.substr(espacio2+1, r.length);		
				if (anyo>20) {
					anyo="19"+ anyo;
				}
				else{
					anyo="20"+ anyo;
				}
				r=r.substr(0,espacio2+1)+anyo; 
			}
		   }
		}
		//miramos si en la pos 2 y 5 no hay /, entonces lo ponemos
		if(r[2]!="/") r[2]="/";
		if(r[5]!="/") r[5]="/";
		//comprovamos el valor de las fechas
		var ok = checkDate(r);
	}
	if(ok==true)
		return r;
	else
		return fecha;
}

function remplaza(fecha, caracter){
	fecha = fecha.replace(caracter, "/");		
	if(fecha.indexOf(caracter, 0)>-1)
		fecha = remplaza(fecha, caracter);		
	return fecha;
}


function checkDate(fecha){
	var day = fecha.substr(0, 2) 
	var month = fecha.substr(3, 2);
	var year = fecha.substr(6, fecha.length);
	chars = "0123456789";
	if (!day || !month || !year)
		return false;

	if (year/4 == parseInt(year/4))
		monthLength[1] = 29;
		
	//DIA
	for(i=0;i<day.length;i++){
		letra=day.substr(i,1);
		if(chars.indexOf(letra)==-1){
			alert(getMessage(DIA_INCORRECTO));
			return false;
		}
	}

	if (day > monthLength[month-1]){
		alert(getMessage(DIA_INCORRECTO));
		return false;
	}
	monthLength[1] = 28;
	//MES
	for(i=0;i<month.length;i++){
		letra=month.substr(i,1);
		if(chars.indexOf(letra)==-1){			
			alert(getMessage(MES_INCORRECTO));
			return false;
		}
	}
	if(month>12||month<1){
		alert(getMessage(MES_INCORRECTO));
		return false;
	}
	
	for(i=0;i<year.length;i++){
		letra=year.substr(i,1);		
		if(chars.indexOf(letra)==-1){
			alert(getMessage(ANYO_INCORRECTO));
			return false;
		}
	}
	return true;	
}

function letras(e,o){
	//alert(e);
	var navegador = navigator.appName;
	chars = "0123456789/-"+" ";
	if (navegador == "Microsoft Internet Explorer") {	
	 	var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
		if(chars.indexOf(String.fromCharCode(e.keyCode))==-1){
			window.event.keyCode=0;
		   }
	}
}





/** Esto es lo que habia antes... no se si se usa **/
var MONTH_NAMES=new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre','Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dec');
var DAY_NAMES=new Array('Domingo','Lunes','Martes','Miercoles','Jueves','Viernes','Sabado','Dom','Lun','Mar','Mie','Jue','Vie','Sab');
function LZ(x) {return(x<0||x>9?"":"0")+x}
function formatDate(date,format) {
	format=format+"";
	var result="";
	var i_format=0;
	var c="";
	var token="";
	var y=date.getYear()+"";
	var M=date.getMonth()+1;
	var d=date.getDate();
	var E=date.getDay();
	var H=date.getHours();
	var m=date.getMinutes();
	var s=date.getSeconds();
	var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
	// Convert real date parts into formatted versions
	var value=new Object();
	if (y.length < 4) {y=""+(y-0+1900);}
	value["y"]=""+y;
	value["yyyy"]=y;
	value["yy"]=y.substring(2,4);
	value["M"]=M;
	value["MM"]=LZ(M);
	value["MMM"]=MONTH_NAMES[M-1];
	value["NNN"]=MONTH_NAMES[M+11];
	value["d"]=d;
	value["dd"]=LZ(d);
	value["E"]=DAY_NAMES[E+7];
	value["EE"]=DAY_NAMES[E];
	value["H"]=H;
	value["HH"]=LZ(H);
	if (H==0){value["h"]=12;}
	else if (H>12){value["h"]=H-12;}
	else {value["h"]=H;}
	value["hh"]=LZ(value["h"]);
	if (H>11){value["K"]=H-12;} else {value["K"]=H;}
	value["k"]=H+1;
	value["KK"]=LZ(value["K"]);
	value["kk"]=LZ(value["k"]);
	if (H > 11) { value["a"]="PM"; }
	else { value["a"]="AM"; }
	value["m"]=m;
	value["mm"]=LZ(m);
	value["s"]=s;
	value["ss"]=LZ(s);
	while (i_format < format.length) {
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) && (i_format < format.length)) {
			token += format.charAt(i_format++);
			}
		if (value[token] != null) { result=result + value[token]; }
		else { result=result + token; }
		}
	return result;
	}
	
