//window.alert("sss");


function returnObjById( id ) 
{ 
	if (document.all != 'null' && document.all != 'undefined' && document.all) 
		{
        var returnVar = document.all[id]; 
        }
    else if (document.getElementById) 
        var returnVar = document.getElementById(id); 
    else if (document.layers) 
        var returnVar = document.layers[id]; 

    return returnVar; 
} 

function CargaEmail(s)
	{	
	MiVal = s.value.substr( (s.value.length-1), 1);
		
	if ( !(	(MiVal <= 'z' && MiVal >= 'a') || MiVal==' '	|| MiVal==';' || MiVal=='~' || MiVal=='.' ||
			(MiVal <= 'Z' && MiVal >= 'A') || MiVal=='-'	|| MiVal=='_' || MiVal=='@' ) )
			s.value = s.value.substr(0, (s.value.length-1));
	}



function CargaTelefono(s)
	{	
	MiVal = s.value.substr( (s.value.length-1), 1);
		
	if ( !(	(MiVal <= 'z' && MiVal >= 'a') || MiVal==' '	|| MiVal==';' || MiVal=='~' || MiVal=='.' ||
			(MiVal <= 'Z' && MiVal >= 'A') || MiVal=='-'	|| MiVal==',' || MiVal=='('  || MiVal==')' || 
			MiVal=='0' || MiVal=='1' || MiVal=='2' || MiVal=='3' || MiVal=='4' || 
			MiVal=='5' || MiVal=='6' || MiVal=='7' || MiVal=='8' || MiVal=='9' ) )
			s.value = s.value.substr(0, (s.value.length-1));
	}

function EsMinuscula(MiVal)
	{
	if ((MiVal <= 'z' && MiVal >= 'a')	|| MiVal==' '	|| MiVal=='ń'
		|| MiVal=='á' || MiVal=='é'		|| MiVal=='í'	|| MiVal=='ó' 
		|| MiVal=='ú' || MiVal=='ö'		|| MiVal=='\'')
		return true;
		
	return false;
	}

function EsMayuscula(MiVal)
	{
	if ((MiVal <= 'Z' && MiVal >= 'A')	|| MiVal==' '	|| MiVal=='Ń'
		|| MiVal=='Á' || MiVal=='É'		|| MiVal=='Í'	|| MiVal=='Ó' 
		|| MiVal=='Ú' || MiVal=='Ö'		|| MiVal=='\'')
		return true;
		
	return false;
	}

function MakePicture(MiObj, MiPic)
	{
	var mivalor = new String(MiObj.value);
	var mipic = new String(MiPic);
	

	maxtext = mivalor.length;
	maxtext2 = mipic.length;

	MiNuevoVal = "";
	for (i=0; i < maxtext; i++)
		{
		if (i < maxtext2)
			{
			MiVal = mivalor.charAt(i);
			
			Controlado = false;
			
			//Significa que el caracter tiene que ser numerico.
			if (mipic.charAt(i)=='9')
				{
				//Si está fuera del rango de numeros, lo blanqueo
				if (MiVal > '9' || MiVal < '0') 
					{
					MiVal = " ";
					Controlado = true;
					}
				}

			//Significa que el caracter tiene que ser letras mayusculas.
			if (mipic.charAt(i)=='X' || 
				(mipic.charAt(i)=='A' && i==0) ||
				(mipic.charAt(i)=='A' && i>0 && mivalor.charAt(i-1)==' ') )
				if (!EsMayuscula(MiVal))
					{//No está dentro del rango entonces:
					if (EsMinuscula(MiVal))
						{//pregunto si son letras minusculas, si es así,
						//Lo pongo en mayusculas
						MiVal = MiVal.toUpperCase();
						Controlado = true;
						} 
					else {
						if (mipic.charAt(i)=='A')
							MiVal = mivalor.charAt(i);
						else MiVal = "";
						Controlado = true;
						}
					}

			//Significa que el caracter tiene que ser letras minusculas.
			if (mipic.charAt(i)=='x' || 
				(mipic.charAt(i)=='A' && i>0 && mivalor.charAt(i-1)!=' ') )
				if (! EsMinuscula(MiVal))
					{//No está dentro del rango entonces:
					if (EsMayuscula(MiVal))
						{//pregunto si son letras minusculas, si es así,
						//Lo pongo en MINUSCULAS
						MiVal = MiVal.toLowerCase();
						Controlado = true;
						} 
					else {
						if (mipic.charAt(i)=='A')
							MiVal = mivalor.charAt(i);
						else MiVal = "";
						Controlado = true;
						}
					}
			
			//----------------------------------------------------------------------------
			//Control de separadores:
			MiVal33 = ControlSeparador(mipic.charAt(i),MiVal,true);
			if (MiVal33 != MiVal && Controlado==false)
				{
				//window.alert("Primera: " + mivalor.slice(0,i));
				//window.alert("Agrega: " + MiVal33);
				//window.alert("Cola: " + mivalor.slice(i+1));
				mivalor = mivalor.slice(0,i) + MiVal33 + mivalor.slice(i+1);
				var mivalor2 = new String(mivalor);
				var mivalor = new String(mivalor2);
				//window.alert("Resultado: " + mivalor);
				maxtext++;
				//i++;
				i--;
				//MiNuevoVal = MiNuevoVal + MiVal33
				}
			else{
				MiNuevoVal = MiNuevoVal + MiVal
				}
			//----------------------------------------------------------------------------
			}
		}
	MiObj.value = MiNuevoVal;
	}



