text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Castle.Core.Logging;

using CompareCloudware.POCOQueryRepository;
using CompareCloudware.POCOQueryRepository.Helpers;
using CompareCloudware.Domain.Contracts.Repositories;
using CompareCloudware.Domain.Models;
using CompareCloudware.Web.Models;
using CompareCloudware.Web.Helpers;
using System.Data.Entity;
using LinqKit;
using System.IO;
using System.Web.Script.Serialization;
using PagedList;
using System.Configuration;
using System.Collections;
using System.Net;
using CompareCloudware.Web.Helpers;

namespace CompareCloudware.Web.Controllers
{
    public class BaseController : Controller
    {
        //
        // GET: /Base/

        // this is Castle.Core.Logging.ILogger, not log4net.Core.ILogger
        public ILogger Logger { get; set; }
        protected readonly ICompareCloudwareRepository _repository;
        protected ICustomSession CustomSession { get; set; }
        protected ISiteAnalyticsLogger _siteAnalyticsLogger;

        //const string FILTER_CATEGORIES = "CATEGORIES";
        const string FILTER_CATEGORIES = "CATEGORY";
        const string FILTER_USERS = "USERS";
        //const string FILTER_BROWSERS = "BROWSERS";
        const string FILTER_BROWSERS = "BROWSER";
        //const string FILTER_FEATURES = "FEATURES";
        const string FILTER_FEATURES = "FEATURE";
        //const string FILTER_OPERATINGSYSTEMS = "OPERATINGSYSTEMS";
        const string FILTER_OPERATINGSYSTEMS = "OPERATINGSYSTEM";
        const string FILTER_DEVICES = "DEVICES";
        //const string FILTER_SUPPORTTYPES = "SUPPORTTYPES";
        const string FILTER_SUPPORTTYPES = "SUPPORTTYPE";
        const string FILTER_SUPPORTDAYS = "SUPPORTDAYS";
        const string FILTER_SUPPORTHOURS = "SUPPORTHOURS";
        //const string FILTER_LANGUAGES = "LANGUAGES";
        const string FILTER_LANGUAGES = "LANGUAGE";
        //const string FILTER_MOBILEPLATFORMS = "MOBILEPLATFORMS";
        const string FILTER_MOBILEPLATFORMS = "MOBILEPLATFORM";
        //const string FILTER_APPLICATIONFEATURES = "APPLICATIONFEATURES";
        const string FILTER_APPLICATIONFEATURES = "APPLICATIONFEATURE";
        //const string FILTER_TIMEZONES = "TIMEZONES";
        const string FILTER_TIMEZONES = "TIMEZONE";

        const string TAB_CLOUDWARE_EXPLAINED = "TAB_CLOUDWARE_EXPLAINED";
        const string TAB_10_REASONS_FOR_USING_CLOUDWARE = "TAB_10_REASONS_FOR_USING_CLOUDWARE";
        const string TAB_WHAT_DOES_MY_BUSINESS_NEED_TO_RUN_CLOUDWARE = "TAB_WHAT_DOES_MY_BUSINESS_NEED_TO_RUN_CLOUDWARE";

        const string TAB_ABOUT_US = "TAB_ABOUT_US";
        const string TAB_MANAGEMENT_TEAM = "TAB_MANAGEMENT_TEAM";
        const string TAB_VISION = "TAB_VISION";
        const string TAB_FAQS = "TAB_FAQS";
        const string TAB_CAREERS = "TAB_CAREERS";
        const string TAB_PRESS = "TAB_PRESS";
        const string TAB_CONTACT_US = "TAB_CONTACT_US";

        public BaseController(ICustomSession session, ICompareCloudwareRepository repository, ISiteAnalyticsLogger _SiteAnalyticsLogger)
        {
            _repository = repository;
            _siteAnalyticsLogger = _SiteAnalyticsLogger;
            //session.ShowSearchTextBox = true;

        }

        protected override void OnException(ExceptionContext filterContext)
        {
            // Log the error that occurred.
               Logger.Fatal(DateTime.Now.ToString() + " - Generic Error occured", filterContext.Exception);
            // Output a nice error page
            if (filterContext.HttpContext.IsCustomErrorEnabled)
            {
                base.OnException(filterContext);
                filterContext.ExceptionHandled = true;

                if(filterContext.Exception.GetType() == typeof(CategoryNotFoundException))
                {
                    View("PageNotFound", new BaseModel() { CustomSession = CustomSession }).ExecuteResult(ControllerContext);
                }
                else if (filterContext.Exception.GetType() == typeof(ShopNotFoundException))
                {
                    View("PageNotFound", new BaseModel() { CustomSession = CustomSession }).ExecuteResult(ControllerContext);
                }
                else
                {
                    View("Error").ExecuteResult(ControllerContext);
                }
            }
        }

        #region Header
        public virtual ActionResult xHeaderModel()
        {
            //string button = fc.GetSubmitButtonName();
            HeaderModel hm = new HeaderModel(null);

            hm.Categories = ModelHelpers.GetCategories(this.CustomSession,_repository);
            hm.CustomSession = this.CustomSession;
            //var y = hm.Categories.Where(x => x.CategoryID == 1).FirstOrDefault().CategoryID;

            return PartialView("HeaderModel", hm);
        }

        //public virtual ActionResult HeaderModel(HeaderModel hm)
        //{
        //    //string button = fc.GetSubmitButtonName();
        //    //HeaderModel h = new HeaderModel();

        //    hm.Categories = ModelHelpers.GetCategories(this.CustomSession, _repository);
        //    hm.CustomSession = this.CustomSession;
        //    //var y = hm.Categories.Where(x => x.CategoryID == 1).FirstOrDefault().CategoryID;

        //    return PartialView("HeaderModel", hm);
        //}

        public virtual ActionResult HeaderModel(HeaderModel hm, CustomSession session)
        {
            //string button = fc.GetSubmitButtonName();
            //HeaderModel h = new HeaderModel();

            hm.Categories = ModelHelpers.GetCategories(this.CustomSession,_repository);
            hm.CustomSession = this.CustomSession;
            //var y = hm.Categories.Where(x => x.CategoryID == 1).FirstOrDefault().CategoryID;

            return PartialView("HeaderModel", hm);
        }

        public virtual ActionResult Search(HeaderModel hm, FormCollection fc)
        {
            _siteAnalyticsLogger.Log(_repository, ActionType.ClickSearchAutoComplete, null, null, CustomSession.PersonID);

            var cloudApplicationIDKey = fc.Keys.OfType<string>().Where(x => x.StartsWith("chosenID")).ElementAt(0);
            if (fc[cloudApplicationIDKey] == "ILLEGAL")
            {
                var searchTextKey = fc.Keys.OfType<string>().Where(x => x.StartsWith("search")).ElementAt(0);
                string searchText = fc[searchTextKey];
                return RedirectToAction("GlobalSearchResults", new { term = searchText, liveApplicationsOnly = (CustomSession.DummyVXMode == false) });

            }
            else
            {
                int cloudApplicationID = int.Parse(fc[cloudApplicationIDKey]);

                var searchTextKey = fc.Keys.OfType<string>().Where(x => x.StartsWith("search")).ElementAt(0);
                string searchText = fc[searchTextKey];

                if (cloudApplicationID == 0)
                {
                    return RedirectToAction("GlobalSearchResults", new { term = searchText, liveApplicationsOnly = (CustomSession.DummyVXMode == false) });
                }
                else
                {
                    return RedirectToAction("CloudApplication", new { cloudApplicationID = cloudApplicationID });
                }
            }
        }

        [HttpPost]
        public virtual ActionResult HeaderModel(HeaderModel hm, FormCollection fc)
        {
            //string button = fc.GetSubmitButtonName();
            //HeaderModel h = new HeaderModel();
            string dummyVXMode = fc["CUSTOMSESSION.DUMMYVXMODE"];
            if (dummyVXMode != null)
            {
                CustomSession.DummyVXMode = dummyVXMode.ToUpper().StartsWith("TRUE");
            }

                //.SingleOrDefault()
            ;

            var categoryButton = fc
                .Keys
                .OfType<string>()
                .Where(x => x.StartsWith("CATEGORY_BUTTON_"))
                //.SingleOrDefault()
            ;

            if (categoryButton.Count() == 0)
            {
                //must have clicked an icon
                var icon = fc.Keys.OfType<string>().Where(x => x.StartsWith("ICON_"));
                if (icon.Count() > 0)
                {

                    CustomSession.VisitedViaCategory = false;

                    switch (icon.ElementAt(0).Replace("ICON_", "").Replace(".x", "").Replace(".y", ""))
                    {
                        case "TWITTER": return RedirectToAction("TwitterModel");
                        case "FACEBOOK": return RedirectToAction("FacebookModel");
                        case "LINKEDIN": return RedirectToAction("LinkedInModel");
                        case "GOOGLE": return RedirectToAction("GoogleModel");
                        case "BROADCAST": return RedirectToAction("BroadcastModel");
                        case "SEARCH":

                            _siteAnalyticsLogger.Log(_repository, ActionType.ClickSearchAutoComplete,null,null,CustomSession.PersonID);

                            var cloudApplicationIDKey = fc.Keys.OfType<string>().Where(x => x.StartsWith("chosenID")).ElementAt(0);
                            if (fc[cloudApplicationIDKey] == "ILLEGAL")
                            {
                                var searchTextKey = fc.Keys.OfType<string>().Where(x => x.StartsWith("search")).ElementAt(0);
                                string searchText = fc[searchTextKey];
                                return RedirectToAction("GlobalSearchResults", new { term = searchText, liveApplicationsOnly = (CustomSession.DummyVXMode == false) });

                            }
                            else
                            {
                                int cloudApplicationID = int.Parse(fc[cloudApplicationIDKey]);

                                var searchTextKey = fc.Keys.OfType<string>().Where(x => x.StartsWith("search")).ElementAt(0);
                                string searchText = fc[searchTextKey];

                                if (cloudApplicationID == 0)
                                {
                                    return RedirectToAction("GlobalSearchResults", new { term = searchText, liveApplicationsOnly = (CustomSession.DummyVXMode == false) });
                                }
                                else
                                {
                                    return null;
                                    return RedirectToAction("CloudApplication", new { cloudApplicationID = cloudApplicationID });
                                }
                            }
                        //break;
                        case "CLOUDWARE_EXPLAINED":
                            return RedirectToRoute("cloudware-explained");
                            break;
                    }
                }
                //return RedirectToAction("CategoryPage", new { categoryID = 1 });
                hm.Categories = ModelHelpers.GetCategories(this.CustomSession,_repository);
                hm.CustomSession = CustomSession;
                return PartialView("HeaderModel", hm);
            }
            else
            {
                var pressedButton = categoryButton.ElementAt(0);
                int chosenCategoryID = int.Parse(pressedButton.Replace("CATEGORY_BUTTON_", "").Replace(".x", "").Replace(".y", ""));

                //hm.Categories = this.GetCategories();
                //var y = hm.Categories.Where(x => x.CategoryID == 1).FirstOrDefault().CategoryID;

                ViewBag.VisibleResultsTab = 1;

                //return RedirectToAction("CategoryPage", new { categoryID = chosenCategoryID });
                //return View("CategoryPage", ModelHelpers.ConstructCategoryPage(chosenCategoryID,_siteAnalyticsLogger,this.CustomSession,_repository));//todo
                //return View("CategoryPage", model);
                return null;
            }
        }

