function rei_replace (regexp, replacement, subject){
    	result = subject.replace( new RegExp(regexp,'gi'),  replacement);
    	return result;
	}

function toHtml(text){
    	// Convert near-URL tags to HTML
    	text = rei_replace ("([\n ])([a-z]+?)://([^, \n\r]+)", "$1<a href=\"$2://$3\" target=\"_blank\">$2://$3</a>", text);
    	text = rei_replace ("([\n ])www\\.([a-z0-9\-]+)\.([a-z0-9\\-.\\~]+)((?:/[^, \n\r]*)?)", "$1<a href=\"http://www.$2.$3$4\" target=\"_blank\">www.$2.$3$4</a>", text);
    	text = rei_replace ("([\n ])([a-z0-9\\-_.]+?)@([^, \n\r]+)","$1<a href=\"mailto:$2@$3\">$2@$3</a>", text);

    	// Convert URL tags to HTML
    	text = rei_replace ("\\[url\\]ftp://([^\\[]*?)\\[/url\\]", "<a href=\"ftp://$1\" target=\"_blank\">ftp://$1</a>", text);
    	text = rei_replace("\\[url\\]http://([^\\[]*?)\\[/url\\]","<a href=\"http://$1\" target=\"_blank\">http://$1</a>",text);
    	text = rei_replace("\\[url\\]https://([^\\[]*?)\\[/url\\]","<a href=\"https://$1\" target=\"_blank\">https://$1</a>",text);
    	text = rei_replace("\\[url\\]([^\\[]*?)\\[/url\\]","<a href=\"http://$1\" target=\"_blank\">$1</a>",text);
    	text = rei_replace("\\[url=http://(.*?)\\](.*?)\\[/url\\]","<a href=\"http://$1\" target=\"_blank\">$2</a>",text);
    	text = rei_replace("\\[url=https://(.*?)\\](.*?)\\[/url\\]","<a href=\"https://$1\" target=\"_blank\">$2</a>",text);
    	text = rei_replace("\\[url=(.*?)\\](.*?)\\[/url\\]","<a href=\"http://$1\" target=\"_blank\">$2</a>",text);

    	// Convert IMG tags to HTML
    	text = rei_replace("\\[img\\]([^\\[]*?)\\[/img\\]","<img src=\"$1\">",text);
    	text = rei_replace("\\[image=([^\\[]*?)\\]","<img src=\"../images/$1\" align=\"left\">",text);

    	// Convert bolds,italics,underline and strike
    	text = rei_replace ("\\[b\\]","<b>",text);
    	text = rei_replace ("\\[\\/b\\]","</b>",text);
    	text = rei_replace ("\\[i\\]","<i>",text);
    	text = rei_replace ("\\[\\/i\\]","</i>",text);
    	text = rei_replace ("\\[u\\]","<u>",text);
    	text = rei_replace ("\\[\\/u\\]","</u>",text);
    	text = rei_replace ("\\[s\\]","<strike>",text);
    	text = rei_replace ("\\[\\/s\\]","</strike>",text);

    	// Alignment
    	text = rei_replace ("\\[right\\]","<div style=\"text-align:right\">",text);
    	text = rei_replace ("\\[\\/right\\]","</div>",text);
    	text = rei_replace ("\\[justify\\]","<div style=\"text-align:justify;\">",text);
    	text = rei_replace ("\\[\\/justify\\]","</div>",text);
    	text = rei_replace ("\\[center\\]","<div style=\"text-align:center\">",text);
    	text = rei_replace ("\\[\\/center\\]","</div>",text);

    	// Convert the color codes
    	text = rei_replace("\\[color=(.*?)\\](.*?)","<span style=\"color:$1\">$2",text);
    	text = rei_replace("\\[\\/color\\]","</span>",text);

    	// Convert sizes
    	text = rei_replace("\\[size=(.*?)\\](.*?)","<span style=\"font-size:$1pt\">$2",text);
    	text = rei_replace("\\[\\/size\\]","</span>",text);

    	// Convert fonts
    	text = rei_replace("\\[font=(.*?)\\](.*?)","<span style=\"font-family:$1\">$2",text);
    	text = rei_replace("\\[\\/font\\]","</span>",text);

    	// Do list elements
    	text = rei_replace("(\\[list\\])\n?\r?(.+?)(\\[\\/list\\])s","<ul type=\"square\">$2</ul>",text);
    	text = rei_replace("(\\[list=)(A|1)(\\])\n?\r?(.+?)(\\[\\/list\\])s","<ol type=\"$2\">$4</ol>",text);
    	text = rei_replace("\n?\r?(\\[\\*\\])s","<li>",text);

    	// Quote markup
    	text = rei_replace ("\\[quote\\]","<blockquote>Quote:<hr /><br />",text);
    	text = rei_replace ("\\[\\/quote\\]","<br /><br /><hr /></blockquote>",text);

    	// Convert newlines
    	text = rei_replace ("\n","<br clear=\"all\">",text);
    	text = rei_replace ("\r\n","<br clear=\"all\">",text);
    	text = rei_replace ("\r","",text);

    	//Show Pages
    	text = rei_replace ("\\[page\\]","<hr>",text);

     	return text;
	}