function ControlSeparador(MicharAt,MiVal,PoneVal)
	{
	var MiVal2 = new String(MiVal);
	//window.alert(PoneVal);
	//Control de separadores:
	
	if (MicharAt == '/' && '/' != MiVal )
		{
		if (PoneVal)		MiVal2 = "/";
		else				MiVal2 = "";
		}
	if (MicharAt == '-' && '-' != MiVal )
		{
		if (PoneVal)		MiVal2 = "-";
		else				MiVal2 = "";
		}
	if (MicharAt == ',' && ',' != MiVal )
		{
		if (PoneVal)		MiVal2 = ",";
		else				MiVal2 = "";
		}
	if (MicharAt == '.' && '.' != MiVal )
		{
		if (PoneVal)		MiVal2 = ".";
		else				MiVal2 = "";
		}
	if (MicharAt == ':' && ':' != MiVal )
		{
		if (PoneVal)		MiVal2 = ":";
		else				MiVal2 = "";
		}
	if (MicharAt == ';' && ';' != MiVal )
		{
		if (PoneVal)		MiVal2 = ";";
		else				MiVal2 = "";
		}
	if (MicharAt == '+' && '+' != MiVal )
		{
		if (PoneVal)		MiVal2 = "+";
		else				MiVal2 = "";
		}
	if (MicharAt == '~' && '~' != MiVal )
		{
		if (PoneVal)		MiVal2 = "~";
		else				MiVal2 = "";
		}
	
	if (MiVal2 != MiVal)
		return (MiVal2 + MiVal);
	else return (MiVal);
	}
	
	
