//*******************************************************************************
//Abre una pagina nueva 
//*******************************************************************************		

function openwindow(mywindow,name,alto,ancho){						
	window.open(mywindow,name,"status=no,resizable=yes,toolbar=no,scrollbars=yes,left=0,top=0,width="+ancho+",height="+alto+"");
	}

/********** Validacion de Login y  Password **********/   
        
function ValidaLogueo(control,campo)
{	seguir=1;
	pos=0;
	
	eval("Cadena= " + control + ".value");
	Cad=Cadena.toUpperCase();

	if (campo == "Clave" && Cad.length == 0){
		alert("No has ingresado tu clave.");
		seguir=0;
	}else {
		do
		{	car=Cad.substr(pos,1);
			if ((!((car>="A") && (car<="Z"))) && (!((car>="0") && (car<="9"))) && (car!="_"))
			{
				alert(campo + " contiene caracteres no válidos");
				eval(control + ".focus()")
				seguir=0;
			}
			else
				pos=pos+1;
		} while ((seguir) && (pos<Cad.length));
	}	
	
	return seguir;
}


/********** Validacion Fecha Cadena **********/   

function ValidaFechaCadena(cadena,vacio)
{
	var sCad;			
	eval( "" + cadena + ".value='"+ ValidaCadena(cadena)+ "'");
	eval( "sCad='"+ ValidaCadena(cadena)+ "'");	
	if (!(vacio)&&(sCad==''))
		{
			alert('El campo no puede estar vacio');
			eval( cadena + ".focus()");
			return false;
		}
	if (!ValidaFecha(cadena))
		return false;
	else 	
		return true;
}


/*********** Trim   ***/

function trim(cadena)
{	while (cadena.substr(0,1)==" ")
		cadena=cadena.substr(1);
	while (cadena.substr(cadena.length-1,1)==" ")
		cadena=cadena.substr(0,cadena.length-1);
	while (cadena.search(/  /)!=-1)
		cadena=cadena.replace("  "," ");
	return(cadena);
}

/*********** Valida Cadena   ***/

function ValidaCadena(cadena)
{	var sCad;	

	eval( "sCad=" + cadena+ ".value");
	sCad=trim(sCad);
	while (sCad.indexOf("'")!=-1)
		sCad = sCad.replace("'","´");
	return(sCad);			
}

/*********** Valida Cadena Vacio   ***/

function ValidaCadenaVacio(control,vacio)
{	var sCad;	

	eval( "sCad=" + control + ".value");
	sCad=trim(sCad);	



	
	while (sCad.indexOf("'")!=-1)
		sCad = sCad.replace("'","´");			

	eval( "" + control + ".value='" + sCad + "'");	
	if (!(vacio)&&(sCad==''))
		{
			if (control == "document.frmPrincipal.txtUbigeo") 
				alert('El código postal no puede estar vacio');
			else
				alert('El campo no puede estar vacio');
			eval( control + ".focus()");
			return false;
		}		
	return true;
}
/*********** Valida Nombre 2 letra o menos   ***/

function ValidaCadenaNombre(control,vacio)
{	var sCad;	

	eval( "sCad=" + control + ".value");
	sCad=trim(sCad);	
	
	while (sCad.indexOf("'")!=-1)
		sCad = sCad.replace("'","´");			

	eval( "" + control + ".value='" + sCad + "'");	
	if (sCad.length < 2)
		{
			alert('El nombre tiene que tener mínimo 2 caracteres');
			eval( control + ".focus()");
			return false;
		}		
	return true;
}


/*********** Numero de Veces   ***/

function numero_veces(cadena,caracter)
{	var numVeces=0;

	while (cadena.indexOf(caracter,0)!=-1)
	{  	numVeces++;
		cadena=cadena.substr(cadena.indexOf(caracter,0)+1);
	}
	return numVeces;
}

/*********** Valida Fecha   ***/

