function Checa()
{
	var maxLen;
	if( esIE )
		maxLen = 0;
	else
		maxLen = 1;
	if( window.history.length > maxLen )
	{
		//alert("Ya has enviado este cuestionario en la sesion actual.\n\nCierra la ventana para poder enviar un nuevo cuestionario.");
		history.forward();
		return false;
	}
	return true;
}
function AbreVentana( url )
{
	var height=400,width=500;
	var left = (window.screen.width/2) - (width/2);
	var top = (window.screen.height/2) - (height/2);
	window.open( url, 'Cuestionario', "height="+height+",width="+width+",status=0,scrollbars=0,menubar=0,resizable=0,left=" + left + ",top=" + top );
}
function checkKey(evt)
{
	try
	{
		evt = (evt) ? evt : window.event;
		var charCode = (evt.which) ? evt.which : evt.keyCode;
		if (evt)
		{
			if (evt.keyCode == 8 && (evt.srcElement.type != "text" && 
				evt.srcElement.type != "textarea" && evt.srcElement.type != "password" &&
				evt.srcElement.id != "rteAsunto" ))
			{
				cancelKey(evt);
			}
			else if (evt.keyCode == 8 && evt.srcElement.disabled == true)
			{
				cancelKey(evt);
			}
			else if ( charCode == 27 )
			{
				if( confirm("\xBFConfirma que desea cerrar esta ventana?") == 1 )
					window.close();
			}
			/*else if ( charCode == 13)
			{
				if( evt.srcElement.id == "Suga" )
				{
					//No hace nada
				}
				else if( Valida() )
					document.forms[0].submit();
			}*/ 
			else if ( charCode == 116)
			{
				cancelKey(evt);
			}
			else if (evt.ctrlKey && ( charCode == 78 || charCode == 85 || charCode == 82))
			{
				cancelKey(evt);
			}
		}
	}
	catch(e)
	{
		/*No hace nada por que cerraron la ventana padre*/		
	}
}

function cancelKey(evt)
{
	if (evt.preventDefault)
	{
		evt.preventDefault();
        return false;
    }
    else
    {
		evt.keyCode = 0;
        evt.returnValue = false;
    }
}

function MaxLen(obj,len)
		{
			if( obj )
			{
				var _RC=obj.value;
				if(_RC.length>len)
				{
					alert("Longitud maxima alcanzada.");
					obj.value = obj.value.substring(0, len);
				}
			}
		}
				
function trim( obj )
		{
				var cadena = obj.value;
				for(i=0; i<cadena.length; )
				{
					if(cadena.charAt(i)==" ")
						cadena=cadena.substring(i+1, cadena.length);
					else
						break;
				}

				for(i=cadena.length-1; i>=0; i=cadena.length-1)
				{
					if(cadena.charAt(i)==" ")
						cadena=cadena.substring(0,i);
					else
						break;
				}
				cadena = cadena.replace(/\'/g,"");
				obj.value = cadena;
				return cadena;
		}
		
		//Si mandan true, quiere decir que no es obligatorio el correo
		//osea que solo lo revisa si no es vacio
		function EsCorreo( obj, nombre )
		{
			if( EsTextoVacio( obj, nombre, arguments[2] ) )
			{
				if( arguments[2] == null )
					return false;
				else
					return true;
			}
			try
			{
				if( obj )
				{
					if( obj.disabled == false )
					{
						if(! isMail( obj.value ) )
						{
							alert("El correo electronico: \n\n\"" + obj.value + "\"\n\n no es un correo valido.");
							obj.focus();
							return false;
						}
					}
				}
			}
			catch(e)
			{
				alert("El correo electronico: \n\n\"" + obj.value + "\"\n\n no es un correo válido.");
				obj.focus();
				return false;
			}
			return true;
		}
		function EsTextoVacio( obj, nombre )
		{
			if( obj )
			{
				if( obj.disabled == false )
				{
					if( trim( obj )=="" || obj.value==null )
					{						
						if( nombre != null )
						{
							if ( arguments[2] == null )
							{
								alert("El campo: \n\n " + nombre + "\n\n es obligatorio.");
							}
						}
						return true;		
					}
				}				
			}
			return false;
		}
		function EsOpcionVacio( ctrl, nombre )
		{			
			if( ctrl )
			{
				if( ctrl[0].disabled == false )
				{
					for(i=0;i<ctrl.length;i++)
					{
						if(ctrl[i].checked)
						{
							return false;
						}
					}
					alert("Debe seleccionar al menos una respuesta para la pregunta: \n\n " + nombre + "\n ");
					ctrl[0].focus();
					return true;
				}
			}
			return false;	
		}
		function isMail(_email)
		{
			var emailReg = /^[a-z][a-z-_0-9\.]+@[a-z-_=>0-9\.]+\.[a-z]{2,3}$/i
			return emailReg.test(_email);
		}		
		
		function SoloNumeros(evt) {
			evt = (evt) ? evt : window.event;
			var charCode = (evt.which) ? evt.which : evt.keyCode;
			if (charCode > 31 && (charCode < 46 || charCode > 57 || charCode == 47))
			{
				return false;
			}
			return true;
		}
		
		function CambiaFoco(evt, nom) {
			evt = (evt) ? evt : window.event;
			var charCode = (evt.which) ? evt.which : evt.keyCode;
			if (charCode == 13)
			{
				document.forms[0][nom].focus();
			}
			cancelKey(evt);
		}
		
		function Refresca( n, num,tope )
		{
			for( var i=2,j=2;i<=tope;i++,j++)
			{
				if( j <= n )
					document.getElementById(num+i).style.display = '';
				else
					document.getElementById(num+i).style.display = 'none';
			}
		}		
		
		
		 function newChar(obj,len)
		{
			if( obj )
			{
				var _RC=obj.value;
				if(_RC.length>len)
				{
					alert("Has alcanzado la longitud máxima.");
					obj.value = obj.value.substring(0, len);
				}			
				while( obj.value.indexOf("'") >= 0 )
				{
					obj.value = obj.value.replace("'","-");
				}
			}
		}
		
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: "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"
		}
	]

};
//Aqui revisamos si el Explorador es Internet Explorer
BrowserDetect.init();
var esIE = false;
var esMozilla = false;
//set browser vars
if( BrowserDetect.browser == "Explorer" )
	esIE = true;		
