function taEditor(doc, taObj) {
	this.doc = doc;
	this.taObj = taObj;
	this.bw = new bwInfo();
	this.surround = te_surround;
	this.insert = te_insert;
	this.append = te_append;
	this.prepend = te_prepend;		
	this.replaceString = te_replaceString;
}

function te_surround(str1,str2) {
	if (this.bw.ie) {
		this.taObj.focus();
		var sel = this.doc.selection.createRange();
		var text = sel.text;
		sel.text = str1+text+str2;
	} else
		this.append(str1+str2);
}

function te_insert(str) {
	if (this.bw.ie) {
		this.taObj.focus();
		var sel = this.doc.selection.createRange();
		var text = sel.text;
		sel.text = str+text;
	} else
		this.append(str);
}

function te_append(str) {
	this.taObj.value = this.taObj.value+str;
}

function te_prepend(str) {
	this.taObj.value = this.taObj.value+str;
}

function te_replaceString(stOld,stNew) {
	this.taObj.value = replaceString(stOld,stNew,this.taObj.value);
}

function te_replaceString(oldS,newS,fullS,matchCase) {
	if (matchCase) {
		for (var i=0; i<fullS.length; i++) {
	 		if (fullS.substring(i,i+oldS.length) == oldS) {
				fullS = fullS.substring(0,i)+newS+fullS.substring(i+oldS.length,fullS.length);
			}
		}
	 	return fullS;
	} else {
		for (var i=0; i<fullS.length; i++) {
	 		if (fullS.toUpperCase().substring(i,i+oldS.length) == oldS.toUpperCase()) {
				fullS = fullS.substring(0,i)+newS+fullS.substring(i+oldS.length,fullS.length);
			}
		}
	 	return fullS;
	}
}

function taCountChar(taObjName, ctrObjName, maxLen) {
	var oTa  = eval(taObjName);
	var oCtr = eval(ctrObjName);
	if (maxLen > 0) {
		if (oTa.value.length > maxLen) {
		  var foo = oTa.value;
			foo = foo.substr(0, maxLen);
			oTa.value = foo;
		}
	}
	oCtr.value = maxLen - oTa.value.length;
}

function taObjCountChar(taObjName, ctrObjName, maxLen) {
	var oTa  = taObjName;
	var oCtr = ctrObjName;
	if (maxLen > 0) {
		if (oTa.value.length > maxLen) {
		  var foo = oTa.value;
			foo = foo.substr(0, maxLen);
			oTa.value = foo;
		}
	}
	oCtr.value = maxLen - oTa.value.length;
}

function comboMoveSel(src, dest) {
	var unselItems = [];
	var selItems   = [];
	var extItems   = [];
	var fooi;
	for (var i = 0; i < src.options.length; i++) {
		if (src.options[i].selected) {
			fooi = selItems.length;
			selItems[fooi] = [];
			selItems[fooi][0] = src.options[i].value;
			selItems[fooi][1] = src.options[i].text;
		} else {
			fooi = unselItems.length;
			unselItems[fooi] = [];
			unselItems[fooi][0] = src.options[i].value;
			unselItems[fooi][1] = src.options[i].text;
		}
	}
	src.options.length = unselItems.length;
	for (var i = 0; i < unselItems.length; i++) {
		src.options[i].value = unselItems[i][0];
		src.options[i].text  = unselItems[i][1];
	}
	fooi = dest.options.length;
	dest.options.length = fooi + selItems.length;
	for (var i = 0; i < selItems.length; i++) {
			dest.options[fooi + i].value = selItems[i][0];
			dest.options[fooi + i].text  = selItems[i][1];
	}
}

function comboMoveUp(src) {
	var selIdx = src.selectedIndex;
	if (selIdx > 0) {
		var arrFoo = [];
		arrFoo[0] = src.options[selIdx - 1].value;
		arrFoo[1] = src.options[selIdx - 1].text;
		src.options[selIdx - 1].value = src.options[selIdx].value;
		src.options[selIdx - 1].text = src.options[selIdx].text;
		src.options[selIdx].value = arrFoo[0];
		src.options[selIdx].text = arrFoo[1];
		src.selectedIndex = selIdx - 1;
	}
}

