Latex Men's Catsuits (2024)

' } else{ pdpTemplate += '

' } pdpTemplate += '

' pdpTemplate += '' pdpTemplate += '

' pdpTemplate += '

' pdpTemplate += '

' pdpTemplate += '

'+recurpay.settings.translations.premium_subscription_label+'

' pdpTemplate += '

'+recurpay.settings.translations.premium_subscription_label_description+'

' pdpTemplate += '

' pdpTemplate += '

' pdpTemplate += '

' pdpTemplate += '

' if(recurpay.settings.translations.premium_frequency_dropdown_label != "" && recurpay.settings.translations.premium_frequency_dropdown_label != null && recurpay.settings.translations.premium_frequency_dropdown_label != undefined){ pdpTemplate += '

'+recurpay.settings.translations.premium_frequency_dropdown_label+'

' if(GetPlansLength == 1){ pdpTemplate += '' } else{ pdpTemplate += '' } } else{ if(GetPlansLength == 1){ pdpTemplate += '' } else{ pdpTemplate += '' } } pdpTemplate += '

'+getPlanDesc+'

' if(recurpay.settings.translations.promotion_offer_applied_label != "" || recurpay.settings.translations.promotion_view_offer_applied_label != ""){ pdpTemplate += '

' if(recurpay.settings.translations.promotion_offer_applied_label != ""){ pdpTemplate += ''+recurpay.settings.translations.promotion_offer_applied_label+'' } if(recurpay.settings.translations.promotion_view_offer_applied_label != ""){ pdpTemplate += ''+recurpay.settings.translations.promotion_view_offer_applied_label+'' } pdpTemplate += '

' } pdpTemplate += '

' pdpTemplate += '

'+recurpay.settings.translations.premium_one_time_saving_icon+'' pdpTemplate += '

' pdpTemplate += ''+recurpay.settings.translations.premium_one_time_saving_msg+'' pdpTemplate += '' pdpTemplate += ''+recurpay.settings.translations.premium_one_time_discount_label+'' pdpTemplate += ''+recurpay.settings.translations.premium_one_time_saving_label+'' pdpTemplate += '

' pdpTemplate += '

'+recurpay.settings.translations.premium_subscription_saving_icon+'' pdpTemplate += '

' pdpTemplate += ''+recurpay.settings.translations.premium_subscription_saving_msg+'' pdpTemplate += ''+recurpay.settings.translations.premium_subscription_discount_label+'' pdpTemplate += ''+recurpay.settings.translations.premium_subscription_saving_label+'' pdpTemplate += '

' pdpTemplate += '

' pdpTemplate += '

' pdpTemplate += '' pdpTemplate += '

' pdpTemplate += '

' pdpTemplate += '

' pdpTemplate += '

' pdpTemplate += '

'+recurpay.settings.translations.premium_onetime_label+'

' pdpTemplate += '

' pdpTemplate += '

' pdpTemplate += ''; pdpTemplate += ''; pdpTemplate += ''; if(recurpay.checkout == "shopify"){ pdpTemplate += ''; } pdpTemplate = pdpTemplate.replaceAll('[[SAVING_AMOUNT]]', ''); pdpTemplate = pdpTemplate.replaceAll('[[DISCOUNT_PERCENTAGE]]', ''); return pdpTemplate; } if($(pdpSelector).length <= 0){ if (window.location.href.indexOf("/products/") > -1) { if($(atcFormSelector).find(atcSelector).filter(':visible').length){ if($(atcFormSelector).find(atcSelector).filter(':visible').first().parent().css('display') == 'flex' && $(atcFormSelector).find(atcSelector).filter(':visible').first().parent().css('flex-direction') == 'row'){ $(atcFormSelector).find(atcSelector).filter(':visible').first().parent().before('

'); } else if($(atcFormSelector).find(atcSelector).filter(':visible').first().parent().css('display') == 'grid' || $(atcFormSelector).find(atcSelector).filter(':visible').first().parent().css('display') == 'inline-grid'){ $(atcFormSelector).find(atcSelector).filter(':visible').first().parent().before('

'); } else{ $(atcFormSelector).find(atcSelector).filter(':visible').first().before('