//Valida una fecha ingresada como cadena
function ValidaFechaCadena (strFecha)
{	var valor,dia,mes,anhio,cadena;
	//cadena = eval(control+".value");		
	if (strFecha.length == 0)
		return true;
	valor=numero_veces(strFecha,"-")
	if (valor!=2)
	{ alert("La fecha esta mal ingresada");
	  //eval(control+".focus()");
	  return false;
	}
	dia = strFecha.substr(0,strFecha.indexOf("-"))		
	if ((dia.length>0)&&(dia.length<3))
		{
			if (dia.length < 2)
				{
					dia="0"+dia;
				}
		}
	else
		{
		alert("La fecha esta mal ingresada");
		//eval(control+".focus()");
		return false;
		}

	strFecha=strFecha.substr(strFecha.indexOf("-")+1,strFecha.length)

	mes = strFecha.substr(0,strFecha.indexOf("-"))

	if ((mes.length>0)&&(mes.length<3))
		{
			if (mes.length < 2)
				{
					mes="0" + mes;
				}
		}
	else
		{
		alert("La fecha esta mal ingresada");
		//eval(control+".focus()");
		return false;
		}

	anhio =strFecha.substr(strFecha.indexOf("-")+1,strFecha.length)
	if (anhio.length!=4)
		{
			alert("La fecha esta mal ingresada");
			//eval(control+".focus()");
			return false;
		}

	FechaAux = new Date(parseInt(anhio,10),parseInt(mes,10)-1,parseInt(dia,10));

	if (FechaAux.getUTCMonth() != (mes-1) )
	{
		alert("La fecha esta mal ingresada");
		//eval(control+".focus()");
		return false;
	}
	
	//Fecha=dia+"-"+mes+"-"+anhio;
	//eval(control+".value='"+ Fecha +"' ");
	return true;
}


function ValidaFecha (control)
{	var valor,dia,mes,anhio,cadena;
	cadena = eval(control+".value");		
	if (cadena.length == 0)
		return true;
	valor=numero_veces(cadena,"-")
	if (valor!=2)
	{ alert("La fecha esta mal ingresada");
	  eval(control+".focus()");
	  return false;
	}
	dia = cadena.substr(0,cadena.indexOf("-"))		
	if ((dia.length>0)&&(dia.length<3))
		{
			if (dia.length < 2)
				{
					dia="0"+dia;
				}
		}
	else
		{
		alert("La fecha esta mal ingresada");
		eval(control+".focus()");
		return false;
		}

	cadena =cadena.substr(cadena.indexOf("-")+1,cadena.length)

	mes = cadena.substr(0,cadena.indexOf("-"))

	if ((mes.length>0)&&(mes.length<3))
		{
			if (mes.length < 2)
				{
					mes="0" + mes;
				}
		}
	else
		{
		alert("La fecha esta mal ingresada");
		eval(control+".focus()");
		return false;
		}

	anhio =cadena.substr(cadena.indexOf("-")+1,cadena.length)
	if (anhio.length!=4)
		{
			alert("La fecha esta mal ingresada");
			eval(control+".focus()");
			return false;
		}

	FechaAux = new Date(parseInt(anhio,10),parseInt(mes,10)-1,parseInt(dia,10));

	if (FechaAux.getUTCMonth() != (mes-1) )
	{
		alert("La fecha esta mal ingresada");
		eval(control+".focus()");
		return false;
	}
	Fecha=dia+"-"+mes+"-"+anhio;
	eval(control+".value='"+ Fecha +"' ");
	return true;
}

/*********** Valida Hora   ***/

function ValidaHora(control)
{
        var er_fh = /^(00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23)\:([0-5]0|[0-5][1-9])$/
        var cadena;
        var hora, minuto;
        
        cadena = eval(control+".value");
        if (cadena.indexOf(":")==-1)
			{
			hora=cadena.substr(0,cadena.length);
			minuto="";
			}
		else
		{	
			hora = cadena.substr(0,cadena.indexOf(":"));
			minuto=cadena.substr(cadena.indexOf(":")+1,cadena.length);
		}	
        if (hora.length==1) 
			hora = "0" + hora;
        if (hora.length==0) 
			hora = "00"			
        if (minuto.length==1) 
			minuto = minuto + "0";
        if (minuto.length==0) 
			minuto = "00";			
		cadena = hora + ":" + minuto;
		eval(control+".value='"+ cadena +"'");
        
        if ( !(er_fh.test( cadena )) ) 
        { 
                alert("El dato en el campo hora no es válido.");
                eval(control+".value='';");
                eval(control+".focus();");
                return false;
        }
        return true;
}

/*********** Cdena Vacia   ***/

function CadenaVacia(cadena,mensaje)
{	var sCad;	

	eval( "sCad=" + cadena+ ".value");
	if (sCad=='')
		{
		alert(mensaje + ' esta vacia, debe ingresarlo')
		eval( "sCad=" + cadena+ ".focus();");
		return true;
		}
	return false;
}

