function DropDownDataList( oData, oDataId, e, sFilterFunctionName, sFilterFunctionParam )
{
	var t = "";
	if ( sFilterFunctionName == null ) sFilterFunctionName = "mBtnFilter_ClientEvent";
	t+="<TABLE id='tblDivScrollFilter' cellSpacing='0' cellPadding='0' border=0 class='mbtnoptionstablestyle' >";/*//mbtnoptionstablestyle*/
/*	t+="<TR>";
	t+="<TD class='mbtnoptionstyle' onmouseover='JButton_MouseOverOption( this, \"mbtnoptionmouseoverstyle\" )' onmouseout='JButton_MouseOutOption( this, \"mbtnoptionstyle\" )' ";
	t+="onclick='JButton_ForwardOption_Click(\"" + "0" + "\",0, \"ctl00_mBtnTransparentFilter\", \"ctl00_mBtnTransparentFilter_multiplebutton\", \""+sFilterFunctionName+"\", \"None\", \"link\", \"select\");' noWrap>";
	t+="<a href='#' onclick='return false'  CLASS='mbtnoptionlinkstyle'>";
	t+= "All";
	t+="</a></TD></TR>";*/
	//if(oData.length > 1)
	{
		for ( var i=0; i < oData.length; i++)
		{
			var Id = 0;
			if ( typeof( oDataId ) == "object" ) Id = oDataId[i];
			else Id = oDataId;
			t+="<TR>";
			t+="<TD class='mbtnoptionstyle' onmouseover='JButton_MouseOverOption( this, \"mbtnoptionmouseoverstyle\" )' onmouseout='JButton_MouseOutOption( this, \"mbtnoptionstyle\" )' ";
			t+="onclick='JButton_ForwardOption_Click(\"" + oData[ i ] + "\", \""+Id+"\", \"ctl00_mBtnTransparentFilter\", \"ctl00_mBtnTransparentFilter_multiplebutton\", \""+sFilterFunctionName+"\", \"None\", \"link\", \"select\");' nowrap>";
			t+="<a href='#' onclick='return false'  CLASS='mbtnoptionlinkstyle'>";
			t+= oData[ i ];
			t+="</a></TD>";
			t+="</TR>";
		}
	}
	t+= "</TABLE>";
	document.getElementById("JButton_divScroll_ctl00_mBtnTransparentFilter").innerHTML = t;
	var iIndex = document.getElementById("JJF_div_ctl00_mBtnTransparentFilter").childNodes.length-1;
	document.getElementById("JJF_div_ctl00_mBtnTransparentFilter").childNodes[iIndex].style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	document.getElementById("JButton_divScroll_ctl00_mBtnTransparentFilter").style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentFilter").style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	JButton_reset("ctl00_mBtnTransparentFilter");
	var iMaxHeightDivScroll = 140;
	if ( (oData.length*20)<iMaxHeightDivScroll )
	{
		var iHDS = document.getElementById("JButton_divScroll_ctl00_mBtnTransparentFilter").offsetHeight;
		if ( iHDS > iMaxHeightDivScroll )
			iHDS = iMaxHeightDivScroll;
		document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentFilter").style.height = iHDS;
	}
	else
		document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentFilter").style.height = iMaxHeightDivScroll;
}

