telosys
Blame | Last modification | View Log | RSS feed
//------------------------------------------------------------------------------
// Tools_class.js ( set of static methods )
// Telosys framework
// Author : Laurent Guérin
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
function Tools()
{
}
//------------------------------------------------------------------------------
Tools.xmlString = function (sVal)
{
if ( sVal == null )
{
return null ;
}
var sXml = sVal ;
sXml = sXml.replace(/&/g, "&" ); // A faire en premier
sXml = sXml.replace(/g, "<" );
sXml = sXml.replace(/>/g, ">" );
sXml = sXml.replace(/\"/g, """ );
/**
if ( sVal.length != sXml.length )
{
alert ( "xmlString : [" + sVal + "] --> [" + sXml + "]" );
}
**/
return sXml ;
}
//------------------------------------------------------------------------------
Tools.getElement = function ( arg )
{
return element ;
}
//------------------------------------------------------------------------------
// Return the position (X,Y) of an element of the current document
// arg : String => element Id
// Other => element itself
// return : array ( [0] -> x , [1] -> y )
Tools.getPosition = function ( arg )
{
var oElement = null ;
if ( typeof arg == "string" )
{
//alert ( "Trace: arg is a String => getElementById ('" + arg + "')" );
oElement = document.getElementById(arg);
if ( oElement == null )
{
alert ( "Error: Tools.getPosition() : Cannot find element with id = '" + arg + "'" );
return null ;
}
}
else
{
//alert ( "Trace: arg is not a String => ref" );
oElement = arg;
if ( oElement == null )
{
alert ( "Error: Tools.getPosition() : Element is null ! " );
return null ;
}
}
if ( oElement.offsetParent )
{
for( var posX = 0, posY = 0; oElement.offsetParent ; oElement = oElement.offsetParent )
{
posX += oElement.offsetLeft;
posY += oElement.offsetTop;
}
return [ posX, posY ];
}
else
{
return [ oElement.x, oElement.y ];
}
}
//------------------------------------------------------------------------------
Tools.fieldMessageClass = null ;
Tools.fieldMessageXOffset = null ;
Tools.fieldMessageYOffset = null ;
Tools.setFieldMessageClass = function ( sClassName )
{
Tools.fieldMessageClass = sClassName ;
}
Tools.setFieldMessageOffset = function ( iXOffset, iYOffset )
{
Tools.fieldMessageXOffset = iXOffset ;
Tools.fieldMessageYOffset = iYOffset ;
}
//------------------------------------------------------------------------------
Tools.fieldMessage = function (id, msg)
{
function _onClick()
{
//alert("On Click ! this.id = " + this.id );
this.style.visibility = "hidden" ;
}
var position = Tools.getPosition(id); // (X,Y)
if ( position != null )
{
var x = position[0];
var y = position[1];
//alert ( "Position : x = " + x + " , y = " + y );
var sBubbleId = id + "_msg" ;
var oBubble = document.getElementById(sBubbleId);
if ( oBubble == null ) // Not yet created
{
//alert ( "oBubble == null => createElement" );
oBubble = document.createElement ( "table" ) ;
oBubble.id = sBubbleId ;
//oBubble.className = "bubble" ;
if ( Tools.fieldMessageClass != null )
{
// Apply style class
oBubble.className = Tools.fieldMessageClass ;
}
else
{
// Use default style
oBubble.style.cursor = "default" ;
oBubble.style.borderStyle = "solid" ;
oBubble.style.borderWidth = "1px" ;
oBubble.style.borderColor = "orange" ;
oBubble.style.color = "navy" ;
oBubble.style.fontFamily = "arial" ;
oBubble.style.fontSize = "10pt" ;
oBubble.style.backgroundColor = "#FFCC66" ;
}
oBubble.style.position = "absolute" ;
oBubble.style.visibility = "hidden" ;
oBubble.onclick = _onClick ;
document.body.appendChild(oBubble);
//--- Create Row (TR) and Cell (TD)
var oTR = oBubble.insertRow(0);
var oTD = oTR.insertCell(0);
}
if ( oBubble != null )
{
//alert ( "oBubble != null => set attributes ..." );
var oTD = oBubble.rows[0].cells[0];
if ( oTD != null )
{
oTD.innerHTML = msg ;
}
else
{
alert("Error: Cannot find cell ( table.rows[0].cells[0] )" );
}
var xOffset = ( Tools.fieldMessageXOffset != null ? Tools.fieldMessageXOffset : 10 ) ;
var yOffset = ( Tools.fieldMessageYOffset != null ? Tools.fieldMessageYOffset : 12 ) ;
oBubble.style.left = x + xOffset ;
oBubble.style.top = y + yOffset ;
oBubble.style.visibility = "visible" ;
}
else
{
alert ( "Error: Cannot get or create bubble DIV !" ) ;
}
}
else
{
alert("Error: Cannot find position for id '" + id + "' !");
}
}
//------------------------------------------------------------------------------
Generated by GNU enscript 1.6.4.