		var dragTried = false;
		var openedParts = isOpen = false;
		var nav = (navigator.appName == "Netscape");
		var isDisplayed = false;//context menu
		var wfrmParts = null;
		var LastSelectedRow = null;
		var FamilyCnt;
		var MenuWidth = 0;
		var MenuHeight = 0;
		
		var isCartBaloonDisplayed = false;
		var curBaloonPartID = null;
		var lastQtyOnBaloon = '';
		 
		if (IE6_up)
			document.onkeydown = fnKeyIE;
		else		
		{
//			document.addEventListener("onkeydown", fnKeyNS, false);
//			document.addEventListener("click", mouseclick, false);
			//document.captureEvents(Event.CLICK);
			document.onkeydown = fnKeyNS;
//			document.onclick = mouseclick;
			
			//getElementById("PartsGrid1_tblHeader").
			document.onmouseup = DragStop;
		}		

function getCartButton(partID)
{
	var btnCart = document.createElement('input');
	btnCart.type = 'button';
	btnCart.className = 'btn_Cart';
	btnCart.style.width = 14;
	btnCart.style.height = 12;
	btnCart.onclick = btnCartClick;
	btnCart.PartID = partID;
	btnCart.id = 'shopping_cart_btn_' + partID;
		
	return btnCart;
}
//================================================================================================
function RefreshCartWindow()
{
	var cartWindow = self.parent.frames['fraToolbar'].frmShoppingCart;
	if ((cartWindow != null) && (!cartWindow.closed))
		cartWindow.RefreshForm();
}
//================================================================================================
function ShowBaloon(evt)
{
	var bln = document.getElementById('ItemBaloon');
	bln.style.left = evt.clientX - 238;
	bln.style.top = document.body.scrollTop + evt.clientY - 22;
	bln.style.display = 'block';
	
	isCartBaloonDisplayed = true;
}		
//================================================================================================
function HideBaloon()
{
	document.getElementById('ItemBaloon').style.display = 'none';
	
	isCartBaloonDisplayed = false;
}
//================================================================================================
function tbQtyKeyDwn(evt)
{
	evt = (evt == null) ? window.event : evt;
	
	if (evt.keyCode == 13)
		btnAddToCartClick();
	
	evt.cancelBubble = true;
}
//================================================================================================		
function btnCartClick(evt)
{
	evt = (evt == null) ? window.event : evt;
	evt.cancelBubble = true;

	ShowBaloon(evt);
	var tb_bln_qty = document.getElementById('bln_qty');
	var btn_del = document.getElementById('bln_btn_del');
	var btn_add = document.getElementById('bln_btn_add');
	
	tb_bln_qty.value = 'Processing...';
	tb_bln_qty.disabled = true;
	btn_del.disabled = true;
	btn_add.disabled = true;
	
	curBaloonPartID = (IE ? evt.srcElement : evt.currentTarget).PartID;
	wfrmItemGridObject.GetItemQty(curBaloonPartID, GetCartItemQtyCallback);
}
//================================================================================================
function GetCartItemQtyCallback(responseData)
{
	if (isCartBaloonDisplayed)
	{
		var tb_bln_qty = document.getElementById('bln_qty');
		var btn_del = document.getElementById('bln_btn_del');
		var btn_add = document.getElementById('bln_btn_add');
	
		if (responseData.value == '0')
			tb_bln_qty.value = '1';
		else
		{
			tb_bln_qty.value = responseData.value;
			btn_del.disabled = false;
		}
		
		tb_bln_qty.disabled = false;
		btn_add.disabled = false;
		lastQtyOnBaloon = tb_bln_qty.value;
	}
}
//================================================================================================
function btnAddToCartClick()
{
	var tb_bln_qty = document.getElementById('bln_qty');
	var newQuantity = TrimStr(tb_bln_qty.value);
	
	while ((newQuantity.charAt(0) == '0') && (newQuantity.length != 1))
		newQuantity = newQuantity.substring(1, newQuantity.length);
			
	if (myIsIntQ(newQuantity))
	{
		if (self.parent.frames['fraToolbar'].sCart.CheckForAbilityToAddItem(curBaloonPartID))
		{
			var addToCartRequestData = new Object();
			addToCartRequestData.LinkRelId = self.parent.frames['fraimage'].document.forms[0].hLinkRelId.value;
			addToCartRequestData.PartID = curBaloonPartID;
			addToCartRequestData.Qty = newQuantity;
		
			wfrmItemGridObject.AddItemToCart(addToCartRequestData, AddToCartFromBaloonCallback);
		}
		else
			wfrmItemGridObject.ChangeQuantity(curBaloonPartID, newQuantity, ChangeQtyFromBaloonCallback);
	
		HideBaloon();		
	}
	else
	{
		window.alert('Quantity must be a number, greater then 0 and less then 100000!');
		tb_bln_qty.value = lastQtyOnBaloon;
	}
}
//================================================================================================
function AddToCartFromBaloonCallback(addToCartResponseData)
{
	if (addToCartResponseData.value)
	{
		self.parent.frames['fraToolbar'].sCart.AddNewItem(addToCartResponseData.request.args.param.PartID);
		RefreshCartWindow();
	}
}
//================================================================================================		
function ChangeQtyFromBaloonCallback(responseData)
{
	if (responseData.value)
		RefreshCartWindow();
}
//================================================================================================
function DeleteItemFromBaloon()
{
	if (confirm('Do you really want to delete this item from your cart?'))
	{
		var tb_bln_qty = document.getElementById('bln_qty');
		var btn_del = document.getElementById('bln_btn_del');
		var btn_add = document.getElementById('bln_btn_add');
	
		tb_bln_qty.value = 'Removing item...';
		tb_bln_qty.disabled = true;
		btn_del.disabled = true;
		btn_add.disabled = true;
	
		wfrmItemGridObject.DeleteItem(curBaloonPartID, DeleteItemFromBaloonCallback);
	}
}
//================================================================================================
function DeleteItemFromBaloonCallback(responseData)
{
	if (responseData.value)
	{
		self.parent.frames['fraToolbar'].sCart.DeleteItem(responseData.request.args.partID);
		HideBaloon();
		RefreshCartWindow();
	}
	else if (isCartBaloonDisplayed)
	{
		var tb_bln_qty = document.getElementById('bln_qty');
		var btn_del = document.getElementById('bln_btn_del');
		var btn_add = document.getElementById('bln_btn_add');
	
		tb_bln_qty.value = 'Failed...';
		tb_bln_qty.disabled = false;
		btn_del.disabled = false;
		btn_add.disabled = false;
	}
}		
//================================================================================================		
/*function ReactivateCartButtons(partID)
{
	if (partID != 'clear_all')
	{
		var btnCart = document.getElementById('shopping_cart_btn_' + partID);
		
		if (btnCart != null)
		{
			btnCart.disabled = false;
			btnCart.style.backgroundImage = 'url(' + getCurrentURLPath() + '/Images/btn_cart.gif)';
		}
	}
	else
	{
		var cartItems = self.parent.frames['fraToolbar'].sCart.CartItems;
		for (var i=0;i<cartItems.length;i++)
		{
			var btnCart = document.getElementById('shopping_cart_btn_' + cartItems[i].toString());
			if (btnCart != null)
			{
				btnCart.disabled = false;
				btnCart.style.backgroundImage = 'url(' + getCurrentURLPath() + '/Images/btn_cart.gif)';
			}
		}
	}
}*/
//================================================================================================		
function TryDragStart(curEvent)
{
	var PartsGridAnchor = document.getElementById('PartsGrid1_aDragAndDrop');

	if (IE6_up && (PartsGridAnchor != null) && (PartsGridAnchor.href == ''))
		PartsGridAnchor.href = '#';

	dragTried = true;
}
//================================================================================================		
function DoDragStart()
{
	if (dragTried && !IE6_up)
		dragStart();
}
//================================================================================================		
function DragStop()
{
	dragTried = false;
}
//================================================================================================		
function Init()
{
	if (LastSelectedRow == null)
		_SelectRow( GetFirstRow() );

	var enableSCart = self.parent.frames['fraToolbar'].document.forms[0].EnableShoppingCart.value;
	var partsTable = document.getElementById('PartsGrid1_tblHeader');
	
	if ((enableSCart.toLowerCase() == 'true') && (partsTable != null))
	{
		for (var i=0;i<partsTable.rows.length;i++)
		{
			var partRow = partsTable.rows[i];
			
			if (partRow.className == 'Header')
				partRow.appendChild(document.createElement('TD'));
			
			var attrPartID = partRow.getAttribute('PartID');
			if (attrPartID != null)
			{
				var cartCell = document.createElement('TD');
				cartCell.style.padding = 0;
				cartCell.appendChild(getCartButton(attrPartID));
				partRow.appendChild(cartCell);
			}
		}
	}
}
//================================================================================================		
function _SelectRow(Row)
{
	if(Row==null) return;
	RowSelect2(Row);
	try{
		top.fraNotes.ShowNotesForPart(Row.attributes.PartID.value);
		top.fraimage.HighlightHS(Row.attributes.PartID.value, Row.attributes.L_Disp.value, true);
	}	
	catch(ex){LogError(ex);}
}
//================================================================================================		
function SelectRow(Row)
{
	if(Row==null) return;
	UnSelectAll();
	try{							
		top.fraimage.UnselectHotspot();						
	}
	catch(ex){
		top.fraimage.manageNotes(0);
		return;
	}	
	RowSelect2(Row);
	top.fraNotes.ShowNotesForPart(Row.attributes.PartID.value);
	top.fraimage.HighlightHS(Row.attributes.PartID.value, Row.attributes.L_Disp.value, true);
}
//================================================================================================		
function GetColumnsArray()
{
	var rows = document.getElementById("PartsGrid1_tblHeader").rows;

	if(rows.length<2)return;

	var FamilyColumnIndex=null;
	var a = new Array();
	for(var r=0;r<=1;r++)//scan first and second row
	{
		var index=0;
		for(var j=0;j<rows[r].cells.length;j++){

			//EDICode
			var ediCode;
			if(rows[r].cells[j].attributes.EDICode==null || rows[r].cells[j].attributes.EDICode.value=="")
				ediCode="99";
			else
				ediCode = rows[r].cells[j].attributes.EDICode.value.toString();			
			if(ediCode.length==1)
				ediCode="0"+ediCode;//format number as 2-digit									

			var InteractionTitle;
			if(rows[r].cells[j].attributes.InteractionTitle !=null)
				InteractionTitle = rows[r].cells[j].attributes.InteractionTitle.value;

			if(InteractionTitle=="FAMILY" && FamilyColumnIndex==null)
				FamilyColumnIndex=index;

			var PriceID = null;
			if (rows[r].cells[j].attributes.PriceID != null)
				PriceID = rows[r].cells[j].attributes.PriceID.value;

			var cellIndex = (r==0) ? index.toString():(index+FamilyColumnIndex).toString();
			if(cellIndex.length==1)
				 cellIndex="0"+cellIndex;//format number as 2-digit
			
			a[a.length] = ediCode + cellIndex + InteractionTitle + ((PriceID != null) ? ('\b' + PriceID) : '');
			
			index+=rows[r].cells[j].colSpan;
		}
	}
	a.sort();
	return a;
}
//================================================================================================		
function dragStart()
{
	dragTried = false;
	
	var rows = document.getElementById("PartsGrid1_tblHeader").rows;
	
	var lCurrencyPrefix = document.forms[0].CurrencyPrefix.value;
	var lGroupsSeparator = document.forms[0].GroupsSeparator.value;
	var lCurrencySuffix = document.forms[0].CurrencySuffix.value;
	var lCurrencyNegativePrefix = document.forms[0].CurrencyNegativePrefix.value;
	var lCurrencyNegativeSuffix = document.forms[0].CurrencyNegativeSuffix.value;

	if(rows.length < 2) return;

	var a = GetColumnsArray(rows);
	var text = "<DATA>";

	for(var i=0;i<rows.length;i++)
	{
		var rowObj = rows[i];
		
		if (rowObj.className == "highlight")
		{
			text += "<ROW>";			
				for(var k=0;k<a.length;k++)
				{
					var ediCode = eval(a[k].substr(0,2));
					if(ediCode == 99) continue;
					var cellIndex = eval(a[k].substr(2,2));
					
					var PriceID = null;
					var SeparatorIndex = a[k].indexOf('\b');
					if (SeparatorIndex != -1)
						PriceID = a[k].substr(SeparatorIndex + 1, a[k].length - SeparatorIndex - 1);

					var InteractionTitle = (PriceID == null) ? a[k].substr(4) : a[k].substr(4, SeparatorIndex - 4);
					var InnerText = (rowObj.cells[cellIndex].value!=null) ? rowObj.cells[cellIndex].value : rowObj.cells[cellIndex].innerHTML;
					InnerText = Filter(InnerText);

					if ((InteractionTitle == 'SELL') || (InteractionTitle == 'COST') || (InteractionTitle == 'MultiPrice'))
						InnerText = myReplace(InnerText, lGroupsSeparator, '').replace(lCurrencyNegativePrefix, '-').replace(
							lCurrencyPrefix, '').replace(lCurrencySuffix, '').replace(lCurrencyNegativeSuffix, '');

					text += '<Column Name="' + InteractionTitle + ((PriceID != null) ? ('" PriceID="' + PriceID) : '')
						+ '" Value="' + InnerText + '" EDICode="'+ediCode+'"/>';

					//--[ Adding of aditionsl Multiprice if it is neccessary. It equals SELL  ]--
					if (InteractionTitle == 'SELL' && (a[k + 1].indexOf('MultiPrice') != -1))
						text += '<Column Name="MultiPrice" PriceID="0" Value="' + InnerText + '" EDICode="54"/>';
				}
			text += "</ROW>";
		}
		
	}

	text+= "</DATA>";

	if (IE6_up)
	{
		var dropObj = window.event.dataTransfer;
		dropObj.effectAllowed = "copy";
		dropObj.dropEffect = "copy";
		dropObj.clearData("text");
		dropObj.setData("text", text);
	}
	else
	{
		try
		{
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
		}
		catch (ex)
		{
			alert('For using Drag and Drop operation, you must activate one Mozilla option.\n'
				+ 'To do this, open new Mozilla Tab/Window and enter "about:config" in to the URL field\n'
				+ 'Then enter "signed.applets.codebase_principal_support" in to the additional "Filter" field\n'
				+ 'Set the value of the appeared setting as true by double clicking on it.\n'
				+ 'Perform the Drag operation one more time and you will see the Mozilla dialog window. Set \n'
				+ 'the "Remember this decision" check box and click the "Allow" button.');
		}
            
            	var dragService = Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService);
	        var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable)
            	trans.addDataFlavor("text/unicode");
            
            	var textData = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
            	textData.data = text;
            
            	trans.setTransferData("text/unicode", textData, textData.data.length * 2);
            
            	var transArray = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray);
            	transArray.AppendElement(trans);
            
            	dragService.invokeDragSession(dragService.TEXT_NODE, transArray, null, dragService.DRAGDROP_ACTION_COPY);
	}
}
//================================================================================================			
function UnSelect(Row)
{
	Row.className=Row.attributes.availability.value;
	Row.cells[0].innerHTML = " ";
}
//================================================================================================		
function UnSelectAll()
{
	var rows = document.getElementById("PartsGrid1_tblHeader").rows;
	for(var i=0;i<rows.length;i++)
		if(rows[i].className!="Header")
			UnSelect(rows[i]);
}
//================================================================================================				
function GetRowIndex(Row)
{
	if ( document.getElementById("PartsGrid1_tblHeader") == null )
		return null;
	var rows = document.getElementById("PartsGrid1_tblHeader").rows;
	for(var i=0;i<rows.length;i++)
		if(rows[i]==Row)
			return i;
	return null;
}
//================================================================================================				
function Column_OnContextMenu(column, evnt)
{
	//	was for IE
	//var row = column.parentElement; 
	try
	{
		var row = column.parentNode;
		row.attributes.PartNo.value = column.attributes.PartNo.value;
		row.attributes.SearchFieldName.value = column.attributes.SearchFieldName.value;
		Row_OnContextMenu(row, evnt);
	}
	catch(ex){}
	return false;                        
}
//================================================================================================		
function Row_OnContextMenu(Row, evnt)
{
	try
	{
		Row_OnClick(Row, evnt);
		displayLocation(-1, evnt);
	}
	catch(ex){}
	return false;
}
//================================================================================================			
function Row_OnClick(Row, evnt)
{			
	if(this.IE6_up)
	{
		if(window.event!=null)
		{
			if(!window.event.shiftKey && !window.event.ctrlKey) //Works For IE Only
			{
				UnSelectAll();
				try{
					if(typeof(top.fraimage) != "undefined")				
						top.fraimage.UnselectHotspot();
					else return;									
				}
				catch(ex)
				{
					top.fratree.manageSchematic("0", "NONE");				
					return;
				}
			}
		
			//select multiple rows if SHIFT key pressed
			if(window.event.shiftKey){
				var row1 = GetRowIndex(LastSelectedRow);
				var row2 = GetRowIndex(Row);
				if(row1!=null && row2!=null)
				{
					var minIndex = (row1<row2)? row1:row2;
					var maxIndex = (row1>row2)? row1:row2;
					var rows = document.getElementById("PartsGrid1_tblHeader").rows;
					for(var i=minIndex;i<=maxIndex;i++)
					{
						RowSelect2(rows[i]);
						top.fraimage.HighlightHS(rows[i].PartID, rows[i].L_Disp, (i==maxIndex) );
					}
				}
			}
		}		
		
		if(Row.className=="highlight" && window.event.ctrlKey){
			UnSelect(Row);
			top.fraimage.UnselectHotspot(Row.PartID);
			return;
		}		
	}
	else
	{
		if(!evnt.shiftKey && !evnt.ctrlKey)
		{
			UnSelectAll();
			try{
				if(typeof(top.fraimage) != "undefined")				
					top.fraimage.UnselectHotspot();
				else return;									
			}
			catch(ex){
				top.fratree.manageSchematic("0", "NONE");
				return;
			}
		}
		
		//select multiple rows if SHIFT key pressed
		if(evnt.shiftKey)
		{
			var row1 = GetRowIndex(LastSelectedRow);
			var row2 = GetRowIndex(Row);
			if(row1!=null && row2!=null)
			{
				var minIndex = (row1<row2)? row1:row2;
				var maxIndex = (row1>row2)? row1:row2;
				var rows = document.getElementById("PartsGrid1_tblHeader").rows;
				for(var i=minIndex;i<=maxIndex;i++)
				{
						RowSelect2(rows[i]);
						top.fraimage.HighlightHS(rows[i].PartID, rows[i].L_Disp, (i==maxIndex) );
				}
			}
		}
		if(Row.className=="highlight" && evnt.ctrlKey)
		{
			UnSelect(Row);
			top.fraimage.UnselectHotspot(Row.PartID);
			return;
		}					
	}
	_SelectRow(Row);			
}
//================================================================================================		
function GetFirstRow(){
	//var rows = document.all("PartsGrid1_tblHeader").rows;
	var rows = document.getElementById("PartsGrid1_tblHeader").rows;
	for(var i=0;i<rows.length;i++)
		if(rows[i].className!="Header")
			return rows[i];
	return null;
}
//================================================================================================			
function SelectFromSchematic(KeyPressed, PID, Link_Display){
	if(KeyPressed==0)
		UnSelectAll();			
	
	_SelectRow(RowFindByID(PID, Link_Display));
}
//================================================================================================			
function RowFindByID(PID, Link_Display){
	var rows = document.getElementById("PartsGrid1_tblHeader").rows;
	for(var i=0;i<rows.length;i++)				
		if(rows[i].className!="Header" && rows[i].attributes.PartID.value == PID && rows[i].attributes.L_Disp.value == Link_Display)
			return rows[i];
	return null;
}
//================================================================================================		
function RowFindByNumber(PNumber){			
	var rows = document.getElementById("PartsGrid1_tblHeader").rows;			
	for(var i=0;i<rows.length;i++)
		if(rows[i].className!="Header" && rows[i].attributes.PartNo.value==PNumber)
			return rows[i];
	return null;
}
//================================================================================================		
function RowFindByID_FromSearch(PID){
	var rows = document.getElementById("PartsGrid1_tblHeader").rows;
	for(var i=0;i<rows.length;i++)
		if(rows[i].className!="Header" && rows[i].attributes.PartID.value == PID)
			return rows[i];
	return null;
}