        #endregion

        #region Footer
        public virtual ActionResult FooterModel(HeaderModel hm)
        {
            //string button = fc.GetSubmitButtonName();
            //HeaderModel h = new HeaderModel();

            hm.Categories = ModelHelpers.GetCategories(this.CustomSession,_repository);
            hm.CustomSession = CustomSession;
            //var y = hm.Categories.Where(x => x.CategoryID == 1).FirstOrDefault().CategoryID;

            CloudApplicationRegistrationAndUpdateModel carm = new CloudApplicationRegistrationAndUpdateModel(CustomSession);
            carm.SupportCategories = _repository.GetSupportCategories().Select(x => new SupportCategoryModel()
            {
                SupportCategoryID = x.SupportCategoryID,
                SupportCategoryName = x.SupportCategoryName,
            }
            ).ToList();
            carm.AutoShow = CustomSession.AutoShowRegisterOrUpdate ?? false;
            hm.CloudApplicationRegistrationModel = carm;

            return PartialView("FooterModel", hm);
        }

        [HttpPost]
        public virtual ActionResult FooterModel(HeaderModel hm, FormCollection fc)
        {
            //string button = fc.GetSubmitButtonName();
            //HeaderModel h = new HeaderModel();
            var categoryButton = fc
                .Keys
                .OfType<string>()
                .Where(x => x.StartsWith("CATEGORY_BUTTON_"))
                //.SingleOrDefault()
            ;

            hm.CustomSession = CustomSession;

            if (categoryButton.Count() == 0)
            {
                //must have clicked an icon
                var icon = fc.Keys.OfType<string>().Where(x => x.StartsWith("ICON_"));
                if (icon.Count() > 0)
                {
                    switch (icon.ElementAt(0).Replace("ICON_", "").Replace(".x", "").Replace(".y", ""))
                    {
                        case "TWITTER": return RedirectToAction("TwitterModel");
                        case "FACEBOOK": return RedirectToAction("FacebookModel");
                        case "LINKEDIN": return RedirectToAction("LinkedInModel");
                        case "GOOGLE": return RedirectToAction("GoogleModel");
                        case "BROADCAST": return RedirectToAction("BroadcastModel");
                    }
                }
                //return RedirectToAction("CategoryPage", new { categoryID = 1 });
                hm.Categories = ModelHelpers.GetCategories(this.CustomSession,_repository);

                CloudApplicationRegistrationAndUpdateModel carm = new CloudApplicationRegistrationAndUpdateModel(CustomSession);
                carm.SupportCategories = _repository.GetSupportCategories().Select(x => new SupportCategoryModel()
                {
                    SupportCategoryID = x.SupportCategoryID,
                    SupportCategoryName = x.SupportCategoryName,
                }
                ).ToList();
                hm.CloudApplicationRegistrationModel = carm;

                return PartialView("FooterModel", hm);
            }
            else
            {
                var pressedButton = categoryButton.ElementAt(0);
                int chosenCategoryID = int.Parse(pressedButton.Replace("CATEGORY_BUTTON_", "").Replace(".x", "").Replace(".y", ""));

                //hm.Categories = this.GetCategories();
                //var y = hm.Categories.Where(x => x.CategoryID == 1).FirstOrDefault().CategoryID;

                return RedirectToAction("CategoryPage", new { categoryID = chosenCategoryID });
                //return View("CategoryPage", model);
            }
        }

        #endregion

        #region AutoComplete
        //[HttpPost]
        //public ActionResult AutoComplete(string searchText)
        public ActionResult AutoComplete(string acRows, string term, bool liveApplicationsOnly)
        {
            Logger.Debug("AutoComplete#1 - " + DateTime.Now.TimeOfDay.ToString());
            string searchText = term;
            bool dummyVXMode = CustomSession.DummyVXMode;
            Logger.Debug("AutoComplete#2 - " + DateTime.Now.TimeOfDay.ToString());

            //bool liveApplicationsOnly = (CustomSession.DummyVXMode = false);

            var results = _repository.GetApplicationsFromTags(searchText,liveApplicationsOnly).ToList();

            Logger.Debug("AutoComplete#3 - " + DateTime.Now.TimeOfDay.ToString());
            var retVal = results.Select(x => new TagModel()
            {
                Category = new CategoryModel()
                {
                    CategoryID = x.Tag != null
                                    //? x.Tag.Category.CategoryID
                                    ? (int)x.TagCategoryID
                                    : x.TagTypeWhenTagTypeIsNull == "CATEGORYNAME" ? -1 : -1,
                    CategoryName = x.Tag != null
                                    //? x.Tag.Category.CategoryName
                                    ? x.TagCategoryName
                                    : x.TagTypeWhenTagTypeIsNull == "CATEGORYNAME" ? x.CloudApplication.Category.CategoryName : "NONE",
                },
                TagID = x.Tag != null ? x.Tag.TagID : -1,
                TagName = x.Tag != null ? x.Tag.TagName : x.TagTypeWhenTagTypeIsNull,
                TagType = new TagTypeModel()
                {
                    TagTypeID = x.Tag != null
                                    //? x.Tag.TagType.TagTypeID
                                    ? x.TagTypeID
                                    : x.TagTypeWhenTagTypeIsNull == "CATEGORYNAME" ? -1 : -1,
                    TagTypeName = x.TagTypeWhenTagTypeIsNull,
                },
                CloudApplicationModel = new CloudApplicationAutoCompleteModel()
                {
                    Category = new CategoryModel()
                    {
                        //CategoryID = x.CloudApplication.Category.CategoryID,
                        CategoryID = x.CloudApplicationCategoryID,
                        //CategoryName = x.CloudApplication.Category.CategoryName,
                        CategoryName = x.CloudApplicationCategoryName,
                    },
                    Vendor = new VendorModel()
                    {
                        VendorID = x.VendorID,
                        VendorName = x.VendorName,
                    },
                    CloudApplicationID = x.CloudApplication.CloudApplicationID,
                    ServiceName = x.CloudApplication.ServiceName ?? "MISSING",
                    Title = x.CloudApplication.Title,
                    //CategoryTag = x.CloudApplication.CloudApplicationCategoryTag.TagName,
                    CategoryTag = x.CloudApplicationCategoryTagName,
                    //ShopTag = x.CloudApplication.CloudApplicationShopTag.TagName,
                    //ShopTag = x.ShopTagName,
                    ShopTag = x.CloudApplicationShopTagName,
                    ShopTagURL = x.CloudApplication.ServiceName.ToLower().Replace(" ", "-") ?? "MISSING",
                }
            })
            .Where(x => !dummyVXMode ? (x.CloudApplicationModel != null && x.CloudApplicationModel.ServiceName != null ? x.CloudApplicationModel.ServiceName.Trim().Length > 0 : false) : true)
            .ToList()
            ;

            #region "ALL ICON"
            Logger.Debug("AutoComplete#4 - " + DateTime.Now.TimeOfDay.ToString());
            var selSearch = new List<AutocompleteRow>();
            selSearch.Add(new AutocompleteRow()
            {

                category = "Search",
                label = "ALL",
                tagModel = new TagModel()
                {
                    Category = new CategoryModel()
                    {
                        CategoryID = -1,
                        CategoryName = "SEARCH",
                        SearchFilterID = -1,
                        Selected = false,
                    },
                    CloudApplicationModel = new CloudApplicationAutoCompleteModel()
                    {
                        CategoryTag = "global",
                        ShopTag = term,
                    },
                    TagID = -1,
                    TagName = "SEARCH",
                    TagType = new TagTypeModel()
                    {
                        TagTypeID = -1,
                        TagTypeName = "SEARCH",
                    }
                },
                value = term,
                vendorID = -1,
            });
            #endregion

            Logger.Debug("AutoComplete#5 - " + DateTime.Now.TimeOfDay.ToString());
            var selVendors = retVal
                    .Where(v => v.TagName.ToUpper() == "VENDOR")
                    .Select(v => new AutocompleteRow
                    {
                        category = "Vendors",
                        label = v.CloudApplicationModel.Vendor != null ? v.CloudApplicationModel.Vendor.VendorName : "MISSING",
                        value = v.CloudApplicationModel.ServiceName.ToString(),
                        tagModel = v,
                        vendorID = v.CloudApplicationModel.Vendor != null ? v.CloudApplicationModel.Vendor.VendorID : 1,

                        labelAsURL = v.CloudApplicationModel.ShopTagURL,

                    })
                //.ToList<AutocompleteRow>()
                    ;

            //var selCategories = retVal
            //    .Where(c => c.TagName.ToUpper() == "CATEGORYNAME")
            //    .Select(c => new AutocompleteRow
            //    {
            //        category = c.Category.CategoryName,
            //        label = c.CloudApplicationModel.ServiceName,
            //        value = c.CloudApplicationModel.ServiceName.ToString(),
            //        tagModel = c,
            //    })
            //    .ToList<AutocompleteRow>();

            Logger.Debug("AutoComplete#6 - " + DateTime.Now.TimeOfDay.ToString());
            var selApplications = retVal
                .Where(a => a.TagName.ToUpper() == "SERVICENAME")
                .Select(a => new AutocompleteRow
                {
                    category = "Applications",
                    label = a.CloudApplicationModel.ServiceName,
                    labelAsURL = a.CloudApplicationModel.ShopTagURL,
                    value = a.CloudApplicationModel.Vendor != null ? a.CloudApplicationModel.Vendor.VendorName : "MISSING",
                    tagModel = a,
                    vendorID = a.CloudApplicationModel.Vendor != null ? a.CloudApplicationModel.Vendor.VendorID : 1,
                })
                //.ToList<AutocompleteRow>()
                ;

            #region TAGS DEPRECATED
            //var selPrimaryTags = retVal
            //    .Where(p => p.TagType.TagTypeName.ToUpper() == "PRIMARY")
            //     //.Where(p => p.TagID > 0)
            //     .Select(p => new AutocompleteRow {
            //         category = "Primary Tags",
            //         label = p.CloudApplicationModel.ServiceName,
            //         value = p.CloudApplicationModel.ServiceName.ToString(),
            //         tagModel = p,
            //     })
            //     //.Take(10)
            //     .ToList<AutocompleteRow>();

            //var selSecondaryTags = retVal
            //    .Where(s => s.TagType.TagTypeName.ToUpper() == "SECONDARY")
            //    //.Where(p => p.TagID > 0)
            //     .Select(s => new AutocompleteRow {
            //         category = "Secondary Tags",
            //         label = s.CloudApplicationModel.ServiceName,
            //         value = s.CloudApplicationModel.ServiceName.ToString(),
            //         tagModel = s,
            //     })
            //    //.Take(10)
            //     .ToList<AutocompleteRow>();

            //var selTertiaryTags = retVal
            //    .Where(t => t.TagType.TagTypeName.ToUpper() == "TERTIARY")
            //    //.Where(p => p.TagID > 0)
            //    .Select(t => new AutocompleteRow {
            //        category = "Tertiary Tags",
            //        label = t.CloudApplicationModel.ServiceName,
            //        value = t.CloudApplicationModel.ServiceName.ToString(),
            //        tagModel = t,
            //    })
            //    //.Take(10)
            //    .ToList<AutocompleteRow>();

            //var selPhraseTags = retVal
            //    .Where(p => p.TagType.TagTypeName.ToUpper() == "PHRASE")
            //    //.Where(p => p.TagID > 0)
            //    .Select(p => new AutocompleteRow {
            //        category = "Phrase Tags",
            //        label = p.CloudApplicationModel.ServiceName,
            //        value = p.CloudApplicationModel.ServiceName.ToString(),
            //        tagModel = p,
            //    })
            //    //.Take(10)
            //    .ToList<AutocompleteRow>();

            //var selVernacularTags = retVal
            //    .Where(v => v.TagType.TagTypeName.ToUpper() == "VERNACULAR")
            //    //.Where(p => p.TagID > 0)
            //    .Select(v => new AutocompleteRow {
            //        category = "Vernacular Tags",
            //        label = v.CloudApplicationModel.ServiceName,
            //        value = v.CloudApplicationModel.ServiceName.ToString(),
            //        tagModel = v,
            //    })
            //    //.Take(10)
            //    .ToList<AutocompleteRow>();
            #endregion

            Logger.Debug("AutoComplete#7 - " + DateTime.Now.TimeOfDay.ToString());
            var selTags = (from tags in retVal
                           where
                                   tags.TagType.TagTypeName.ToUpper() == "PRIMARY" ||
                                   tags.TagType.TagTypeName.ToUpper() == "SECONDARY" ||
                                   tags.TagType.TagTypeName.ToUpper() == "TERTIARY" ||
                                   tags.TagType.TagTypeName.ToUpper() == "PHRASE" ||
                                   tags.TagType.TagTypeName.ToUpper() == "VERNACULAR"
                           select new AutocompleteRow()
                           {
                               category = tags.CloudApplicationModel.Category.CategoryName,
                               label = tags.CloudApplicationModel.ServiceName,
                               value = tags.CloudApplicationModel.Vendor != null ? tags.CloudApplicationModel.Vendor.VendorName : "MISSING",
                               tagModel = tags,
                               vendorID = tags.CloudApplicationModel.Vendor != null ? tags.CloudApplicationModel.Vendor.VendorID : 1,
                           })
                //.Take(10)
                //.ToList().OrderBy(x => x.category)
                            ;

            //selVernacularTags.RemoveAll(x => selPhraseTags.Any(y => y.tagModel.CloudApplicationModel.CloudApplicationID == x.tagModel.CloudApplicationModel.CloudApplicationID));
            //selVernacularTags.RemoveAll(x => selCategories.Any(y => y.tagModel.CloudApplicationModel.CloudApplicationID == x.tagModel.CloudApplicationModel.CloudApplicationID));

            //selPhraseTags.RemoveAll(x => selTertiaryTags.Any(y => y.tagModel.CloudApplicationModel.CloudApplicationID == x.tagModel.CloudApplicationModel.CloudApplicationID));
            //selTertiaryTags.RemoveAll(x => selSecondaryTags.Any(y => y.tagModel.CloudApplicationModel.CloudApplicationID == x.tagModel.CloudApplicationModel.CloudApplicationID));
            //selSecondaryTags.RemoveAll(x => selPrimaryTags.Any(y => y.tagModel.CloudApplicationModel.CloudApplicationID == x.tagModel.CloudApplicationModel.CloudApplicationID));
            //selPrimaryTags.RemoveAll(x => selApplications.Any(y => y.tagModel.CloudApplicationModel.CloudApplicationID == x.tagModel.CloudApplicationModel.CloudApplicationID));

            //selApplications.RemoveAll(
            //    x =>
            //    selCategories.Any(y => y.tagModel.CloudApplicationModel.CloudApplicationID == x.tagModel.CloudApplicationModel.CloudApplicationID)
            //);

            //selCategories.RemoveAll(
            //    x =>
            //    selVendors.Any(y => y.tagModel.CloudApplicationModel.CloudApplicationID == x.tagModel.CloudApplicationModel.CloudApplicationID)
            //);

            Logger.Debug("AutoComplete#8 - " + DateTime.Now.TimeOfDay.ToString());
            var selSearchList = selSearch.ToList();

            Logger.Debug("AutoComplete#9 - " + DateTime.Now.TimeOfDay.ToString());
            var selVendorsList = selVendors.ToList();

            Logger.Debug("AutoComplete#10 - " + DateTime.Now.TimeOfDay.ToString());
            var selApplicationsList = selApplications.ToList();

            Logger.Debug("AutoComplete#11 - " + DateTime.Now.TimeOfDay.ToString());
            var selTagsList = selTags.ToList();

            Logger.Debug("AutoComplete#12 - " + DateTime.Now.TimeOfDay.ToString());
            var list = selSearch
                .Union(selVendors)
                //.Union(selCategories)
                .Union(selApplications)
                //.Union(selPrimaryTags)
                //.Union(selSecondaryTags)
                //.Union(selTertiaryTags)
                //.Union(selPhraseTags)
                //.Union(selVernacularTags)
                .Union(selTags)
                .ToList<AutocompleteRow>()
                ;

            var list2 = selSearchList
    .Union(selVendorsList)
                //.Union(selCategories)
    .Union(selApplicationsList)
                //.Union(selPrimaryTags)
                //.Union(selSecondaryTags)
                //.Union(selTertiaryTags)
                //.Union(selPhraseTags)
                //.Union(selVernacularTags)
    .Union(selTagsList)
    .ToList<AutocompleteRow>()
    ;

            Logger.Debug("AutoComplete#13 - " + DateTime.Now.TimeOfDay.ToString());
            //AutocompleteRow.SetLabelShortToRows(list);
            AutocompleteRow.SetLabelShortToRows(list2);
            Logger.Debug("AutoComplete#14 - " + DateTime.Now.TimeOfDay.ToString());
            //return Json(list, JsonRequestBehavior.AllowGet);
            return Json(list2, JsonRequestBehavior.AllowGet);

            //TagModel t = new TagModel();
            //return Json(retVal.ToArray(), JsonRequestBehavior.AllowGet);

        }
        #endregion

