
function br2nl(str) {
	return str.replace(/<br\s*\/?>/mg,"\n");
  };

function nl2br (str, is_xhtml) {
	// http://kevin.vanzonneveld.net
	// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   improved by: Philip Peterson
	// +   improved by: Onno Marsman
	// +   improved by: Atli Þór
	// +   bugfixed by: Onno Marsman
	// +      input by: Brett Zamir (http://brettz9.blogspot.com)
	// +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// *     example 1: nl2br('Kevin\nvan\nZonneveld');
	// *     returns 1: 'Kevin<br />\nvan<br />\nZonneveld'
	// *     example 2: nl2br("\nOne\nTwo\n\nThree\n", false);
	// *     returns 2: '<br>\nOne<br>\nTwo<br>\n<br>\nThree<br>\n'
	// *     example 3: nl2br("\nOne\nTwo\n\nThree\n", true);
	// *     returns 3: '<br />\nOne<br />\nTwo<br />\n<br />\nThree<br />\n'
 
	var breakTag = '';
 
	breakTag = '<br />';
	if (typeof is_xhtml != 'undefined' && !is_xhtml) {
		breakTag = '<br>';
	}
 
	return (str + '').replace(/([^>]?)\n/g, '$1'+ breakTag +'\n');
}	
function strip_tags(str, allowed_tags) {
	
	var key = '', allowed = false;
	var matches = [];
	var allowed_array = [];
	var allowed_tag = '';
	var i = 0;
	var k = '';
	var html = '';
 
	var replacer = function(search, replace, str) {
		return str.split(search).join(replace);
	};
 
	// Build allowes tags associative array
	if (allowed_tags) {
		allowed_array = allowed_tags.match(/([a-zA-Z]+)/gi);
	}
  
	str += '';
 
	// Match tags
	matches = str.match(/(<\/?[\S][^>]*>)/gi);
 
	// Go through all HTML tags
	for (key in matches) {
		if (isNaN(key)) {
			// IE7 Hack
			continue;
		}
 
		// Save HTML tag
		html = matches[key].toString();
 
		// Is tag not in allowed list? Remove from str!
		allowed = false;
 
		// Go through all allowed tags
		for (k in allowed_array) {
			// Init
			allowed_tag = allowed_array[k];
			i = -1;
 
			if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+'>');}
			if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+' ');}
			if (i != 0) { i = html.toLowerCase().indexOf('</'+allowed_tag)   ;}
 
			// Determine
			if (i == 0) {
				allowed = true;
				break;
			}
		}
 
		if (!allowed) {
			str = replacer(html, "", str); // Custom replace. No regexing
		}
	}
 
	return str;
}