function ValidaNum(e)
{
	var key = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;

	//alert("Tecla: " + whichCode);
	if(window.Event)
	{ //se trata de Netscape
		if ((whichCode<48 || whichCode>57) && whichCode !=39 && whichCode !=8 && whichCode !=0)
		{
			return false;  // tecla no valida
		}
		else 
			return true;
	}
	else
	{ //se trata de Explorer
		if (((e.keyCode<48 || e.keyCode>57)) || e.keyCode == '17')
		{
			return false;  // tecla no valida
		}
		else
			return true;
	}
}

function validateKey (evt) 
	{
		if (evt.keyCode == '17')
		{
			//alert("You may not cut and paste text here.")
			return false
		}
		return true
	}


function ValidaNumReal(e)
{
	var key = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;

	if(window.Event)
	{ //se trata de Netscape //whichCode=46 (Punto)
		if ((whichCode<48 || whichCode>57) && whichCode!=37 && whichCode!=39 && whichCode!=8 && whichCode!=0 && whichCode!=46)
		{
			return false;  // tecla no valida
		}
		else 
			return true;
	}
	else
	{ //se trata de Explorer
		if (((e.keyCode<48 || e.keyCode>57) && whichCode!=46) || e.keyCode == '17')
		{
			return false;  // tecla no valida
		}
		else 
			return true;
	}
}
/*
function validaMax (objField)
{
	if (objField.value.length > 250 )
	{
			return false;			
	}
	else
		return true;
}
*/

function ValidaLetrasNum(e) {
//codigos de teclado : 37, 39->flechas desplazamiento, Tabulador=9, BackSpace=8 , punto =46, espacio=32,porcentaje=37,ñ->241,Ñ->209, ampersand ->38
var key = '';
var whichCode = (window.Event) ? e.which : e.keyCode;

if(window.Event){ //se trata de Netscape
  if ((whichCode<48 || whichCode>57) && (whichCode<65 || whichCode>90) && (whichCode<97 || whichCode>122) && whichCode !=46 && whichCode !=32 && whichCode !=39 && whichCode !=8 && whichCode !=0 && whichCode !=241 && whichCode !=209){
    return false;  // tecla no valida
   }
   else return true;
}
else{ //se trata de Explorer 
  if ((e.keyCode<48 || e.keyCode>57) && (e.keyCode<65 || e.keyCode>90) && (e.keyCode<97 || e.keyCode>122) && e.keyCode !=32 && e.keyCode !=46 && e.keyCode !=241 && e.keyCode !=209){
    return false;  // tecla no valida
   }
   else return true;
  }
}

function ValidaCadena(textbox) 
{
var cadena = document.getElementById(textbox).value;
if(cadena.length>0)
{
	var j=0;
	var i=0;
	var nueva="";
	for (i=0; i<cadena.length; i++)
	{	
		if ((cadena.charCodeAt(i)<48 || cadena.charCodeAt(i)>57) && (cadena.charCodeAt(i)<65 || cadena.charCodeAt(i)>90) && (cadena.charCodeAt(i)<97 || cadena.charCodeAt(i)>122) && cadena.charCodeAt(i) !=46 && cadena.charCodeAt(i) !=32 && cadena.charCodeAt(i) !=39 && cadena.charCodeAt(i) !=8 && cadena.charCodeAt(i) !=0 && cadena.charCodeAt(i) !=241 && cadena.charCodeAt(i) !=209)
		{
			j++;  // caracteres no validos
			switch(cadena.charCodeAt(i))
			{
				case 225: nueva+="a";
				break;
				case 233: nueva+="e";
				break;
				case 237: nueva+="i";
				break;
				case 243: nueva+="o";
				break;
				case 250: nueva+="u";
				break;
				case 193: nueva+="A";
				break;
				case 201: nueva+="E";
				break;
				case 205: nueva+="I";
				break;
				case 211: nueva+="O";
				break;
				case 218: nueva+="U";
				break;																																				
			}
		}
		else
		{
			nueva+=cadena.charAt(i); //cadena sin caracteres no validos
		}
	}	
	if (j>0)
		document.getElementById(textbox).value=nueva;
}
}

