String.prototype.searchReplace = function (strFind, strReplace) {
	var strString = this;
	var counter = 0;
	while (counter < strString.length) {
		var start = strString.indexOf(strFind, counter);
		if (start == -1) {
			break;
		}
		else {
			var before = strString.substr(0, start);
			var after = strString.substr(start + strFind.length, strString.length);
			strString = before + strReplace + after;
			var counter = before.length + strReplace.length;                        
		}
	}
	return strString;
}


var CONVERT_INUKTITUT = 0;
var CONVERT_STRINGS = 0;
var CONVERT_CODES = 1;
var CONVERT_FORWARD = 0;
var CONVERT_BACKWARD = 1;
var DICT_CONVERT = new Array(1);
DICT_CONVERT[CONVERT_INUKTITUT] = new Array(2);

//Full list
//DICT_CONVERT[CONVERT_INUKTITUT][CONVERT_STRINGS] = new Array("|w","]s","+x","|W","]S","+X","|t","}g","|b","}r","|f","]v","}Q","|A","]Z","}u","+j","]m","`i","~k","`N","`o","~l","`M","+y","+h","]n","]p","+J","]/","`E","}D","}C","|F","}K","+?","+e","3+f","|c","1}Q","1+A","1]Z","`O","~L","`I","R}Q","R+A","R]Z");
//DICT_CONVERT[CONVERT_INUKTITUT][CONVERT_CODES] = new Array(5124,223,8946,8222,205,731,8224,169,5206,174,402,5235,338,197,184,168,916,956,238,5317,732,248,172,194,165,729,241,960,212,247,180,206,199,207,61440,191,233,5506,231,339,229,937,216,210,710,711,193,220);

//Full list - poorly supported characters
DICT_CONVERT[CONVERT_INUKTITUT][CONVERT_STRINGS] = new Array("]s","+x","|W","]S","+X","|t","}g","}r","|f","}Q","|A","]Z","}u","+j","]m","`i","`N","`o","~l","`M","+y","+h","]n","]p","+J","]/","`E","}D","}C","|F","}K","+?","+e","|c","1}Q","1+A","1]Z","`O","~L","`I","R}Q","R+A","R]Z");
DICT_CONVERT[CONVERT_INUKTITUT][CONVERT_CODES] = new Array(223,8946,8222,205,731,8224,169,174,402,338,197,184,168,916,956,238,732,248,172,194,165,729,241,960,212,247,180,206,199,207,61440,191,233,231,339,229,937,216,210,710,711,193,220);
function fontClean(thetext,lang,direction) {
	//if (navigator.appVersion.indexOf("Mac")==-1) {
		var finditem, replaceitem;
		for (i=0;i<DICT_CONVERT[lang][CONVERT_STRINGS].length;i++) {
			var regex;
			if (direction == CONVERT_FORWARD) {
				finditem = DICT_CONVERT[lang][CONVERT_STRINGS][i];
				replaceitem = String.fromCharCode(DICT_CONVERT[lang][CONVERT_CODES][i]);
			} else {
				finditem = String.fromCharCode(DICT_CONVERT[lang][CONVERT_CODES][i]);
				replaceitem = DICT_CONVERT[lang][CONVERT_STRINGS][i];
			}
			thetext = thetext.searchReplace(finditem,replaceitem);
		}
	//}
	return thetext;
}
function fontCleanMass(theform,lang,direction) {
	var elem;
	for (var i=0; i<theform.elements.length ;i++) {
		switch (theform.elements[i].type) {
			case "text" :
			case "textarea" :
				theform.elements[i].value = fontClean(theform.elements[i].value,lang,direction);
				break;
		}
	}
}