'); } if($(pdpSelector).parent().css('position') == 'fixed' || $(pdpSelector).parent().css('position') == 'sticky' || $(pdpSelector).parent().css('position') == 'absolute' ){ $(pdpSelector).parent().addClass("recurpay-z-index"); } } else if($(atcFormSelector).find(atcSelector).length){ if($(atcFormSelector).find(atcSelector).first().parent().css('display') == 'flex' && $(atcFormSelector).find(atcSelector).filter(':visible').first().parent().css('flex-direction') == 'row'){ $(atcFormSelector).find(atcSelector).first().parent().before('

'); } else{ $(atcFormSelector).find(atcSelector).first().before('

'); } if($(pdpSelector).parent().css('position') == 'fixed' || $(pdpSelector).parent().css('position') == 'sticky' || $(pdpSelector).parent().css('position') == 'absolute' ){ $(pdpSelector).parent().addClass("recurpay-z-index"); } } else{ $(atcFormSelector).append('

') } } } if($(pdpSelector).length){ recurpay.allProducts = []; for(i=0; i<$(pdpSelector).length; i++){ if($(pdpSelector).eq(i).attr("data-product-id") != undefined && $(pdpSelector).eq(i).attr("data-product-available") != undefined ){ recurpay.allProducts.push($(pdpSelector).eq(i).attr("data-product-id")); } } $.ajax({ url: recurpay.pdpAPI, type: 'POST', async:true, data: {"products": recurpay.allProducts,"settings": true}, success: function(response) { if(response != "ERROR") { if(response.plans.length > 0){ recurpay.productDatas = response.plans; if(response.settings.default_purchase_option !== undefined && response.settings.default_purchase_option !== null && response.settings.default_purchase_option == 'onetime'){ recurpay.subscriptionFirst = false; } if(response.settings.translations !== null && !$.isEmptyObject(response.settings.translations)){ recurpay.settings = response.settings; document.documentElement.style.setProperty('--recurpay_primary_color', recurpay.settings.snippet_color_codes.subscription_brand_color); document.documentElement.style.setProperty('--recurpay_secondary_color', recurpay.settings.snippet_color_codes.subscription_secondary_color); document.documentElement.style.setProperty('--recurpay_button_text_color', recurpay.settings.snippet_color_codes.subscription_button_text_color); document.documentElement.style.setProperty('--recurpay_button_bg_color', recurpay.settings.snippet_color_codes.subscription_button_color); document.documentElement.style.setProperty('--recurpay_savings_bg_color', hexToRgbA(recurpay.settings.snippet_color_codes.subscription_brand_color)); } $(response.plans).each(function(){ var pdpHTML = ''; var $this = $(this); if($this[0].product.plans.length >0){ pdpHTML = recurPDP($this[0].product); fetchVariants(); var getElem = $('.recurpay-pdp-widget[data-product-id="'+$this[0].product.id+'"]'); if($(getElem).length && $(getElem).attr("data-product-available") == "true"){ $(getElem).html(pdpHTML); if(response.settings.default_purchase_option !== undefined && response.settings.default_purchase_option !== null && response.settings.default_purchase_option == 'onetime'){ offerSavings($(getElem)); } if(response.store.created_at != undefined && response.store.created_at != null && response.store.created_at != ""){ const createdDate = new Date(response.store.created_at); const releaseDate = new Date('2024-07-16T00:00:00.000Z'); const createdDateString = createdDate.toISOString().split('T')[0]; const releaseDateString = releaseDate.toISOString().split('T')[0]; if(createdDateString < releaseDateString){ $(footerManageSubcriptionSelector).hide(); } } if($(getElem).attr("data-only-subscription") == "true"){ $(getElem).find(".recurpay__widget[data-recurpay-widget]").addClass("recurpay_only_subscription_widget"); } if((window.location.href.indexOf("/products/") > -1) && (window.location.href.indexOf("snippet_status=false") > -1)){ $(getElem).before("You are previewing subscriptions currently and the option below is not visible to customers on your live store. Click here if you are ready to show it your customers now.") } if($(getElem).is(":hidden") || $(getElem).width() < 220){ logEvent("product_widget","Product snippet added but needs a reverification", "warning"); } } var params = new Proxy(new URLSearchParams(window.location.search), { get: (searchParams, prop) => searchParams.get(prop), }); if(params.variant !== undefined && params.variant !== null){ var variant_id = parseInt(params.variant); let variant_data = []; variant_data.push(...$this[0].product.variants.filter(function(searchId) { return parseInt(searchId.id) == variant_id; })); if(variant_data.length >=1){ recurpay.product.selectedVariant = params.variant recurDiscountedPrice(recurpay.product.selectedVariant); } else{ recurpay.product.selectedVariant = $this[0].product.variants[0].id; recurDiscountedPrice($this[0].product.variants[0].id); } } else{ if(recurpay.product.availableVariant !== "" && recurpay.product.availableVariant !== undefined){ recurpay.product.selectedVariant = recurpay.product.availableVariant; recurDiscountedPrice(recurpay.product.availableVariant); } else{ recurpay.product.selectedVariant = $this[0].product.variants[0].id; recurDiscountedPrice($this[0].product.variants[0].id); } } } }); if(response.settings.sell_only_as_subscription !== undefined && response.settings.sell_only_as_subscription !== null){ if(response.settings.sell_only_as_subscription == true){ updateSelectors(true); } else{ updateSelectors(); } } } } } }); if(window.location.href.indexOf("/products/") > -1){ var offersModalHTML = ""; offersModalHTML += '

