
var fcnt = new Number();
var formEls = new Object();
var ID2Open  = new String("NA");
var ID2Close = new String("NA");
var Item = new Object();  //REF TO CURRENT OPTIONS OBJECT...USED BY BUTTONGROUPS CODE

function InitializeButtonGroups(){
	fcnt = document.mainMenu.elements.length;
	formEls = document.mainMenu.elements;
}
function showoptions(bobj,optgrp,targ,minNum,incr,bundle)
  {
  var exMsg = "bobj " + bobj;
   exMsg += "opt " + optgrp
   exMsg += "targ " + targ;
   exMsg += "min" + minNum;
   exMsg += "incu" + incr;
   exMsg += "bun " + bundle;
    alert(exMsg);
  }
function getOptions(bobj,optgrp,targ,minNum,incr,bundle)
{
	try
	{
		if(Item.Options)
		{
			Item.optionsCost = 0;
			for(var optnm in Item.Options)
			{
				Item.Options[optnm].optName = void(0);
				Item.Options[optnm].optCost = 0;
				Item.Options[optnm] = void(0);
			}
			Item.Options = new Object();
		}			
		ID2Close = (ID2Open == "NA") ? "NA" : ID2Open ;
		var targit = (targ) ? targ : bobj.name ;
		ID2Open = targit;

		var e = document.getElementById(ID2Open);
		//CLOSE PREV OPTIONS BOX
		if((e) && (ID2Close != "NA"))
		{
			eOld = document.getElementById(ID2Close);
			eOld.innerHTML = "";
		}
		var optionGrp = (optgrp) ? optgrp : bobj.name.charAt(bobj.name.length-1);
		var strip = (optgrp) ? 0 : 1 ;
		var itemName = bobj.name.substring(0,bobj.name.length-strip);
		itemName = itemName.replace(/_/g," ");
		var minQty = (minNum) ? minNum : 1;
		var incrBy = (incr) ? incr : 1;
                 if(bundle<1 || !bundle) { bundle=1; }
                 var Bundle=bundle;
		try
		{
			Item = new MenuItem(bobj.name,optionGrp,itemName,bobj.value,targit,minQty,incrBy,Bundle);
			Item.Display();
			InitializeButtonGroups();
		}
		catch(e)
		{
			note = "An error has occured while preparing \""+itemName+"\"";
			sendBugReport(e,note,bobj.name);
		}
	}
	catch(e)
	{
		note = "An error has occured while attempting to access menu item option information";
		sendBugReport(e,note,bobj.name);
	}
}

function getOptionsBev(bobj,optgrp,targ,minNum,incr,bundle)
{
	try
	{
		if(Item.Options)
		{
			Item.optionsCost = 0;
			for(var optnm in Item.Options)
			{
				Item.Options[optnm].optName = void(0);
				Item.Options[optnm].optCost = 0;
				Item.Options[optnm] = void(0);
			}
			Item.Options = new Object();
		}			
		ID2Close = (ID2Open == "NA") ? "NA" : ID2Open ;
		var targit = (targ) ? targ : bobj.name ;
		ID2Open = targit;

		var e = document.getElementById(ID2Open);
		//CLOSE PREV OPTIONS BOX
		if((e) && (ID2Close != "NA"))
		{
			eOld = document.getElementById(ID2Close);
			eOld.innerHTML = "";
		}
		var optionGrp = (optgrp) ? optgrp : bobj.name.charAt(bobj.name.length-1);
		var strip = (optgrp) ? 0 : 1 ;
		var itemName = bobj.name.substring(0,bobj.name.length-strip);
		itemName = itemName.replace(/_/g," ");
		var minQty = (minNum) ? minNum : 1;
		var incrBy = (incr) ? incr : 1;
                 if(bundle<1 || !bundle) { bundle=1; }
                 var Bundle=bundle;
		try
		{
			Item = new MenuItem(bobj.name,optionGrp,itemName,bobj.value,targit,minQty,incrBy,Bundle);

			Item.DisplaySPBev();
			InitializeButtonGroups();
		}
		catch(e)
		{
			note = "An error has occured while preparing \""+itemName+"\"";
			sendBugReport(e,note,bobj.name);
		}
	}
	catch(e)
	{
		note = "An error has occured while attempting to access menu item option information";
		sendBugReport(e,note,bobj.name);
	}
}

function addInstr(tobj,icode)
{
	var txt = tobj.value;
	var badCharREGX = /("|'|"|\/|\\|\r|\n)/g;
	txt = txt.replace(badCharREGX," ");
	txt = txt.substring(0,255);
	if(txt != tobj.value){
		//alert("Please Note:\n\nThe special instructions for this item have been modified for security reasons:\n\n\t==>Input was too long (256 chars max)\n\n\t==>Contains illegal chars (',\",-,/,\,:,newlines,carriage returns)");
	}
	tobj.value = txt;
}
function resetOption(icode,redisplay)
{
	Item.itemQty = 1;
	Item.optionsCost = 0;
	Item.UpdateCost();
	if(redisplay) Item.Display();
}
function changeItemQty(newQty,icode)
{
	Item.itemQty = newQty;
	Item.UpdateCost();
}
function closeDisplay(icode)
{
	
	if(location.pathname.toUpperCase().indexOf("MENUADDITEM.ASPX") != -1)
	{
		history.back();
	}
	else
	{
		Item.target.innerHTML = "";
		Item = new Object();
	}
}
function sendBugReport(exc,note,icode)
{
	exMsg = note+"\r\n\r\n";
	for(var prp in exc) exMsg += prp + " : "+exc[prp]+"\r\n";
	msg = "[1] "+note+".\n\n";	
	msg += "[2] To help us make make our site better, a bug report is automatically being ";
	msg += "generated and may be sent to our development team.\n\n[3] Would you like to ";
	msg += "send this bug report? (NO personal information will be collected).";
	if(confirm(msg) && (location.href.indexOf("ordering/menu") != -1))
	{
		window.open("../inc/sendJSBugReport.aspx?errmsg="+escape(exMsg)+"&itemcode="+icode,"","top=100,left=100,width=250,height=150");
	}
	else
	{
		alert(exMsg);
	}
}
