300 Gallon Sphere Septic Tank | 52600-- (2024)

sInputPKey = jQuery('#keys_' + rowkey).val();jQuery('#' + rowkey + '_rand_val').attr('name', sInputPKey + '_rand_val');jQuery('#td_' + rowkey).html('');/* * show price (use a bool option here?) */var cPrice = childItems[oSelect.selectedIndex].price;//lroselli 2/21/13 - Gets Thumb Picture if (bShowThumbCartOpts) {var sCartThumb = childItems[oSelect.selectedIndex].thumb;var sCartLargePic = childItems[oSelect.selectedIndex].lg_pic;var sCartOptName = childItems[oSelect.selectedIndex].nm;if (sCartThumb == "" || sCartThumb == "NULL") {jQuery('#thumb_' + rowkey).html("-");} else {if (sCartLargePic == "" || sCartLargePic == "NULL") {jQuery('#thumb_' + rowkey).html("300 Gallon Sphere Septic Tank | 52600-- (1)");} else {jQuery('#thumb_' + rowkey).html(buildLinkedImage(sCartOptName, sCartThumb, sCartLargePic));initImagePopup('#thumb_' + rowkey);}}}//childItems[oSelect.selectedIndex].qtybreaks/* * Begin pijushb - 03/04/2011 - identiphoto - Set the Price based on Price Display Type * and User Login session. */var bShowATCPrice = false;var bShowRegPrice = false;var bShowATCQty = true;if (bShowPriceDisplayType) {switch (sPriceDisplayType) {case 'hide':jQuery('#price_' + rowkey).html("-");break;case 'show_message':jQuery('#price_' + rowkey).html(sPriceMessage);break;case 'require_atc':bShowATCPrice = true;break;case 'require_login_or_atc':bShowATCPrice = true; break;/* * pijushb 03/11/2011 - Add new case condition for IDENTIPHOTO */case 'require_login_for_price_and_atc':bShowATCPrice = false;bShowATCQty = false;break;default: bShowRegPrice = true;break;} //- switch (sPriceDisplayType)} //- if (bShowPriceDisplayType)if (bShowPriceDisplayType) {if (bShowRegPrice) {jQuery('#price_' + rowkey).html(FormatCurrency(cPrice, true));} else if (bShowATCQty) {sTitle = "tip1"sHTML = '';jQuery('#price_' + rowkey).html(sHTML);} else {sTitle = "tip1"sHTML = '';jQuery('#price_' + rowkey).html(sHTML);}} else {jQuery('#price_' + rowkey).html(FormatCurrency(cPrice, true));}if (bShowCartOpts) {aCartOpts = sCartOptions.split('|');if (aCartOpts.length > 0) {for (var iCartOptCounter = 0, iCartOptGoTo = aCartOpts.length - 1; iCartOptCounter <= iCartOptGoTo; iCartOptCounter++) {/* * current cart option loading - split to pull out the * settings to determine to configure the current cart * option */sCartOpt= aCartOpts[iCartOptCounter].split("~");/* * build the value of the id for the cart option html input */sCartOptID= 'cart_opt_' + iCartOptCounter + '_' + rowkey;/* * build the value for the current cart option javascript * function to be added to the html input */sCartOptJSFunc= 'buildCartOpt(\'' + rowkey + '\');';/* * determine whether on parent product cart options are required */var sRqdHiddenField = '';if (bCartOptionsRqd) {sRqdHiddenField = '';} //- if (bCartOptionsRqd)/* * determine which html element to build for the current cart option */switch (sCartOpt[2]) {case 'select':sCartOptInput = '' + sRqdHiddenField;break;case 'text-area':sCartOptInput = '' + sRqdHiddenField;break;default:sCartOptInput = '' + sRqdHiddenField;break;} //- switch (sCartOpt[2])/* * add the current cart option to the table */jQuery('#cart_opt_td_' + iCartOptCounter + '_' + rowkey).html(sCartOptInput);} //- for (var iCartOptCounter = 0, iCartOptGoTo = aCartOpts.length - 1; iCartOptCounter <= iCartOptGoTo; iCartOptCounter++)iCartOptCounter = iCartOptCounter - 1;jQuery('#cart_opt_td_' + iCartOptCounter + '_' + rowkey).append('');} //- if (aCartOpts.length > 0)} //- if (bShowCartOpts)} //- if (oSelect.selectedIndex <= 0)} catch (err) {alert('Loading selection: ' + err.mesage);}}/** * Builds the hidden input for the data that gets posted * on the cart for the "cart_option" * * @author cainb * @author dand */function buildCartOpt(rowkey) {try{var cinput = '';//var oSelect = jQuery('#keys_' + rowkey);//if (oSelect === undefined) {//oSelect = jQuery('#' + rowkey + '_' + jQuery('#' + rowkey + '_sections').val());//}//var p_id = $oSelect.val();var sCartOptions = '';var sChildProduct = window.oChildProds[window.sChildPkey];var bUseChildProdOpts = false;var sCartOptDelim = '~';if (bUseChildProdOpts) {aCartOpts = sChildProduct.cartOptions.split('|');} else {aCartOpts = sCartOptions.split('|');}for (var iCOpt = 0, goTo = aCartOpts.length - 1; iCOpt <= goTo; iCOpt++) {aCartOpt = aCartOpts[iCOpt].split("~");cart_opt_type = aCartOpt[2];if (jQuery('#cart_opt_' + iCOpt + '_' + rowkey).val() != '') {if (cinput != '') {cinput += '|';}cart_opt_value = jQuery('#cart_opt_' + iCOpt + '_' + rowkey).val();if (cart_opt_type == 'text-area') {cart_opt_value = cart_opt_value.replace('\n', '
');}if (aCartOpt[1].length > 0 && aCartOpt[1] !== '') {cinput += aCartOpt[1] + sCartOptDelim + cart_opt_value;} else {cinput += cart_opt_value;}} //- if (document.getElementById('cart_opt_' + iCOpt + '_' + rowkey).value != '')} //- for (var iCOpt = 0, goTo = aCartOpts.length - 1; iCOpt <= goTo; iCOpt++)if (jQuery('#cart_option_' + rowkey).length > 0) {jQuery('#cart_option_' + rowkey).val(cinput);}} catch (err) {alert('Unable to build cart options. ' + err.mesage);//console.log('Unable to build cart options. ' + err.mesage);}}function hideProductContainer() {if (document.getElementById('sku_container'))document.getElementById('sku_container').innerHTML = '';if (document.getElementById('child_nm_container'))document.getElementById('child_nm_container').innerHTML = '';if (document.getElementById('child_ds_container'))document.getElementById('child_ds_container').innerHTML = ''; if (document.getElementById('price_container'))document.getElementById('price_container').innerHTML = '';if (document.getElementById('idp_container'))document.getElementById('idp_container').innerHTML = '';if (document.getElementById('atc_container'))document.getElementById('atc_container').style.display = 'none';hideChildProductInputs();}function hideChildProductInputs() { if (document.getElementById('child_cart_section'))document.getElementById('child_cart_section').style.display = 'none';for (var iCO=0; iCO<=5; iCO++){ if (document.getElementById('pc_cart_options_'+iCO))jQuery('#pc_cart_options_'+iCO).slideUp();}}/** * Function to Show/hide Buttons and message * @authorpijushb * @since1/25/2012 */function funcShowHideButtons() {sPrevSku = jQuery('#previous_sku').val();bReviewMessage = jQuery('#review_message_' + sPrevSku).is(':visible');jQuery('#previous_sku').val(sPKey);if (bReviewMessage){jQuery('#review_message_'+sPrevSku).hide();}bSubmitButton = jQuery('#submit_button').is(':visible')if (!bSubmitButton) {jQuery('#submit_button').hide();jQuery('#check_stock_button').show();jQuery('#checkout_button').show();} else {jQuery('#submit_button').hide();jQuery('#check_stock_button').show();jQuery('#checkout_button').show();} //- if (!bSubmitButton)} //- function funcShowHideButtons()/** * Function to add products to cart. * @authorpijushb * @since1/25/2012 */function fncCheckout() {gotoCart();} //- function fncCheckout()//Added styled modal to use instead of alert() -JMSfunction styled_modal_alert(htmlmsg) {jQuery('#styled_modal_text').html(htmlmsg);jQuery('#styled_modal_container').show();jQuery('#styled_modal_msg').show();jQuery('#styled_modal_buttons').show();jQuery('body').addClass('modal-open page-overflow');}jQuery('#styled_modal_close').click(function(e){e.preventDefault();jQuery('#styled_modal_container').hide();jQuery('#styled_modal_msg').hide();jQuery('#styled_modal_buttons').hide();jQuery('#styled_modal_text').html('');jQuery('body').removeClass('modal-open page-overflow');});function getQtyPricingUrl(sProductKey) {return 'i_i_priceBreakPopup.asp' + '?p_id=' + sProductKey + '&p_key=' + sProductKey;}/** * This function is responsible for loading the config sections / choices * for the input qty child product view * * @authorjohns * @since08/13/2013 * * @paramoLink html DOM object of link clicked * * @returnvoid */function fncLoadConfigSections(oLink) {var iColCount = 0;var $oLink = jQuery(oLink);var sKey = $oLink.data('key');var sDefaultQty = '';var sConfigSectionSource = $oLink.data('configsectionsource');var sParentProdKey = $oLink.data('parentprodkey');if (isNaN(sDefaultQty) || sDefaultQty < 1) {sDefaultQty = '';}// get the number of columns the new row will span$oLink.closest('tr').find('td').each(function () {if (jQuery(this).attr('colspan')) {iColCount += jQuery(this).attr('colspan');} else {iColCount++;}});if (sConfigSectionSource === 'parent') {sConfigKey = sParentProdKey;} else {sConfigKey = sKey;}jQuery.ajax({url: 'i_i_pc_product_detail.asp',data:{pageaction : 'getconfigdata',config_key : sConfigKey, //key of the product where the config data is coming fromchild_pkey : sKey,r_id : new Date().getTime()},type: 'GET',async: false,dataType: 'html',beforeSend: function () {$oLink.closest('tr').after('Loading Data...');},success: function (sData) {if (sData !== '') {// if there are config sections with choices setup, insert the html into the new rowjQuery('#config_sections_' + sKey + ' td').html(sData);$oLink.parent().prepend('');jQuery('#input_qty_config_sections_' + sKey).remove();} else {// if there are no config sections with choices setup, then remove the new row, remove the "Options" link, and draw out the input qty boxjQuery('#config_sections_' + sKey).remove();$oLink.parent().prepend('');jQuery('#input_qty_config_sections_' + sKey).remove();}}});/* * global vars used in holding info about the production configurations (BOM) and their source * added for product configurations (BOM) support in the input-qty view * johns - 08/13/2013 */oProdConfigData = { key: sKey, configkey: sConfigKey };aProdConfigData.push(oProdConfigData);} //- function fncLoadConfigSections(oLink)jQuery(function () { // dom readyvar sProdOpt1 = '';if (sChildProductOpt1 !== '') {if (sChildDisplay == 'droplist-one') {sProdOpt1 = sChildProductKey;} else {sProdOpt1 = sChildProductOpt1;}} else {sProdOpt1 = '';}if (sProdOpt1 !== '') {jQuery('#prod_opt1').val(sProdOpt1);}/** * load the default # of rows for the add-row view * cart options */if (bIsParentProduct && sChildDisplay == 'add-row') {/* * initially add 2 rows */addChildRows(2);}/* * determine which view to load */switch (sChildDisplay) {case 'matrix-one':fncColorSizes(false);break;case 'droplist-one':fncProcessOptProduct(1);break;case 'droplist-two':fncGetOptDroplist(2, false, 2);break;case 'droplist-three':fncGetOptDroplist(2, true, 3);break;case 'droplist-four':fncGetOptDroplist(2, true, 4);break;case 'droplist-five':fncGetOptDroplist(2, true, 5);break;case 'droplist-six':fncGetOptDroplist(2, true, 6);break;default:break;}if (document.getElementById('pc_cart_options_0')) {jQuery('#pc_cart_options_0').slideDown();}/* ============================================== * Event Handlers * ============================================== */if (bProductConfiguratorShowBasePrice) {if (jQuery('#formbuilder_container :input:not(:text, textarea, :disabled)').length != 0) {if (jQuery('#qtypricing').length == 0) {jQuery('#formbuilder_container').after('
  • ' + sProductConfiguratorPriceText + '

