////////////////////////////////////////////////////////
//general helpers
function getXPos( obj )
{
	var x = 0, parentElement;

	parentElement = obj.offsetParent;
	if( parentElement != null ) x = getXPos( parentElement );
	if ( obj.clientLeft )
		return x + obj.offsetLeft + obj.clientLeft ;
	else
		return x + obj.offsetLeft;
}
function getYPos( obj )
{
	var y = 0, parentElement;
	parentElement = obj.offsetParent;
	if( parentElement != null ) y = getYPos( parentElement );
	if ( obj.clientTop )
		return y + obj.offsetTop + obj.clientTop;
	else
		return y + obj.offsetTop;
}
////////////////////////////////////////////////////////
//library helpers
function getElementbyId( id )
//used in: JS-components
{
	if( id != "" ) return SAPCB_getElementById( id );
	else return null;
}
function getParentByTagName( obj, tagName )
//used in: SAP_TemplateTableBegin
{
	if( obj == null ) return null;
	if( obj.tagName == tagName ) return obj;
	return getParentByTagName( SAPCB_Node_getParentNode( obj ), tagName );
}
function SAP_getObjectParent( obj, SAP_componentType )
//used in: SAP_TemplateTableRowBegin, SAP_TemplateToolboxMenuItemBegin
{
	if( obj == null ) return null;
	if( SAP_componentType == null )
	{
		if( obj.SAP_componentType != null ) return obj;
		return SAP_getObjectParent( SAPCB_Node_getParentNode( obj ), SAP_componentType );
	}
	if( obj.SAP_componentType == SAP_componentType ) return obj;
	return SAP_getObjectParent( SAPCB_Node_getParentNode( obj ), SAP_componentType );
}
function SAP_ConvertToArray( ArrayOrNot ) 
//used in: SAP_TemplateDynamicDisplayTableBegin, SAP_TemplateDynamicPageTableBegin
{
	if (ArrayOrNot != null) {	
		if (ArrayOrNot.length == null ) {
			var NewArray = new Array();
			NewArray[0] = ArrayOrNot;
			return NewArray;
		} else {
			return ArrayOrNot;
		}	
	} else {
		var NewArray = new Array();
		return NewArray;
	}
}
var SAP_TemplateRegisteredObjects = new Array();
function SAP_TemplateRegisterObject( id )
//used in: Components
{
	var obj = SAP_registerObject( id );
	if( obj != null )
	{
		SAP_TemplateRegisteredObjects[ SAP_TemplateRegisteredObjects.length ] = obj;
	}
	return obj;
}
function SAP_TemplateRegisterObjectRef( id, ref )
//used in: Components
{
	var obj = SAPWF_registerObjectByRef( id, ref );
	if( obj != null )
	{
		SAP_TemplateRegisteredObjects[ SAP_TemplateRegisteredObjects.length ] = obj;
	}
	return obj;
}
function SAP_TemplateOnloadFunction()
//used in: SAP_TemplateWebguiOnLoad, SAP_TemplateOnLoadJavaScript
{
	var startupBannerVar = SAPCB_getElementById( "startupBanner" );
	if ( startupBannerVar != null ) 
	{
		if( startupBannerVar.innerHTML != "" )
		{
		startupBannerVar.style.visibility = "hidden" ;
		startupBannerText = startupBannerVar.innerHTML ;
		startupBannerVar.innerHTML = "" ;
		}
	} 

	var i;
	var lgth = SAP_TemplateRegisteredObjects.length-1;
	for(i=lgth; i >= 0; i-- )
	{
		var obj = SAP_TemplateRegisteredObjects[i];
		if( obj.onload != null ) obj.onload();
	}
	if( window.SAP_startupLayer != null ) SAP_startupLayer.style.visibility = "visible";
	if (SAPCB_NavigatorVersion == "NN6") SAP_TemplateRefreshAll();
}
function invokeURL( url, target )
//used in: SAP_TemplateButton
{
	if( target == "_blank" ) 
	{
		window.open( url,"","" );
		return false;
	}

	var destWindow = window;
	if( target == "_parent" ) 
	{
		destWindow = window.parent;
	}
	else
	{
		if( target == "_self" ) destWindow = window;
		else
		{
			if( target == "_top" ) destWindow = window.top;
			else
			{
				if( target != "" )
				{
					destWindow = eval( target );
				}
			}
		}
	}

	if( destWindow ) destWindow.location.href = url;
	return false;
}
function post( formName, target )
//used in: SAP_TemplateButton
{
	var form = SAPCB_getElementById( formName );
	if( form == null ) return;
	form.target = target;
	form.submit();
}

function SAP_serviceRunsInWorkplace()
{
  if( ( SAP_gSAPWP_version != null ) && ( SAP_gSAPWP_version != "" ) ) return true;
  else
  {
    //old version
    var rootPage = null;
    var parentPage = null;
    if( window.SAP_getServiceRootPage ) rootPage = SAP_getServiceRootPage();
  
    var runsInWorkplace = false;
    if( rootPage == null ) runsInWorkplace = false;
    else
    {
      parentPage = rootPage.parent;
      if( rootPage == top ) runsInWorkplace = false;
      else
      {
        //tj/2006-10-27/ check for ITS frameset (~disconnectonclose)
        if (parentPage.document.getElementById("ITSFRAMESET") != null) {
          if (parentPage == top) runsInWorkplace = false;
          else
            parentPage = parentPage.parent;
        }
  
        if( SAP_isPageScriptable( parentPage ) )
        {
          if( parentPage.SAP_getServiceName && parentPage.SAP_getServiceName() == "sapwp" ) runsInWorkplace = true;
          else runsInWorkplace = false;
        }
        else runsInWorkplace = false;
      }
    }
    return runsInWorkplace;
  }
}

function SAP_LaunchHelpWindow( url )
{
	window.open( url,"SAP_HelpWindow","HEIGHT=600, WIDTH=800, status=0, resizable=0, scrollbars=1" );
}
var SAP_eventObject = null;
function SAP_eventObjectPrototype( srcElement )
{
	this.srcElement = srcElement;
}
function SAP_createEvent( srcElement )
{
	SAP_eventObject = new SAP_eventObjectPrototype( srcElement );
}
function SAP_createEventByName( srcElementName )
{
	var srcElement = SAP_getObject( srcElementName );
	if( srcElement != null ) SAP_createEvent( srcElement );
}
function SAP_TemplateRefreshAll()
{
	var i;
	//var lgth = SAP_TemplateRegisteredObjects.length-1;
	var lgth = document.getElementsByTagName("TABLE").length-1;
	tableColl = document.getElementsByTagName("TABLE");
	for(i=lgth; i >= 0; i-- )
	{
		//var obj = SAP_TemplateRegisteredObjects[i];
		var obj = tableColl[i];
		if (obj.id.indexOf("TEXTAREACTRL") == -1)
		{
		if(obj.style.display != "none")
		{
			obj.style.display = "none";
			obj.style.display = "";
		}
	}
}
}

