var DOM2=document.getElementById;
var op = navigator.userAgent.indexOf('Opera')!=-1;
var ie4 = (document.all && !op)?true:false;
var ns4 = window.Event?true:false;

var ie5, ie6, ie7;
if (ie4) {
  if (navigator.userAgent.indexOf('MSIE 5')>0) ie5=true;
  if (navigator.userAgent.indexOf('MSIE 6')>0) ie6=true;
  if (navigator.userAgent.indexOf('MSIE 7')>0) ie7=true;
} else ie5 = ie6 = false;

var ie=ie4||ie5||ie6;
var ns6 = (DOM2&&!ie)?true:false;
var ns=ns4||ns6;

function popup_helper(hlpID)
{
	el = document.getElementById("helper_"+hlpID);
	if (el.style != "visible") el.style.visibility = "visible";
}

function repos_helper(hlpID, event)
{
	
	el = document.getElementById("helper_"+hlpID);
	btmr = document.getElementById('helper_'+hlpID+'_btmr');
	pgoX = (ie)?document.body.scrollLeft:pageXOffset;
	pgoY = (ie)?document.body.scrollTop:pageYOffset;

	if (ns){
		ox = event.pageX;
		oy = event.pageY;
	}
	if (ie4){
		ox = event.x;
		oy = event.y;
	}
	if (ie5 || ie6 || ie7){
		ox = event.x + pgoX;
		oy = event.y + pgoY;
	}

	if (ie){ 
		visW = document.body.clientWidth;
		visH = document.body.clientHeight;
	}
	if (ns || op){
		visW = innerWidth;
		visH = innerHeight;
	}
	
	corrX = (btmr.offsetLeft + ox + 16 + 10>visW+pgoX)?btmr.offsetLeft + 20:0;
	corrY = (btmr.offsetTop + oy + 16 + 20>visH+pgoY)?btmr.offsetTop+oy+16+20-visH-pgoY:0;
	placeX = (ox + 16 - corrX<0)?0:ox + 16 - corrX;
	placeY = (oy + 16 - corrY<0)?0:oy + 16 - corrY;
	el.style.left = placeX;
	el.style.top = placeY;
}
//======================================================= Rich Editor
function getIFrameDocument(aID) {
  var rv = null;
  if (ns || op){
    doc = document.getElementById(aID).contentDocument;
  } else {
    doc = document.frames[aID].document;
  }
  return doc;
}

function applyRichCommand(editor, cmd, value)
{
	document.getElementById(editor).focus();
	richDocument = getIFrameDocument(editor);
	richDocument.execCommand(cmd, false, value);
	document.getElementById(editor).focus();
}