/*
oOrigen: Objeto que identifica el select con opciones
oDestino: Objeto que identifica el select al que se pasarán las opciones
*/
function AgregarOpciones(oOrigen, oDestino)
{
	for(var i=0;i < oOrigen.length; i++)
	{
		if(oOrigen.options[i].selected)
		{
			oDestino.length++;
			oDestino.options[oDestino.length-1].value = oOrigen[i].value;
			oDestino.options[oDestino.length-1].text = oOrigen[i].text;
		}
	}
		
	for(var i=oOrigen.length-1;i >= 0 ; i--)
	{
		if(oOrigen.options[i].selected)
		{
			oOrigen.options[i] = null;
		}
	}
}

/*
sPagina : Nombre de página que desea acceder
*/
function IrA(sPagina)
{
	window.location.href = sPagina;
}
function IrATop(sPagina)
{
	window.top.location.href = sPagina;
}

function Trim(strTxt)
	{		
		pos1 = 0;
		pos2 = strTxt.length-1;
		for (i=0; i<strTxt.length; i++)
		{
			if (strTxt.charAt(i) == ' ') pos1 = pos1 + 1;
			else break;
		}
		if (pos1 != (pos2+1))
			for (i=strTxt.length-1; i>0; i--)
			{
				if (strTxt.charAt(i) == ' ') pos2 = pos2 - 1
				else break;
			}
		return strTxt.substring(pos1,pos2+1);
	}

 function TrimPto(strTxt)
	{		
		pos1 = 0;
		pos2 = strTxt.length-1;
		for (i=0; i<strTxt.length; i++)
		{
			if (strTxt.charAt(i) == '.') pos1 = pos1 + 1;
			else break;
		}
		if (pos1 != (pos2+1))
			for (i=strTxt.length-1; i>0; i--)
			{
				if (strTxt.charAt(i) == '.') pos2 = pos2 - 1
				else break;
			}
		return strTxt.substring(pos1,pos2+1);
	}
	
	
function TrimTextArea(strTxt)
{		
		pos1 = 0;
		pos2 = strTxt.length-1;
		for (i=0; i<strTxt.length; i++)
		{
			if (strTxt.charAt(i) == ' ' || strTxt.charAt(i) == '\r' || strTxt.charAt(i) == '\n') pos1 = pos1 + 1;
			else break;
		}
		if (pos1 != (pos2+1))
			for (i=strTxt.length-1; i>0; i--)
			{
				if (strTxt.charAt(i) == ' ' || strTxt.charAt(i) == '\r' || strTxt.charAt(i) == '\n') pos2 = pos2 - 1
				else break;
			}
		return strTxt.substring(pos1,pos2+1);
}
	
function EsEntero(sValor)
{
	if (isNaN(sValor) || sValor=='' || sValor.indexOf('.')!= -1 || sValor.indexOf('e')!= -1)
	{
		return false;
	}
	return true;
}

function EsNumero(sValor)
{
	if (isNaN(sValor) || sValor=='')
	{
		return false;
	}
	return true;
}

function CargaSelect(oOpcion, iSeleccion)
{
	for(var i=0; i< oOpcion.length; i++) 
	{
		if (oOpcion[i].value==iSeleccion)
		{
			oOpcion.selectedIndex = i;
			break;
		}
	}
}

function CargaRadio(oOpcion, iSeleccion)
{
	for(var i=0;i < oOpcion.length; i++)
	{
		if (oOpcion[i].value==iSeleccion)
		{
			oOpcion[i].checked = true;
			break;
		}
	}
	/*
	if(i==0)
	{
		oOpcion.checked = true;
	}
	*/

}

function SeleccionRadio(oOpcion)
{
	for(var i=0;i < oOpcion.length; i++) 
	{
		if (oOpcion[i].checked)
		{
			return i;
		}
	}

	if(i==0)
	{
		if(oOpcion.checked) return 0;
	}

	return -1;
}

function EsMail(sMail)
{
    var i = 0;
	if (sMail == '') return true;
    var sLength = sMail.length;
	
	if(sMail.indexOf('|')!=-1) return false;
    
    while ((i < sLength) && (sMail.charAt(i) != "@"))
    {
		if (sMail.charAt(i) == ' ')
		{
			return false;
		}
		i++;
	}
    if ((i >= sLength) || (sMail.charAt(i) != "@"))
    {
		return false;
	}
    else i += 2;
    while ((i < sLength) && (sMail.charAt(i) != "."))
    {
		if (sMail.charAt(i) == ' ')
		{
			return false;
		}
		i++;
	}
    if ((i >= sLength - 1) || (sMail.charAt(i) != "."))
    {
		return false;
	}
    while (i < sLength)
    {
		if (sMail.charAt(i) == ' ')
		{
			return false;
		}
		i++;
	}
    return true;
}

