function missManners(dict,mod,obj,txt){

			//dict = a,b,m,q,bm,bq,mq (a=all,b==bdw,m=mbw,q=qw
			//mod = 1|0 - determines how strict, and which dictionaries to use, with true being less strict
			//txt = the text to check
			//obj = (optional) the element for placing the warning in
			var bdw = ["\\bass(|hole)\\b","bastard","bitch","blumpkin","brain banger","bukakke","bull(|-|\\s|)dyke","camel(|-|\\s|)jockey","carpet(|-|\\s|)muncher","cleveland steamer","clit","cock(|-|\\s|)sucker","cootch","cooter","cornhole","cracka","cunnilingus","cumbucket","cunt","dago\\b","dick(|-|\\s|)head","dingleberry","dirty sanchez","donkey punch","dutch oven","fag(|got)","(|[\\w]+[^f])fuck(|er|in|ing)","fudge(|-|\\s|)packer","goatse","gook","gringo","love mayo","jiggaboo","jizz","(|k)nobhead","kike","moose knuckle","pecker","poontang","poonanni","pussy","queef","queeb","moon cricket","muff(|-|\\s|)div(|e|er|ing)","nigger","paki[^(stan)]","papist","perforate the colon","porch monkey","prigger","raghead","rectus ranger","relieve the tampon","rim(|-|\\s|)job","rusty trombone","sand nigger","schlong","shit(|ter|ty|ter)","skeet","skank","skin flute","slut(|ty)","snatch","spank the monkey","spic","sqwa","squaw","taste the waste","teabagging","tip drill","towel head","tw(a|o)t","vart","wanker","wetback","wo(g|p)","beaner","blow(|-|\\s)job","cock","\\bcoon","(|god)damn(|ed)","dyke","fart","jack(|-)off","\\bho\\b","honky","hot carl","jerk(|-)off","muff","piss","queer","smut","wanker","angry dragon","dildo","retard","brown eye","camel hump","camel toe","chink","chicken(|-|\\s)head","douche","dick","jelly doughnut","(|k)nob","mick","money(|-|\\s)shot","pearl necklace","pink sock","prick","toss the salad"];
			var mbw = ["beaner","blow(|-|\\s)job","cock","\\bcoon","(|god)damn(|ed)","dyke","fart","jack(|-)off","\\bho\\b","honky","hot carl","jerk(|-)off","muff","piss","queer","smut","wanker"];
			var bdw_pq = ["crisse","c(\u00E2|a)lisse","\\bosti\\b","cibo(\u00E2|a)re","ciboire","tabarnak","tabarnac","tabernacle","sacrament","sacrement","viarge", "vierge","bapt(\u00EA|e)me","Saint Chr(\u00EA|e)me","chrism","calvaire","ciarge","cierge","maudit","sacristie","(\u00E9|e)tole","J(\u00E9|e)sus"];
			var mbw_pq = ["tabarnouche","tabarslaque","simonac","simoniac","tabarouette","tobor","tabarnache","barnak","tabarnane","tabarnic","tabeurn","criff","sacramouille","cibolle","cibollaque","ciboule","ciboulette","cibouleau","c(\u00E2|a)line","c\u00E2lif","c(\u00E2|a)lique","batinse","cristie","ostique","calv\u00E2sse","calvinse","maudine","mautadite","mautadine","m\u00F4sus"];
			var qw = ["angry dragon","dildo","retard","brown eye","camel hump","camel toe","chink","chicken(|-|\\s)head","douche","dick","jelly doughnut","(|k)nob","mick","money(|-|\\s)shot","pearl necklace","pink sock","prick","toss the salad"];
			var qw_pq = ["calif\\b","estifie","\\bsti\\b","\\besti\\b","\\bcrime\\b","\\bstick\\b"];

			var bdw_chk = bdw; //.concat(bdw_pq);
			var mbw_chk = mbw; //.concat(mbw_pq);
			var qw_chk = qw; //.concat(qw_pq);
			var arr = new Array();
			
			switch(dict){
				case "b":
					arr = bdw_chk;
					break;
				case "bm":
				case "mb":
					arr = bdw_chk.concat(mbw_chk);
					break;
				case "bq":
				case "qb":
					arr = bdw_chk.concat(qw_chk);
					break;
				case "m":
					arr = mbw_chk;
					break;
				case "mq":
				case "qm":
					arr = mbw_chk.concat(qw_chk);
					break;
				case "q":
					arr = qw_chk;
					break;
				case "a":
					arr = bdw_chk; //.concat(mbw_chk,qw_chk)
					break;
			}			
			
			var pattern_start = (mod==0) ? "" : "\\b";
			var pattern_end = (mod==0) ? "(|s)" : "(|s)\\b";
			var t = "";
			var badWords = [];
			for(cw=0;arr.length>cw;cw++){
				regex = new RegExp(pattern_start+arr[cw]+pattern_end, "gi");
				m = regex.exec(txt);
				if(m!=null){
					badWords.push(" " + arr[cw] + " "); 
					for(fw=0;m.length>fw;fw++) { }
			    //for(fw=0;m.length>fw;fw++) { t += m[fw]+" "; }
					//addWarning(obj,t+"("+arr[cw]+") ");				
				}
			}
			if (badWords.length > 0) {
				var BadwordsAlert = "";
				for(i=0;badWords.length>i;i++){	BadwordsAlert = BadwordsAlert + badWords[i];}
					
				alert("The content of your message appears to\ncontain material that violates our terms of use.  \n\n     Please revise your comment. \n\n" + badWords.length + " bad words:" + BadwordsAlert); // ); //
				return false;
			} else {
				return true;
			}
}		