/* 
Anochat: anochat_system.js v. 1.0
The regular system functions - needed both in main window and in chat window
*/


/*
System functions for string treatment
*/
// Strip all html-code from text
function stripHTML(text){
	var re= /<\S[^><]*>/gi;
	return text.replace(re, "");
}

// Clean funny chars
function cleanjs(text) {
	gstr = /(\/)/gi;
	text = text.replace(gstr,"&#47;");
	return text;
}

// Trimming
function LTrim(str) {
 for (var i=0; ((str.charAt(i)<=" ")&&(str.charAt(i)!="")); i++);
 return str.substring(i,str.length);
}
function RTrim(str) {
 for (var i=str.length-1; ((str.charAt(i)<=" ")&&(str.charAt(i)!="")); i--);
 return str.substring(0,i+1);
}
function Trim(str) {
 return LTrim(RTrim(str));
}

// Function for checking whitespace
function isWhitespace(charToCheck) {
	var whitespaceChar = " ";
	if(charToCheck == whitespaceChar) {
	return true;
	} else {
	return false;
	}
}

// Trimming strings, alternative
function trimAll(sString) {
while (sString.substring(0,1) == ' '){
sString = sString.substring(1, sString.length);
}
while (sString.substring(sString.length-1, sString.length) == ' '){
sString = sString.substring(0,sString.length-1);
}
return sString;
}
// Replace
String.prototype.replaceAll = function( 
strTarget, // The substring you want to replace
strSubString // The string you want to replace in.
){
var strText = this;
var intIndexOfMatch = strText.indexOf( strTarget );
while (intIndexOfMatch != -1){
strText = strText.replace( strTarget, strSubString )
intIndexOfMatch = strText.indexOf( strTarget );
}
return( strText );
}

// Function for finding domain. Future use
function retDomain(url) {
	var domain = url.match( /:\/\/(www\.)?([^\/:]+)/ );
	domain = domain[2]?domain[2]:'';
	return domain;
}

// BR to newline
function br2nl(text) {
	//text = text.replace(/\n/g,"");
	text = text.replace(/\<br>/gi,"\n");
	//text = text.replace(/\<br \/>/gi,"\n");
	return text;
}

// Newline to BR
function nl2br(text) {
	text = text.replace(/\n/g,"<br>");
	return text;
}

// Board tags to html tags
function htmldctags(text) {
	text = text.replace(/\]/gi,">");
  text = text.replace(/\[/gi,"<");
	return text;
}

/*
System functions for keytrap / elements
*/
// Function for keytrapping
function trapkey(evt) {var c = document.layers ? evt.which : document.all ? event.keyCode : evt.keyCode; return c; };

// Function for storing caret pos
function storeCaret(textEl) {
	if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}

// Function for getting page elements, cross browser
function getElement(id) { 
	if (document.getElementById) { // W3C DOM 
		return document.getElementById(id); 
		} else if (document.all) { // IE 4 
		return document.all[id]; 
		} else if (document.layers) { // NS 4 
		return document.layers[id]; 
	} 
} 