function trim(inputString) {
     	if (typeof inputString != "string") { return inputString; }
 	var retValue = inputString;
   	var ch = retValue.substring(0, 1);
   	while (ch == " ") {
      		retValue = retValue.substring(1, retValue.length);
      		ch = retValue.substring(0, 1);
   		}
   	ch = retValue.substring(retValue.length-1, retValue.length);
   	while (ch == " ") {
      		retValue = retValue.substring(0, retValue.length-1);
      		ch = retValue.substring(retValue.length-1, retValue.length);
   		}
   	while (retValue.indexOf("  ") != -1) {
      		retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length);
   		}
   	return retValue;
	}

function checkSearch ( form ) {
	if (trim(form.criteria.value) == "") {
		form.criteria.focus();
		return false;
		}
	return true;
	}

function checkLogin(form) {
	if (trim(form.username.value) == "") {
		form.username.focus();
		return false;
		}
	if (trim(form.password.value) == "") {
		form.password.focus();
		return false;
		}
	return true;
	}

function checkCreate(form) {
	if (trim(form.username.value) == "") {
		form.username.focus();
		return false;
		}
	if (trim(form.email.value) == "") {
		form.email.focus();
		return false;
		}
	if (form.email.value != "") {
	        var email=form.email.value;
	        var check_space = email.indexOf(' ');
	        var check_ast = email.indexOf('@');
	        var check_dot = email.indexOf('.');
	        if ((check_space != -1) || (check_ast == -1) || (check_dot == -1)) {
		         form.email.focus();
		         return false;
		         }
		}
	if (trim(form.password1.value) == "") {
		form.password1.focus();
		return false;
		}
	if (trim(form.password2.value) == "") {
		form.password2.focus();
		return false;
		}
	if (trim(form.password1.value) != trim(form.password2.value)) {
		form.password1.focus();
		return false;
		}
	return true;
	}

function checkReset(form) {
	if (trim(form.email.value) == "") {
		form.email.focus();
		return false;
		}
	if (form.email.value != "") {
	        var email=form.email.value;
	        var check_space = email.indexOf(' ');
	        var check_ast = email.indexOf('@');
	        var check_dot = email.indexOf('.');
	        if ((check_space != -1) || (check_ast == -1) || (check_dot == -1)) {
		         form.email.focus();
		         return false;
		         }
		}
	return true;
	}

function checkResetVerify(form) {
	if (trim(form.code.value) == "") {
		form.code.focus();
		return false;
		}
	if (trim(form.pwd1.value) == "") {
		form.pwd1.focus();
		return false;
		}
	if (trim(form.pwd2.value) == "") {
		form.pwd2.focus();
		return false;
		}
	if (trim(form.pwd1.value) != trim(form.pwd1.value)) {
		form.pwd1.focus();
		return false;
		}
	return true;
	}

function checkReview(form) {
	if (trim(form.reviewText.value) == "") {
		form.reviewText.focus();
		return false;
		}
	return true;
	}

function checkContact(form) {
	if (trim(form.email.value) == "") {
		form.email.focus();
		return false;
		}
	if (form.email.value != "") {
	        var email=form.email.value;
	        var check_space = email.indexOf(' ');
	        var check_ast = email.indexOf('@');
	        var check_dot = email.indexOf('.');
	        if ((check_space != -1) || (check_ast == -1) || (check_dot == -1)) {
		         form.email.focus();
		         return false;
		         }
		}
	if (trim(form.question.value) == "") {
		form.question.focus();
		return false;
		}
	return true;
	}

function checkSubmission(form) {
	if (trim(form.newName.value) == "") {
		form.newName.focus();
		return false;
		}
	if (trim(form.newDescription.value) == "") {
		form.newDescription.focus();
		return false;
		}
	if (form.newEmail.value != "") {
	        var email=form.newEmail.value;
	        var check_space = email.indexOf(' ');
	        var check_ast = email.indexOf('@');
	        var check_dot = email.indexOf('.');
	        if ((check_space != -1) || (check_ast == -1) || (check_dot == -1)) {
		         form.newEmail.focus();
		         return false;
		         }
		}
	var selObj = form['newCategory[]'];
	var retVal = false;
	for (var i = 0; i < selObj.length; i++) {
		if (selObj.options[i].selected)	{
			retVal = true;
			}
		}
	if(retVal != true) {
        	return false;
		}
	return true;
	}

function checkEdit(form) {
	if (trim(form.newName.value) == "") {
		form.newName.focus();
		return false;
		}
	if (trim(form.newDescription.value) == "") {
		form.newDescription.focus();
		return false;
		}
	if (form.newEmail.value != "") {
	        var email=form.newEmail.value;
	        var check_space = email.indexOf(' ');
	        var check_ast = email.indexOf('@');
	        var check_dot = email.indexOf('.');
	        if ((check_space != -1) || (check_ast == -1) || (check_dot == -1)) {
		         form.newEmail.focus();
		         return false;
		         }
		}
	return true;
	}