//================================================================================================		
function RowSelect2(Row){
	if(Row==null)return;
	LastSelectedRow=Row;	
	Row.className="highlight";	
	if(IE6_up)
	{		
		Row.cells[0].innerHTML = "<font face='Webdings'>4</font>";
		var innerH = document.documentElement.offsetHeight;
		var scL = Row.cells[0].offsetLeft;
		var scT = Row.cells[0].offsetTop;
		var hh = (innerH / 2) - Row.scrollHeight;
		scT -= hh;
		window.scrollTo(scL, scT);
	}
	else
	{
		Row.cells[0].innerHTML = "<font face='Webdings'>4</font>";
		var scL = Row.cells[0].offsetLeft;
		var scT = Row.cells[0].offsetTop;
		var hh = (self.innerHeight / 2) - Row.scrollHeight;
		scT -= hh;
		window.scrollTo(scL, scT);
	}
}
//================================================================================================		
function RefreshNotes(){
	Row_OnClick(GetFirstRow());
	//top.fraNotes.ShowNotesForPart(LastSelectedRow.PartID);
	//Init();
	//Row_OnClick(LastSelectedRow);
	//RowSelect2(LastSelectedRow);
}
//================================================================================================				
function fnKeyIE(e)
{
	var index=eval(GetRowIndex(LastSelectedRow));//index of selected row

	if (window.event.keyCode == 40 && index != null) index++; //down				
	else if (window.event.keyCode == 38 && index != null) index--; //up				
	else return false;

	var rows = document.getElementById("PartsGrid1_tblHeader").rows;
	
	if(index < 0 || index >= rows.length || rows[index].className=="Header")
		return false;
	
	if(!window.event.shiftKey && !window.event.ctrlKey)
	{
		UnSelectAll();
		top.fraimage.UnselectHotspot();
	}
	_SelectRow ( rows[index] );
	return false;//cancel event
}
//================================================================================================		
function fnKeyNS(e)
{
	var index=eval(GetRowIndex(LastSelectedRow));//index of selected row

	if (e.keyCode == 40 && index != null) index++; //down				
	else if (e.keyCode == 38 && index != null) index--; //up				
	else return false;

	var rows = document.getElementById("PartsGrid1_tblHeader").rows;
	
	if(index < 0 || index >= rows.length || rows[index].className=="Header")
		return false;

	if(!e.shiftKey && !e.ctrlKey)
	{
		UnSelectAll();
		top.fraimage.UnselectHotspot();
	}
	_SelectRow ( rows[index] );
	return false;//cancel event

}
//================================================================================================		
function HideContextMenu()
{
	if (isDisplayed == true) return;
	var menu = document.getElementById("menu");
	menu.style.className = "off";
	menu.style.display='none';
	menu.style.visibility='hidden';
}
//================================================================================================		
function displayLocation(HsCnt, evnt)
{

	/*var menuAddToCart = document.getElementById("menuAddToCart");
	var menuPartsAvailability = document.getElementById("menuPartsAvailability");
	var menuReplacedBy = document.getElementById("menuReplacedBy");
	var menuFindPart = document.getElementById("menuFindPart");
	var menu = document.getElementById("menu");
	var PartsAvailabilityContextMenu = document.forms[0].PartsAvailabilityContextMenu.value;
	var PrintContextMenu = document.forms[0].PrintContextMenu.value;*/
	var nextElem;
	var prntelem;
	var enableSCart = self.parent.frames['fraToolbar'].document.forms[0].EnableShoppingCart.value;

	if(IE6_up)
		window.event.cancelBubble = true;
	else if(NS6_up)
		evnt.cancelBubble = true;		

	if (document.getElementById('menuPrint') == null) return false;
	if (document.getElementById('menuPartsAvailability') != null) 
			document.getElementById('menuPartsAvailability').innerHTML = document.forms[0].PartsAvailabilityContextMenu.value + '<BR>';
	
	if (HsCnt == -1)	
		document.getElementById('menuPrint').innerHTML = document.forms[0].PrintContextMenu.value+"<BR>";			
	else
	{
		var Row = document.getElementById("TrRow" + HsCnt);
		if(Row.className != "highlight")
			document.getElementById('menuPrint').innerHTML = document.forms[0].PrintContextMenu.value+"<BR>";				
	}
	
	if( top.fraToolbar.document.getElementById("ImgPrint").disabled)
		document.getElementById('menuPrint').disabled = true;
	else
		document.getElementById('menuPrint').disabled = false;
	
	var menuAddToCart = document.getElementById('menuAddToCart');
	if ((enableSCart.toLowerCase() == 'true') &&
		self.parent.frames['fraToolbar'].sCart.CheckForAbilityToAddItem(getCurrentPartID()))
	{
		var prevElem = menuAddToCart.previousSibling;

		while (typeof(prevElem.tagName) == 'undefined')
			prevElem = prevElem.previousSibling;

		if (prevElem.tagName.toUpperCase() != 'HR')
			menuAddToCart.parentNode.insertBefore(document.createElement('HR'), menuAddToCart);

		menuAddToCart.innerHTML = document.forms[0].AddToCartContextMenu.value;				
		menuAddToCart.style.display = '';
	}
	else
	{
		menuAddToCart.style.display = 'none';
		var prevElem = menuAddToCart.previousSibling;
		
		while (typeof(prevElem.tagName) == 'undefined')
			prevElem = prevElem.previousSibling;

		if (prevElem.tagName.toUpperCase() == 'HR')
			menuAddToCart.parentNode.removeChild(prevElem);
	}
	
	var rows = document.getElementById("PartsGrid1_tblHeader").rows;
	if(rows.length > 1)
	{
		var rowObj;
		for(var i=0; i < rows.length;i++)
		{
			rowObj = rows[i];
			if(rowObj.className == "highlight" )
				break;		
		}
		nextElem = document.getElementById('menuReplacedBy').nextSibling;
		prntElem = document.getElementById('menuReplacedBy').parentNode;
		if(!IE)
		{
			while (typeof(nextElem.tagName) == "undefined")
				nextElem = nextElem.nextSibling;
		}
		if (rowObj.attributes.SuperSessionId != null)
		{		
       		document.getElementById('menuReplacedBy').style.display = '';
			document.getElementById('menuReplacedBy').innerHTML = document.forms[0].ReplacedByContextMenu.value + rowObj.attributes.SuperSessionId.value;			
			
			if(nextElem.tagName.toUpperCase() != "HR")
			{
				prntElem.insertBefore(document.createElement("HR"), nextElem);
			}				
			document.getElementById('menuReplacedBy').attributes.SuperSessionId.value = rowObj.attributes.SuperSessionId.value;
		}
		else
		{
			document.getElementById('menuReplacedBy').style.display = 'none';
			document.getElementById('menuReplacedBy').attributes.SuperSessionId.value = "";
			
			if(nextElem.tagName.toUpperCase() == "HR")
			{
				prntElem.removeChild(nextElem);					
			}
		}
		if ((rowObj != null) && (rowObj.attributes.PartNo != null))
		{
			if(rowObj.attributes.PartNo.value == "&nbsp;")//when PartNo is Empty
			{
				document.getElementById('menuFindPart').innerHTML = "";
				document.getElementById('menuFindPart').disabled = true;
			}
			else 
			{
				document.getElementById('menuFindPart').style.display = '';
				document.getElementById('menuFindPart').innerHTML = document.forms[0].FindPartNoText.value + rowObj.attributes.SearchFieldName.value + ":<br>" + rowObj.attributes.PartNo.value;
				nextElem = document.getElementById('menuFindPart').nextSibling;
				if(!IE)
				{					
					while(typeof(nextElem.tagName) == "undefined")				
						nextElem = nextElem.nextSibling;					
				}
				if(nextElem.tagName.toUpperCase() != "HR")
				{					
					prntElem.insertBefore(document.createElement("HR"), nextElem);
				}					
				
				document.getElementById('menuFindPart').attributes.PartNo.value = rowObj.attributes.PartNo.value;
				document.getElementById('menuFindPart').disabled = false;				  	
			}
		}
	}
	var VDiff, HDiff, Top, Left;	
	
 	if(IE6_up)
	{
		Top = event.clientY + document.body.scrollTop;
 		Left = event.clientX + document.body.scrollLeft;
 		
		VDiff = (document.getElementById('menu').clientHeight + event.clientY) - document.body.clientHeight;
 		HDiff = (document.getElementById('menu').clientWidth + event.clientX) - document.body.clientWidth;		

 		
 		Top-= (VDiff > 0 ? document.getElementById('menu').clientHeight + 5 : 0);
 		Left-= (HDiff > 0 ? HDiff+5: 0);	

 		
		document.all['menu'].style.pixelTop = Top;
		document.getElementById('menu').style.pixelLeft = Left;		
	}
	else if(NS6_up)
	{
		var menu = document.getElementById('menu');		
		
		MenuWidth = (document.getElementById('menu').clientWidth > 0 ? document.getElementById('menu').clientWidth : MenuWidth);
		MenuHeight =(document.getElementById('menu').clientHeight > 0 ? document.getElementById('menu').clientHeight : MenuHeight);		
		
		Top = evnt.clientY + document.body.scrollTop;
 		Left = evnt.clientX + document.body.scrollLeft; 		
		
		VDiff = (MenuHeight + evnt.clientY) - document.body.clientHeight;
 		HDiff = (MenuWidth + evnt.clientX) - document.body.clientWidth; 
 		
 		Top-= (VDiff > 0 ? (MenuHeight + 5) : 0);
 		Left-= (HDiff > 0 ? (HDiff+5): 0);
		
		document.getElementById('menu').style.top = Top;		
		document.getElementById('menu').style.left = Left;		
		
	} 

	document.getElementById('menu').style.display = '';
	document.getElementById('menu').style.visibility = 'visible';	
	document.getElementById('menu').style.className = "off";	
	window.setTimeout("HideContextMenu()", 5000);
	return false;
}
//================================================================================================				
function setSelectionOn(object)
{
	isDisplayed = true;
	object.className = 'onn';
	object.style.display = 'block';
	
	
}
//================================================================================================				
function setSelectionOff(object)
{
	HideMe();
	object.className = 'off';
	
	if(wfrmParts != null)
	{
		if(wfrmParts.closed == false && openedParts == true)
		{
			wfrmParts.focus();
			openedParts = false;
		}
	}
}
//================================================================================================		
function contextMenuClicked(obj)
{
	isDisplayed = false;
	HideContextMenu();
//	var frToolbar = top.fraToolbar;


	if ( (obj.attributes.SuperSessionId != null) && (obj.attributes.SuperSessionId.value != "") )
	{  		
		top.fraToolbar.CallSearch("Parts", obj.attributes.SuperSessionId.value);
	}
	else if ( (obj != null) && (obj.id == "menuFindPart") ){
		//top.parent.frames("fraToolbar").CallSearch("Parts", obj.PartNo);
		top.fraToolbar.CallSearch("Parts", obj.attributes.PartNo.value);
	}
	else if (obj.id == "menuPrint")
	{
		//var objSchematic = top.parent.frames("fraimage").document;		
			
		var frImage = top.fraimage;		

		if(frImage == null) return;
		
		var schematicImage = frImage.document.images[0];//imgSchematic
		if(schematicImage==null) return;

		window.open("PrintPreview.aspx?LinkRelId="+frImage.document.forms[0].hLinkRelId.value, "_blank");
	}
	else if(obj.id == "menuPartsAvailability")
	{
		//Find index of NUMBER column
		var a = GetColumnsArray();
		var PartNumberColumnIndex=-1;
		for(var i=0; i<a.length; i++){
			if(a[i].substr(4)=="NUMBER"){
				PartNumberColumnIndex=eval(a[i].substr(2,2));
				break;
			}
		}
		if(PartNumberColumnIndex==-1){
			alert("NUMBER column not found");
			return;
		}
		
		var UrlPath = document.forms[0].lblUrlPath.value;
		var postString = document.forms[0].lblUrlPath.value + "?SelectedParts=";

		var rows = document.getElementById("PartsGrid1_tblHeader").rows;
		var found=false;
		for(var i=1;i<rows.length;i++)
		{
			var Row=rows[i]
			
			if (Row.className == "highlight")
			{						
				nn=Row.cells[PartNumberColumnIndex].innerHTML;
				if(found)postString += ", ";
				postString += nn;
				found=true;
			}
		}
		
		if (postString.charAt(postString.length - 1) == ",")
			postString = postString.substring(0, postString.length - 2);
		
		if(isOpen && wfrmParts != null) wfrmParts.close();
		wfrmParts = window.open(postString,"","",true);
		isOpen = openedParts = true;
		wfrmParts.focus();
	}			
	else if(obj.id == "menuAddToCart")
	{
		var addToCartRequestData = new Object();
		addToCartRequestData.LinkRelId = self.parent.frames['fraimage'].document.forms[0].hLinkRelId.value;
		addToCartRequestData.PartID = getCurrentPartID();
		addToCartRequestData.Qty = '1';
		
		wfrmItemGridObject.AddItemToCart(addToCartRequestData, AddToCartCallback);
	}
}
//================================================================================================		
function getCurrentPartID()
{
	var rows = document.getElementById("PartsGrid1_tblHeader").rows;
	for(var i=1;i<rows.length;i++)
		if (rows[i].className == "highlight")
			return rows[i].attributes.PartID.value;
	
	return null;
}
//================================================================================================		
function AddToCartCallback(addToCartResponseData)
{
	if (addToCartResponseData.value)
	{
		self.parent.frames['fraToolbar'].sCart.AddNewItem(addToCartResponseData.request.args.param.PartID);
		RefreshCartWindow();
	}
}
//================================================================================================		
function Filter(str)
{
	if (str == null) return str;

	str = str.replace(/\&/g, "&amp;"); //MUST be done FIRST! Duh!
	str = str.replace(/\"/g, "&quot;");
	str = str.replace(/\'/g, "&apos;");
	str = str.replace(/\</g, "&lt;");
	str = str.replace(/\>/g, "&gt;");
	return str;
}
//================================================================================================		
function ltrim ( s )
{
	if(s == null) return "";
	return s.replace( /^\s*/, "" );
}
//================================================================================================
function rtrim ( s )
{
	if(s == null) return "";
	return s.replace( /\s*$/, "" );
}
//================================================================================================
function trim ( s )
{
	if(s == null) return "";
	return rtrim(ltrim(s));
}
//================================================================================================
function HideMe()
{
	isDisplayed = false;
	window.setTimeout("HideContextMenu()", 5000);			
}
//================================================================================================		
function LogError(msg)
{
	window.status = msg;
}
		