/* draw the content in Filter drop down */
sColumNameBefore="";
function renderDivDropDown( oData, sColumName, e, sFilterFunctionName, sIdDataGrid )
{
	if ( sIdDataGrid == null )
		sIdDataGrid = "";
	else
		sIdDataGrid+="_";
		
	oData.sort( myOrderFunction );
	function myOrderFunction( x, y )
	{
		if ( ToLowerCase(x) < ToLowerCase(y) ) 
			return -1;
		if ( ToLowerCase(x) > ToLowerCase(y) ) 
			return 1;
		return 0; 
	}
	
	var t = "";
	if ( sFilterFunctionName == null ) 
		sFilterFunctionName = "mBtnFilter_ClientEvent";
		        
	t+="<TABLE id='tblDivScrollFilter' cellSpacing='0' cellPadding='0' border=0 class='mbtnoptionstablestyle' >";
	t+="<TR>";
	t+="<TD class='mbtnoptionstyle' onmouseover='JButton_MouseOverOption( this, \"mbtnoptionmouseoverstyle\" )' onmouseout='JButton_MouseOutOption( this, \"mbtnoptionstyle\" )' ";
	t+="onclick='if(document.getElementById(\"lbt_"+sIdDataGrid+sColumNameBefore+"\")) GetElementById(\"lbt_"+sIdDataGrid+sColumNameBefore+"\").className=\""+CLASS_NAME_FILTER_UNSELECTED+"\";JButton_ForwardOption_Click(\"" + "" + "\", "+i+", \"ctl00_mBtnTransparentFilter\", \"ctl00_mBtnTransparentFilter_multiplebutton\", \""+sFilterFunctionName+"\", \"None\", \"link\", \"select\");' noWrap>";
	t+="<a href='#' onclick='return false'  CLASS='mbtnoptionlinkstyle'>";
	t+= "All";
	t+="</a></TD></TR>";
	for ( var i=0; i< oData.length; i++)
	{
		t+="<TR>";
		t+="<TD class='mbtnoptionstyle' onmouseover='JButton_MouseOverOption( this, \"mbtnoptionmouseoverstyle\" )' onmouseout='JButton_MouseOutOption( this, \"mbtnoptionstyle\" )' ";
		t+="onclick='if(document.getElementById(\"lbt_"+sIdDataGrid+sColumNameBefore+"\")) GetElementById(\"lbt_"+sIdDataGrid+sColumNameBefore+"\").className=\""+CLASS_NAME_FILTER_UNSELECTED+"\";sColumNameBefore=\""+sColumName+"\";GetElementById(\"lbt_"+sIdDataGrid+sColumName+"\").className=\""+CLASS_NAME_FILTER_SELECTED+"\";JButton_ForwardOption_Click(\"" + sColumName + "\", "+i+", \"ctl00_mBtnTransparentFilter\", \"ctl00_mBtnTransparentFilter_multiplebutton\", \""+sFilterFunctionName+"\", \"None\", \"link\", \"select\");' nowrap>";
		t+="<a href='#' onclick='return false'  CLASS='mbtnoptionlinkstyle'>";
		t+= oData[ i ];
		t+="</a></TD>";
		t+="</TR>";
	}
	t+= "</TABLE>";
	
	document.getElementById("JButton_divScroll_ctl00_mBtnTransparentFilter").innerHTML = t;
	
	var iIndex = document.getElementById("JJF_div_ctl00_mBtnTransparentFilter").childNodes.length-1;
	
	document.getElementById("JJF_div_ctl00_mBtnTransparentFilter").childNodes[iIndex].style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	document.getElementById("JButton_divScroll_ctl00_mBtnTransparentFilter").style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentFilter").style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	
	JButton_reset("ctl00_mBtnTransparentFilter");/*Will always initialize the filter with ALL*/
	
	var iMaxHeightDivScroll = 140;
	if ( (oData.length*20)<iMaxHeightDivScroll )
	{
		var iHDS = document.getElementById("JButton_divScroll_ctl00_mBtnTransparentFilter").offsetHeight;
		
		if ( iHDS > iMaxHeightDivScroll )
			iHDS = iMaxHeightDivScroll;
			
		document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentFilter").style.height = iHDS;
	}
	else
		document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentFilter").style.height = iMaxHeightDivScroll;
}
/* Returns a new dataSet starting from dsParam dataSet only with the columns indicated in aColumnList
	and filtered by the column sFilterColumnName that match with sFilterText text */
function makeDS( dsParam, aColumnList, sFilterColumnName, sFilterText) 
{				
	var cols = dsParam.Tables[0].Columns.length;
	var rows = dsParam.Tables[0].Rows.length;
	var bAddRow = true;
	var ds = new Ajax.Web.DataSet(); 
	var dt = new Ajax.Web.DataTable(); 
	/* Here we create the dataSet columns for the filtered information*/
	for ( var j = 0; j < aColumnList.length; j++ )
	{
		aItems = aColumnList[ j ].split( "," ); 
		sColName = aItems[0];

		dt.addColumn(aItems[0], "SystemAL.String");
	}
	ds.addTable(dt);
	
	if ( dsParam.Tables[1] )
		ds.addTable( dsParam.Tables[1] );
			
	var sR = "";
	for ( var i = 0; i < rows; i++ )
	{
		sR = "";
		var row = new Object();
							
		for ( var j = 0; j < aColumnList.length; j++ )
		{
			aItems = aColumnList[ j ].split( "," ); 
			sColName = aItems[0];
			
			/*///FILTER///*/
			if ( sColName == sFilterColumnName )
				bAddRow = (( trimR((dsParam.Tables[0].Rows[i][ sColName ]+"")).toLowerCase() == sFilterText.toLowerCase() ));
			row[ sColName ] = dsParam.Tables[0].Rows[i][ sColName ];
		}
		
		if (bAddRow)
		{
			dt.addRow(row);
		}
	}
	return ds;
}
/*	Privated: Used by Quicksort method. It changes rows i, j from Table[0] in the ds dataSet */
function ChangeElement( ds, i, j )
{
	var cols = ds.Tables[0].Columns.length;
	var sAux;
	for ( var k = 0; k < cols; k++ )
	{
		sAux = ds.Tables[0].Rows[i][ ds.Tables[0].Columns[k].Name ];
		ds.Tables[0].Rows[i][ ds.Tables[0].Columns[k].Name ] = ds.Tables[0].Rows[j][ ds.Tables[0].Columns[k].Name ];
		ds.Tables[0].Rows[j][ ds.Tables[0].Columns[k].Name ] = sAux;
	}
}
function OrderSwap( ds )
{
	var rows = ds.Tables[0].Rows.length;
	var rowsHalf = rows / 2;
	rowsHalf+="";
	for ( var k = 0; k < rowsHalf; k++ )
	{
		ChangeElement( ds, k, rows - k - 1 )
	}
}
function ToLowerCase( sString )
{ 
	var sType = "";
	sType+= typeof( sString )
	if ( sType.toLowerCase() == "string" )
	{
		//var reDate = /^[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9][0-9][0-9]$/;
		var reDate = /^[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9][0-9][0-9]( \d{1,2}[:]\d{2}|)$/;
		var reNumber = /^([0-9])*$/;
		
		if ( sString == "" ) 
			return sString;
		
		if ( reDate.exec( sString.replace(/-/g, "/") ) ) //sTypeData = "date";
		{
			return Date.parse( sString.replace(/-/g, "/") );
		}
		else
			return sString.toLowerCase();
	}
	else
		return sString;
}
/* dataSet Order Method: returns an ordered dataSet starting from ds dataSet, depending of the 
	column sColName and the order sOrder (ASC or DESC) */