        #region GetThumbnail
        public ActionResult GetThumbnail(int vendorID, string vendorName)
        {
            //Logger.Debug("Get#1 - " + DateTime.Now.TimeOfDay.ToString());
            //int vendorID = 1;
            Vendor v;
            try
            {
                if (vendorName == "ALL")
                {
                    string filePath = "~/Images/Logos/CCW_All.png";
                    string serverFilePath = System.Web.Hosting.HostingEnvironment.MapPath(filePath);
                    FileStream ms = new FileStream(serverFilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
                    byte[] stream = new byte[ms.Length];
                    ms.Read(stream, 0, (int)ms.Length);
                    ms.Close();
                    v = new Vendor()
                    {
                        VendorLogo = new VendorLogo()
                        {
                            Logo = stream,
                        },
                    };
                }
                else
                {
                    v = _repository.FindVendorByID(vendorID);
                }
            }
            catch (Exception e)
            {
                v = null;
            }
            //return v != null ? v.VendorLogo != null ? File(v.VendorLogo, "image/jpg") : null : null;
            //return v != null ? v.VendorLogo.Logo != null ? File(v.VendorLogo.Logo, "image/jpg") : null : null;
            //Logger.Debug("Get#2 - " + DateTime.Now.TimeOfDay.ToString());
            return v != null ? v.VendorLogo.Logo != null ? File(v.VendorLogo.Logo, "image/jpg") : null : null;
        }
        #endregion

        #region CorporateInformation
        public ActionResult CorporateInformation(int activeTab)
        {
            ModelHelpers.SetSessionVariables(Request, CustomSession);
            ContentTextsModel model = new ContentTextsModel(CustomSession);
            model = ModelHelpers.GetCorporateInformationData(model,_repository);

            //model.AboutUsVisible = true;
            model.ActiveTab = activeTab;

                return View("CorporateInformationPage", model);
            {
                model.AboutUsVisible = false;
                model.ManagementTeamVisible = false;
                model.VisionVisible = false;
                model.FAQsVisible = false;
                model.CareersVisible = false;
                model.PressVisible = false;
                model.ContactUsVisible = false;

                switch (activeTab)
                {
                    case 0:
                        model.AboutUsVisible = true;
                        break;
                    case 1:
                        model.ManagementTeamVisible = true;
                        break;
                    case 2:
                        model.VisionVisible = true;
                        break;
                    case 3:
                        model.FAQsVisible = true;
                        break;
                    case 4:
                        model.CareersVisible = true;
                        break;
                    case 5:
                        model.PressVisible = true;
                        break;
                    case 6:
                        model.ContactUsVisible = true;
                        break;
                    default:
                        model.AboutUsVisible = true;
                        break;

                }
                return View("CorporateInformationPageNoScript", model);
            }
        }
        #endregion

        #region CloudwareExplainedPageNoScript
        public ActionResult CloudwareExplainedPageNoScript(string showPage, bool scripting)
        {
            ContentTextsModel model = new ContentTextsModel(CustomSession);
            model = ModelHelpers.GetCloudwareExplainedData(model,_repository);
            model.CloudwareExplainedVisible = (showPage == TAB_CLOUDWARE_EXPLAINED);
            model.TenReasonsForUsingCloudwareVisible = (showPage == TAB_10_REASONS_FOR_USING_CLOUDWARE);
            model.WhatDoesMyBusinessNeedToRunCloudwareVisible = (showPage == TAB_WHAT_DOES_MY_BUSINESS_NEED_TO_RUN_CLOUDWARE);

            return View("CloudwareExplainedPageNoScript", model);
        }
        #endregion

        #region CorporateInformationPageNoScript
        public ActionResult CorporateInformationPageNoScript(string showPage, bool scripting, string compositeID)
        {
            ContentTextsModel model = new ContentTextsModel(CustomSession);
            model = ModelHelpers.GetCorporateInformationData(model,_repository);
            model.AboutUsVisible = (showPage == TAB_ABOUT_US);
            model.ManagementTeamVisible = (showPage == TAB_MANAGEMENT_TEAM);
            model.VisionVisible = (showPage == TAB_VISION);
            model.FAQsVisible = (showPage == TAB_FAQS);
            model.CareersVisible = (showPage == TAB_CAREERS);
            model.PressVisible = (showPage == TAB_PRESS);
            model.ContactUsVisible = (showPage == TAB_CONTACT_US);

            List<ContentTextModel> pressTabs = model.ContentTexts.Where(x => x.ContentTextType.ContentTextTypeName == "PRESS_SECTION_TITLE").OrderBy(x => x.BodyOrder).ToList();
            List<ContentTextModel> pressTabDates = model.ContentTexts.Where(x => x.ContentTextType.ContentTextTypeName == "PRESS_SECTION_TITLE_DATE").OrderByDescending(x => Convert.ToDateTime(x.ContentTextData)).ToList();
            List<ContentTextModel> pressTabPublishers = model.ContentTexts.Where(x => x.ContentTextType.ContentTextTypeName == "PRESS_SECTION_TITLE_PUBLISHER").ToList();

            string firstPressTabDate = compositeID ?? pressTabDates[0].CompositeID;
            model.ContentTexts.Where(x => x.ContentTextType.ContentTextTypeName == "PRESS_SECTION_TITLE" && x.CompositeID == firstPressTabDate).ForEach(x => x.IsVisible = true);
            model.ContentTexts.Where(x => x.ContentTextType.ContentTextTypeName == "PRESS_SECTION_TITLE" && x.CompositeID != firstPressTabDate).ForEach(x => x.IsVisible = false);

            model.ContentTexts.Where(x => x.ContentTextType.ContentTextTypeName == "PRESS_SECTION_TITLE_DATE" && x.CompositeID == firstPressTabDate).ForEach(x => x.IsVisible = true);
            model.ContentTexts.Where(x => x.ContentTextType.ContentTextTypeName == "PRESS_SECTION_TITLE_DATE" && x.CompositeID != firstPressTabDate).ForEach(x => x.IsVisible = false);

            return View("CorporateInformationPageNoScript", model);
        }
        #endregion

        #region ProviderTermsOfUsePage
        public ActionResult ProviderTermsOfUsePage()
        {
            ModelHelpers.SetSessionVariables(Request, CustomSession);
            TermsAndConditionsModel model = new TermsAndConditionsModel(CustomSession);
            model = ModelHelpers.GetProviderTermsAndConditions(model,_repository);
            return View("TermsAndConditionsPage", model);
        }
        #endregion

        #region UserTermsOfUsePage
        public ActionResult UserTermsOfUsePage()
        {
            ModelHelpers.SetSessionVariables(Request, CustomSession);
            TermsAndConditionsModel model = new TermsAndConditionsModel(CustomSession);
            model = ModelHelpers.GetUserTermsAndConditions(model,_repository);
            return View("TermsAndConditionsPage", model);
        }
        #endregion

        #region PrivacyPolicyPage
        public ActionResult PrivacyPolicyPage()
        {
            ModelHelpers.SetSessionVariables(Request, CustomSession);
            TermsAndConditionsModel model = new TermsAndConditionsModel(CustomSession);
            model = ModelHelpers.GetPrivacyPolicyData(model,_repository);
            return View("TermsAndConditionsPage", model);
        }
        #endregion

        #region CloudwareExplained
        public ActionResult CloudwareExplainedPage()
        {
            //ModelHelpers.SetSessionVariables(Request, CustomSession);
            //ContentTextsModel model = new ContentTextsModel(CustomSession);
            //model = ModelHelpers.GetCloudwareExplainedData(model,_repository);
            //model.CloudwareExplainedVisible = true;
            //return View("CloudwareExplainedOldPage", model);

            try
            {
                CustomSession.VisitedViaCategory = false;
                CustomSession.ShowSearchTextBox = false;
                var model = ModelHelpers.ConstructCloudwareExplainedPageModel(new CloudwareExplainedPageModel(CustomSession, ModelHelpers.ConvertContentPageToContentPageModel(_repository.GetContentPage("CloudwareExplained")))
                , this.CustomSession, _repository, Request);
                return View(model);
            }
            catch (Exception ex)
            {
                Logger.Fatal("CloudwareExplainedPage exception. The exception was :" + ex.Message + ". Stacktrace : " + ex.StackTrace);
                //throw new Exception();
                return null;
            }
            //return View("Index");

        }
        #endregion

        #region PartnerProgramme
        public ActionResult PartnerProgrammePage()
        {

            try
            {
                //ContentTextsModel testModel = new ContentTextsModel();
                //testModel.ContentTexts = new List<ContentTextModel>();
                //var ctmww = new ContentTextModelWithWidget<PartnerProgrammeModel>();
                //var cttm = new ContentTextTypeModel();
                //cttm.ContentTextTypeName = "PARTNERPROGRAMME_BUSINESSPARTNER_SECTION_BODY";
                //string data = "";
                //ctmww = new ContentTextModelWithWidget<PartnerProgrammeModel>(new PartnerProgrammeModel() { Forename="forename"},CustomSession)
                //{
                //    BodyOrder = 1,
                //    //CompositeID,
                //    NiceName = "",
                //    ContentTextType = cttm,
                //    ContentTextData = data,
                //    //FontStyle = "font-normal-13px-black",
                //    ContentDataPage = ContentDataPage.PartnerProgramme,
                //    //LineBreakAfter = true,
                //    IsWidget = true,
                //    WidgetName = "RegisterNow",
                //};
                //testModel.ContentTexts.Add(ctmww);

                //ContentTextModelWithWidget<PartnerProgrammeModel> newModel = (ContentTextModelWithWidget<PartnerProgrammeModel>)testModel.ContentTexts[0];
                //PartnerProgrammeModel ppm = newModel.GetModel();
                //return View("RegisterNow",ppm);

                //var widgetModel = Model.GetType().GenericTypeArguments[0];

                CustomSession.VisitedViaCategory = false;
                CustomSession.ShowSearchTextBox = false;
                //var model = ModelHelpers.ConstructPartnerProgrammeModel(new PartnerProgrammeModel(CustomSession, ModelHelpers.ConvertContentPageToContentPageModel(_repository.GetContentPage("CloudwareExplained")))
                var model = ModelHelpers.ConstructPartnerProgrammeModel(new PartnerProgrammeModel(CustomSession)
                , this.CustomSession, _repository, Request);
                return View(model);
            }
            catch (Exception ex)
            {
                Logger.Fatal("CloudwareExplainedPage exception. The exception was :" + ex.Message + ". Stacktrace : " + ex.StackTrace);
                //throw new Exception();
                return null;
            }
            //return View("Index");

        }
        #endregion

        #region CloudwareExplainedPartial
        public ActionResult CloudwareExplainedPartial()
        {
            return null;
        }
        #endregion

        #region SiteMapPage
        public ActionResult SiteMapPage()
        {
            ModelHelpers.SetSessionVariables(Request, CustomSession);
            SiteMapModel model = ModelHelpers.GetSiteMapData(this.CustomSession, _repository);
            return View("SiteMapPage", model);

        }
        #endregion

        #region RegisterCloudware
        [HttpPost]
        public virtual ActionResult RegisterCloudware(CloudApplicationRegistrationAndUpdateModel carm, FormCollection fc)
        {
            try
            {
                Person p = ModelHelpers.AddPerson(PersonTypeEnum.ProspectVendor, carm.Forename, carm.Surname, carm.Position, carm.Company, carm.EMail, carm.Telephone, carm.Country, carm.JoinUserGroup, _repository);
                SupportAreaQA qa = new SupportAreaQA();
                qa.SubmittedPerson = p;
                qa.QAStatus = _repository.GetQAStatus("UNASSIGNED");
                if (!carm.IsCloudwareUpdate)
                {
                    qa.Question = "Cloudware Registration";
                    qa.SupportArea = _repository.GetSupportArea("REGISTRATION");
                }
                else
                {
                    qa.Question = carm.CloudApplicationUpdateDetails;
                    qa.SupportArea = _repository.GetSupportArea("CONTENT");
                }
                qa.QuestionDate = DateTime.Now;
                qa.SupportAreaCloudApplicationServiceName = carm.CloudApplicationServiceName;
                qa.EMail = true;

                //carm.SupportCategories.Where(x => x.Selected).ForEach(y => qa.SupportAreaQACategories.Add(_repository.GetSupportCategory(y.SupportCategoryID));
                if (!carm.IsCloudwareUpdate)
                {
                    SupportAreaQACategory saqac;
                    List<SupportCategoryModel> test = carm.SupportCategories.Where(x => x.Selected).ToList();
                    foreach (SupportCategoryModel scm in test)
                    {
                        saqac = new SupportAreaQACategory();
                        saqac.SupportCategory = _repository.GetSupportCategory(scm.SupportCategoryID);
                        saqac.SupportAreaQA = qa;
                        if (qa.SupportAreaQACategories == null)
                        {
                            qa.SupportAreaQACategories = new List<SupportAreaQACategory>();
                        }
                        qa.SupportAreaQACategories.Add(saqac);
                    }
                    qa.SupportCategoryOther = carm.SupportCategoryOther;
                }

                qa.SupportAreaQAStatus = _repository.FindStatusByName("LIVE");
                _repository.AddSupportAreaQA(qa);
                //throw new Exception();
                CustomSession.AutoShowRegisterOrUpdate = false;
                return null;
            }
            catch (Exception e)
            {
                Logger.Fatal("Could not register cloudware. The error was : " + e.Message + ". Stack trace : " + e.StackTrace);
                throw new Exception();
            }
        }
        #endregion

        #region CloudApplicationRegistrationOrUpdateNoScript
        public ActionResult CloudApplicationRegistrationOrUpdateNoScript(bool update, bool scripting)
        {
            CloudApplicationRegistrationAndUpdateModel model = new CloudApplicationRegistrationAndUpdateModel(CustomSession);
            model.IsCloudwareUpdate = update;
            if (!model.IsCloudwareUpdate)
            {
                model.CloudApplicationUpdateDetails = "dummytext";
            }
            model.SupportCategories = _repository.GetSupportCategories().Select(x => new SupportCategoryModel()
            {
                SupportCategoryID = x.SupportCategoryID,
                SupportCategoryName = x.SupportCategoryName,
            }
            ).ToList();
            //model = GetCorporateInformationData(model);

            return View("CloudApplicationRegistrationOrUpdateNoScript", model);
        }

        [HttpPost]
        //public virtual ActionResult RegisterCloudware(HeaderModel hm, FormCollection fc)
        public virtual ActionResult CloudApplicationRegistrationOrUpdateNoScript(CloudApplicationRegistrationAndUpdateModel carm, FormCollection fc)
        {
            carm.ShowTCAcceptDialog = !carm.TermsAndConditions;
            if (carm.ShowTCAcceptDialog)
            {
                carm.ConfirmationDialogTitle = "Register/update cloudware";
                carm.ConfirmationDialogMessage1 = "Please accept the terms & conditions to proceed";
            }
            if (ModelState.IsValid)
            {
                Person p = ModelHelpers.AddPerson(PersonTypeEnum.ProspectVendor, carm.Forename, carm.Surname, carm.Position, carm.Company, carm.EMail, carm.Telephone, carm.Country, carm.JoinUserGroup, _repository);
                SupportAreaQA qa = new SupportAreaQA();
                qa.SubmittedPerson = p;
                qa.QAStatus = _repository.GetQAStatus("UNASSIGNED");
                if (!carm.IsCloudwareUpdate)
                {
                    qa.Question = "Cloudware Registration";
                    qa.SupportArea = _repository.GetSupportArea("REGISTRATION");
                }
                else
                {
                    qa.Question = carm.CloudApplicationUpdateDetails;
                    qa.SupportArea = _repository.GetSupportArea("CONTENT");
                }
                qa.QuestionDate = DateTime.Now;
                qa.SupportAreaCloudApplicationServiceName = carm.CloudApplicationServiceName;
                qa.EMail = true;

                //carm.SupportCategories.Where(x => x.Selected).ForEach(y => qa.SupportAreaQACategories.Add(_repository.GetSupportCategory(y.SupportCategoryID));
                if (!carm.IsCloudwareUpdate)
                {
                    SupportAreaQACategory saqac;
                    List<SupportCategoryModel> test = carm.SupportCategories.Where(x => x.Selected).ToList();
                    foreach (SupportCategoryModel scm in test)
                    {
                        saqac = new SupportAreaQACategory();
                        saqac.SupportCategory = _repository.GetSupportCategory(scm.SupportCategoryID);
                        saqac.SupportAreaQA = qa;
                        if (qa.SupportAreaQACategories == null)
                        {
                            qa.SupportAreaQACategories = new List<SupportAreaQACategory>();
                        }
                        qa.SupportAreaQACategories.Add(saqac);
                    }
                    qa.SupportCategoryOther = carm.SupportCategoryOther;
                }

                qa.SupportAreaQAStatus = _repository.FindStatusByName("LIVE");
                _repository.AddSupportAreaQA(qa);
                //throw new Exception();
                carm.ShowTCAcceptDialog = false;
                carm.ShowConfirmationDialog = true;
                return View(carm);
                //return null;
            }
            else
            {
                //return View("CloudApplicationRegistrationOrUpdateNoScript", carm);
                return View(carm);
            }
        }
        #endregion

        #region BetaSplashShown
        [HttpPost]
        public virtual ActionResult BetaSplashShown()
        {
            CustomSession.BetaSplashShown = true;
            return null;
        }
        #endregion

        #region BetaSplashShownNoScript
        //[HttpPost]
        //[HttpGet]
        [AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
        public virtual ActionResult BetaSplashShownNoScript()
        {
            CustomSession.BetaSplashShown = true;
            return RedirectToAction("HomePage", "Home", new { scripting = false });
        }
        #endregion

        #region RedisplayBetaSplashShownNoScript
        //[HttpPost]
        public virtual ActionResult RedisplayBetaSplashShownNoScript()
        {
            CustomSession.BetaSplashShown = false;
            return RedirectToAction("HomePage", "Home", new { scripting = false });
        }
        #endregion

        #region ThanksForComing
        public ActionResult ThanksForComing(BaseModel model)
        {
            //SiteMapModel model = ModelHelpers.GetSiteMapData(this.CustomSession, _repository);
            if (model.CustomSession == null)
            {
                model.CustomSession = CustomSession;
            }
            ModelHelpers.SetSessionVariables(Request, model.CustomSession);
            //BaseModel b = new BaseModel() { CustomSession = customSession };
            return View("ThanksForComing", model);

        }
        #endregion

        #region PageNotFound
        public ActionResult PageNotFound(CustomSession customSession)
        {
            //SiteMapModel model = ModelHelpers.GetSiteMapData(this.CustomSession, _repository);
            ModelHelpers.SetSessionVariables(Request, customSession);
            return View("PageNotFound", new BaseModel() { CustomSession = customSession });

        }
        #endregion

        //#region H1H2Data
        //public ActionResult H1H2Data()
        //{
        //    ContentTextsModel model = new ContentTextsModel(CustomSession);
        //    model = ModelHelpers.GetH1H2Data(model, _repository);
        //    model.CloudwareExplainedVisible = true;
        //    return View("CloudwareExplainedPage", model);
        //}
        //#endregion

        //public class CustomControllerBase : Controller
        //{
            public PartialViewResult EditorFor<TModel>(TModel model)
            {
                return PartialView("EditorTemplates/" + typeof(TModel).Name, model);
            }

            public PartialViewResult DisplayFor<TModel>(TModel model)
            {
                return PartialView("DisplayTemplates/" + typeof(TModel).Name, model);
            }
        //}

            protected ViewResult MetaDataView(string viewName, BaseModel model)
            {
                ViewBag.MetaKeywords = model.MetaKeywords;
                ViewBag.MetaDescription = model.MetaDescription;
                ViewBag.MetaTitle = model.MetaTitle;
                return View(viewName, model);
            }
    }
}


text:
Home / Daily Dose / Real Estate Professionals Optimistic About Homeownership Comeback
Real Estate Professionals Optimistic About Homeownership Comeback
in Daily Dose, Featured, Market Studies, News November 10, 2014 1,604 Views
As the share of first-time homebuyers hovers at its lowest level in nearly three decades, real estate professionals remain optimistic that homeownership is due for a comeback.
In a panel at the 2014 Realtors Conference and Expo, experts discussed the changing face of American homebuyers and the potential effects of these changes on the housing market.
"Among primary residence homebuyers, the demographics have shifted dramatically, especially among first-time homebuyers, whose share of the market has dropped to its lowest level in decades," said Jessica Lautz, panelist and director of member and consumer survey research for the National Association of Realtors (NAR). "We have also seen an increase in the median age and income of the average buyer, as well as in multigenerational household formations as adult children and elderly family members move back in with their families."
One of the biggest topics for the panel was the state of millennial homeownership. While inventory shortages, tight credit access, and lower than average salaries have made for a bleak picture for young adults, the speakers largely agreed that these represent temporary setbacks as the economy makes its way to stable ground.
"It's not that young people don't want to purchase homes, it's that they are delaying the purchase," said Lisa Sturtevant, VP of research for the National Housing Conference. "Many of the reasons millennials are not forming households or making purchases are economic, so as the economy improves, we should see this group become more of a force in the housing market."
Jonathan Smoke, chief economist for Realtor.com, agreed, adding that members of Gen Y accounted for 37 percent of home shoppers over the summer and are expected to make up two-thirds of household formations in the coming years. Smoke also noted that from June through September, more than half of adults between the ages of 21 and 34 visited real estate websites or mobile apps.
First-Time Homebuyers Millennials National Association of Realtors National Housing Conference Realtor.com 2014-11-10
Tory Barringer
Tagged with: First-Time Homebuyers Millennials National Association of Realtors National Housing Conference Realtor.com
Previous: Detroit Attorney Named One of DBusiness Magazine's '30 in Their Thirties'
Next: Las Vegas Suburb Launches Foreclosure Registry
About Author: Tory Barringer
Tory Barringer began his journalism career in early 2011, working as a writer for the University of Texas at Arlington's student newspaper before joining the DS News team in 2012. In addition to contributing to DSNews.com, he is also the online editor for DS News' sister publication, MReport, which focuses on mortgage banking news.

redpajama_set_name: RedPajamaCommonCrawl


Oatmeal & Honey Bar Soap is made with saponified base oils, along with natural honey, colloidal oatmeal, and fresh almond milk gives this bar a great conditioning effect. Clove and Orange essential oils are added for a light, refreshing scent. 4oz.
Our soaps are packaged in biodegradable bags!


text:
89 Quaint Facts About England You'll Be Surprised To Know
1William the conqueror
Upon landing in England, William the Conqueror slipped and fell. To play it cool, he grasped two fistfuls of soil and proclaimed 'England is ours!'
2. When Edward I of England was coming back from the ninth crusade in 1272, he learned that his father had died and that he had been made the king of England. Instead of returning home to be crowned, Edward went on a leisurely trip in Italy and France for almost two years and only came back in 1274.
3. 70% of the land in England is still owned by 1% of the population, largely descended from William the Conqueror's army.
4. The Queen of England's portrait has been on enough international money to make a progressive timeline of her aging.
5. The earliest known recipe for macaroni & cheese dates back to 14th century England.
6Pineapple
Pineapples were such a status symbol and costly in the 18th century England that you could rent one for the evening to take to a party.
7. The Scottish army tried to take advantage of the Black Plague in England through an invasion, but caught it themselves and brought it back to Scotland, killing half of the native population.
8. The word "soccer" was first used in England before the Americans adopted it.
9. The oldest unbroken alliance in the world is between England and Portugal dating back to 1373
10. The intense rationing in England during WWII actually reduced infant mortality by guaranteeing nutrition to everyone.
11Gropecunt Lane
"Gropecunt Lane" was once a common street name in England, indicating probable historical centers of prostitution.
12. In England and Wales, it's legal to consume alcohol on private premises from the age of 5.
13. There's an annual lying competition in England, and competitors from around the world have five minutes to tell the biggest and most convincing lie they can. Politicians and lawyers are banned from entering because they're thought to be too good at it.
14. The Great Pyramid of Giza was the tallest man-made structure on Earth for 3,871 years until the Lincoln Cathedral in England was finished in 1311.
15. After a ride on England's first escalator, customers were offered a brandy to revive them of their ordeal.
16Richard III body
The body of Richard III, infamous king of England, was lost for over 500 years before being found beneath a parking lot in 2012.
17. In 2012, an Australian named Nathan Grindal was kicked out of a televised darts match in England because of fears his appearance could distract the players after the crowd started chanting 'Jesus' at him, due to him looking like 'Jesus.'
18. In 1355 in Oxford, England a dispute between two students and a Pub Landlord over the quality of their drinks resulted in a two-day riot (St Scholastica Day riot), which left 63 scholars and 30 locals dead.
19. In Gravesend, England, there is a whole fake town used by police to simulate dangerous situations. Fake streets, houses, parks, nightclubs, estates, aircraft, trains and tube stations are used to stage riots, robberies, hostage situations and terrorist attacks.
20. The Norman Invasion of England 1066 caused many English noblemen to flee England for the Byzantine Empire (modern day Turkey and Greece). There, the English diaspora founded the town, New York, 600 years before "New York" in America existed.
21Queen
The Queen owns all unmarked swans in open water and she is the "officially appointed 'Swan Keeper' of England."
22. There is a garden named Alnwick Garden in England devoted entirely to plants that can kill. The creator, the Duchess of Northumberland, felt that people 'would be more interested in hearing how a plant killed, how long it would take you to die if you ate it and how gruesome and painful the death might be.'
23. The first known illegal act on the internet was committed in 1973 by one of the first ARPANET engineers (Leonard Kleinrock). He sent a request for the return of his electric razor following a conference in England. At that time, personal use of the internet was unlawful.
24. Chocolate milk was invented by an Irishman named Hans Sloane while visiting Jamaica in the 1680s. Locals mixed cocoa with water which Hans Sloane found nauseating. So instead he mixed it with milk to make it more pleasant. He brought the recipe to England, where it was made and sold by pharmacists as medicine.
25. In 1885, a man named John Babbacombe Lee was to be hanged for murder in England. After 3 attempts to hang him all failed, his sentence was commuted to life in prison. He was eventually released and died an old man in Wisconsin in 1945.


text:
← Confession and the Rosary
Silver Empire To Re-release Declan Finn's A Pius Man →
Yes, It Is That Important: A Pro-Life Fisk
Posted on May 31, 2017 by Lori Janeski
I knew it. Sooner or later, we were bound to have a repeat offender on the fisk list, and here she is. Once again, ladies and gentlemen, I give you Rebecca Bratten Weiss, who has said something so horrible, she needs to be smacked down with extreme prejudice.
Today's example of holier-than-thou, sorry-excuse-for-Catholicism is entitled "Abortion: the Most Important Moral Issue Ever….Except for When it's Not." I'm just glad she managed to capitalize most of the appropriate letters this time around, even if she did get the ellipsis wrong.
Once again, the original text is in italics, and my comments are in bold.
Adherents to the Seamless Garment or Consistent Life Ethic Approach
Wow, I didn't even make it through the first sentence. Seriously? That supposed "social justice" theory is a load of bunk, and has been since the 1970s, because it equates issues that aren't actually equal. You may think you're "defending all life," because you decide to be a "Consistent Life Ethic" kind of person, but what you're really doing is clouding the issue. Defining that "ethic" is nebulous, because its tenants are nebulous. Their Wikipedia page says that "the seamless garment philosophy holds that issues such as abortion, capital punishment, militarism, euthanasia, social injustice, and economic injustice all demand a consistent application of moral principles that value the sacredness of human life."
Well, yeah, we're Catholics. We have a lot of Church Teachings that tells us how to do that "consistent application of moral principles" across multiple topics and throughout every conceivable part of our lives on this planet. So, you're either fixing a problem that doesn't exist . . . or you're talking about something else.
It's "social injustice" and "economic injustice" that are your real problems, right?
Oh, boy, here we go. What you REALLY mean is that you think I should be just as concerned about abortion as I am about "social injustice," like the supposed "racism" and "sexism" and BS like that circulating college campuses. Give me a break. There's no way those things are equally important. Baby-killing, because it is intrinsically evil and involves, you know, the DEATH of a CHILD, and in this country, occurs more than THREE THOUSAND TIMES PER DAY, takes priority over anyone claiming they were called racist names one day last week, for example.
And before you can point your finger and go "you mean evil person! How dare you not care about the plight of the poor?!" just hold on. I never said those issues weren't important. I can be in favor of feeding the hungry and clothing the naked . . . and also realize that stopping the baby-killing should probably take priority. I can donate old clothes and canned food and money to my local Shepherd's Storehouse on my way to pray outside Planned Parenthood. The two aren't mutually exclusive, and just because the EMPHASIS is different doesn't mean that pro-lifers DON'T CARE about the poor. And you assuming that they do is not only unjust and insulting, it makes you look like an idiot. You're bringing left-wing politics into a Catholic Church issue and assuming no one will notice. Take your "Seamless Garment" and go talk to the Democrats; I'm sure they'd love to have you.
as well as whole-life and New Pro Life advocates
I don't even know who that is, so getting back to the main point.
are regularly criticized because we try to address abortion within the broader context of other injustices.
In other words, when someone does what I just did in the preceding paragraphs and tells you to get your priorities straight, you get your feelings hurt.
You're not talking about abortion "in a broader context." You're trying to get us to NOT talk about it. Not gonna happen.
In so doing, we are told, we place all moral issues on the same plane, thus watering down the sinister significance of abortion, and the immensity of the body-count.
Uh, yeah. That's exactly what you do. When you're more concerned about "social justice" — which these days means some special little snowflake on a college campus getting her feelings hurt because of some "trigger" word or other such garbage — and then criticize pro-lifers for spending their time, money, and effort on trying to stop the baby-killing, you've done EXACTLY that. Thanks for clearing that up for us.
Writing for First Things, William Doino Jr accuses Cardinal Bernardin, with whom the Seamless Garment approach originated, of a failure sufficiently to distinguish the gravity of abortion:
Placing it on the same plane as the other issues undercut the pro-life movement's justifiable emphasis on abortion. Worse, it gave cover to pro-abortion Catholics who could say they agreed with "most of" the Cardinal's concerns, while still sacrificing the unborn by the millions.
I read the link, and it's a wonderful article. Why am I not surprised you think it's something to be criticized? In addition, you completely missed the point of the whole article. It's title is "Sex and the Seamless Garment," in which Mr. Donio reminds us that we left out an important issue from the debate: sexual morality. It feeds into the abortion issue, so why are we ignoring that in favor of the rest? Shouldn't we attack the problem by the roots, and not just pull the leaves off? It's an excellent point to make, and actually agrees somewhat with your whole "seamless garment" baloney — the idea that we can't focus our attention on one issue to the exclusion of all else.
And for the record . . . nobody ever ACTUALLY said to do that.
Not to mention that your little cherry-picked quote was just something for you to focus your criticism on. The whole paragraph actually said:
In his now-famous address at Fordham University, Joseph Cardinal Bernardin, the late archbishop of Chicago argued that "the pro-life position of the Church must be developed in terms of a comprehensive and consistent ethic of life." Consequently, the Church should not just focus on fighting abortion, but also the nuclear arms race, capital punishment and poverty; and promote health care, immigration reform, and benefits for the unemployed.
Fair minded critics of the Cardinal did not dispute this. What they objected to was the Cardinals' failure to emphasize the overwhelming horror of abortion, which was taking over a million lives per year, and prioritize it as the defining moral issue of our time. Placing it on the same plane as the other issues undercut the pro-life movement's justifiable emphasis on abortion. Worse, it gave cover to pro-abortion Catholics who could say they agreed with "most of" the Cardinal's concerns, while still sacrificing the unborn by the millions.
Ladies and gentleman, we have a straw man.
Meanwhile, New Pro Life activists and writers have received accusatory messages demanding to know whether we are a "Podesta plant" or perhaps receiving Soros money to infiltrate the pro-life movement with insidious messages of social justice.
Aw, you poor baby. Someone accused you of something you didn't do? They used a trigger word and hurt your feelings?
The message is clear: abortion is the worst evil. Stopping it is the top priority.
Actually, yes. It is the worst evil. It's the murder of the most vulnerable, the most innocent, to the tune of several thousand PER DAY. And in addition to that obvious bad thing: any idea what the suicide rate is of post-abortive mothers? How about the link between abortion and breast cancer, which kills how many women per year? Abortion horrible, all its consequences are horrible, and yes, it needs to be stopped. Pronto.
The absolute necessity that we choose life for the unborn renders all other issues null and void, for now.
Nobody said that; stop making stuff up. Nobody ever said that other issues — feeding the hungry, clothing the naked, and so forth and so on — were to be IGNORED in favor of stopping abortion. We're adults; we can multi-task. Other problems aren't "null and void," they just have a different EMPHASIS. If you're a homeless guy, and someone with a knife tries to stab you, of course you're going to stop the more IMMEDIATE problem of "this dude is trying to kill me" before you worry about the fact that you have no shoes. You're making up issues that don't exist so that you have something to rant about; stop it.
Friend and fellow Patheosi Mark Shea has referred to those who emphasize abortion to the neglect of other injustices as "using the unborn as human shields", as a defense for the many evils represented by the far right and the Trump regime.
Let's define the terms, shall we? A "human shield" is "a military and political term describing the deliberate placement of non-combatants in or around combat targets to deter the enemy from attacking these combat targets. It may also refer to the use of persons to literally shield combatants during attacks, by forcing them to march in front of the combatants."
So, the "issue" you're trying to address — after you make it up out of whole cloth — is using the slaughter of millions of babies as . . . what, an excuse to kill someone else? A deterrent for some enemy? Your analogy makes no sense. Even used in the more colloquial sense — like, an armed robber took a hostage to use as a human shield so that the cops didn't shoot him — it makes no sense. You're saying, what, that pro-lifers are using the issue to keep themselves from being . . . figuratively shot by someone else?
Or maybe . . . the pro-lifers are using the importance of the issue of abortion to deflect blame for their lack of social justice? Bad metaphor there.
And also: I thought we were talking about pro-lifers and the associated Church Teachings? Since when does Trump have anything to do with anything?
Oh, right. You're just trying to use what you think the Church says as an excuse to slam Trump, and then go hide behind "Catholic Social Teaching" to justify it.
Clicked on the link, and your buddy Mark Shea is just as bad: clouding the issue, trying to be holier-than-thou, and wading into politics and trying to wield the Catholic Church as a stick to beat people that don't agree with him.
I don't dispute this.
Yeah, I know you don't, and that's a problem. You'd best look to that.
In fact, it's not so clear that many of these spokespersons care much about abortion very much, when it comes down to the actual material event.
That sentence needs some work.
I think you're trying to say that "not many of these spokespersons care much about abortion when it comes down to the actual event."
Which is complete and utter nonsense. You think pro-lifers stand outside of Planned Parenthood in the rain, sleet, snow, and heat because they don't actually care?
Oh, boy, here we go.
recent conversations about the case of a Honors student at a Christian high school being suspended and barred from her own graduation ceremony, because she is pregnant. Maddi Runkles has a 4.0 average, considers herself a born-again Christian, and plans to raise her own baby – but the very people who ought to be most enthusiastic about supporting her are the ones punishing her.
Okay, back the outrage train up. Let's look at the details before we get into who's to blame for what here.
The girl was suspended, yes, and barred from the ceremony — not from graduating high school — because she BROKE THE SCHOOL RULES. She's being punished for BREAKING THE RULES THAT SHE ACKNOWLEDGED AND SIGNED. That's all. She's not being punished for "being" pregnant. It's a fine line, but it's a very important one there. The article on LifeNews about this same issue (and with a similar outraged tone), actually mentioned that the girl in question KNEW SHE BROKE THE SCHOOL RULES, acknowledged it publicly, and asked for forgiveness.
Good for her. She recognizes she did something wrong by having sex outside of marriage, for one, and for breaking a school rule she acknowledged and agreed to, for another. Great. This is a nonissue from here on out, right?
Oh, no. We don't have that kind of luck these days. The SJWs are coming out of the woodwork to blame the pro-life movement for not caring about her, rather than seeing that she is being required to accept the consequences of her own actions.
We can be enthusiastic that she didn't have an abortion — in today's world, where that option is pushed hard, especially on young people in trouble, it's a good thing to say, "thank God, she didn't abort her baby." We can go from there and say, "hey, I'll buy some onesies and give them to her," or "I'll get her a gift certificate to Babies-R-Us so she can afford the supplies she'll need," or "I know someone at the local crisis pregnancy center; I'll refer her to them so that she can get some free care," and so forth and so on. That's what all of those crisis pregnancy centers specialize in.
But banning her from graduation isn't about her "being pregnant," at least not immediately. She broke the school code — even if she made a good choice afterwards — and now she's being punished for that. NOT BECAUSE SHE'S KEEPING HER BABY. Put the monkey on the right back, here. The punishment is, in my opinion, very just. Would anyone be raising such a stink if she'd gone out and gotten drunk — which is also against school rules — then had a guilt trip, tattled on herself, and stood up and asked for forgiveness? She'd have been banned from graduation and suspended in that case, and no one would have batted an eye. You break the rules, you get punished. It's that simple.
Runkles told the Times:
"Some pro-life people are against the killing of unborn babies, but they won't speak out in support of the girl who chooses to keep her baby," she said. "Honestly, that makes me feel like maybe the abortion would have been better. Then they would have just forgiven me, rather than deal with this visible consequence."
Let that sink in. A young woman in a crisis pregnancy chose life, but Christians are making her wish she'd chosen abortion.
This is wrong on so many levels, and I don't mean that the aforementioned Christians are wrong.
The girl — and the author of this outraged blog post — needs to realize that being forgiven isn't the same thing as getting out of the consequences of her actions. We're Catholics; we know that even when our sins are forgiven, we still have the just punishment to go along with it. That's why we do penance; that's what Purgatory is for. We've been forgiven, but justice demands that we make amends for our bad acts.
Which is exactly what happened to her. I'm sure she's been forgiven for her misstep; that doesn't mean that the school administrators are supposed to applaud her public sin and act like it didn't happen. Not only is that contrary to justice, it gives rise to scandal. If the school seems to publicly support the sin — not the person who committed the sin and has acknowledged that and sought appropriate forgiveness, remember — then their ability to guide, instruct, and protect the other students is diminished. What happens when some other kid teetering on the edge of some sin thinks, "Well, so-and-so got away with it; it's no big deal, after all"? That's what happens when people in Catholic schools refuse to teach kids about Hell; it's reinforced every time they knowingly do something wrong, and get out of trouble just because they're some spoiled little special snowflake that daddy and mommy can excuse no matter what they did.
Yes, there are consequences to your actions. Accept that. You did a bad thing; now you get to do your time. I forgive you, but I'm not going to publicly endorse your behavior. If a toddler is running through the house — after mom told him not to do that — and runs into a table and breaks some priceless heirloom of mom's, he can say he's sorry all he wants; it won't un-break the vase. Mom can forgive him, and still send him to his room without dinner because he knew better than to run through the house, and did it anyway.
Those school administrators can ban her from the graduation ceremony and still support her and her decision not to abort. Stop clouding the issue and making everyone believe that those pro-lifers are evil, mean, horrible people. They're not. Both this girl and everyone who is so monumentally outraged by the school's decision is missing the whole point.
Love the sinner; hate the sin.
You would think that the "abortion is worst" crowd would be appalled at this, especially given the popular mantras about caring for "both of them" and how pro-life means pro-woman. But no. We are being treated, instead, to a series of lectures about "following the rules." Maddi Runkles broke the rules. Too bad if this is hard for her. Too bad if her plight will make many more young women secretly choose abortion. Suddenly abortion isn't the worst thing ever: breaking the rules is.
Oh, you've got to be kidding me. Reading this is making me crazy . . .
"Breaking the rules" is basically a definition of "sin." There's a rule about not having sex before marriage; if I break that rule, I've done something bad. I've sinned, and I need to seek forgiveness and do my penance for it. There's a world of difference between not publicly approving of her sin, and abandoning her in her plight. So she got suspended; so she can't walk across the stage. It's not the end of the world. Did her parents throw her out of the house? Nope. Did the school set up some old-fashioned stocks and make her stand in them all day while everyone ridiculed her? Nope. Is she supposed to go around with a "scarlet letter" on her chest all day long? Nope.
Again, if she'd been drinking and got caught, and then got banned from graduation, no one would have even noticed. She'd have "gotten what she deserved," right?
But somehow, now we're all supposed to be outraged at those mean, nasty Christians who are making her feeeeeel bad. When I see an article that says "teenager who got pregnant has garbage thrown at her by hecklers," or "teenager who got pregnant is thrown out of her house," or "teenager who got pregnant doesn't have enough food to eat," then I'll be outraged that the Christians are treating her badly because of her sin, and driving other girls away from us and straight into the arms of Planned Parenthood.
But that's not at all what happened. You getting your feelings hurt because of the just punishment due to your actions is nobody's fault but your own. And "feeling bad" after you did something wrong is a GOOD THING. It means your conscience is working. But don't you dare expect us to say a thing isn't a sin just to make you feel better.
How we as Catholics treat the sinner is important, and not just because of the state of our own souls. We don't operate in a vacuum; what we do in cases like this reflects on all of us. Treating this girl badly might intimidate someone else into hiding her pregnancy, or running to get an abortion because she's afraid of the way she'll be treated when she admits she screwed up. We can't deny that there is a straight line between "how someone perceives me" and "what I intend to do next," especially among teenagers who are scared.
But you know what makes this situation worse? It's not what the school did; it's all the venom-spewing news articles and bloggers throwing gas on that fire. What started out as a local issue between a girl, her parents, and their teeny-tiny local school, has been blown completely out of proportion and into a national kerfuffle.
The school administrators appear to be trying to walk on the edge of a knife — how to punish the actions of this girl, who admitted to doing it, on the one hand; and how to enforce the rules of their institution (and their religion) on the other. It's a hard thing, and don't envy them, especially with the spotlight they now have on them.
Could the school administrators have explained their decision more clearly? Possibly; we don't know specifically what went on behind closed doors between the girl, her parents, and the school board. If they treated her badly, then that sin is on them. Could they have explained: "hey, you did a good thing by not choosing abortion. We'll support you and your baby; but you still broke a rule and we can't endorse that. You'll have to be banned from the graduation ceremony"? Sure. Be specific about the punishment. Say what's right, and do it in a charitable way.
But don't you dare endorse a sin.
(If you're female).
So . . . the only reason this girl is being punished is because . . . she's a girl. She got pregnant, and only girls can get pregnant.
. . . seriously?
Basic biology here: it takes two to make a baby. Probably the reason the baby's father hasn't been mentioned in the plethora of articles written about this girl and her mean, evil, Christian school is because he's not a student, and his conduct isn't under their jurisdiction. Did you ever think of that?
Once again, you're clouding the issue. The most likely scenario here is that the school can't punish dad because dad isn't a student. Not their jurisdiction. Now, was there any mention that dad stepped up and said, "Yeah, that's my kid. I want to support him"? Nope. Strange silence on that count. Which means, maybe dad is gone, running from his responsibility, and is a jerk. Either that, or the articles in question are just ignoring him (which is another, separate problem). He needs to accept the consequences of his actions, too. And if that means getting suspended and not going to graduation, so be it.
But again, you're just clouding the issue. Stop doing that.
Matt Walsh has chided us in just such a way, on his Facebook page:
On one hand, you want to celebrate her choice, but on the other, if you toss your rules out the window in this case, how can you enforce them in any other case? Are we saying that they just shouldn't have the rule at all? Why shouldn't they have it? They're a Christian school. Pre-marital sex is a serious sin. Why shouldn't a Christian school have a rule against it? And if they have such a rule, why shouldn't they enforce it?
There's a tough balance between admonishing the sin of pre-marital sex while celebrating the life that comes from it. That's a very difficult line to walk, but everyone in the peanut gallery seems to be pretending that it's not difficult at all. They have it all figured out, and because they have it figured out, they feel comfortable condemning this school and its administrators.
I salute you, Matt Walsh. I'm so glad that someone is using their brain to address this issue, and not just their feels.
Suddenly, it is okay to balance pro-life concerns about abortion with other, equally grave matters?
Read the quote again; that's not what he said. He's talking about the line between "admonishing the sin" and "celebrating the life that comes from it." Leave your straw man at home; he's not fooling us.
There's a "difficult line to walk" between the evil of abortion, and that of premarital sex?
Uh . . . no. They're both wrong, and since the latter often leads to the former, they're linked and need to be addressed. You know, like Mr. Donio mentioned in that article you cherry-picked a quote from, but failed to read all the way through?
Being concerned about life ethics over other issues has relegated us to the "peanut gallery"?
If your "life ethics" consist of non-issues like special snowflakes getting their feelings hurt and the contents of someone's paycheck, then yes.
According to the critics of Cardinal Bernardin, it could be argued that Walsh is putting premarital sex on the same plane as abortion. But we're not allowed to do this with domestic violence, rape, police brutality, capital punishment, war, or depriving the worker of his wages.
Hold on. I have to go back and read it again . . .
Okay, it's on now.
[Takes a break to force herself not to use any cuss words or name-calling.]
No, all those things are NOT equal. Any discussion about "depriving the worker of his wages" belongs over with the Democratic party; that's a political issue. No, someone's paycheck isn't equal to the death of an innocent. Neither is capital punishment; in fact, the Catechism doesn't condemn capital punishment. I've already quoted the appropriate paragraphs to you the last time I had to fisk you, so I won't do it again here. So no, those "issues" are NOT equal to the taking of an innocent life. The others — domestic violence and rape — are definitely wrong, no question there, and yes, they need to be fought. Police brutality is also wrong, but there's a tendency these days to see any police officer who has to shoot to defend himself as the villain of the piece, so your definition of "police brutality" needs to be clarified before I'll agree with you there. And war? Go look up St. Thomas Aquinas' Just War Theory and then get back to me about how "wrong" it is.
But because pro-lifers don't talk about those other things as much, and spend more time praying outside of abortion clinics rather than sitting around blogging about the so-called "living wage," for example, they're the evil ones?
You're creating an issue that doesn't exist, just to have something to condemn. Just because I can call out one thing — or two — for being wrong, doesn't mean that everything I didn't mention is automatically right.
Maybe the ONLY THING that is as bad as abortion is premarital sex. If it's had by a woman, that is. Because it's never young men who are subjected to these rules.
Oh, for the love of —
Nobody ever said that. As I already said above, probably the only reason why the father in the aforementioned scenario wasn't also disciplined was because he WAS NOT A STUDENT. Not even the liberals who WROTE those articles — like the one you link to at the New York Times — even mentioned that the girl was being treated unjustly because she and her boyfriend (the baby's father) were not punished equally. And there's no doubt that had that been the case, the liberal media would have trampled all over each other, trying to get there first.
It takes two to have sex. It takes two to make a baby. And, news flash, it takes two to commit that sin if the above mentioned things are done OUTSIDE MARRIAGE. So, the blame here is plenty to go around. Once again, you're making up an issue that isn't really there. Stop.
And there's the common denominator between the "she broke the rules" and the "she had an abortion" shaming. In each case, it's a woman at whom we get to cast the stones.
"She broke the rules" and "she had an abortion" are the same thing, because, hey, having an abortion breaks that big, major rule about "thou shalt not murder," remember that one?
Premarital sex is one sin; abortion is another. They're both bad, even if the one about killing is worse than the other. And the boyfriend in both scenarios shares in the blame. In the first instance, for having sex outside of its proper context; and in the second, if he abandoned/pressured/coerced the mother of his child to have an abortion.
One is left wondering whether people like Walsh care about life issues at all, or whether it's all just misogyny wrapped loosely in a thin veneer of ethics?
You're accusing me of what, now?
Yeah, I'm done. I'm not even going to dignify that. The Asymmetric Bullshit Principle applies here, and I've already written too many words on the subject.
I'll leave you with this, though:
Yes, I care about life. I care about a lot of things. You don't get to accuse me of "misogyny" and slam my "ethics" when your own "seamless garment" is so tangled and convoluted.
See to the plank in your own eye before you come and criticize me.
This entry was posted in Fisks and tagged Abortion, Consistent Life Ethic, Ethics, Pre-Marital Sex, Seamless Garment. Bookmark the permalink.
1 Response to Yes, It Is That Important: A Pro-Life Fisk
The Other Schell says:
Yuk!!!


If you have fibroids and are considering pregnancy, confer with South Miami Women's Health to discuss the possible issues related to the size, number and location of your fibroids. Every case is different. Based on your particular situation, a non-invasive and very precise procedure known as Uterine Fibroid Embolization may be recommended.
about whether they may affect your fertility.
This entry was posted in Infertility, News, Pregnancy, Uterine Fibroids. Bookmark the permalink.


Want to make a difference in some of our most at-risk and vulnerable young people?
Keen to be part of a professional team working together to change lives?
Youth Horizons are looking for a Personal Advisor to help our team at Youth Service West New Lynn be the best it can be. If you are looking for a challenge, have youth work experience, and want to work for an organisation that is making a difference in the lives of at-risk young people - we'd like to talk with you.
The Personal Advisor/ Kaitohutohu a Rangitahi is responsible for supporting at-risk youth aged 16-17. The Personal Advisor's focus on supporting young people to engage/remain engaged in education or training (both mainstream and alternative), and assist in finding employment. Main outcomes include: Gain NCEA levels or equivalent, Support to find the best training or work option, Career planning and goal setting, Becoming work ready, interview skills, employer appreciation, driver licensing and assisted job search.
Youth Service West a place for West Auckland Youth; We provide a continuum of support and care for young people aged between 10 and 20 years old. Our programmes are relevant, inclusive and place West Auckland young people in the centre. With a range of programmes and trained professional in our team, we customise a plan to support each young person helping them to achieve a brighter future. We have four teams operating out of our New Lynn hub.


text:
Q: Center a JPanel in a JFrame in Netbeans I have a JFrame with 10 JPanel components that were put using Swing. I have one panel created from code. I added JLabel and stuff on it.
The problem is when I try to center all the panels using the GridBagLayout on frame. The panels are centered, but the one that I created manually doesn't appear anymore.
How to make the manually created one appear?
Code in main:
Interface f = new Interface();
f.setExtendedState(f.getExtendedState() | JFrame.MAXIMIZED_BOTH);
f.setLayout(new GridBagLayout());
f.setVisible(true);

Code to add the manually created panel to JFrame:
this.getContentPane().add(hotelPanel);
hotelPanel.setSize(800, 1000);
hotelPanel.setLocation(300, 1);
hotelPanel.setVisible(false);

redpajama_set_name: RedPajamaStackExchange


John Clarke Hoyte painting. Pink and White Terraces, Lake Rotomahana and Mount Tarawera. Watercolor and gouache on paper. ca 1870s. Hocken Collections. Uare Taoka o Hakena, University of Otago.
This is an unusual one: The pink and white terraces are an amazing place -- however they no longer exist. Actually, they no longer exist in the form that made them famous.
The pink and white terraces were two sets of beautiful geyser formations of silica terraces in Lake Rotomahana near the dormant volcano Mt. Tarawera, around 25 km south of the New Zealand town of Rotorua, but they disappeared during an 1886 eruption of Mt. Tarawera. 800m apart, it is thought they had different appearances because of the amount of sunlight they each received, with the white ones being the larger set, around 50 layers and cascading over 40m in height, and the pink ones being the preferred area for swimming.
In Maori they were known as Otukapuarangi, "fountain of the clouded sky" and they were a popular tourist attraction from the 1840s, especially after Prince Albert, the Duke of Edinburgh, visited in 1870, but were a source of racist resentment from the white (pakeha) New Zealanders because the Te Arawa tribe that owned them became wealthy from their control and ownership of the area (they even had their marae (meeting house) in Hinemihi made with gold florins instead of paua (abalone shell) eyes. After the eruption killed and displaced members of the tribe, the New Zealand government unfairly converted the area into crown land in a payment-for-relief-assistance system, although much of this (including 13 lakes in 2006) has been returned to the tribe in the past decades as part of the Treaty of Waitangi tribunal.
Lake Tarawera before the eruption and today -- the eruption enlarged the lake. A narrow isthmus separates lakes Tarawera and Rotomahana.
I've been fascinated with the pink and white terraces since I was a girl and saw a beautiful painting of them. It was only after a while that I learned that they had been destroyed -- I had dreamed of visiting them!
In a marvel of modern science, the lowest two tiers of the pink terraces were rediscovered 60 metres underwater while mapping the lake floor in 2011, and it is thought that the rest may be buried under sediment, and the increased-level lake.


text:
Q: Can I use Powershell command window to interact with a Powershell hosting app? I'm working on an application to have Powershell embedded in it. I'm wondering if there is a way I can launch a separate Powershell command window, and interact with my application through this Powershell window? Can anyone point out some reference? Thanks a lot.

A: After some digging, I figure out what I can do in this case, is to create a PowerShell provider in my application. With this provider, user will be able to interact with the application through PowerShell running outside of the application.


Italian Consular Agency in Goa is an bridge of communication between India Government and Italy. It operates as the official representative of the India in Italy.
Please check Italy international travelers Indian Visa requirements to travel to the India. The Visa section of this website is all about Indian Visa for foreign citizens to travel to the India.


Refillable Leather Composition Notebook by Baume & Mercier.
Dimensions ca. 110 mm x 85 mm.
Leather composition notebook is perfect size for to-do lists, mileage logs, or jotting down notes.
Easily and inexpensively refillable with standard mini composition notebooks.
The pocket notepad cover is made of high quality genuine leather in reptile skin grain.
Makes a great gift for any Baume & Mercier fan.


Workshop Description: As general music educators, the sequencing and process of lesson planning in numerous music-making modes is something we understand. The ukulele is fast becoming a sought-after instrument for the music classroom. At the intersection of these two ideas is a wonderful opportunity. Let's revisit fundamental concepts in content and pedagogical knowledge and apply them, creating a place for this fun, engaging instrument. Please bring a recorder and wear comfortable clothes for movement.
Clinician Biography: Lorelei Batislaong is a 14-year veteran of the elementary music classroom. She served on the AOSA National Board of Trustees as Region III Representative and is the State Director of the Texas affiliate of NAfME. Along with presenting clinics at the local, state, and national level, Lorelei is currently working on a Ph.D. in Music and Human Learning at the University of Texas at Austin. Her research interests include: Exploring the characteristics of meaningful and valuable professional development experiences, encouraging inclusivity in the music classroom and the teaching profession, and generally wondering why everything is the way it is and how could it be better.


text:
Q: How to link a button in ViewController.swift to an xib file? I want to create a button in my view controller that links to a xib file screen. What lines of code do I need to write in the IBAction in my ViewController.swift file?
I have tried writing code that is used to connect two storyboard files together but it doesn't seem to work.
This is an example of code that I use to connect to a storyboard file but what code do I use for an xib file:
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let progressVC = storyBoard.instantiateViewController(withIdentifier: "ProgressVC") as! WGProgressVC.progressVC.modalTransitionStyle = .crossDissolve
self.present(progressVC, animated: true, completion: nil)

I want to connect my Main.storyboard file to a xib file but it is not working since I don't know the lines of code I need to write. How can I solve this?

A: You may need something like this:
@IBDesignable class MyBtn: UIButton {
    // any outlets here
    // @IBOutlet ...

    override init(frame: CGRect) {
        super.init(frame: frame)
        initNib()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        initNib()
    }

    func initNib() {
        let bundle = Bundle(for: MyBtn.self)
        bundle.loadNibNamed("MyBtnXib", owner: self, options: nil)
        // any customization below
        ...
    }
}

In general it's good to use IBDesignable for your UI elements and IBInspectable for reasonable variables if you use IB.


X1 World Events is Back in the Blaisdell Arena Saturday January 19 with "One to Remember" A stacked Fight Card of professional MMA fights featuring Fighters from Hawaii, Japan, and the Mainland.
Get Ready as you will see multiple Titles on the Line to see who is the best in their class.
It's going down on Jan.19th as X1 World Events brings you a X-1 #51 "One To Remember" to the Blaisdell Arena with an action packed night of fights planned that everybody can enjoy!
In the Main & Co-Main we've got Hawaii vs Japan, as Oahu's 135lb X-1 World Champion Rodney Mondala will be fighting Japan's Taiki Tsuchiya & Japan's Suguru Nii the 155lb X-1 World Champion will be defending his title against Maui's Koa Corpuz!
These 2 fights itself will bring the action, that'll have everybody on their feet at the Blaisdell, but we've got so much more in store for you.
We've also got a Pro female MMA bout between Maui's Tiani Valle vs Louisiana's Andy Nguyen and don't let their looks fool you, these 2 ladies can fight & always put on a show!
This fight card is loaded with Hungry Hawaiian Fighters looking to make their mark and put themselves on the map. Ben Santiago, Johnavan Vistante, Jace Kaopua, Pololu Nakanelua, Pierre Daguzan, Thomas Mathias, Titus Strckland, Keoni Diggs, Zach Close and much more.
This will be one show that you do not want to miss and that will start the year, with a BANG!!!
Mahalo, Aloha & we hope to see everybody there at the Blaisdell Arena on Jan.19th, in support of all your Hawaii MMA fighters.


text:
Elena Leonidovna Nikolaeva (, born 22 November 1969 in Dolgoprudny) is a Russian politician and businesswoman. She graduated from the Moscow Institute of Physics and Technology in 1993 and obtained the degree of Candidate of Sciences from the Lomonosov University in 2011. She has been a member of the State Duma of the Russian Federation since 2011.

References

External links

1969 births
Living people
Sixth convocation members of the State Duma (Russian Federation)
Moscow Institute of Physics and Technology alumni
Deputies of Moscow City Duma

redpajama_set_name: RedPajamaWikipedia