');} else {jQuery('#formbuilder_container').after('

  • ' + sProductConfiguratorPriceText + '

');}}}addCommas = function (input) {// If the regex doesn't match, `replace` returns the string unmodifiedreturn (input.toString()).replace(// Each parentheses group (or 'capture') in this regex becomes an argument// to the function; in this case, every argument after 'match'/^([-+]?)(0?)(\d+)(.?)(\d+)$/g, function (match, sign, zeros, before, decimal, after) {// Less obtrusive than adding 'reverse' method on all stringsvar reverseString = function (string) {return string.split('').reverse().join('');};// Insert commas every three characters from the rightvar insertCommas = function (string) {// Reverse, because it's easier to do things from the leftvar reversed = reverseString(string);// Add commas every three charactersvar reversedWithCommas = reversed.match(/.{1,3}/g).join(',');// Reverse again (back to normal)return reverseString(reversedWithCommas);};// If there was no decimal, the last capture grabs the final digit, so// we have to put it back together with the 'before' substringreturn sign + (decimal ? insertCommas(before) + decimal + after : insertCommas(before + after));});};/* * Register Addon Product select list */jQuery('#addon_products').change(function () {fncUpdateAddonsSelectQty(this);});/* * Update addon product (needed due to page caching) */if (bUseAddonProducts) {if (jQuery('#addon_products').length > 0) {fncUpdateAddonsSelectQty(jQuery('#addon_products')[0]);}}/* * Register Addon Product Checkboxes */jQuery('#addon_product_container input:checkbox').click(function () {jQuery('#addon_qty_container').html('');jQuery('#addon_product_container input:checked').each(function () {jQuery('#addon_qty_container').append('')});});/* * Register AJAX Add To Cart Window Close Button */jQuery('#atc_msg_close_win').click(function (event) {event.preventDefault();closeCartLightbox();});jQuery('a[id^="input_qty_config_sections_"]').click(function (event) {event.preventDefault();fncLoadConfigSections (this);});var sPageName = '300-gallon-black-below-ground-plastic-spherical-plastic-septic-tank-snyder-5260000w94202.asp';// event handlers for UOM logic for the input qty view// johns - 8/6/2013jQuery('select[name^="uom_selected"]').bind('change', function () {sSelectedVal = jQuery(this).val();sProdKey = jQuery(this).data('key');sUomStd = jQuery(this).data('uomstd');if (sSelectedVal !== sUomStd) {jQuery('#uom_sales_' + sProdKey).val(sSelectedVal);jQuery('#uom_std_' + sProdKey).val('');jQuery(this).parent().prev('td.qty_price_breaks_container').text(jQuery(this).data('uomconvprice'));// added to post uom to the new cart [johns - 04/21/2014]jQuery('#multiplier_on_qty_display_' + sProdKey).remove();} else {jQuery('#uom_sales_' + sProdKey).val('');jQuery('#uom_std_' + sProdKey).val(sSelectedVal);jQuery(this).parent().prev('td.qty_price_breaks_container').text(jQuery(this).data('price'));// added to post uom to the new cart [johns - 04/21/2014]jQuery(this).after('');}if (bShowNativeUOMinCart) {jQuery('#order_uom_' + sProdKey).val(sSelectedVal);}if (jQuery('#uom_sales_' + sProdKey).val() !== '' && jQuery('#qty_' + sProdKey).val() !== '') {jQuery('#sales_qty_' + sProdKey).val(jQuery('#qty_' + sProdKey).val());}});jQuery('.qty_input_table input[name^="qty_"]').bind('change keyup', function () {sProdKey = jQuery(this).data('key');if (jQuery('#uom_sales_' + sProdKey).val() !== '') {jQuery('#sales_qty_' + sProdKey).val(jQuery(this).val());}});if (bUsePromotions && bUsePromoBarAtcModal){jQuery('#atc_msg').on('shown', function () {// The ticker cannot be started until the elements are visible.jQuery('#atc_promo_bar .notification-center').trigger('notification-center-added');});}/** * Rating Stars * - gets score from data attribute on container * @author jonr * @since 1/27/2014 */jQuery('.raty').raty({path: 'templates/gfx/',space: false,readOnly: true,width: 90,hints: ['Bad', 'Poor', 'Good', 'Very Good', 'Excellent'],score: function () {return jQuery(this).attr('data-score');}});toggleSmartListSection();if (bConfiguratorEdit) {fncLoadConfigEdit(oConfiguratorEditData, dblConfiguratorEditQty);}$('#formbuilder_container').on('change', ':input:not(:text, textarea, :disabled, :hidden)', updateConfigPrices);// force HTML5 validation for the "step" attribute to not fire if the form has at least 1 input with step attribute set to a value > 1 [johns - 02/26/2016]$('form input').each(function() {if ($(this)[0].hasAttribute('step') && ( $(this).attr('step') !== '' || $(this).attr('step') > 0 )) {$('form').attr('novalidate', 'novalidate');return false;}});});function updateConfigPrices() {var dConfigPrice = 0;$('#formbuilder_container').find(':input:checked, select :selected').filter(':not(:disabled)').each(function () {dConfigPrice += $(this).data('price') || 0;});var $price = bProductConfiguratorShowBasePrice ? $('#configurator_price') : $('li[class=saleprice]');var sPrice = (dblBasePrice + dConfigPrice).toFixed(iProductConfiguratorPriceDecimals);$price.html(sProductConfiguratorPriceText + " $" + addCommas(sPrice));}function fncLoadConfigEdit(oData, dQty) {var $form = jQuery('#formbuilder_container');for (choiceKey in oData.choices) {var choice = oData.choices[choiceKey];var $inputs = $form.find('[name="' + choice.name + '"]');var inputType = $inputs.first().attr("type");if (inputType === "checkbox" || inputType === "radio") {$inputs.filter('[value="' + choice.answer + '"]').prop('checked', true);} else {$inputs.val(choice.answer);}// Update display activators.$inputs.change();}jQuery('.qtyinput').val(dQty);updateConfigPrices();}// Toggles the visibility of the smart list section (stand-alone, not in advanced tabs)// based on whether the product has any information to show.function toggleSmartListSection() {var sKey = $('#keys').val();var $smartListContainer = $('#detail_smart_list');var bHistoryExists = $smartListContainer.find('.smart-list[data-product=' + sKey + ']').length > 0;//Hide the children rather than the entire container so product tabs//can hide the container when a smart list tab is showing.$smartListContainer.children().toggle(bHistoryExists);}function updateSmartListChildProduct() {var sChildKey = $('#keys').val();$('.smart-lists-container[data-product=' + sPKey + ']').trigger('child-product-changed', sChildKey);toggleSmartListSection();}/* * This function checks the global variable bUseChildDescription to see if it * should substitute the child description (from oProdInfo) for the current description. * * @authorjohns, ddara * @since11/6/2010 */function applyChildDescription(oProdInfo) {if (bUseChildDescription) {if (typeof oProdInfo.description !== 'string' || oProdInfo.description.trim() === '') {$('.detail_desc_full').hide();} else {$('.detail_desc_full').show();// HCS 2/1/2017 - updated to use IDs instead of detail_desc_content class to prevent// issues with price display message when using child description swapping.jQuery('#detail_desc_content_0').html(oProdInfo.description);jQuery('#detail_desc_content_1').html(oProdInfo.description);jQuery('#desc').html(oProdInfo.description);}}}/*Collates an array of data pairs into an object with the first value from the pairs beingkeys in the object with the value being an array of all of that value's pair partners.e.g.[['a', 1], ['b', 2], ['a', 8]]yields{'a': [1, 8], 'b': [2]}*/function collateArrayIntoObject(aPairs) {var sKeyvar sValuevar oMapping = {};for (var i = 0; i < aPairs.length; i++) {sKey = aPairs[i][0];sValue = aPairs[i][1];if (!oMapping.hasOwnProperty(sKey)) {oMapping[sKey] = [];}oMapping[sKey].push(sValue);}return oMapping;}function initSavedCartsHelper() {initializeSavedCarts(function (sOrderKey, sNickname) {postToCart(undefined, undefined, sOrderKey, sNickname, 'saved-cart');});}// Returns the intersection of two sorted arrays.// Based on intersect_safe from http://stackoverflow.com/a/1885660function intersectArrays(a, b) {var ai=0, bi=0;var result = new Array();while(ai < a.length && bi < b.length) {if (a[ai] < b[bi]) {ai++;}else if (a[ai] > b[bi]) {bi++;} else { /* they're equal */result.push(a[ai]);ai++;bi++;}}return result;}function updateDroplistPromoDisplay(sProductKey) {var aApplicablePromos = oTargetPromos[sProductKey] || [];var $promoPanels = $('.detail_cart .promo-panel');aApplicablePromos.sort();$promoPanels.each(function(panelIndex, element) {var $panel = $(this);var aPromos = $panel.data('promos').split(',');aPromos.sort();var bApplicable = intersectArrays(aApplicablePromos, aPromos).length > 0;$panel.toggleClass('faded', !bApplicable);});}function fncAddToSavedCartClick(event) {if (!fncFormSubmit(false)) {event.stopPropagation();}}// String replacement on you save text for droplist products. function youSaveStringReplace(sYouSavePercent, sYouSaveDollarAmount){sYouSaveDisplay = sYouSaveStringReplacementsYouSaveDisplay = sYouSaveDisplay.replace( "

", sYouSavePercent)sYouSaveDisplay = sYouSaveDisplay.replace("", sYouSaveDollarAmount)return sYouSaveDisplay; }// Broken image show placeholdervar utils = {};// Missing large image remove linkutils.handleImageLargeError = function (img) {jQuery('#detail_noimage_cotainer').show();jQuery('#detail_photo_container').hide();};// Thumb image replaceutils.handleImageError = function (img) {$(img).attr('src', 'images/no-image.png');};

Let's Get In Touch!

Our entire product catalog is not available for purchase online, please contact us if there are products you are interested in but do not see online or if you have any other questions!

  • 800 625 7659
  • shop@snydernet.com

Copyright ©2024 Snyder Industries, LLC. All Rights Reserved. Ecommerce & ERP Integration by Website Pipeline

300 Gallon Sphere Septic Tank | 52600-- (2024)
Top Articles
Real Steel Customs Wolvega | Wolvega (62191942)
t'Pakhuis | Wolvega (05070958)
Spasa Parish
Petco Westerly Ri
ACTS Occupational and Physical Therapy
Best Transmission Service Margate
Big 12 Officiating Crew Assignments 2022
Beach Umbrella Home Depot
Rocket League Tracker Mmr Ranks
Understanding Pickleball Court Dimensions: Essential Guide
Lesson 10 Homework 5.3
Walgreens Boots Alliance, Inc.: Konsensus der Analysten und Kursziel | A12HJF | US9314271084 | MarketScreener
Kitchen Song Singer Violet Crossword
Nsu Occupational Therapy Prerequisites
What Times What Equals 82
Dimbleby Funeral Home
Francine weakens moving inland as the storm leaves behind flooding and widespread power outages
Bootyandthebeast69 Swap
Vanessa Garske Reddit
Portland Walmart closures attract national attention; Wheeler, Texas Gov. Greg Abbott spar
Longfellow's Works - Evangeline
15:30 Est
Best Internists In Ft-Lauderdale
Costco Gas Price City Of Industry
5 takeaways from Baylor’s historic comeback win vs. UCF: Bears find new energy in Orlando
Tamilblasters Movie Download Isaimini
Reptile Expo Spokane
5162635626
How 'Tuesday' Brings Death to Life With Heart, Humor, and a Giant Bird
Verde News Cottonwood Az
Sign in to Office - Microsoft Support
Mmastreams.com
Emuaid Lawsuit
Penn Foster 1098 T Form
Remembering the names of those who died on 9/11
Food Handlers Card Yakima Wa
Hux Lipford Funeral
Was Lil Mosey In Ride Along
Official Klj
Jan Markell Net Worth
Netronline Historic Aerials
Brgeneral Patient Portal
Idaho Pets Craigslist
Denny's Ace Hardware Duluth Mn
Beacon Schneider La Porte
Ihop Ralph Ave
How Old Is Ted Williams Fox News Contributor
Duna To Kerbin Transfer Window
Gasmonkeygarage.com Cars For Sale
Before Trump, neo-Nazis pushed false claims about Haitians as part of hate campaign
Dollar General Penny List July 18 2023
Jenny Babas Nsfw
Latest Posts
Article information

Author: Dr. Pierre Goyette

Last Updated:

Views: 5815

Rating: 5 / 5 (70 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Dr. Pierre Goyette

Birthday: 1998-01-29

Address: Apt. 611 3357 Yong Plain, West Audra, IL 70053

Phone: +5819954278378

Job: Construction Director

Hobby: Embroidery, Creative writing, Shopping, Driving, Stand-up comedy, Coffee roasting, Scrapbooking

Introduction: My name is Dr. Pierre Goyette, I am a enchanting, powerful, jolly, rich, graceful, colorful, zany person who loves writing and wants to share my knowledge and understanding with you.