/*********** Diferencia de Fechas   ***/

function DiferenciaFecha(valor1,valor2)
{ var diferencia;
	var date1 = new Date(valor1.substr(6,4),valor1.substr(3,2),valor1.substr(0,2));
	var date2 = new Date(valor2.substr(6,4),valor2.substr(3,2),valor2.substr(0,2));
	alert(datediff(date1,date2));
	alert(date2);
	alert(date1);
	return diferencia;
}

/*********** Fecha Mayor   ***/

function FechaMayor	(cadena1,cadena2)
{ 
	if ((cadena1!='')&&(cadena2!=''))
	{
		comp1 	= cadena1.substr(6,4) + '' + cadena1.substr(3,2) + '' + cadena1.substr(0,2);
		comp2 	= cadena2.substr(6,4) + '' + cadena2.substr(3,2) + '' + cadena2.substr(0,2);
		if 	((comp1) > (comp2))
			{
			alert('La Fecha de Destino debe ser mayor que la fecha de Inicio');
			return false;
			}							
	}					
	return true;				
}	
	
/*********** Validacion de Numero decimal con expresiones regulares   ***/

 
 function ValidaDecimal(control,mensaje,vacio)
{	var s;
	
	eval("s = " + control + ".value");
	if ((s == null) || (s.length == 0)&&!(vacio)){
		eval("" + control + ".focus()");
		alert('Debe ingresar el número.');
		return false;
	}
	if (/^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(\.[0-9]{1,2})?$/.test(s))
	{   return (true) }
	alert(mensaje);
	eval("" + control + ".focus()");
	return false;	
}

/************* Validacion de un Numero **********/

function ValidaNumero(control,campo,vacio)
{
	var flag=true;
	var i,j,a,cadena;
	eval("cadena = " + control + ".value");

	if ((cadena == null) || (cadena.length == 0)&&!(vacio)){
		eval("" + control + ".focus()");
		alert('Debe ingresar el número.');
		return false;
	}
	
	for(i=0;i<cadena.length;i++)
	{ 	a=(cadena.substr(i,1));

		j=a.charCodeAt(0);
		if ( !( (j>=48) && (j<=57))   )
			flag=false;
	}
	if (! flag)
	{
		alert(campo + " contiene caracteres no válidos");
		eval(control + ".focus()")
	}
  return flag;
}

/*********** Validacion de E-Mail (version compacta)********/

function checkEmail(myForm) 
{	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(trim(myForm.value)))
	{   	return true; }
	alert("La dirección de tu e-mail no es correcta. Ingrésala correctamente.")
	if(myForm.type != 'hidden')
		myForm.focus();
	return false;
}

/*********** Validacion de E-Mail (version compacta)********/

function checkEmailCadena(cadena) 
{	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(trim(cadena)))
	{   	return true; }
	alert("Dirección de correo inválida! Por favor reintente.")
	return false;
}

//Obtiene la fecha actual como una cadena
function fFechaActual(){
   var d, s;           //Declare variables.
   d = new Date();                           //Create Date object.
   s += (d.getMonth() + 1) + "-";            //Get month
   s += d.getDate() + "-";                   //Get day
   s += d.getYear();                         //Get year.
   return(s);                                //Return date.
   alert(s);
}

//Compara si la fecha de ini (dd-mm-yyyy) es menor que la fecha fin (dd-mm-yyyy), como cadenas
function fComparaFechas(sFiniAux, sFfinAux)
{
	var dIni, mIni, yIni;
	var dFin, mFin, yFin;

	sFini= new String(sFiniAux);
	sFfin= new String(sFfinAux);
	
	dIni = sFini.substr(0,2);
	mIni = sFini.substr(3,2);
	yIni = sFini.substr(6,4);

	dFin = sFfin.substr(0,2);
	mFin = sFfin.substr(3,2);
	yFin = sFfin.substr(6,4);
	
	if (eval(yIni) < eval(yFin)) {		
		return (true);				
	}
	else {
		if (eval(yIni) == eval(yFin)) {
			if (mIni<=mFin)
			{
				if (dIni<=dFin)
				{
					return (true);
				}
			}
		}
	}
	
	alert("La Fecha Inicio debe ser menor que Fecha Fin");
	return (false);
}
