Ofuscacion de js

Tengo realizada la interfaz grafica de un punto de venta especialmente el area de ventas casi en su totalidad con js son casi mil lineas, a mi ver funciona muy bien, el problema es que haciendo click en la referencia a mi codigo js se descarga completamente.

como puedo ofuscar ese codigo de una manera probada y funcional.

otra duda es que recomendacion (hay algunas normas?) me harian para publicar un demo de mi POS para que me lo critiquen constructivamente.

saludos cordiales

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Necesitas un compresor de

Necesitas un compresor de javascript, busca: javascript minification. No es un ofuscador tal cual, pero el codigo resultante es bastante dificil de leer al reducir su tamanio.

Imagen de ezamudio

formateador

y luego pasas ese código minificado por un formateador o prettifier y regresa casi a su estado original, no?

Yo ni me preocuparía por eso. Javascript no se compila, tienes que enviar el código al browser y todo mundo lo puede ver. Incluso eso de minificarlo está orientado no a ofuscar sino a reducir el tamaño de los archivos para disminuir el tiempo de transmisión y el uso de ancho de banda.

Imagen de arterzatij

YUI

take a look

¿Por qué esconder el código?

Bueno, lo mejor que puedes haer si quieres que no entiendan tu código es programarlo bien. Muchos no le entendreán y esos somos los que programamos mal jejejejeje  

No ya en serio. Una razón por la cuál vería conveniente esconder el código es en la consulta/registro de información pero eso se compensa con validaciones del lado del servidor. Algo que reconozco de Struts y que me gusta es que en cada form te genera un Token, si ese token no es válido, simplemente no realiza la petición (generalmente utilizado para evitar enviar el mismo form mas de una vez pero con maña le puedes dar mayor usabilidad). Pero pues ya ves, eso es "server side", no "client side". Por alguna otra razón que no hayan aqui mencionado pos no creo que sea viable lo que pretendes con tu javascript.