function ValidaMiForm(MiForm,MisCamp)	
	{
	var mivalor = new String(MisCamp);
	var MisTipos = new String();
	var MisCampos = new String();
	var MiInt = new Number(34);
	
	mivalor = mivalor + ",";
	maxtext = mivalor.length;
	
	if (maxtext > 3)
		{//x:y,
		MisCampos = "";
		MisTipos = "";
		Tomando = "Nombre";
		for (i=0; i < maxtext; i ++)
			{
			if (Tomando == "Nombre" && mivalor.charAt(i) != ':'
				&& mivalor.charAt(i) != ',')
				{
				MisCampos = MisCampos + mivalor.charAt(i);
				}
			if (Tomando == "Valor" && mivalor.charAt(i) != ':'
				&& mivalor.charAt(i) != ',')
				{
				MisTipos = MisTipos + mivalor.charAt(i);
				}
				
			if (mivalor.charAt(i) == ':')
				Tomando = "Valor";
				
			if (mivalor.charAt(i) == ',')
				{
				Tomando = "Nombre";
				//Procedo a validar el campo
				
				if (MisTipos == "IsDate")
					{//Valido a ver si el campo es una fecha
					for (j=0; j < MiForm.elements.length;j++)
						if (MiForm.elements[j].name == MisCampos)
							{
							Val = MiForm.elements[j];
							v = Val.value;
							ErrorCarga = false;
							if (v.length != 10) ErrorCarga = true;
							
							if (!ErrorCarga)
								{
								dd		= new Number(v.charAt(0) + v.charAt(1));
								mm		= new Number(v.charAt(3) + v.charAt(4));
								aaaa	= new Number(v.charAt(6) + v.charAt(7) + v.charAt(8) + v.charAt(9));
								if (dd < 1 || dd > 31) 
									ErrorCarga = true;
								if (mm < 1 || mm > 12) 
									ErrorCarga = true;
								if (aaaa < 1900 || aaaa  > 2005) 
									ErrorCarga = true;
								}

							if (v.charAt(0) + v.charAt(1) == "")
								if (v.charAt(3) + v.charAt(4) == "")
									if (v.charAt(6) + v.charAt(7) + v.charAt(8) + v.charAt(9) == "") 
										ErrorCarga = false;
							
							if (ErrorCarga)
								{
								window.alert("Error: Fecha inválida.");								
								Val.focus();
								Val.select();
								return false;
								}
							}
					}

				finpar = "Between".length;
				if (MisTipos.substring(0,finpar) == "Between")
					{
					for (j=0; j < MiForm.elements.length;j++)
						if (MiForm.elements[j].name == MisCampos)
							{
							Val = MiForm.elements[j];
							v = Val.value;
							vi = new Number(v)
							
							Parametros = MisTipos.substring(finpar+1,MisTipos.length-1)
							MinVal = ""
							for (k=0; k <	Parametros.length && 
											Parametros.charAt(k) != ';'
											;k++)
								{
								MinVal = MinVal + Parametros.charAt(k);
								}
							MaxVal = Parametros.substring(k+1)
					
							MinVal2 = new Number(MinVal)
							MaxVal2 = new Number(MaxVal)

							//window.alert("Ver Datos:"+MinVal2+" y "+MaxVal2);

							if (vi < MinVal2 || vi > MaxVal2)
								{
								window.alert("Error: Dato fuera de rango.\nValores aceptables entre:"+MinVal2+" y "+MaxVal2);
								Val.focus();
								Val.select();
								return false;
								}
							}
					}

				finpar = "BetwDate".length;
				if (MisTipos.substring(0,finpar) == "BetwDate")
					{
					for (j=0; j < MiForm.elements.length;j++)
						if (MiForm.elements[j].name == MisCampos)
							{
							Val = MiForm.elements[j];
							v = Val.value;
							vi = new Date(v)
							
							Parametros = MisTipos.substring(finpar+1,MisTipos.length-1)
							MinVal = ""
							for (k=0; k <	Parametros.length && 
											Parametros.charAt(k) != ';'
											;k++)
								{
								MinVal = MinVal + Parametros.charAt(k);
								}
							MaxVal = Parametros.substring(k+1)
							
							MinVal.replace(" ","");
							MaxVal.replace(" ","");
							
							if (MinVal.substring(0,2) == "#D")
								{
								var x = MinVal;
								var d, s = "", o = 0, v;
								v = new Number();
								if (x.length > 2)
									{
									v = new Number(x.substring(3));
									if (x.charAt(2) == "+")
										o += v;
									if (x.charAt(2) == "-")
										o -= v;
									}
								var dd = 0, mm = 0, aaaa = 0;
								d = new Date();
								dd = d.getDate() + o;
								mm = d.getMonth();
								aaaa = d.getYear();
								d = new Date(aaaa,mm,dd);
								s += (d.getDate()) + "/";
								s += (d.getMonth() + 1) + "/";
								s += d.getYear();
								MinVal = s;
								}
								
							if (MaxVal.substring(0,2) == "#D")
								{
								var x = MaxVal;
								var d, s = "", o = 0, v;
								v = new Number();
								if (x.length > 2)
									{
									v = new Number(x.substring(3));
									if (x.charAt(2) == "+")
										o += v;
									if (x.charAt(2) == "-")
										o -= v;
									}
								var dd = 0, mm = 0, aaaa = 0;
								d = new Date();
								dd = d.getDate() + o;
								mm = d.getMonth();
								aaaa = d.getYear();
								d = new Date(aaaa,mm,dd);
								s += (d.getDate()) + "/";
								s += (d.getMonth() + 1) + "/";
								s += d.getYear();
								MaxVal = s;
								}
					
							MinVal2 = new Date(MinVal)
							MaxVal2 = new Date(MaxVal)
							
							//window.alert("Ver Datos:"+MinVal2+" y "+MaxVal2);

							if (vi < MinVal2 || vi > MaxVal2)
								{
								window.alert("Error: Fecha fuera de rango.\nValores aceptables entre:"+MinVal+" y "+MaxVal);
								Val.focus();
								Val.select();
								return false;
								}
							}
					}
					
				finpar = "NotEmpty".length;
				if (MisTipos.substring(0,finpar) == "NotEmpty")
					{
					DebeEstarChequeado = false;
					EstaChequeado = false;
					CheckObj = "";
					for (j=0; j < MiForm.elements.length;j++)
						if (MiForm.elements[j].name == MisCampos)
							{
							Val = MiForm.elements[j];
							if ((MiForm.elements[j].type).toUpperCase()=="RADIO")
								{
								DebeEstarChequeado = true;
								if (MiForm.elements[j].checked)
									EstaChequeado = true;
								
								CheckObj = Val;
								}
							
							v = Val.value;
							if (v.length == 0)
								{
								window.alert("Error: Dato en blanco.\nEste campo no puede quedar vacio.");
								Val.focus();
								Val.select();
								return false;
								}
							if ("NotEmpty".length < MisTipos.length)
								{
								LargoMinimo = MisTipos.substring(	"NotEmpty".length+1,
																	MisTipos.length-1);
								LargoMinimo = new Number(LargoMinimo);
								//window.alert(LargoMinimo);
								if (v.length < LargoMinimo)
									{
									window.alert("Error: Dato incompleto.\nEste campo no puede tener menos de "+LargoMinimo+" caracteres.");
									Val.focus();
									Val.select();
									return false;
									}
								}
							}
						
						if (DebeEstarChequeado && !EstaChequeado)
							{
							window.alert("Error: Dato incompleto.\nSe debe elegir uno de la lista");
							CheckObj.focus();
							CheckObj.select();
							return false;
							}
					}
				MisCampos = "";
				MisTipos = "";
				}
			}//fin de if (mivalor.charAt(i) == ',')

		}//Fin del for..
	
	//window.alert("Validación Ok!");
	
	return true;
	}//fin de ValidaMiForm(MiForm,MisCamp)



	function MakePicture2(MiObj, MiPic)
		{
		var mivalor = new String(MiObj.value);
		var mipic = new String(MiPic);
		var MiNuevoVal = new String(MiPic);
	
		if (mipic.length > mivalor.length)
			{//Tengo que poner el picture porque es la primera vez que entro.
			MiNuevoVal = "";
			for (i=0; i < mipic.length; i ++)
				{
				if (mipic.charAt(i)=='9' || 
						mipic.charAt(i)=='x' || 
						mipic.charAt(i)=='X' )
					{
					if (i==0)//Agrego Lo que tipie
						MiNuevoVal = MiNuevoVal + ValidaCaracter(mipic.charAt(i),mivalor.charAt(i));
					else
						MiNuevoVal = MiNuevoVal + "_";
					}
				else MiNuevoVal = MiNuevoVal + mipic.charAt(i);
				}
			MiObj.value = MiNuevoVal;
			}
		else if (mipic.length == mivalor.length)
				{
				MiObj.value = "";
				}
		else if (mipic.length < mivalor.length)
				{
				//Se supone que me escribieron cuando 
				//Tomo lo que me ingresaron y 
				MiNuevoVal = "";
				NuevaLetra = (mivalor.charAt(mivalor.length-1)).toString();
				
				for (i=0; i < mivalor.length-1 ; i ++)
					{
					if (mivalor.charAt(i)=='_' && NuevaLetra != "Salgo")
						{
						MiNuevoVal = MiNuevoVal + ValidaCaracter(mipic.charAt(i),NuevaLetra);
						NuevaLetra = "Salgo";
						}
					else MiNuevoVal = MiNuevoVal + ValidaCaracter(mipic.charAt(i),mivalor.charAt(i));
					}
				MiObj.value = MiNuevoVal;
				}
		}
	
	function ValidaCaracter(CharPic,CharVal)
		{
		MiVal = CharVal;
		
		if (CharPic == '9' && (CharVal > '9' || CharVal < '0'))	MiVal = '_';
		if (CharPic == 'x' && !EsMinuscula(CharVal))
			{
			if (EsMayuscula(CharVal))
				MiVal = CharVal.toLowerCase();
			else MiVal = '_';
			}
		if (CharPic == 'X' && !EsMayuscula(CharVal))
			{
			if (EsMinuscula(CharVal))
				MiVal = CharVal.toUpperCase();
			else MiVal = '_';
			}
		if (CharPic == '/' && CharVal != '/')		MiVal = '/';
		if (CharPic == '-' && CharVal != '-')		MiVal = '-';
		if (CharPic == ',' && CharVal != ',')		MiVal = ',';
		if (CharPic == '.' && CharVal != '.')		MiVal = '.';
		if (CharPic == ':' && CharVal != ':')		MiVal = ':';
		if (CharPic == ';' && CharVal != ';')		MiVal = ';';
		if (CharPic == '+' && CharVal != '+')		MiVal = '+';
		if (CharPic == '~' && CharVal != '~')		MiVal = '~';
			
		if (MiVal != CharVal)
			MiVal = CharVal;
			
		return MiVal;
		}

function SoloNumeros(s, e)
{
	var ValidChars = "0123456789.,-";
	
	SoloEstos(s, e,ValidChars);
}

function SoloEstos(s, e,ValidChars) 
{
   var IsNumber=true;
   var Char;
   var sText = s.value;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   
   if (!IsNumber){
			s.value = 0;
		}
}