' offersModalHTML += '

' offersModalHTML += '

' offersModalHTML += '

' offersModalHTML += '

' offersModalHTML += '' offersModalHTML += '

' offersModalHTML += '

' offersModalHTML += '

' if($('body').length){ $('body').append(offersModalHTML); } else if($('html').length){ $('html').append(offersModalHTML); } } } else{ if((window.location.href.indexOf("/products/") > -1) && (window.location.href.indexOf("recurpay_preview=true") > -1)){ var domain_array = recurpay.shopDomainURL.split('.'); var domain_string = domain_array[0]; var recurpay_domain = 'https://' + domain_string + '.recurpay.com'; var modalHTML = ""; modalHTML += '

' modalHTML += '

' modalHTML += '

' modalHTML += '

' modalHTML += '

' modalHTML += '

' modalHTML += '

' modalHTML += '

' modalHTML += 'Note: This is not visible to your customers' modalHTML += '

' modalHTML += '

' modalHTML += '

' modalHTML += '

Looks like the subscription option is not visible on your store due to some conflict with theme. Talk to us on Live Chat to get it resolved instantly

' modalHTML += '

' modalHTML += '

' modalHTML += '' modalHTML += '' modalHTML += '

' if($('[data-recurpay-visibility-modal]').length <= 0){ if($('body').length){ $('body').append(modalHTML); } else if($('html').length){ $('html').append(modalHTML); } } } if((window.location.href.indexOf("/products/") > -1)){ logEvent("product_widget","Failed to show product snippet", "critical"); } } function ordinalSuffix(n){return["st","nd","rd"][((n+90)%100-10)%10-1]||"th"} function promotionalOffer(promoSelector){ var getQty = 1, getVariant = "", offerParams = [], getProductId = parseInt($(promoSelector).attr("data-product-id")), getVariantSelector = $(promoSelector).parents(atcFormSelector).find('[name="id"]'), getQtySelector = $(promoSelector).parents(atcFormSelector).find('[name="quantity"]'), getPlanId = parseInt($(promoSelector).find('[name="recurpay-input"] option:selected').attr('data-plan')); getDeliveryInterval = $(promoSelector).find('[name="recurpay-input"] option:selected').attr('data-delivery-interval'), getDeliveryFrequency = parseInt($(promoSelector).find('[name="recurpay-input"] option:selected').attr('data-delivery-frequency')); if(recurpay.settings.translations.promotion_popup_heading_label != ""){ $('.recurpay-preview-preview-title').html(recurpay.settings.translations.promotion_popup_heading_label); } if(getQtySelector.length){ getQty = parseInt(getQtySelector.val()); } if(getVariantSelector.length){ getVariant = parseInt(getVariantSelector.val()) } else{ getVariant = $(promoSelector).attr("data-default-variant"); } offerParams.push({ 'variant_id': getVariant, 'product_id': getProductId, 'quantity': getQty, 'plan':{ 'id': getPlanId, 'delivery_policy': { 'interval': getDeliveryInterval, 'frequency': getDeliveryFrequency } } }) $.ajax({ url: recurpay.offersAPI, type: 'POST', data: { "product_set": offerParams }, async: true, success: function(response) { if(response.success == true) { $(document).find('.offer-applied-div').show(); if(response.data.applicable_offers.length > 0){ var multipleOffer = false; var listCount = 1; var botOfferListHtml = ""; var botOfferArray = []; for(index = 0; index < response.data.applicable_offers.length; index++){ var orders = response.data.applicable_offers[index].orders; $.each(orders, function(i, order){ var order_cycle = order.cycle; if(i == 0 && index == 0){ botOfferArray[0] = order; } else if(i != 0){ botOfferArray[order_cycle] != undefined && botOfferArray[order_cycle] != null ? botOfferArray[order_cycle+1] = order : botOfferArray[order_cycle] = order } }); } botOfferArray = botOfferArray.filter(function (el){ return el != undefined && el != null && el != ""; }); $.each(botOfferArray, function(i, order){ var order_cycle_suffix = ordinalSuffix(order.cycle); if(i == 0 && recurpay.settings.translations.promotion_first_order_label != "" && order.message != ""){ botOfferListHtml += '

