﻿// JScript File
function OnlyNumbers(senderObj, eventObj) {
	var key;
	var keychar;
	var result = false;

	if (window.event) {
	   key = window.event.keyCode;
	} else if (eventObj) {
	   key = eventObj.which;
	} else {
	   result = true;
	}

	keychar = String.fromCharCode(key);

	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) {
	   result = true;
	} else if ((("0123456789").indexOf(keychar) > -1)) {
		result = true;
	} else {
		result = false;
	}

	return result;
}

function OnlyDv(senderObj, eventObj) {
	var key;
	var keychar;
	var result = false;

	if (window.event) {
	   key = window.event.keyCode;
	}
	else if (eventObj) {
	   key = eventObj.which;
	}
	else {
	   result = true;
	}

	keychar = String.fromCharCode(key);

	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) {
	   result = true;
	}
	else if ((("0123456789kK").indexOf(keychar) > -1)) {
		result = true;
	}
	else {
		result = false;
	}

	return result;
}

function IsValidRut() { // ('10000000', '8') or ('100000008')
	var args=IsValidRut.arguments;
	var rut;
	var dv;
	if (args.length == 1) {
		rut = args[0].substr(0,args[0].length-1);
		dv = args[0].substr(args[0].length-1,1);
	} else if (args.length == 2) {
		rut = args[0];
		dv = args[1];
	} else {
		return false;
	}
	dv = dv.toUpperCase();
	return (dv == RutChecksumDigit(rut));
}

function RutChecksumDigit(rutv) {
	var sum=0;
	var cont=2;
	for (i=(rutv.length)-1;i>=0;i--){
		sum += rutv.charAt(i) * cont;
		cont == 7 ? cont=2:cont++;
	}
	res=parseInt(sum/11, 10);
	res=res*11;
	fin=sum-res;
	fin=fin-11;
	fin=Math.abs(fin);
	digitString="-123456789K0"
	digit = digitString.substr(fin,1);
	return digit;
}

function IsValidEmail(email) {
	p=email.indexOf('@');
	if ((p < 1) || (p != email.lastIndexOf('@')) || (email.lastIndexOf('.') < p) ||
		(email.lastIndexOf('.') > (email.length-3)) || ((email.lastIndexOf('.')-p)<2) ||
		(p==(email.length-1)) || (email.indexOf(' ') >= 0) || (email == '')) {
		return false;
	}
	return true;
}

function IsValidDate(day,month,year) {
	try
	{
		var mDays = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
		day = parseInt(day, 10);
		month = parseInt(month, 10);
		year = parseInt(year, 10);

		if ((year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0))) {
			 mDays[2] = 29;
		}

		if ((month >= 1) && (month < 13) && (day >= 1) && (day <= mDays[month])) {
			return true;
		} else {
			return false;
		}
	}
	catch (e)
	{
		return false;
	}
}


function OnlyEmail(senderObj,eventObj) {
	var result = OnlyMailUser(senderObj,eventObj);
	if (!result) {
		var key;
		var keychar;

		if (window.event) {
		   key = window.event.keyCode;
		} else if (eventObj) {
		   key = eventObj.which;
		} else {
		   return true;
		}

		keychar = String.fromCharCode(key);
		return ((keychar == '@') && (senderObj.value.indexOf('@') == -1));
	}
	else {
		return true;
	}
}

function OnlyMailUser(senderObj, eventObj) {
	var key;
	var keychar;
	var result = false;

	result = OnlyDomain(senderObj,eventObj);

	if (result) {
		return true;
	}
	else {
		if (window.event) {
		   key = window.event.keyCode;
		} else if (eventObj) {
		   key = eventObj.which;
		} else {
		   result = true;
		}

		keychar = String.fromCharCode(key);

		if (keychar=='_') {
			result = true;
		} else {
			result = false;
		}

		return result;
	}
}

function OnlyDomain(senderObj, eventObj) {
	var key;
	var keychar;
	var result = false;

	if (window.event) {
	   key = window.event.keyCode;
	} else if (eventObj) {
	   key = eventObj.which;
	} else {
	   result = true;
	}

	keychar = String.fromCharCode(key);

	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) {
	   result = true;
	} else if ((("0123456789.-Ã±Ã‘").indexOf(keychar) > -1)) {
		result = true;
	} else if (((key>64) && (key<91)) || ((key>96) && (key<123))) {
		result = true;
	} else {
		result = false;
	}

	return result;
}

function OnlyName(senderObj, eventObj) {
	var key;
	var keychar;
	var result = false;

	result = OnlyAlpha(senderObj,eventObj, true);

	if (result) {
		return true;
	}
	else {
		if (window.event) {
		   key = window.event.keyCode;
		} else if (eventObj) {
		   key = eventObj.which;
		} else {
		   result = true;
		}

		keychar = String.fromCharCode(key);

		if ((("'` -").indexOf(keychar) > -1)) {
			result = true;
		} else {
			result = false;
		}

		return result;
	}
}

