function pgdCode(str) {
	var sbody = str;
/* Basic formatting => do not change */
	sbody = highlite(sbody); // highlite first if key is specified before PGD code.
	sbody = sbody.replace(/\[quote\]/gi, "<div class='quote'><b>quote:</b><br><br>").replace(/\[\/quote\]/gi, "</div>");
	sbody = sbody.replace(/\[b\]/gi,"<b>").replace(/\[\/b\]/gi,"</b>").replace(/\[i\]/gi,"<i>").replace(/\[\/i\]/gi,"</i>").replace(/\[u\]/gi,"<u>").replace(/\[\/u\]/gi,"</u>");
	//sbody = sbody.replace(/\[code\]/gi,"<pre>").replace(/\[\/code\]/gi,"</pre>");
	sbody = sbody.replace(/\[ul\]/gi,"<ul>").replace(/\[\/ul\]/gi,"</ul>").replace(/\[ol\]/gi,"<ol>").replace(/\[\/ol\]/gi,"</ol>").replace(/\[\*\]/gi,"<li>")
	sbody = sbody.replace(/\[right\]/gi,"<div align='right'>").replace(/\[\/right\]/gi,"</div>") 
	sbody = sbody.replace(/\[center\]/gi,"<div align='center'>").replace(/\[\/center\]/gi,"</div>") 
	sbody = sbody.replace(/\[left\]/gi,"<div align='left'>").replace(/\[\/left\]/gi,"</div>")
	sbody = sbody.replace(/\[hr\]/gi,"<hr size=\"1\" noshade>")
/* Emoticons */	
	if (NoSmile!="1"){
	sbody = sbody.replace(/\[\:\)\]/gi," <img src=\"image/s1.gif\" align='absmiddle' border=\"0\"> ");
	sbody = sbody.replace(/\[\:D\]/gi," <img src=\"image/s2.gif\" align='absmiddle' border=\"0\"> ");
	sbody = sbody.replace(/\[8D\]/gi," <img src=\"image/s3.gif\" align='absmiddle' border=\"0\"> ");
	sbody = sbody.replace(/\[\;\)\]/gi," <img src=\"image/s4.gif\" align='absmiddle' border=\"0\"> ");
	sbody = sbody.replace(/\[\&\:\]/gi," <img src=\"image/s5.gif\" align='absmiddle' border=\"0\"> ");
	sbody = sbody.replace(/\[\:\@\]/gi," <img src=\"image/s6.gif\" align='absmiddle' border=\"0\"> ");
	sbody = sbody.replace(/\[\:\(\]/gi," <img src=\"image/s7.gif\" align='absmiddle' border=\"0\"> ");
	sbody = sbody.replace(/\[\:\'\(\]/gi," <img src=\"image/s8.gif\" align='absmiddle' border=\"0\"> ");
	sbody = sbody.replace(/\[\&gt;:\]/gi," <img src=\"image/s9.gif\" align='absmiddle' border=\"0\"> ");	
	sbody = sbody.replace(/\[\:o\]/gi," <img src=\"image/s10.gif\" align='absmiddle' border=\"0\"> ");
	sbody = sbody.replace(/\[X\(]/gi," <img src=\"image/s11.gif\" align='absmiddle' border=\"0\"> ");
	sbody = sbody.replace(/\[\:\-]/gi," <img src=\"image/s12.gif\" align='absmiddle' border=\"0\"> ");
	sbody = sbody.replace(/\[8\|]/gi," <img src=\"image/s13.gif\" align='absmiddle' border=\"0\"> ");	
	sbody = sbody.replace(/\[\&o]/gi," <img src=\"image/s14.gif\" align='absmiddle' border=\"0\"> ");	
	}
/* Advanced formatting => customize if you want */
	sbody = sizeTag(sbody);
	sbody = FontFacing(sbody);
	sbody = FontColor(sbody);
	sbody = SoundEmbeding(sbody);
	if (NoImage!="1"){
	sbody = imageTag(sbody);
	}
	sbody = AutoLink(sbody, "email");
	sbody = AutoLink(sbody, "link");
	sbody = LinkName(sbody);
	sbody = LinkTag(sbody);
	sbody = PreCode(sbody);
	return sbody;
}

function sizeTag(strInput){ // font size 
	var strOutput = ""; 
	var re = /\[size=([1-7])\]/gi ;
	strOutput = strInput.replace(re,"<font size=\"$1\">").replace(/\[\/size\]/gi,"</font>");
	return strOutput;
}

function FontColor(strInput){ // For displaying font color [color=][/color]
	var strOutput = ""; 
	var re = /\[color=([\#a-z0-9]+)\]/gi ; 
	strOutput = strInput.replace(re,"<font color=\"$1\">").replace(/\[\/color\]/gi,"</font>");
	return strOutput ;	
}

function imageTag(strInput){ // image display
	var strOutput = ""; 
	var re = /\[image\]((http:\/\/|ftp:\/\/|https:\/\/)[^\[\]]+)\[\/image\]/gi ; 
	strOutput = strInput.replace(re,"<img border=\"0\" align=\"absmiddle\" src=\"$1\" />");
	re = /\[img\]((http:\/\/|ftp:\/\/|https:\/\/)[^\[\]]+)\[\/img\]/gi ; 
	strOutput = strOutput.replace(re,"<img border=\"0\" align=\"absmiddle\" src=\"$1\" />");
	return strOutput;
}

function AutoLink(strInput,stype){ // For autolinking email@email.com; http://...; ftp://...; https://...
	var strOutput = ""; 
	var re;
	if(stype=="email"){
		re = /\s+([a-z0-9][\w\.\-]*[a-z0-9]\@[a-z0-9][\w\.\-]*[a-z]\.[a-z]{2,4})/gi ;
		strOutput = strInput.replace(re," <a href=\"mailto:$1\">$1</a>");
	}

	else if(stype=="link"){
		re = /\s+((http:\/\/|ftp:\/\/|https:\/\/)[\w\.\-\/\?\=\&\+\%\#\@\~\:\;\,]+)/gi ;
		strOutput = strInput.replace(re," <a target=\"_blank\" href=\"$1\">$1</a>");
		re = /\s+([w]{3}\.{1}[\w\.\-\/\?\=\&\+\%\#\@\~\:\;\,]+)/gi;
		strOutput = strOutput.replace(re," <a target=\"_blank\" href=\"http://$1\">$1</a>");
	}

	return strOutput ;
}

function LinkName(strInput){ // For linking [link=][/link] 
	var strOutput = ""; 
	var re = /\[link=((http:\/\/|ftp:\/\/|https:\/\/)[^\[\]]+)\]([^\[\]]+)\[\/link\]/gi ;
	strOutput = strInput.replace(re,"<a target=\"_blank\" href=\"$1\">$3</a>");
	re = /\[url=\&quot\;((http:\/\/|ftp:\/\/|https:\/\/)[^\[\]]+)\&quot\;\]([^\[\]]+)\[\/url\]/gi;
	strOutput = strOutput.replace(re,"<a target=\"_blank\" href=\"$1\">$3</a>"); 
	return strOutput ;	
}

function LinkTag(strInput){ // For linking [link][/link]
	var strOutput = ""; 
	var re = /\[link\]((http:\/\/|ftp:\/\/|https:\/\/)[^\[\]]+)\[\/link\]/gi ; 
	strOutput = strInput.replace(re,"<a target=\"_blank\" href=\"$1\">$1</a>");
	re = /\[url\]((http:\/\/|ftp:\/\/|https:\/\/)[^\[\]]+)\[\/url\]/gi ;
	strOutput = strOutput.replace(re,"<a target=\"_blank\" href=\"$1\">$1</a>");
	return strOutput ;	
}

/*
New changes starts here
*/

function SoundEmbeding(strInput) { // For sound embedding
	var strOutput = ""; 
	var re = /\[embed\]((http:\/\/|ftp:\/\/|https:\/\/)[^\[\]]+)\[\/embed\]/gi ; 
	strOutput = strInput.replace(re,"<embed src=\"$1\" hidden=\"false\" autostart=\"false\" />");
	return strOutput ;	
}

function FontFacing(strInput){ // font size 
	var strOutput = ""; 
	var re = /\[font=\&quot\;([^\[\]]+)\&quot\;\]([^\[\]]+)\[\/font\]/gi ;
	strOutput = strInput.replace(re,"<font face=\"$1\">$2</font>")
	return strOutput;
}

function PreCode(strInput){
	var strOutput = ""; 
	var re = /\[code\]([^\[\]]+)\[\/code\]/gi ;
	strOutput = strInput.replace(re,"<pre>$1</pre>")
	return strOutput;
}