function comboMoveDown(src) {
	var selIdx = src.selectedIndex;
	if (selIdx >= 0 && selIdx < src.options.length - 1) {
		var arrFoo = [];
		arrFoo[0] = src.options[selIdx + 1].value;
		arrFoo[1] = src.options[selIdx + 1].text;
		src.options[selIdx + 1].value = src.options[selIdx].value;
		src.options[selIdx + 1].text = src.options[selIdx].text;
		src.options[selIdx].value = arrFoo[0];
		src.options[selIdx].text = arrFoo[1];
		src.selectedIndex = selIdx + 1;
	}
}

function comboMoveSelTop(src, dest) {
	var unselItems = [];
	var selItems   = [];
	var extItems   = [];
	var fooi;
	for (var i = 0; i < src.options.length; i++) {
		if (src.options[i].selected) {
			fooi = selItems.length;
			selItems[fooi] = [];
			selItems[fooi][0] = src.options[i].value;
			selItems[fooi][1] = src.options[i].text;
		} else {
			fooi = unselItems.length;
			unselItems[fooi] = [];
			unselItems[fooi][0] = src.options[i].value;
			unselItems[fooi][1] = src.options[i].text;
		}
	}
	src.options.length = unselItems.length;
	for (var i = 0; i < unselItems.length; i++) {
		src.options[i].value = unselItems[i][0];
		src.options[i].text  = unselItems[i][1];
	}
	for (var i = 0; i < dest.options.length; i++) {
		fooi = selItems.length;
		selItems[fooi] = [];
		selItems[fooi][0] = dest.options[i].value;
		selItems[fooi][1] = dest.options[i].text;
	} 
	dest.options.length = selItems.length;
	for (var i = 0; i < selItems.length; i++) {
		dest.options[i].value = selItems[i][0];
		dest.options[i].text  = selItems[i][1];
	}
}

function comboAddOption(src, idval, textval) {
	var currLength = src.options.length;
	src.options.length = currLength + 1;
	src.options[currLength].value = idval;
	src.options[currLength].text = textval;
}

function comboRemoveOption(src) {
	var unSelItems = [];
	
	for (var i = 0; i < src.options.length; i++) {
		if (!src.options[i].selected) {
			var foo = [];
			foo[0] = src.options[i].value;
			foo[1] = src.options[i].text;
			unSelItems[unSelItems.length] = foo;
		}
	}
	src.options.length = unSelItems.length;
	for (var i = 0; i < unSelItems.length; i++) {
		src.options[i].value = unSelItems[i][0];
		src.options[i].text = unSelItems[i][1];
	}
}

function PictureBrowser(relURL, frmTarget) {
	var w = 500;
	var h = 400;
	var l = (screen.width - w) / 2;
	var t = (screen.height - h) / 2;
	var now = new Date();
	var seed  =  "" + now.getYear() + "" + now.getMonth() + "" + now.getDate() + "" + now.getHours() + "" + now.getMinutes() + "" + now.getSeconds();
	var win = window.open (relURL + "cform/picbrowser.php?style=1&ipform=" + escape(frmTarget) + "&" + seed, "_CMSPICBROWSER", "width=" +w+ ",height=" +h+ ",left=" +l+ ",top=" +t+ "");
	win.focus();
}

function FileBrowser(relURL, frmTarget) {
	var w = 500;
	var h = 400;
	var l = (screen.width - w) / 2;
	var t = (screen.height - h) / 2;
	var now = new Date();
	var seed  =  "" + now.getYear() + "" + now.getMonth() + "" + now.getDate() + "" + now.getHours() + "" + now.getMinutes() + "" + now.getSeconds();
	var win = window.open (relURL + "cform/filebrowser.php?ipform=" + escape(frmTarget) + "&" + seed, "_CMSPICBROWSER", "width=" +w+ ",height=" +h+ ",left=" +l+ ",top=" +t+ "");
	win.focus();
}

