function storeCaret(text) { 
	if (text.createTextRange) {
		text.caretPos = document.selection.createRange().duplicate();
	}
}

function emo(text) {
	text = ' ' + text + ' ';
	if (document.frm.detail.createTextRange && document.frm.detail.caretPos) {
		var caretPos = document.frm.detail.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
		document.frm.detail.focus();
	} else {
	document.frm.detail.value  += text;
	document.frm.detail.focus();
	}
}

function AlertDel(url) {
	open(url , "alertdel" , "resizable=0,scrollbars=0,width=300,height=150,left=250,top=150");
}

function ShowHelp(id) {
	Left = event.x;
	Top = event.y;
	document.all[id].style.visibility = 'visible';
	document.all[id].style.pixelLeft = Left;
	document.all[id].style.pixelTop = Top;
	
}

function HideMenu(id) {
	document.all[id].style.visibility = 'hidden';
}

nereidFadeObjects = new Object();
nereidFadeTimers = new Object();

function nereidFade(object, destOp, rate, delta){
if (!document.all)
return
    if (object != "[object]"){  //do this so I can take a string too
        setTimeout("nereidFade("+object+","+destOp+","+rate+","+delta+")",0);
        return;
    }
        
    clearTimeout(nereidFadeTimers[object.sourceIndex]);
    
    diff = destOp-object.filters.alpha.opacity;
    direction = 1;
    if (object.filters.alpha.opacity > destOp){
        direction = -1;
    }
    delta=Math.min(direction*diff,delta);
    object.filters.alpha.opacity+=direction*delta;

    if (object.filters.alpha.opacity != destOp){
        nereidFadeObjects[object.sourceIndex]=object;
        nereidFadeTimers[object.sourceIndex]=setTimeout("nereidFade(nereidFadeObjects["+object.sourceIndex+"],"+destOp+","+rate+","+delta+")",rate);
    }
}

