/**
 * Object JAS_CodeLighter
 * 	Simple codelighter designed for JAS_chat application.
 *
 * @author               Andrea Giammarchi
 * @date                 2005/08/11
 * @lastmod              2005/08/11 16:22
 * @version              0.2 - tested with IE 6.0 and FireFox 1.0.6
 */
function JAS_CodeLighter(
	cssclass,	// link CSS classname
	with_smiles	// string where are JAS_chat smiles
) {
	
	/**
	 * Public method
         * 	parse a string and return parsed value
	 */
	function parse(txt) {
		txt = __mail(txt);
		txt = __url(txt);
		txt = __u(txt);
		txt = __i(txt);
		if(typeof(with_smiles) == 'string')
			txt = __smiles(txt, with_smiles);
		return txt;
	}
	
	function __i(txt) {
		var re = new RegExp(/\[i\]([^\2]+)(\[\/i\])/gi);
		txt = txt.replace(re, '<em>$1</em>');
		return txt;
	}
	
	function __u(txt) {
		var re = new RegExp(/\[u\]([^\2]+)(\[\/u\])/gi);
		txt = txt.replace(re, '<span style="text-decoration: underline;">$1</span>');
		return txt;
	}
	
	function __url(txt) {
		var re = new RegExp(/(http[s]?|ftp[s]?):\/\/([^\s]+)/gi);
		txt = txt.replace(re, '<a class="' + cssclass + '" href="$1://$2" title="Site: $1://$2" target="_blank">link</a>');
		return txt;
	}
	
	function __mail(txt) {
		var re = new RegExp(/([a-z0-9]+[\._\-]?)\@([a-z0-9]+[\._\-]?)\.([a-z]{2,6})/gi);
		txt = txt.replace(re, '<a class="' + cssclass + '" href="mailto:$1@$2.$3" title="Mail: $1@$2.$3">mail</a>');
		return txt;
	}
	
	function __smiles(txt, with_smiles) {
		var re = new RegExp(/([^\w]*):(f)([^\w]*)/gi);
		txt = txt.replace(re, '$1<img src="' + with_smiles + 'f.gif" />$3');
		var re = new RegExp(/([^\w]*):(D)([^\w]*)/gi);
		txt = txt.replace(re, '$1<img src="' + with_smiles + 'd.gif" />$3');
		var re = new RegExp(/([^\w]*):(\()([^\w]*)/gi);
		txt = txt.replace(re, '$1<img src="' + with_smiles + '(.gif" />$3');
		var re = new RegExp(/([^\w]*):(\))([^\w]*)/gi);
		txt = txt.replace(re, '$1<img src="' + with_smiles + ').gif" />$3');
		var re = new RegExp(/([^\w]*):(eek)([^\w]*)/gi);
		txt = txt.replace(re, '$1<img src="' + with_smiles + 'eek.gif" />$3');
		var re = new RegExp(/([^\w]*):(sbav)([^\w]*)/gi);
		txt = txt.replace(re, '$1<img src="' + with_smiles + 'sbav.gif" />$3');
		var re = new RegExp(/([^\w]*):(oops)([^\w]*)/gi);
		txt = txt.replace(re, '$1<img src="' + with_smiles + 'oops.gif" />$3');
		var re = new RegExp(/([^\w]*):(zizi)([^\w]*)/gi);
		txt = txt.replace(re, '$1<img src="' + with_smiles + 'zizi.gif" />$3');
		var re = new RegExp(/([^\w]*):(cool)([^\w]*)/gi);
		txt = txt.replace(re, '$1<img src="' + with_smiles + 'cool.gif" />$3');
		var re = new RegExp(/([^\w]*):(mad)([^\w]*)/gi);
		txt = txt.replace(re, '$1<img src="' + with_smiles + 'mad.gif" />$3');
		return txt;
	}
	
	
	this.parse = parse;
}
