void Clear()
 {
     GUIScrollMenu[] menus = list.GetMenus();
     menus[0].TurnActive(-1);
     menus[1].TurnActive(-1);
     menus[2].TurnActive(-1);
     menus[3].TurnActive(-1);
     order = new GDOrder();
     menus[1].Clear();
     menus[2].Clear();
     menus[3].Clear();
 }
    public override void ButtonCallback(GUIButton button)
    {
        base.ButtonCallback(button);

        switch (button.name.ToLower())
        {
            case "order":
                {
                    if (order.number >= 0 && order.dose >= 0 && order.delivery >= 0 && order.interval >= 0)
                    {
                        PharmacyManager.DrugMerge drug = pManager.GetDrug(order.number);
                        if (drug != null)
                        {
                            cartedOrders.Add(order);
                            order = new GDOrder();

                            UpdateCart();

                            Clear();
                        }
                    }
                }
                break;
            case "ok":
                {
                    List<PharmacyManager.DrugMerge> sendOrders = new List<PharmacyManager.DrugMerge>();
                    foreach(GDOrder item in cartedOrders)
                    {
                        PharmacyManager.DrugMerge drug = pManager.GetDrug(item.number);
                        PharmacyManager.DrugMerge orderedDrug = new PharmacyManager.DrugMerge();
                        orderedDrug.drugName = drug.drugName;
                        //orderedDrug.drugID = drug.drugID;
                        orderedDrug.doses.Add(drug.doses[item.dose]);
                        orderedDrug.delivery.Add(drug.delivery[item.delivery]);
                        orderedDrug.intervals.Add(drug.intervals[item.interval]);

                        sendOrders.Add(orderedDrug);
                    }



                    // Check the order
                    List<PharmacyManager.DrugEntry> queuing = new List<PharmacyManager.DrugEntry>();
                    foreach (PharmacyManager.DrugMerge dm in sendOrders)
                    {
                        PharmacyManager.DrugEntry entry = pManager.CheckItem(dm.drugName, dm.doses[0], dm.delivery[0], dm.intervals[0]);
                        if (entry != null)
                        {
                            queuing.Add(entry);
                        }
                        //{
                        //    VitalsBehaviorManager vbMgr = VitalsBehaviorManager.GetInstance();
                        //    if (vbMgr != null && entry.behavior != null)
                        //    {
                        //        vbMgr.AddBehavior(entry.behavior);
                        //    }
                        //}
                    }
                    if (queuing.Count > 0)
                        pManager.QueueDrugs(queuing);

                    cartedOrders.Clear();
                    UpdateCart();
                    Clear();
                    GUIManager.GetInstance().Remove(parent);
                }
                break;
        }
    }
    public override void Initialize(ScreenInfo parent)
    {
        base.Initialize(parent);

        pManager = PharmacyManager.GetInstance();

        List<GUIObject> temp = FindObjectsOfType(typeof(GUIDrugList));
        if (temp != null || temp.Count > 0)
            list = temp[0] as GUIDrugList;

        temp = FindObjectsOfType(typeof(GUIOrderCart));
        if (temp != null || temp.Count > 0)
            cart = temp[0] as GUIOrderCart;

        SetupLeft();
        // Test
        //cart.text = "TestText";

        order = new GDOrder();
        cartedOrders.Clear();
    }