function Quicksort( ds, loBound, hiBound, sColName, sOrder )
{
	if ( ds.Tables[0].Rows.length == 0 ) 
		return;
		
	var pivot, loSwap, hiSwap, temp;
	/*// Two items to sort*/
	if (hiBound - loBound == 1)
	{
		sItemLoBound = ToLowerCase(ds.Tables[0].Rows[loBound][ sColName ]);
		sItemHiBound = ToLowerCase(ds.Tables[0].Rows[hiBound][ sColName ]);
			
		var bCondition = true;
		var bOrder = !(sOrder.toLowerCase() == "desc");
		
		if (bOrder)
			bCondition = (sItemLoBound > sItemHiBound);
		else
			bCondition = (sItemLoBound < sItemHiBound);
			
		if ( bCondition )
			ChangeElement( ds, loBound, hiBound );
			
		return;
	}

	/*// Three or more items to sort*/
	pivot = ds.Tables[0].Rows[parseInt((loBound + hiBound) / 2)];
	ds.Tables[0].Rows[parseInt((loBound + hiBound) / 2)] = ds.Tables[0].Rows[loBound];
	ds.Tables[0].Rows[loBound] = pivot;
	
	loSwap = loBound + 1;
	hiSwap = hiBound;

	var bCondition_1 = true;
	var bCondition_2 = true;
	var bOrder = !(sOrder.toLowerCase() == "desc");
	do {
		/*// Find the right loSwap*/
		if ( bOrder )
			bCondition_1 = loSwap <= hiSwap && ToLowerCase(ds.Tables[0].Rows[loSwap][ sColName ]) <= ToLowerCase(pivot[ sColName ]);
		else
			bCondition_1 = loSwap <= hiSwap && ToLowerCase(ds.Tables[0].Rows[loSwap][ sColName ]) >= ToLowerCase(pivot[ sColName ]);
			
		while ( bCondition_1 )
		{
			loSwap++;
			if ( bOrder )
				bCondition_1 = loSwap <= hiSwap && ToLowerCase(ds.Tables[0].Rows[loSwap][ sColName ]) <= ToLowerCase(pivot[ sColName ]);
			else
				bCondition_1 = loSwap <= hiSwap && ToLowerCase(ds.Tables[0].Rows[loSwap][ sColName ]) >= ToLowerCase(pivot[ sColName ]);				
		}

		/*// Find the right hiSwap*/
		if ( bOrder )
			bCondition_2 = ToLowerCase(ds.Tables[0].Rows[hiSwap][ sColName ]) > ToLowerCase(pivot[ sColName ]);
		else
			bCondition_2 = ToLowerCase(ds.Tables[0].Rows[hiSwap][ sColName ]) < ToLowerCase(pivot[ sColName ]);
			
		while ( bCondition_2 )
		{
			hiSwap--;
			if ( bOrder )
				bCondition_2 = ToLowerCase(ds.Tables[0].Rows[hiSwap][ sColName ]) > ToLowerCase(pivot[ sColName ]);
			else
				bCondition_2 = ToLowerCase(ds.Tables[0].Rows[hiSwap][ sColName ]) < ToLowerCase(pivot[ sColName ]);
		}

		/*// Swap values if loSwap is less than hiSwap*/
		if (loSwap < hiSwap)
			ChangeElement( ds, loSwap, hiSwap );
	} 
	while (loSwap < hiSwap);

	ds.Tables[0].Rows[loBound] = ds.Tables[0].Rows[hiSwap];
	ds.Tables[0].Rows[hiSwap] = pivot;

	/*// Recursively call function...  the beauty of quicksort*/
	/*	// 2 or more items in first section		*/
	if (loBound < hiSwap - 1)
		Quicksort( ds, loBound, hiSwap - 1, sColName, sOrder );
	/*// 2 or more items in second section*/
	if (hiSwap + 1 < hiBound)
		Quicksort( ds, hiSwap + 1, hiBound, sColName, sOrder );
}
function StopEvent( event )
{
	if (document.all)
		event.cancelBubble=true;
	else
		event.stopPropagation();
}
/*********************/
var SystemAL = {};
/*********************/
SystemAL.CountItemsToDropDown = 7;
/**** DropDownFunctions *****/
SystemAL.DropDownDataMenu = function/*DropDownDataMenu*/( oData, oDataId, e, sFilterFunctionName, sFilterFunctionParam, bWithoutParam )
{
	var t = "";
	if ( sFilterFunctionName == null ) sFilterFunctionName = "mBtnTransparentMenu_ClientEvent";
	t+="<TABLE cellSpacing='0' cellPadding='0' border=0 class='mbtnoptionstablestyle' >";/*//mbtnoptionstablestyle*/
/*	t+="<TR>";
	t+="<TD class='mbtnoptionstyle' onmouseover='JButton_MouseOverOption( this, \"mbtnoptionmouseoverstyle\" )' onmouseout='JButton_MouseOutOption( this, \"mbtnoptionstyle\" )' ";
	t+="onclick='JButton_ForwardOption_Click(\"" + "0" + "\",0, \"ctl00_mBtnTransparentFilter\", \"ctl00_mBtnTransparentFilter_multiplebutton\", \""+sFilterFunctionName+"\", \"None\", \"link\", \"select\");' noWrap>";
	t+="<a href='#' onclick='return false'  CLASS='mbtnoptionlinkstyle'>";
	t+= "All";
	t+="</a></TD></TR>";*/
	if ( bWithoutParam == null )
		bWithoutParam = false;
	//if(oData.length > 1)
	{
		for ( var i=0; i < oData.length; i++)
		{
			var Id = 0;
			if ( typeof( oDataId ) == "object" ) Id = oDataId[i];
			else Id = oDataId;
			if ( bWithoutParam ) sText = "";
			else sText = ( oData[ i ] + "" ).replace(/'/g, "&rsquo;");
			t+="<TR>";
			t+="<TD class='mbtnoptionstyle' onmouseover='JButton_MouseOverOption( this, \"mbtnoptionmouseoverstyle\" )' onmouseout='JButton_MouseOutOption( this, \"mbtnoptionstyle\" )' ";
			t+="onclick='JButton_ForwardOption_Click(\"" + sText + "\", \""+Id+"\", \"ctl00_mBtnTransparentMenu\", \"ctl00_mBtnTransparentMenu_multiplebutton\", \""+sFilterFunctionName+"\", \"None\", \"link\", \"select\");' nowrap>";
			t+="<a href='#' onclick='return false'  CLASS='mbtnoptionlinkstyle'>";
			t+= oData[ i ];
			t+="</a></TD>";
			t+="</TR>";
		}
	}
	t+= "</TABLE>";
	document.getElementById("JJF_div_ctl00_mBtnTransparentMenu").innerHTML = t;
	//document.getElementById("JButton_divScroll_ctl00_mBtnTransparentMenu").innerHTML = t;
	var iIndex = document.getElementById("JJF_div_ctl00_mBtnTransparentMenu").childNodes.length-1;
	//document.getElementById("JJF_div_ctl00_mBtnTransparentMenu").childNodes[iIndex].style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	//document.getElementById("JButton_divScroll_ctl00_mBtnTransparentMenu").style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	//document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentMenu").style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	/*JButton_reset("ctl00_mBtnTransparentMenu");
	var iMaxHeightDivScroll = 140;
	if ( (oData.length*20)<iMaxHeightDivScroll )
	{
		var iHDS = document.getElementById("JButton_divScroll_ctl00_mBtnTransparentMenu").offsetHeight;
		if ( iHDS > iMaxHeightDivScroll )
			iHDS = iMaxHeightDivScroll;
		document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentMenu").style.height = iHDS;
	}
	else
		document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentMenu").style.height = iMaxHeightDivScroll;
*/
}
function DropDownDataList( oData, oDataId, e, sFilterFunctionName, sFilterFunctionParam, bWithoutParam )
{
	var iMaxHeightDivScroll = 140;
	/*alert (oData.length*20);
	alert( iMaxHeightDivScroll );*/
	if ( (oData.length*20)<iMaxHeightDivScroll )
	{
		SystemAL.DropDownDataMenu( oData, oDataId, e, sFilterFunctionName, sFilterFunctionParam, bWithoutParam )
		SystemAL.DoDropDownMenu( e );
	}
	else
	{
		SystemAL.DropDownDataScroll( oData, oDataId, e, sFilterFunctionName, sFilterFunctionParam, bWithoutParam )
		SystemAL.DoDropDownScroll( e );
	}
}
SystemAL.DropDownDataScroll = function/*DropDownDataScroll*/( oData, oDataId, e, sFilterFunctionName, sFilterFunctionParam, bWithoutParam )
{
	var iMaxHeightDivScroll = 140;
	var t = "";
	if ( sFilterFunctionName == null ) sFilterFunctionName = "mBtnFilter_ClientEvent";
	t+="<TABLE id='tblDivScrollFilter' cellSpacing='0' cellPadding='0' border=0 class='mbtnoptionstablestyle' >";/*//mbtnoptionstablestyle*/
/*	t+="<TR>";
	t+="<TD class='mbtnoptionstyle' onmouseover='JButton_MouseOverOption( this, \"mbtnoptionmouseoverstyle\" )' onmouseout='JButton_MouseOutOption( this, \"mbtnoptionstyle\" )' ";
	t+="onclick='JButton_ForwardOption_Click(\"" + "0" + "\",0, \"ctl00_mBtnTransparentFilter\", \"ctl00_mBtnTransparentFilter_multiplebutton\", \""+sFilterFunctionName+"\", \"None\", \"link\", \"select\");' noWrap>";
	t+="<a href='#' onclick='return false'  CLASS='mbtnoptionlinkstyle'>";
	t+= "All";
	t+="</a></TD></TR>";*/
	if ( bWithoutParam == null )
		bWithoutParam = false;
	//if(oData.length > 1)
	{
		for ( var i=0; i < oData.length; i++)
		{
			var Id = 0;
			if ( typeof( oDataId ) == "object" ) Id = oDataId[i];
			else Id = oDataId;
			if ( bWithoutParam ) sText = "";
			else sText = ( oData[ i ] + "" ).replace(/'/g, "&rsquo;");
			t+="<TR>";
			t+="<TD class='mbtnoptionstyle' onmouseover='JButton_MouseOverOption( this, \"mbtnoptionmouseoverstyle\" )' onmouseout='JButton_MouseOutOption( this, \"mbtnoptionstyle\" )' ";
			t+="onclick='JButton_ForwardOption_Click(\"" + sText + "\", \""+Id+"\", \"ctl00_mBtnTransparentFilter\", \"ctl00_mBtnTransparentFilter_multiplebutton\", \""+sFilterFunctionName+"\", \"None\", \"link\", \"select\");' nowrap>";
			t+="<a href='#' onclick='return false'  CLASS='mbtnoptionlinkstyle'>";
			t+= oData[ i ];
			t+="</a></TD>";
			t+="</TR>";
		}
	}
	t+= "</TABLE>";
	document.getElementById("JButton_divScroll_ctl00_mBtnTransparentFilter").innerHTML = t;
	var iIndex = document.getElementById("JJF_div_ctl00_mBtnTransparentFilter").childNodes.length-1;
	document.getElementById("JJF_div_ctl00_mBtnTransparentFilter").childNodes[iIndex].style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	document.getElementById("JButton_divScroll_ctl00_mBtnTransparentFilter").style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentFilter").style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	JButton_reset("ctl00_mBtnTransparentFilter");
	if ( (oData.length*20)<iMaxHeightDivScroll )
	{
		var iHDS = document.getElementById("JButton_divScroll_ctl00_mBtnTransparentFilter").offsetHeight;
		if ( iHDS > iMaxHeightDivScroll )
			iHDS = iMaxHeightDivScroll;
		document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentFilter").style.height = iHDS;
	}
	else
		document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentFilter").style.height = iMaxHeightDivScroll;
}
SystemAL.DropDownOrderFunction = function/*DropDownOrderFunction*/( x, y )
{
	if ( ToLowerCase(x) < ToLowerCase(y) )
		return -1;
	if ( ToLowerCase(x) > ToLowerCase(y) )
		return 1;
	return 0;
}
/* draw the content in Filter drop down */
sColumNameBefore="";
function renderDivDropDown( oData, sColumName, e, sFilterFunctionName, sIdDataGrid )
{
	var iMaxHeightDivScroll = 140;
	
	if ( (oData.length*20)<iMaxHeightDivScroll )
	{
		//oData.sort( SystemAL.DropDownOrderFunction );
		var sIdDataGridMenu;
		if ( sIdDataGrid == null )
			sIdDataGridMenu = "";
		else
			sIdDataGridMenu+="_";
		var t = "";
		if ( sFilterFunctionName == null ) 
			sFilterFunctionName = "mBtnFilter_ClientEvent";
		t+="<TABLE cellSpacing='0' cellPadding='0' border=0 class='mbtnoptionstablestyle' >";//mbtnoptionstablestyle
		t+="<TR>";
		t+="<TD class='mbtnoptionstyle' onmouseover='JButton_MouseOverOption( this, \"mbtnoptionmouseoverstyle\" )' onmouseout='JButton_MouseOutOption( this, \"mbtnoptionstyle\" )' ";
		t+="onclick='if(document.getElementById(\"lbt_"+sIdDataGridMenu+sColumNameBefore+"\")) GetElementById(\"lbt_"+sIdDataGridMenu+sColumNameBefore+"\").className=\""+CLASS_NAME_FILTER_UNSELECTED+"\";JButton_ForwardOption_Click(\"" + "" + "\", "+i+", \"ctl00_mBtnTransparentFilter\", \"ctl00_mBtnTransparentFilter_multiplebutton\", \""+sFilterFunctionName+"\", \"None\", \"link\", \"select\");' noWrap>";
		t+="<a href='#' onclick='return false'  CLASS='mbtnoptionlinkstyle'>";
		t+= "All";
		t+="</a></TD></TR>";

		//if ( bWithoutParam == null )
			var bWithoutParam = false;
		//if(oData.length > 1)
		//{
		for ( var i=0; i< oData.length; i++)
		{
			t+="<TR>";
			t+="<TD class='mbtnoptionstyle' onmouseover='JButton_MouseOverOption( this, \"mbtnoptionmouseoverstyle\" )' onmouseout='JButton_MouseOutOption( this, \"mbtnoptionstyle\" )' ";
			t+="onclick='if(document.getElementById(\"lbt_"+sIdDataGridMenu+sColumNameBefore+"\")) GetElementById(\"lbt_"+sIdDataGridMenu+sColumNameBefore+"\").className=\""+CLASS_NAME_FILTER_UNSELECTED+"\";sColumNameBefore=\""+sColumName+"\";GetElementById(\"lbt_"+sIdDataGridMenu+sColumName+"\").className=\""+CLASS_NAME_FILTER_SELECTED+"\";JButton_ForwardOption_Click(\"" + sColumName + "\", "+i+", \"ctl00_mBtnTransparentFilter\", \"ctl00_mBtnTransparentFilter_multiplebutton\", \""+sFilterFunctionName+"\", \"None\", \"link\", \"select\");' nowrap>";
			t+="<a href='#' onclick='return false'  CLASS='mbtnoptionlinkstyle'>";
			t+= oData[ i ];
			t+="</a></TD>";
			t+="</TR>";
		}
		//}
		t+= "</TABLE>";
		if ( document.getElementById("JJF_div_ctl00_mBtnTransparentMenu") )
			document.getElementById("JJF_div_ctl00_mBtnTransparentMenu").style.top = -1000;
		document.getElementById("JJF_div_ctl00_mBtnTransparentMenu").innerHTML = t;
		//var iIndex = document.getElementById("JJF_div_ctl00_mBtnTransparentMenu").childNodes.length-1;
		var h = parseInt( document.getElementById("JJF_div_ctl00_mBtnTransparentMenu").offsetHeight );
		if ( h < iMaxHeightDivScroll )
		{
			document.getElementById("JJF_div_ctl00_mBtnTransparentFilter").style.top = -1000;
			SystemAL.DoDropDownMenu( e );
		}
		else
		{
			SystemAL.renderDivDropDownScroll( oData, sColumName, e, sFilterFunctionName, sIdDataGrid );
			SystemAL.DoDropDownScroll( e );
		}
	}
	else
	{
		if ( document.getElementById("JJF_div_ctl00_mBtnTransparentMenu") )
			document.getElementById("JJF_div_ctl00_mBtnTransparentMenu").style.top = -1000;
		SystemAL.renderDivDropDownScroll( oData, sColumName, e, sFilterFunctionName, sIdDataGrid );
		SystemAL.DoDropDownScroll( e );
	}
}
SystemAL.renderDivDropDownScroll = function/*renderDivDropDownScroll*/( oData, sColumName, e, sFilterFunctionName, sIdDataGrid )
{
	if ( sIdDataGrid == null )
		sIdDataGrid = "";
	else
		sIdDataGrid+="_";
		
	oData.sort( SystemAL.DropDownOrderFunction );
	
	var t = "";
	if ( sFilterFunctionName == null ) 
		sFilterFunctionName = "mBtnFilter_ClientEvent";
		        
	t+="<TABLE id='tblDivScrollFilter' cellSpacing='0' cellPadding='0' border=0 class='mbtnoptionstablestyle' >";
	t+="<TR>";
	t+="<TD class='mbtnoptionstyle' onmouseover='JButton_MouseOverOption( this, \"mbtnoptionmouseoverstyle\" )' onmouseout='JButton_MouseOutOption( this, \"mbtnoptionstyle\" )' ";
	t+="onclick='if(document.getElementById(\"lbt_"+sIdDataGrid+sColumNameBefore+"\")) GetElementById(\"lbt_"+sIdDataGrid+sColumNameBefore+"\").className=\""+CLASS_NAME_FILTER_UNSELECTED+"\";JButton_ForwardOption_Click(\"" + "" + "\", "+i+", \"ctl00_mBtnTransparentFilter\", \"ctl00_mBtnTransparentFilter_multiplebutton\", \""+sFilterFunctionName+"\", \"None\", \"link\", \"select\");' noWrap>";
	t+="<a href='#' onclick='return false'  CLASS='mbtnoptionlinkstyle'>";
	t+= "All";
	t+="</a></TD></TR>";
	for ( var i=0; i< oData.length; i++)
	{
		t+="<TR>";
		t+="<TD class='mbtnoptionstyle' onmouseover='JButton_MouseOverOption( this, \"mbtnoptionmouseoverstyle\" )' onmouseout='JButton_MouseOutOption( this, \"mbtnoptionstyle\" )' ";
		t+="onclick='if(document.getElementById(\"lbt_"+sIdDataGrid+sColumNameBefore+"\")) GetElementById(\"lbt_"+sIdDataGrid+sColumNameBefore+"\").className=\""+CLASS_NAME_FILTER_UNSELECTED+"\";sColumNameBefore=\""+sColumName+"\";GetElementById(\"lbt_"+sIdDataGrid+sColumName+"\").className=\""+CLASS_NAME_FILTER_SELECTED+"\";JButton_ForwardOption_Click(\"" + sColumName + "\", "+i+", \"ctl00_mBtnTransparentFilter\", \"ctl00_mBtnTransparentFilter_multiplebutton\", \""+sFilterFunctionName+"\", \"None\", \"link\", \"select\");' nowrap>";
		t+="<a href='#' onclick='return false'  CLASS='mbtnoptionlinkstyle'>";
		t+= oData[ i ];
		t+="</a></TD>";
		t+="</TR>";
	}
	t+= "</TABLE>";
	
	document.getElementById("JButton_divScroll_ctl00_mBtnTransparentFilter").innerHTML = t;
	
	var iIndex = document.getElementById("JJF_div_ctl00_mBtnTransparentFilter").childNodes.length-1;
	
	document.getElementById("JJF_div_ctl00_mBtnTransparentFilter").childNodes[iIndex].style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	document.getElementById("JButton_divScroll_ctl00_mBtnTransparentFilter").style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentFilter").style.width = document.getElementById("tblDivScrollFilter").offsetWidth;
	
	JButton_reset("ctl00_mBtnTransparentFilter");/*Will always initialize the filter with ALL*/
	
	var iMaxHeightDivScroll = 140;
	if ( (oData.length*20)<iMaxHeightDivScroll )
	{
		var iHDS = document.getElementById("JButton_divScroll_ctl00_mBtnTransparentFilter").offsetHeight;
		
		if ( iHDS > iMaxHeightDivScroll )
			iHDS = iMaxHeightDivScroll;
			
		document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentFilter").style.height = iHDS;
	}
	else
		document.getElementById("JButton_divContentScroll_ctl00_mBtnTransparentFilter").style.height = iMaxHeightDivScroll;
}
/********/
SystemAL.GetPositionXY = function( obj )
{
	var leftposNew = 0;
	var topposNew = 2;
	var aTag = obj
	do {
		aTag = aTag.offsetParent;
		//GetElementById( "txtArea" ).value = aTag.tagName +" top:"+ aTag.offsetTop + "\r\n";
		leftposNew	+= aTag.offsetLeft;
		topposNew += aTag.offsetTop;
		//if (aTag.scrollTop) toppos -=  aTag.scrollTop;
	} while(aTag.tagName!="BODY");
	aTag = obj;
	var iScrollPos = 0;
	do
	{
		aTag = aTag.parentNode;
		if (aTag.scrollTop)
			iScrollPos += aTag.scrollTop;
	}while ( aTag.tagName!="BODY" );
	
	var pX = leftposNew + obj.offsetLeft;
	var pY = topposNew + obj.offsetTop + obj.offsetHeight - iScrollPos;

	return { x: pX, y: pY };
}
SystemAL.GetPositionXYIntoScreen = function( objDiv, x, y )
{
	var pX = x;
	var pY = y;
	var crossobjFilter= objDiv.style;
	var heightLayer = objDiv.offsetHeight+20;
	var widthLayer = objDiv.offsetWidth;
	if (window.innerHeight) {
		if ((parseInt(crossobjFilter.top) + heightLayer) > (window.innerHeight + window.pageYOffset))
			pY = window.innerHeight + window.pageYOffset - heightLayer;
	} else {
		if ((parseInt(crossobjFilter.top) + heightLayer) > (document.body.clientHeight + document.body.scrollTop))
			pY = document.body.clientHeight + document.body.scrollTop - heightLayer;
	}
	if (window.innerWidth) {
		if ((parseInt(crossobjFilter.left) + widthLayer) > (window.innerWidth + window.pageXOffset))
			pX = window.innerWidth + window.pageXOffset - widthLayer;
	} else {
		if ((parseInt(crossobjFilter.left) + widthLayer) > (document.body.clientWidth + document.body.scrollLeft))
			pX = document.body.clientWidth + document.body.scrollLeft - widthLayer;
	}
	return { x: pX, y: pY };
}
SystemAL.DoDropDownMenu = function/*DoDropDownMenu*/( ev, id )
{
 	var aTagNew = document.getElementById( id );
	var leftposNew = 0;
	var topposNew = 2;
	/*while( aTagNew.offsetParent.tagName != 'BODY' )
	{
		aTagNew = aTagNew.offsetParent;
		leftposNew	+= aTagNew.offsetLeft;
		topposNew += aTagNew.offsetTop;
	}*/
	/*var	leftpos=0
	var	toppos=0*/
/*
	var aTag = aTagNew
	do {
		aTag = aTag.offsetParent;
		//GetElementById( "txtArea" ).value = aTag.tagName +" top:"+ aTag.offsetTop + "\r\n";
		leftposNew	+= aTag.offsetLeft;
		topposNew += aTag.offsetTop;
		//if (aTag.scrollTop) toppos -=  aTag.scrollTop;
	} while(aTag.tagName!="BODY");
	aTag = aTagNew;
	var iScrollPos = 0;
	do
	{
		aTag = aTag.parentNode;
		if (aTag.scrollTop)
			iScrollPos += aTag.scrollTop;
	}while ( aTag.tagName!="BODY" );
*/
/*
x = leftposNew + aTagNew.offsetLeft;
y = topposNew + aTagNew.offsetTop + aTagNew.offsetHeight - iScrollPos;
*/
	var pXY;
	var x = 0;
	var y = 0;
	if ( id != null )
	{
		pXY = SystemAL.GetPositionXY( aTagNew );
		x = pXY.x;
		y = pXY.y;
	}
	else
	{
		if (!document.all)
		{
			event = ev;
			x= event.pageX
			y = event.pageY
		}
		else
		{
			y  = event.clientY+document.body.scrollTop;
			x = event.clientX+document.body.scrollLeft;
		}
		y=y+10;
	}
myFunctionTransparentMenu( x, y, ev, id );
pXY = SystemAL.GetPositionXYIntoScreen( document.getElementById("JJF_div_ctl00_mBtnTransparentMenu"), x, y )

x = pXY.x;
y = pXY.y;

	if (x < 0) x = 0;
		myFunctionTransparentMenu( x+"px", y+"px", ev, id );
	/*alert( "id:" + id + " X:" + x + " - Y:" + y );*/
 return false;
}
/********************/
function DoDropDownFilter( ev, id )
{}
SystemAL.DoDropDownScroll = function/*DoDropDownScroll*/( ev, id )
{
	if (!document.all)
		event = ev;
	var x = 0;
	var y = 0;
	var pXY;
	if ( id != null )
	{
		pXY = SystemAL.GetPositionXY( document.getElementById( id ) );
		x = pXY.x;
		y = pXY.y;
	}
	else
	{
		if (!document.all)
		{
			event = ev;
			x= event.pageX
			y = event.pageY
		}
		else
		{
			y  = event.clientY+document.body.scrollTop;
			x = event.clientX+document.body.scrollLeft;
		}
	}
	if ( x < 0 ) x = 0;
		
	myFunctionFilter( x+"px", y+"px", event );
	/*	
var crossobjFilter=(document.getElementById)?document.getElementById("JJF_div_ctl00_mBtnTransparentFilter").style : (document.all)? document.all.JJF_div_ctl00_mBtnTransparentFilter : document.JJF_div_ctl00_mBtnTransparentFilter

					var heightLayer = document.getElementById("JJF_div_ctl00_mBtnTransparentFilter").offsetHeight+20;
					var widthLayer = document.getElementById("JJF_div_ctl00_mBtnTransparentFilter").offsetWidth;
					if (window.innerHeight) {
						if ((parseInt(crossobjFilter.top) + heightLayer) > (window.innerHeight + window.pageYOffset))
							y = window.innerHeight + window.pageYOffset - heightLayer;
					} else {
						if ((parseInt(crossobjFilter.top) + heightLayer) > (document.body.clientHeight + document.body.scrollTop))
							y = document.body.clientHeight + document.body.scrollTop - heightLayer;
					}
					if (window.innerWidth) {
						if ((parseInt(crossobjFilter.left) + widthLayer) > (window.innerWidth + window.pageXOffset))
							x = window.innerWidth + window.pageXOffset - widthLayer;
					} else {
						if ((parseInt(crossobjFilter.left) + widthLayer) > (document.body.clientWidth + document.body.scrollLeft))
							x = document.body.clientWidth + document.body.scrollLeft - widthLayer;
					}
*/
pXY = SystemAL.GetPositionXYIntoScreen( document.getElementById("JJF_div_ctl00_mBtnTransparentFilter"), x, y )

x = pXY.x;
y = pXY.y;

	if ( id == null )
		y = y + 10;
	myFunctionFilter( x, y, event );
	
	return false;
 }
