
//************************************************************************************************
//         determina: navegador, version y sistema operativo
        
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

                

//*********************fin: determina: navegador, version y sistema operativo***************************************************************************
    
    function esInteger(e){       
        //alert ("CharCode: " + e.keyCode);               
        if (BrowserDetect.browser=='Explorer'){
             var charCode         
             charCode = e.keyCode               
             if ( (charCode >= 48 && charCode <= 57) || charCode == 8 || charCode == 0 ) {           
                return true;
             }
             else{                 
                return false;
             }
        }else{               
              var nav4 = window.Event ? true : false;
              var key = nav4 ? e.which : e.keyCode;         
              return (!(key > 31 && (key < 48 || key > 57)));
        }
        
    }  
      
        
      function esDecimal(e){
         var charCode         
         charCode = e.keyCode

         if ( (charCode >= 48 && charCode <= 57) || charCode == 8 || charCode == 0 || charCode == 44 || charCode == 46) {
            //    alert ("CharCode: " + charCode);
            return true;
         }
         else{      
            //alert("Por favor teclee solo números en este campo!");
            //alert ("CharCode: " + charCode);            
            return false;
         }
      }  
      
      function isEmailAddress(theElement){
        var s = theElement.value;
        //var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+.[A-Za-z0-9_.]+[A-za-z]$/;
        var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        if (s.length == 0 ) return true;
            if (filter.test(s))
            return true;
        else
            alert("Igrese una direcci\xf3n de e-mail v\xe1lida.");
            theElement.focus();
        return false;
      } 
      
      //num = valor ingresado en el textbox
      //e = Nombre del textbox para asignarle despues el valor
      function validaDecimal($num, e) 
      { 
            //alert(parseFloat($num));
            //alert(e);
            element = document.getElementById(e);
            if (isNaN($num) == true)
                element.value = '';
       }
       
      function SiValidaDecimal($num, e) 
      { 
            //alert(parseFloat($num));
            //alert(e);
            element = document.getElementById(e);
            if (isNaN($num) == true)
                return false;
            return true;
       }
       
       
      //***************validación agregada solo anda para el formato dd/mm/aaaa**************************************

        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) == "/"));
            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 != "")
	        {
        		
		        if(oTxt.value.length == 8)
		        {
			        for (j=0;j<oTxt.value.length;j++)
			        {
				        if ( oTxt.value.charAt(j) == "0" || oTxt.value.charAt(j) == "1" || oTxt.value.charAt(j) == "2" || oTxt.value.charAt(j) == "3" || oTxt.value.charAt(j) == "4" || oTxt.value.charAt(j) == "5" || oTxt.value.charAt(j) == "6" || oTxt.value.charAt(j) == "7" || oTxt.value.charAt(j) == "8" || oTxt.value.charAt(j) == "9")
				        {
        					
				        }
				        else
				        {
					        oTxt.value = "";
				        }
			        }			

			        oTxt.value = oTxt.value.substr(0,2) + "/" + oTxt.value.substr(2,2) + "/" + oTxt.value.substr(4,7)
		        }
        		
        		
		        bOk = bOk && (valAno(oTxt));
		        bOk = bOk && (valMes(oTxt));
		        bOk = bOk && (valDia(oTxt));
		        bOk = bOk && (valSep(oTxt));
		        if (!bOk)
		        {
			        alert("Fecha inv\xe1lida");
			        oTxt.value = "";
			        oTxt.focus();
		        }
	        }
        }

        //***************fin validación agregada**************************************
        