function ValidaLetras(e) 
{
	
	//codigos de teclado : 37, 39->flechas desplazamiento, Tabulador=9, BackSpace=8 , punto =46, espacio=32,porcentaje=37,ñ->241,Ñ->209, ampersand ->38
	var key = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;
	
	if(window.Event) //se trata de Netscape
	{
        if((whichCode<65 || whichCode>90) && (whichCode<97 || whichCode>122) && whichCode!=46 && whichCode!=32 && whichCode!=39 && whichCode!=8 && whichCode!=0 && whichCode!=241 && whichCode!=209)
		{
			return false;  // tecla no valida
		}
		else 
		{
			return true; //tecla valida
		}
	}
	else //se trata de Explorer 
	{
        if((whichCode<65 || whichCode>90) && (whichCode<97 || whichCode>122) && whichCode!=46 && whichCode!=32 && e.keyCode!=241 && e.keyCode!=209)
		{
			return false;  // tecla no valida
		}
		else 
		{
			return true; //tecla valida
		}
	}
}

function ECurrency(e) 
{
	//codigos de teclado : 37, 39->flechas desplazamiento, Tabulador=9, BackSpace=8 , punto =46, espacio=32,porcentaje=37,ñ->241,Ñ->209, ampersand ->38
	var key = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;

	if(window.Event) //se trata de Netscape
	{
        if((whichCode<65 || whichCode>90) && (whichCode<97 || whichCode>122) && whichCode!=46 && whichCode!=32 && whichCode!=39 && whichCode!=8 && whichCode!=0 && whichCode!=241 && whichCode!=209)
		{
			return false;  // tecla no valida
		}
		else 
		{
			return true; //tecla valida
		}
	}
	else //se trata de Explorer 
	{
        if((whichCode<65 || whichCode>90) && (whichCode<97 || whichCode>122) && whichCode!=46 && whichCode!=32 && e.keyCode!=241 && e.keyCode!=209)
		{
			return false;  // tecla no valida
		}
		else 
		{
			return true; //tecla valida
		}
	}
}


function Longitud(field,maxlimit) {
	if (window.event.keyCode == "54" || window.event.keyCode == "219" ||
		window.event.keyCode == "226" || window.event.keyCode == "227" 	
	){
		window.event.keyCode = 0;
		event.returnValue=false;
	}	
	if (field.value.length > maxlimit)
	field.value = field.value.substring(0, maxlimit);	
}

function ValContinuar(){
	/*if(document.frmSedi10.rdresp10.checked==true){
		document.frmSedi10.rdresp10.checked=false;   
		document.frmSedi10.button2.disabled=true;
	}*/
}

function PrecioDescuento(precio, desc){
	var res = 0;
	res = precio - (precio * (desc/100));
	//res = precio - (desc * (precio/100));
	document.Solicitudes.txt_real.value = res;
}

//funcion para aceptar solo valores numericos y letras en el textbox
function acceptCaracteres(e)
{

	tecla = (document.all) ? e.keyCode : e.which; 
	
	if (tecla!=92 && tecla!=124 && tecla!=60 &&  tecla!=62) return true; //Tecla de retroceso
	patron = /\w/; //Acepta números y letras 
	te = String.fromCharCode(tecla); 
	return patron.test(te); 
} 	




