﻿

		function l33t(inBuf,extreme,grammatical) {
			/*
			English-to-l33t Translator (c) 2004 by Lee W. Fastenau
			Feel free to use and/or modify this code as long as you don't make money from it.
			This attribution must stay.  Stay, it must.  Yes.
			*/
			inBuf = inBuf.replace (/\b(hacker|coder|programmer)(s|z)?\b/gi,'haxor$2');
			inBuf = inBuf.replace (/\b(hack)(ed|s|z)?\b/gi,'haxor$2');
			inBuf = inBuf.replace (/\b(luv|love|wuv|like)(s|z)?\b/gi,'wub$2');
			inBuf = inBuf.replace (/\b(software)(s|z)?\b/gi,'wares');
			inBuf = inBuf.replace (/\b((is|are|am) +(cool|wicked|awesome|great))\b/gi,'rocks');
			inBuf = inBuf.replace (/\b((is|are|am) +(\w+) +(cool|wicked|awesome|great))\b/gi,'$3 rocks');
			inBuf = inBuf.replace (/\b(rock)(s|z)?\b/gi,'roxor$2');
			inBuf = inBuf.replace (/\b(porn(o(graph(y|ic))?)?)\b/gi,'pron');
			inBuf = inBuf.replace (/\b(loser|lamer|dork|jerk)\b/gi,'llama');
			inBuf = inBuf.replace (/\b(what)\b/gi,'wot');
			inBuf = inBuf.replace (/\b(hooray|yippee)\b/gi,'woot');
			inBuf = inBuf.replace (/\b(own)(ed|s|z)?\b/gi,'ownzer$2');
			inBuf = inBuf.replace (/\b(suck)(ed|s|z)?\b/gi,'suxor$2');
			inBuf = inBuf.replace (/\b(was|were)/gi,'wuz');
			inBuf = inBuf.replace (/\b(elite)/gi,'leet');
			inBuf = inBuf.replace (/\byou\b/gi,'joo');
			inBuf = inBuf.replace (/\b(man|dude|guy|boy)(s|z)?\b/gi,'dood$2');
			inBuf = inBuf.replace (/\b(men)\b/gi,'doods');
			inBuf = inBuf.replace (/\bstarbucks?\b/gi,'bizzo');
			/* additional l33t */
			inBuf = inBuf.replace (/\b(the)\b/gi,'teh');
			if (!grammatical) {
				inBuf = inBuf.replace (/\bare\b/gi,'R');
				inBuf = inBuf.replace (/\bbe\b/gi,'b');
				inBuf = inBuf.replace (/\bto\b/gi,'2');
				inBuf = inBuf.replace (/\ba\b/gi,'@');
				inBuf = inBuf.replace (/a/gi,'4');
				inBuf = inBuf.replace (/\bfor\b/gi,'4');
				inBuf = inBuf.replace (/e/gi,'3');
				inBuf = inBuf.replace (/i/gi,'1');
				inBuf = inBuf.replace (/o/gi,'0');
				inBuf = inBuf.replace (/s\b/gi,'z');
				inBuf = inBuf.replace (/s/gi,'5');
				inBuf = inBuf.replace (/t/gi,'7');
				if (extreme) {
					// If you thought "normal" l33t was bad...
					inBuf = inBuf.replace (/f/gi,'|=');
					inBuf = inBuf.replace (/g/gi,'6');
					inBuf = inBuf.replace (/h/gi,'#');
					inBuf = inBuf.replace (/k/gi,'|<');
					inBuf = inBuf.replace (/l/gi,'|_');
					inBuf = inBuf.replace (/m/gi,'|\\/|');
					inBuf = inBuf.replace (/n/gi,'|\\|');
					inBuf = inBuf.replace (/u/gi,'|_|');
					inBuf = inBuf.replace (/v/gi,'\\/');
					inBuf = inBuf.replace (/w/gi,'\\/\\/');
					inBuf = inBuf.replace (/\b3x/gi,'X');
					inBuf = inBuf.replace (/y/gi,'\'/');
					inBuf = inBuf.replace (/z/gi,'2');
				}
			}
			return inBuf;
		}
		
		function doSubmit() {
			document.form1.leet.value=l33t(document.form1.english.value,document.form1.translateMode[1].checked,document.form1.translateMode[2].checked);
		}
		
		function doReset() {
			document.form1.english.value='Over the hills and far away, he swears he will return one day... (Gary Moore)';
		}

		function doClear() {
			document.form1.english.value='';
		}
		
		window.onload = doReset;