function EsRut(sValor)
{
	sValor = Trim(sValor).toUpperCase();
	
	var lCont=0;
	var iMultiplo=2;
	var sDigito;
        var sCondigito;
        if (sValor.charAt(sValor.length-2)!='-')
        {
           sCondigito = ""; 
           for(i=0;i<=sValor.length-1;i++)
           {
              if (i == sValor.length-1) sCondigito = sCondigito  + '-';
              sCondigito = sCondigito + sValor.charAt(i);
           }
           sValor = sCondigito;
        }

	
	if (sValor.length<3) return false;
	for(i=sValor.length-3;i>=0;i--)
	{
		if (sValor.charAt(i)< '0' || sValor.charAt(i)>'9') return false;
		//alert(i + ' - ' + sValor.charAt(i));
		lCont += sValor.charAt(i) * iMultiplo;
		if(iMultiplo==7)
			iMultiplo=2;
		else
			iMultiplo++;
	}
	if (sValor.charAt(sValor.length-2)!='-') return false;
	
	sDigito = 11 - (lCont % 11);

	if (sDigito==10)
		sDigito='K';

	if (sDigito==11)
		sDigito='0';

	if (sDigito!=sValor.charAt(sValor.length-1)) return false;

	return true;	
}

function EsFecha(sValor)
{
    var dia, mes, ano, maxdias;
	sValor= Trim(sValor);
	if(sValor.length < 8 || sValor.length > 10) return false;

	var vFecha = sValor.split('/');
	if(vFecha.length!=3) return false;

	dia = vFecha[0];
	mes = vFecha[1];
	ano = vFecha[2];

	if(!EsEntero(Trim(dia)) || !EsEntero(Trim(mes)) || !EsEntero(Trim(ano))) return false;
    
	if(ano<1800 || ano > 3000) return false;

	if(mes<1 || mes>12) return false; 

//	switch (mes)
	switch(parseInt(mes))
	{
		//	case	'1','3','5','7','8','10','12'	:	maxdias=31; alert('entro'); break;
		//meses con 31 días
		case	1:	maxdias=31; break;
		case	3:	maxdias=31; break;
		case	5:	maxdias=31; break;
		case	7:	maxdias=31; break;
		case	8:	maxdias=31; break;
		case	10:	maxdias=31; break;
		case	12:	maxdias=31; break;

		//case	'4','6','9','11'		:	maxdias=30; break;
		//meses con 30 días		
		case	4:	maxdias=30; break;
		case	6:	maxdias=30; break;
		case	9:	maxdias=30; break;
		case	11:	maxdias=30; break;
		
		//mes de febrero 28 o 29 días
		//si el modulo de 4 sobre el año es 0
		//si el modulo de 100 sobre el año es 0
		//si el modulo de 400 sobre el año es 0
		case	2:	
		if(ano % 4 == 0 || ano % 400 == 0)
			maxdias=29
		else
			maxdias=28;
		break;
	}
	if(dia < 1 || dia > maxdias) return false;
	
	return true;
}

/*
verifica que en una cadena no existan simbolos no validos 
para el funcionaminto de nuestro sitio
oTexto : es un objeto de texto (input type text de un formulario)
*/
function EsTextoValido(oTexto)
{
	var NoValido= new Array('|');//arreglo con caracteres no válidos
			
	for(var i=0;i<NoValido.length;i++)
		if(oTexto.value.indexOf(NoValido[i])!=-1) 
		{
			alert('Dato no válido, ' + NoValido[i]);
			oTexto.focus();
			return false;
		}

	return true;
}

/*
fechainicio, fechafinal: cadenas que representan fechas
						 en formato (dd/mm/yyyy)
*/
function datediff(fechainicio, fechafinal)
{
	fechainicio = Trim(fechainicio);
	fechafinal = Trim(fechafinal);
	var vFI = fechainicio.split('/');
	var vFF = fechafinal.split('/');
	
	var dfi=new Date(vFI[2], vFI[1]-1, vFI[0]);
	var dff=new Date(vFF[2], vFF[1]-1, vFF[0]);
	
	return dff-dfi
}

function date()
{
	var d = new Date();
	return d.getDate() + '/' + (d.getMonth()+1) + '/' + d.getYear();
}

function mes(imes)
{
	var smes;

	switch(imes)
	{
		case 0: smes = "Enero"; break;
		case 1: smes = "Febrero"; break;
		case 2: smes = "Marzo"; break;
		case 3: smes = "Abril"; break;
		case 4: smes = "Mayo"; break;
		case 5: smes = "Junio"; break;
		case 6: smes = "Julio"; break;
		case 7: smes = "Agosto"; break;
		case 8: smes = "Septiembre"; break;
		case 9: smes = "Octubre"; break;
		case 10: smes = "Noviembre"; break;
		case 11: smes = "Diciembre"; break;
	}
		
	return smes
}
	
function FechaLarga()
{  
	var d
	d = new Date();
		
	s = d.getDate() + " de " + mes(d.getMonth()) + " de " + d.getYear();
		
	return(s);
}

function irA(url)
{
	window.location.href = url;
}

function ValorRadio(oOpcion)
{
	for(var i=0;i < oOpcion.length; i++) 
	{
		if (oOpcion[i].checked)
		{
			return oOpcion[i].value;
		}
	}

	if(i==0)
	{
		if(oOpcion.checked) return oOpcion.value;
	}

	return -1;
}

function RutconCero(strTxt)
{		
		if (strTxt.charAt(0) == "0") 
		{
			return 1;
		}	
		else
		{
		    return 0;	
		}
}

