var BASETEXT_oCursor = null;
var BASETEXT_oOverElement = null;
var BASETEXT_SaveOnMouseMove = null;

var BASETEXT_fOldMouseMove = document.onmousemove;
document.onmousemove = BASETEXT_OnMouseMove;          


var TEXTMARK_sFontSize = '120%';          


// use on mouse events to find container control
function BASETEXT_GetContainerControl (oEl)
//       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
  return CetControls_GetContainerControl(oEl, "BaseText");
}

// the generalized version to find container control. move to CetControls.js when established
function CetControls_GetContainerControl (oEl, sControlName)
//       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
  while (true)
  {
    if (oEl.CetControl == sControlName)
      return oEl;
    if (oEl == document.body)
      return null;
    oEl = oEl.parentNode;
  }
}
//-------------------------------------------------------




//*******************FONT SIZE *****************************************

function BASETEXT_FontSize(sTextID, nFontSize)
//       ~~~~~~~~~~~~~~~~~
{
 var nAddFontSize;
 var oEl = eval(sTextID)         
 if (oEl.style.fontSize != "")
 {
  var sSize = oEl.style.fontSize;
  var arrSize = sSize.split("%")    
  var nSize = (arrSize[0])*1      
  if (nSize <170)
  {
    nAddFontSize = 10;    
  }
  else
  {
    nSize = 110;
    nAddFontSize = 0; 
  }
  nSize = nSize+nAddFontSize;
   
  
  var sNewSize =  nSize + "" +  "%";  
  TEXTMARK_sFontSize = sNewSize
  oEl.style.fontSize = sNewSize; 
 }
 else
 {
  oEl.style.fontSize = TEXTMARK_sFontSize;  
 } 
}
//-------------------------------------------------------

//******************* CURSOR HANDLER *****************************************

function BASETEXT_SetCursor(oCursorElement, oOverElement)
//       ~~~~~~~~~~~~~~~~~~
{   
  if (BASETEXT_oCursor != null)    
  { 
    if (BASETEXT_oCursor.all.tags("IMG")[0].src != oCursorElement.all.tags("IMG")[0].src)
    {        
      BASETEXT_HideCursor();      
      BASETEXT_CreateCursor(oCursorElement, oOverElement)       
    }  
  }  
  else
  {        
    BASETEXT_CreateCursor(oCursorElement, oOverElement) 
  }
}
//-------------------------------------------------------------------

function BASETEXT_CreateCursor (oCursorElement, oOverElement)
//       ~~~~~~~~~~~~~~~~~~~~
{ 
  BASETEXT_oCursor = oCursorElement.cloneNode(true);      
  BASETEXT_oCursor.style.display = "";  
  BASETEXT_oOverElement = oOverElement;  
  //BASETEXT_oCursor.style.filter =  "progid:DXImageTransform.Microsoft.Alpha(Opacity=50, FinishOpacity=0, Style=0, StartX=0,  FinishX=100, StartY=0, FinishY=100)"    
  
  document.body.insertBefore(BASETEXT_oCursor);  
}
//-------------------------------------------------------------------

function BASETEXT_HideCursor ()
//       ~~~~~~~~~~~~~~~~~~
{
  if (BASETEXT_oCursor != null)
  {
    BASETEXT_oCursor.removeNode(true)    
    BASETEXT_oCursor = null;
  }  
}
//-------------------------------------------------------------------

function BASETEXT_OnMouseMove()
//       ~~~~~~~~~~~~~~~~~~
{
  if (BASETEXT_oCursor != null && BASETEXT_oOverElement != null)
  { 
    if (BASETEXT_checkIsOverText(event.srcElement,BASETEXT_oOverElement.id) != null )
    {                 
      BASETEXT_oCursor.style.display = "";                                                                           
      var oDiv = BASETEXT_oCursor;          
      if (BASETEXT_oCursor.style.display != 'none')
      {
        var nPosX = event.clientX;
        var nPosY = event.clientY;  
        
        var nMarginOffset = 0;
        if (document.body.style.marginLeft > 0)
          nMarginOffset += 1* (document.body.style.marginLeft.replace('px', ''));
        if (document.body.style.marginRight > 0)
          nMarginOffset += 1* (document.body.style.marginRight.replace('px', ''));
        oDiv.style.pixelTop  = nPosY + document.body.scrollTop - oDiv.clientHeight + 30;        
        oDiv.style.pixelLeft = nPosX - (document.body.scrollWidth - document.body.scrollLeft - document.body.clientWidth - nMarginOffset) - 15        
      }
    }
    else
    {            
      BASETEXT_oCursor.style.display ="none";                                                                     
    }  
  
  }
  if (BASETEXT_fOldMouseMove != null)
    BASETEXT_fOldMouseMove();
  
}
//-------------------------------------------------------------------

//depracated. remove asap
function BASETEXT_checkIsOverText (el, elID)
//       ~~~~~~~~~~~~~~~~~~~~~~
{ 
	if (el == null)	      
    return null;			      
  
	var att = el.getAttribute("id");	     
	if (att == elID)
		return el;    	  
	return BASETEXT_checkIsOverText (el.parentElement, elID);     
}
//-------------------------------------------------------------------

function BASETEXT_ReleaseCursor ()
//      ~~~~~~~~~~~~~~~~~~~~~~~~    
{   
  BASETEXT_HideCursor();  
  document.releaseCapture();    
}
//-------------------------------------------------------

function BASETEXT_ScrollText (sParentEl, oEl)
//       ~~~~~~~~~~~~~~~~~~
{
  var oElParent = document.getElementById(sParentEl);  
  var oRc = COMMON_GetBounds(oEl, oElParent);   

  if ((oRc.top - 0 ) < oElParent.scrollTop)
  {                 
     oElParent.scrollTop = oRc.top - 60;
  }   
  else if ((oRc.top + oRc.height) > (oElParent.scrollTop + oElParent.offsetHeight - 0))   
  { 
     oElParent.scrollTop =  oRc.top + oRc.height - oElParent.offsetHeight  + 60      
  }   
}
//---------------------------------------------------      

function BASETEXT_Print (sParentEl)
//       ~~~~~~~~~~~~~~~~~~
{
  var oElParent = document.getElementById(sParentEl);  
  var oFrame = document.getElementById("BaseText_PrintFrame");
  var innerDoc = oFrame.contentWindow.document;
  innerDoc.body.innerHTML = oElParent.innerHTML;
  for (var i = 0; i < document.styleSheets.length; i++)
    innerDoc.createStyleSheet(document.styleSheets[i].href);
  // wait before printing (otherwise print-dialog appears twice):
  window.setTimeout(BASETEXT_PrintLater, 10);
}
//---------------------------------------------------      

function BASETEXT_PrintLater ()
//       ~~~~~~~~~~~~~~~~~~
{
  var oFrame = document.getElementById("BaseText_PrintFrame");
  oFrame.contentWindow.focus();
  oFrame.contentWindow.print();
}
//---------------------------------------------------      