'; botOfferListHtml += ''+order.cycle+''+ order_cycle_suffix+'

order

' botOfferListHtml += '

' botOfferListHtml += '

'; botOfferListHtml += ''+order.message+'' botOfferListHtml += '

'; } else if(i != 0 && order.message != ""){ botOfferListHtml += '

'; botOfferListHtml += ''+order.cycle+''+ order_cycle_suffix+'

order

' botOfferListHtml += '

' botOfferListHtml += '

'; botOfferListHtml += ''+order.message+'' botOfferListHtml += '

'; } }); $(document).find('.bot-offer-wrapper').html(botOfferListHtml); } else{ $(document).find('.offer-applied-div').hide(); $(document).find('.recurpay-preview-modal-container').fadeOut(); } } else{ $(document).find('.offer-applied-div').hide(); $(document).find('.recurpay-preview-modal-container').fadeOut(); } }, error: function(error){ $(document).find('.offer-applied-div').hide(); $(document).find('.recurpay-preview-modal-container').fadeOut(); } }); } function recurProperties(elem){ var getParent = $(elem).parents(pdpSelector); if( $(getParent).find("[name='recurpay__group_main'][value='subscription']").is(":checked")){ var planName = $(getParent).find('[name="recurpay-input"] option:selected').attr('data-plan-name'), planId = $(getParent).find('[name="recurpay-input"] option:selected').attr('data-plan'); $(getParent).find('.recurpay_plan_name').attr("name","properties[Plan]").val(planName); $(getParent).find('.recurpay_plan_id').attr("name","properties[_PlanId]").val(planId); if(parseInt(recurpay.subscriptionInfluence && recurpay.subscriptionInfluenceCount) >=1){ $(getParent).find('.recurpay_purchase_data').attr("name","properties[_PurchaseData]").val(recurpay.subscriptionInfluenceCount); } $(getParent).find('.recurpay__description[data-description-id]').hide(); $(getParent).find('.recurpay__description[data-description-id="'+planId+'"]').show(); if(recurpay.checkout == "shopify"){ var sellingPlanId = $(getParent).find('[name="recurpay-input"] option:selected').attr('data-selling-plan'); $(getParent).find('.recurpay_selling_plan_id').attr("name","selling_plan").val(sellingPlanId); } } else{ $(getParent).find('.recurpay_plan_name').attr("name",""); $(getParent).find('.recurpay_plan_id').attr("name",""); $(getParent).find('.recurpay_purchase_data').attr("name",""); if(recurpay.checkout == "shopify"){ $(getParent).find('.recurpay_selling_plan_id').attr("name",""); } } offerSavings(getParent); } function addSubscription(btn){ var variantSelector = $(btn).parents(atcFormSelector).find('[name="id"]'), quantitySelector = $(btn).parents(atcFormSelector).find('[name="quantity"]'), subscriptionPlanId = $(btn).parents(pdpSelector).find('[name="recurpay-input"] option:selected').attr('data-plan'), subscriptionPlanName = $(btn).parents(pdpSelector).find('[name="recurpay-input"] option:selected').attr('data-plan-name'), subscriptionPlanType = $(btn).parents(pdpSelector).find('[name="recurpay-input"] option:selected').attr('data-plan-type'), planVariant = parseInt(variantSelector.val()), planQuantity = 1, planParams = {}; if(quantitySelector.length) { planQuantity = parseInt(quantitySelector.val()); } if(variantSelector.length <=0){ planVariant = ""; } if(recurpay.checkout == "shopify"){ var sellingPlanId = $(btn).parents(pdpSelector).find('[name="recurpay-input"] option:selected').attr('data-selling-plan'); planParams = { id: planVariant, quantity: planQuantity, selling_plan: sellingPlanId, properties: { 'Plan': subscriptionPlanName, '_PlanId': subscriptionPlanId } } } else{ planParams = { id: planVariant, quantity: planQuantity, properties: { 'Plan': subscriptionPlanName, '_PlanId': subscriptionPlanId } } } if(recurpay.checkout == "recurpay" && !recurpay.prepaidMixedCart && subscriptionPlanType == "prepaid"){ $.getJSON('/cart', function(response) { response.items = []; response.items.push(planParams); recurCart(response); }); } else{ if (recurpay.action == "default" && $(atcFormSelector).find(atcSelector).length){ $(btn).parents(atcFormSelector).find(atcSelector).first().click(); } else{ $.ajax({ type: 'POST', url: '/cart/add.js', dataType: 'json', data: planParams, success: function() { if (recurpay.checkout == "recurpay" && recurpay.action == "checkout"){ $.getJSON('/cart', function(response) { recurCart(response); }); } else if(recurpay.action == "cart"){ document.location.href = '/cart'; } else{ document.location.href = '/checkout'; } }, error: function(xhr, status, error) { var err = eval("(" + xhr.responseText + ")"); $('[data-recurpay-error]') .html(err.description) .show().delay(3000).fadeOut(); } }); } } } $(document).on('change',"[name='recurpay__group_main']", function(e){ var $this = $(this); $this.parents(pdpSelector).find('.recurpay__widget_container').removeClass("recurpay__widget_container--selected"); var checkVal = $this.val(); if($this.is(":checked")){ $this.parents('.recurpay__widget_container').addClass("recurpay__widget_container--selected"); } if(checkVal == "subscription"){ recurpay.subscriptionInfluence = true; recurpay.subscriptionInfluenceCount = recurpay.subscriptionInfluenceCount + 1; $this.parents(atcFormSelector).find(atcSelector).addClass("recurpay-hide"); $this.parents(atcFormSelector).find(buynowSelector).addClass("recurpay-hide"); $this.parents(pdpSelector).find('.recurpay__plans').show(); $this.parents(pdpSelector).find('.recurpay__group_content_wrapper').slideDown(); } else{ $this.parents(atcFormSelector).find(atcSelector).removeClass("recurpay-hide"); $this.parents(atcFormSelector).find(buynowSelector).removeClass("recurpay-hide"); $this.parents(pdpSelector).find('.recurpay__plans').hide(); $this.parents(pdpSelector).find('.recurpay__group_content_wrapper').slideUp(); } recurProperties($this); }); $(document).on('change',"[name='recurpay-input']", function(e){ var getId = $(this).parents(atcFormSelector).find('input[name="id"], select[name="id"], input#SelectedId').val(); recurDiscountedPrice(getId); recurProperties($(this)); }); $(document).on('click',".recurpay__group_label", function(e){ $(this).parents('.recurpay__widget_container').find('[name="recurpay__group_main"]').prop("checked",true).change(); }); $(document).on('click',".recurpay-modal-cancel-btn", function(e){ $('[data-recurpay-visibility-modal]').hide(); }); function updateSelectors(only_subscription){ for(r=0; r<$(pdpSelector).length; r++){ if($(pdpSelector).eq(r).attr("data-only-subscription") == "true" || only_subscription == true){ $(pdpSelector).eq(r).attr("data-only-subscription",true); $(pdpSelector).eq(r).find(".recurpay__widget[data-recurpay-widget]").addClass("recurpay_only_subscription_widget"); $(pdpSelector).eq(r).find("[name='recurpay__group_main'][value='subscription']").prop("checked",true).change(); } else{ if(recurpay.subscriptionFirst == true){ $(pdpSelector).eq(r).find("[name='recurpay__group_main'][value='subscription']").prop("checked",true).change(); } } } } $(document).on('click',"[data-recurpay-action]", function(e) { e.preventDefault(); e.stopPropagation(); addSubscription($(this)); }); $(document).on('click',"[data-applicable-offers]", function(e) { e.preventDefault(); e.stopPropagation(); $('.recurpay-preview-modal-container').fadeIn(); }); $(document).on('click',".recurpay-preview-modal-close", function(e) { e.preventDefault(); e.stopPropagation(); $('.recurpay-preview-modal-container').fadeOut(); }); $(document).on('change', '[name="quantity"]', function(){ var variantId = $(this).parents(atcFormSelector).find('[name="id"]').val() || ""; recurDiscountedPrice(variantId); }) if(recurpay.checkout == "recurpay"){ $(document).on('click', checkoutSelector, function(e) { e.preventDefault(); e.stopPropagation(); $.getJSON('/cart', function(response) { recurCart(response); }) }); if($(recurpay.checkout_btn_override_class).length){ document.addEventListener("click", handler, true); function handler(e) { if($(e.target).is(recurpay.checkout_btn_override_class)){ e.stopPropagation(); e.preventDefault(); $.getJSON('/cart', function(response) { recurCart(response); }); } } } } } //Append jQuery if it is not there, then call to recurpaySubscription //Otherwise directly call to recurpaySubscription if ((typeof(jQuery) == 'undefined')) { initScript('//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js', function() { window.recurpayScript = jQuery.noConflict(true); recurpaySubscription(recurpayScript); }) } else { recurpaySubscription(jQuery); } })();