//Mascara de Fechas
                                    var reOneOrMoreDigits = /[\d+]/;
                                    var reNoDigits = /[^\d]/gi;
                                    function doMask(textBox) 

                                    {
                                                var keyCode = event.which ? event.which : event.keyCode;
                                                // enter, backspace, delete and tab keys are allowed thru
                                                if(keyCode == 13 || keyCode == 8 || keyCode == 9 || keyCode == 46) return true;
                                                // get character from keyCode....dealing with the "Numeric KeyPad" 
                                                // keyCodes so that it can be used
                                                var keyCharacter = cleanKeyCode(keyCode);
                                                // grab the textBox value and the mask
                                                var val = textBox.value;
                                                var mask = textBox.mask;
                                                // simple Regex to check if key is a digit
                                                if(reOneOrMoreDigits.test(keyCharacter) == false)
                                                            return false;
                                                // get value minus any masking by removing all non-numerics
                                                val = val.replace(reNoDigits,'');                             
                                                // add current keystroke
                                                val += keyCharacter;
                                                // mask it...val holds the existing TextBox.value + the current keystroke
                                                textBox.value = val.maskValue(mask);
                                                setCaretAtEnd(textBox);
                                                return false;
                                    }

                                    // puts starting chars in field
                                    function onFocusMask(textBox) 
                                     {
                                                var val = textBox.value;
                                                var mask = textBox.mask;
                                                if(val.length == 0 || val == null) 

                                                {
                                                            var i = mask.indexOf('#');
                                                            textBox.value = mask.substring(0,i);
                                                }
                                               setCaretAtEnd(textBox);
                                                // set just in case.
                                               textBox.maxlength = mask.length;
                                    }

                                    // blank field if no digits entered

                                    function onBlurMask(textBox) 

                                                {
                                                           var val = textBox.value;
                                                          // if no digits....nada entered.....blank it.
                                                            if(reOneOrMoreDigits.test(val) == false) {
                                                            textBox.value = '';
                                                }

                                    }

                                    String.prototype.maskValue = function(mask) 
                                    {
                                                var retVal = mask;
                                                var val = this;
                                                //loop thru mask and replace #'s with current value one at a time
                                                // better way of doing this ???
                                                for(var i=0;i<val.length;i++) 
                                                {
                                                            retVal = retVal.replace(/#/i, val.charAt(i));
                                                }
 
                                                // get rid of rest of #'s
                                                retVal = retVal.replace(/#/gi, "");
                                                return retVal;
                                    }
                                    // The Numeric KeyPad returns keyCodes that ain't all that workable.
                                    //
                                    // ie: KeyPad '1' returns keyCode 97 which String.fromCharCode converts to an 'a'.
                                    //
                                    // This cheesy way allows the Numeric KeyPad to be used
                                    function cleanKeyCode(key)
                                    {
                                                switch(key)
                                                {
                                                            case 96: return "0"; break;
                                                            case 97: return "1"; break;
                                                            case 98: return "2"; break;
                                                            case 99: return "3"; break;
                                                            case 100: return "4"; break;
                                                            case 101: return "5"; break;
                                                            case 102: return "6"; break;
                                                            case 103: return "7"; break;
                                                            case 104: return "8"; break;
                                                            case 105: return "9"; break;
                                                            default: return String.fromCharCode(key); break;
                                                }
                                    }
                                   // From:

                                    function setCaretAtEnd (field) 

                                    {
                                               if (field.createTextRange) 

                                                {
                                                            var r = field.createTextRange();
                                                            r.moveStart('character', field.value.length);
                                                             r.collapse();
                                                            r.select();
                                                }

                                    }
function esDigito(sChr){
var sCod = sChr.charCodeAt(0);
return ((sCod > 47) && (sCod < 58));
}
function valSep(oTxt){
var bOk = false;
bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
return bOk;
}
function finMes(oTxt){
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
var nRes = 0;
switch (nMes){
case 1: nRes = 31; break;
case 2: nRes = 29; break;
case 3: nRes = 31; break;
case 4: nRes = 30; break;
case 5: nRes = 31; break;
case 6: nRes = 30; break;
case 7: nRes = 31; break;
case 8: nRes = 31; break;
case 9: nRes = 30; break;
case 10: nRes = 31; break;
case 11: nRes = 30; break;
case 12: nRes = 31; break;
}
return nRes;
}
function valDia(oTxt){
var bOk = false;
var nDia = parseInt(oTxt.value.substr(0, 2), 10);
bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
return bOk;
}
function valMes(oTxt){
var bOk = false;
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
bOk = bOk || ((nMes >= 1) && (nMes <= 12));
return bOk;
}
function valAno(oTxt){
var bOk = true;
var nAno = oTxt.value.substr(6);
bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
if (bOk){
for (var i = 0; i < nAno.length; i++){
bOk = bOk && esDigito(nAno.charAt(i));
}
}
return bOk;
}
function valFecha(oTxt){
var bOk = true;
if (oTxt.value != ""){
bOk = bOk && (valAno(oTxt));
bOk = bOk && (valMes(oTxt));
bOk = bOk && (valDia(oTxt));
bOk = bOk && (valSep(oTxt));
if (!bOk){
alert("Fecha inválida");
oTxt.value = "";
oTxt.focus();
}
}
}

function mesMayor(ddl1, ddl2, ddlsender)
{
	if (parseFloat(document.getElementById(ddl1).value)>parseFloat(document.getElementById(ddl2).value))
	{
		alert("El primer mes debe der menor o igual que el segundo.");		
		if (ddl1==ddlsender)
		{	
			document.getElementById(ddl1).value=document.getElementById(ddl2).value
		}
		else if (ddl2==ddlsender)
		{
			document.getElementById(ddl2).value=document.getElementById(ddl1).value
		}
		else
		{
			document.getElementById(ddl1).value=1;
			document.getElementById(ddl2).value=12;
		}				
	}
}

function detectaNavegador()
{
	var navegador = navigator.appName 
	if (navegador != "Microsoft Internet Explorer") 
		location.href="../pagOut.aspx";
}

function ClearHtmlTags()	   {
			for(var i=0;i<document.forms[0].elements.length;i++)
			{
				if (document.forms[0].elements[i].type == 'text' || document.forms[0].elements[i].type == 'textarea')
				{
					if (document.forms[0].elements[i].value.indexOf('<') >= 0)
					{
						do
						{
							document.forms[0][i].value = document.forms[0].elements[i].value.replace('<','&lt;')
							}
						while (document.forms[0].elements[i].value.indexOf('<') >= 0);
					}
	             
					if (document.forms[0].elements[i].value.indexOf('>') >= 0)
					{    
						do
						{
							document.forms[0][i].value = document.forms[0].elements[i].value.replace('>','&gt;')
							}
						while (document.forms[0].elements[i].value.indexOf('>') >= 0);
					}
					if (document.forms[0].elements[i].value.indexOf('\'') >= 0)
					{    
						do
						{
							document.forms[0][i].value = document.forms[0].elements[i].value.replace('\'','')
							}
						while (document.forms[0].elements[i].value.indexOf('\'') >= 0);
					}
				}
			}
		}
		
function frm02send(pIdGP, pIdDep, pNombre, pAPaterno, pAMaterno, pCURP, pTipoSP, pTipoDeclaracion, pAnio, pFINI, pFFIN, pIDDeclaracion, pIDServidor, pAction)
	{
	    
	    document.frm02.txt_IdGP.value = pIdGP;
	    document.frm02.txt_IdDep.value = pIdDep;
	    document.frm02.txt_Nombre.value = pNombre;
	    document.frm02.txt_APaterno.value = pAPaterno;
	    document.frm02.txt_AMaterno.value = pAMaterno;
	    document.frm02.txt_CURP.value = pCURP;
	    document.frm02.txt_TipoSP.value = pTipoSP;
	    document.frm02.txt_TipoDeclaracion.value = pTipoDeclaracion;
	    document.frm02.txt_Anio.value = pAnio;
	    document.frm02.txt_FINI.value = pFINI;
	    document.frm02.txt_FFIN.value = pFFIN;
	    document.frm02.txt_IDDeclaracion.value = pIDDeclaracion;
	    document.frm02.txt_IDServidor.value = pIDServidor;
	    document.frm02.action = pAction;
	    document.frm02.submit();
	}
	
function ventana(fin){
    var propio = 'width=700, height=467, resizable=yes, scrollbars=1, top=150, left=200';
    window.open(fin, 'Reports', propio);
} 

function sndMsg(ejemplo)
{
    alert(ejemplo);
}

function formatCurrency(num) {
            num = num.toString().replace(/\$|\,/g,'');
            if(isNaN(num))
            num = "0";
            sign = (num == (num = Math.abs(num)));
            num = Math.floor(num*100+0.50000000001);
            cents = num%100;
            num = Math.floor(num/100).toString();
            if(cents<10)
            cents = "0" + cents;
            for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
            num = num.substring(0,num.length-(4*i+3))+','+
            num.substring(num.length-(4*i+3));
            return (((sign)?'':'-') + '$' + num + '.' + cents);
        }