void repair_OnMouseRelease(object sender, Operation_Cronos.Input.MouseEventArgs e)
        {
            int price = GetRepairCost();

            //GameManager.BuildingProperties.BuildingBaseProperties(selectedConstruction.ConstructionName, selectedConstruction.ConstructionYear, selectedConstruction.UpgradeYear, GameManager.CurrentYear).Price;

            if (GameManager.GetMoney(GameManager.CurrentYear) >= price)
            {
                GameManager.SpendMoney(GameManager.CurrentYear, price);
                GameInterface.SetMoney(GameManager.GetMoney(GameManager.CurrentYear));

                //do repair
                BuildingsBaseProperties properties = new BuildingsBaseProperties();
                selectedConstruction.SelectConstruction = false;

                selectedConstruction.Slot.ProlongReservation(GameManager.CurrentYear);
                selectedConstruction.ConstructionLifetime = (GameManager.CurrentYear - selectedConstruction.ConstructionYear) + properties.BuildingBaseProperties(selectedConstruction.ConstructionName, selectedConstruction.ConstructionYear, selectedConstruction.UpgradeYear, GameManager.CurrentYear).Lifetime;
                GameMap.RefreshBuilding(selectedConstruction.Slot);

                Close();
                int year = GameManager.CurrentYear;
                GameManager.UpdateYear(year);
            }
            else
            {
                //Debug.AddToLog("Not enough cashcaval");
                textRepairCost.Text = "Can not afford to repair";
                textRepairCost.Tint = Color.Red;
            }
        }
        void upgrade_OnMouseRelease(object sender, Operation_Cronos.Input.MouseEventArgs e)
        {
            int price = GetUpgradeCost();

            if (GameManager.GetMoney(GameManager.CurrentYear) >= price)
            {
                GameManager.SpendMoney(GameManager.CurrentYear, price);
                GameInterface.SetMoney(GameManager.GetMoney(GameManager.CurrentYear));

                //do upgrade
                if (selectedConstruction.ConstructionType != ConstructionType.Population)
                {
                    selectedConstruction.SelectConstruction = false;
                    selectedConstruction.UpgradeYear        = GameManager.CurrentYear;
                    selectedConstruction.Slot.Upgrade(GameManager.CurrentYear);
                    GameMap.RefreshBuilding(selectedConstruction.Slot);
                    GameMap.Upgrade(selectedConstruction.Slot, GameManager.CurrentYear);
                }
                else
                {
                    selectedConstruction.Slot.ShortenReservation(GameManager.CurrentYear);
                    GameMap.RefreshBuilding(selectedConstruction.Slot);

                    switch (selectedConstruction.ConstructionName)
                    {
                    case Construction.PopulationVillage:
                        GameMap.UpgradePopulationConstruction(selectedConstruction.Slot, Construction.PopulationTown);
                        break;

                    case Construction.PopulationTown:
                        GameMap.UpgradePopulationConstruction(selectedConstruction.Slot, Construction.PopulationCity);
                        break;

                    case Construction.PopulationCity:
                        GameMap.UpgradePopulationConstruction(selectedConstruction.Slot, Construction.PopulationMetropolis);;
                        break;
                    }

                    GameMap.RefreshBuilding(selectedConstruction.Slot);
                    int year = GameManager.CurrentYear;
                    GameManager.UpdateYear(year);

                    Close();
                }
            }
            else
            {
                //Debug.AddToLog("Not enough cashcaval");
                textUpgradeCost.Text = "Can not afford to upgrade";
                textUpgradeCost.Tint = Color.Red;
            }
        }