Latex Men's Catsuits (2024)
Top Articles
The top-8 real estate agents in Breda
The Machine 2023 Showtimes Near Habersham Hills Cinemas
Devon Lannigan Obituary
Immobiliare di Felice| Appartamento | Appartamento in vendita Porto San
Ross Dress For Less Hiring Near Me
Best Transmission Service Margate
Calamity Hallowed Ore
Craigslist/Phx
Tight Tiny Teen Scouts 5
Available Training - Acadis® Portal
Shannon Dacombe
10-Day Weather Forecast for Florence, AL - The Weather Channel | weather.com
What Happened To Anna Citron Lansky
Char-Em Isd
Urban Dictionary: hungolomghononoloughongous
Xomissmandi
Spider-Man: Across The Spider-Verse Showtimes Near Marcus Bay Park Cinema
How To Cancel Goodnotes Subscription
Aris Rachevsky Harvard
Pecos Valley Sunland Park Menu
Myhr North Memorial
Pokemon Inflamed Red Cheats
Tottenham Blog Aggregator
Myaci Benefits Albertsons
Barbie Showtimes Near Lucas Cinemas Albertville
Primerica Shareholder Account
October 19 Sunset
Siskiyou Co Craigslist
Leland Nc Craigslist
Metra Union Pacific West Schedule
Murphy Funeral Home & Florist Inc. Obituaries
Where Do They Sell Menudo Near Me
Die Filmstarts-Kritik zu The Boogeyman
Snohomish Hairmasters
ENDOCRINOLOGY-PSR in Lewes, DE for Beebe Healthcare
Husker Football
2 Pm Cdt
Immobiliare di Felice| Appartamento | Appartamento in vendita Porto San
The Attleboro Sun Chronicle Obituaries
The Horn Of Plenty Figgerits
Squalicum Family Medicine
705 Us 74 Bus Rockingham Nc
Suntory Yamazaki 18 Jahre | Whisky.de » Zum Online-Shop
Yosemite Sam Hood Ornament
UNC Charlotte Admission Requirements
Gelato 47 Allbud
Helpers Needed At Once Bug Fables
M Life Insider
How To Connect To Rutgers Wifi
One Facing Life Maybe Crossword
Factorio Green Circuit Setup
Texas 4A Baseball
Latest Posts
Article information

Author: Greg O'Connell

Last Updated:

Views: 5763

Rating: 4.1 / 5 (62 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Greg O'Connell

Birthday: 1992-01-10

Address: Suite 517 2436 Jefferey Pass, Shanitaside, UT 27519

Phone: +2614651609714

Job: Education Developer

Hobby: Cooking, Gambling, Pottery, Shooting, Baseball, Singing, Snowboarding

Introduction: My name is Greg O'Connell, I am a delightful, colorful, talented, kind, lively, modern, tender person who loves writing and wants to share my knowledge and understanding with you.