function OnlyAlpha(senderObj, eventObj, acceptLatinChars) {
	var key;
	var keychar;
	var result = false;

	if (window.event) {
	   key = window.event.keyCode;
	} else if (eventObj) {
	   key = eventObj.which;
	} else {
	   result = true;
	}

	keychar = String.fromCharCode(key);

	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) {
	   result = true;
	} else if (acceptLatinChars && (("áéíóúÁÉÍÓÚäëïöüÄËÏÖÜñÑàèìòùÀÈÌÒÙçÇâêîôûÂÊÎÔÛ").indexOf(keychar) > -1)) {
		result = true;
	} else if (((key>64) && (key<91)) || ((key>96) && (key<123))) {
		result = true;
	} else {
		result = false;
	}

	return result;
}

function OnlyAddress(senderObj, eventObj) {
	var key;
	var keychar;
	var result = false;

	result = OnlyName(senderObj, eventObj) || OnlyNumbers(senderObj, eventObj);

	if (result) {
		return true;
	}
	else {
		if (window.event) {
		   key = window.event.keyCode;
		} else if (eventObj) {
		   key = eventObj.which;
		} else {
		   result = true;
		}

		keychar = String.fromCharCode(key);

		if ((("#.,").indexOf(keychar) > -1)) {
			result = true;
		} else {
			result = false;
		}

		return result;
	}
	return result;
}

function IsValidDate(day,month,year) {
	try
	{
		var mDays = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
		day = parseInt(day, 10);
		month = parseInt(month, 10);
		year = parseInt(year, 10);

		if ((year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0))) {
			 mDays[2] = 29;
		}

		if ((month >= 1) && (month < 13) && (day >= 1) && (day <= mDays[month])) {
			return true;
		} else {
			return false;
		}
	}
	catch (e)
	{
		return false;
	}
}

function validateRadioList(control)
{
    var options = document.getElementById(control).getElementsByTagName('input');
    var ischecked=false;
    for(i=0;i<options.length;i++)
    {
        var opt = options[i];
        if(opt.type=="radio")
        {
            if(opt.checked)
            {
                ischecked= true;             
            }
        } 
    }
    return ischecked;
}

function validateCheckList(control)
{
    var options = document.getElementById(control).getElementsByTagName('input');
    var ischecked=false;
    for(i=0;i<options.length;i++)
    {
        var opt = options[i];
        if(opt.type=="checkbox")
        {
            if(opt.checked)
            {
                ischecked= true;             
            }
        } 
    }
    return ischecked;
}

function ValidaCambioContraseña()
{
    
    var passOld = document.getElementById('txtContraseñaAntigua').value;
    if(passOld.length==0)
    {
        alert('Ingrese la contraseña antigua');
        return false;
    }
    
    var passNew = document.getElementById('txtContraseñaNueva').value;
    var passCopy = document.getElementById('txtContraseñaRepetir').value;

    if(passNew==passOld)
    {
        alert('La contraseña nueva no puede ser la igual a la contraseña antigua');
        return false;
    }

    if(passNew!=passCopy)
    {
        alert('Debe ingresar la misma contraseña en los campos nueva contraseña y confirmación contraseña');
        return false;
    }

/*    if(passNew.length<8)
    {
        alert('La contraseña nueva debe tener un largo de 8 caracteres');
        return false;
    }*/
/*    else
    {
        
        passNew = passNew.toLowerCase();
        
        var resultadoStr;
        resultadoStr = passNew.match(/([a-z])/g);        
        if(resultadoStr==null)
        {
            alert('La contraseña nueva debe estar formada por 4 letras y 4 números. Como mínimo 4 letras y 4 números');
            return false;        
        }
         
        if(resultadoStr.length!=4)
        {
            alert('La contraseña nueva debe estar formada por 4 letras y 4 números. Como mínimo 4 letras y 4 números');
            return false;
        }
        else
        {
            var resultadoNumber;
            resultadoNumber = passNew.match(/([0-9])/g);
            if(resultadoNumber.length!=4)
            {
                alert('La contraseña nueva debe estar formada por 4 letras y 4 números. Como mínimo 4 letras y 4 números');
                return false;
            }
        }
    }*/
    
    return true;
}

function ValidarEntrada()
{
    var usuario = document.getElementById('txtUsername').value;
/*    if(!IsValidRut(usuario)) 
    {*/
        if(!IsValidEmail(usuario)) 
        {
            alert('Ingresar Email válido');
            return false;   
        }
        /*else
            document.getElementById('txtTipoUser').value = 'E';*/
/*    }
    else
        document.getElementById('txtTipoUser').value = 'R';*/

    if(document.getElementById('txtContrasena').value.length==0)
    {
         alert('Debe ingresar la contraseña');
         return false;                   
    }
    
    return true;     
}
