Hi all,

I have an interesting layout problem that I have been unable to solve. When I have an item without attributes, the product information lines up appropriately:

http://ourcollegetown.net/index.php?...products_id=44

However, when I introduce attributes into the product, I get a large block of whitespace between the attributes and product information:

http://ourcollegetown.net/index.php?...products_id=47


My TPL Product Display is below. You will notice that I have moved the add to cart and attributes to the top of the page. When I remove the attributes block, the white space disappears:

PHP Code:
<?php
/**
 * Page Template
 *
 * Loaded automatically by index.php?main_page=product_info.<br />
 * Displays details of a typical product
 *
 * @package templateSystem
 * @copyright Copyright 2003-2006 Zen Cart Development Team
 * @copyright Portions Copyright 2003 osCommerce
 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
 * @version $Id: tpl_product_info_display.php 5369 2006-12-23 10:55:52Z drbyte $
 */
 //require(DIR_WS_MODULES . '/debug_blocks/product_info_prices.php');
?>
<div class="centerColumn" id="productGeneral">

<!--bof Form start-->
<?php echo zen_draw_form('cart_quantity'zen_href_link(zen_get_info_page($_GET['products_id']), zen_get_all_get_params(array('action')) . 'action=add_product'), 'post''enctype="multipart/form-data"') . "\n"?>
<!--eof Form start-->

<?php if ($messageStack->size('product_info') > 0) echo $messageStack->output('product_info'); ?>

<!--bof Category Icon -->
<?php if ($module_show_categories != 0) {?>
<?php
/**
 * display the category icons
 */
require($template->get_template_dir('/tpl_modules_category_icon_display.php',DIR_WS_TEMPLATE$current_page_base,'templates'). '/tpl_modules_category_icon_display.php'); ?>
<?php 
?>
<!--eof Category Icon -->

<center>

<!--bof Product Name-->
<h1 id="productName" class="productGeneral"><?php echo $products_name?></h1>
<!--eof Product Name-->


<br class="clearBoth" />
<center>
<!--bof Main Product Image -->
<div style="text-align: center;">
<?php
  
if (zen_not_null($products_image)) {
  
?>
<?php
/**
 * display the main product image
 */
   
require($template->get_template_dir('/tpl_modules_main_product_image.php',DIR_WS_TEMPLATE$current_page_base,'templates'). '/tpl_modules_main_product_image.php'); ?>
<?php
  
}
?>
<!--eof Main Product Image-->

<br class="clearBoth" />

<!--bof Product Price block -->
<h2 id="productPrices" class="productGeneral">
<?php
// base price
  
if ($show_onetime_charges_description == 'true') {
    
$one_time '<span >' TEXT_ONETIME_CHARGE_SYMBOL TEXT_ONETIME_CHARGE_DESCRIPTION '</span><br />';
  } else {
    
$one_time '';
  }
  echo 
$one_time . ((zen_has_product_attributes_values((int)$_GET['products_id']) and $flag_show_product_info_starting_at == 1) ? TEXT_BASE_PRICE '') . zen_get_products_display_price((int)$_GET['products_id']);
?></h2>
<!--eof Product Price block -->
<!--bof Additional Product Images -->
<?php
/**
 * display the products additional images
 */
  
require($template->get_template_dir('/tpl_modules_additional_images.php',DIR_WS_TEMPLATE$current_page_base,'templates'). '/tpl_modules_additional_images.php'); ?>
<!--eof Additional Product Images -->

</center></div>
<div style="text-align: left;">
<!--bof free ship icon  -->
<?php if(zen_get_product_is_always_free_shipping($products_id_current) && $flag_show_product_info_free_shipping) { ?>
<div id="freeShippingIcon"><?php echo TEXT_PRODUCT_FREE_SHIPPING_ICON?></div>
<?php ?>
<!--eof free ship icon  -->



</center>

<!--bof Add to Cart Box -->
<?php
if (CUSTOMERS_APPROVAL == and TEXT_LOGIN_FOR_PRICE_BUTTON_REPLACE_SHOWROOM == '') {
  
// do nothing
} else {
?>
            <?php
    $display_qty 
= (($flag_show_product_info_in_cart_qty == and $_SESSION['cart']->in_cart($_GET['products_id'])) ? '<p>' PRODUCTS_ORDER_QTY_TEXT_IN_CART $_SESSION['cart']->get_quantity($_GET['products_id']) . '</p>' '');
            if (
$products_qty_box_status == or $products_quantity_order_max== 1) {
              
// hide the quantity box and default to 1
              
$the_button '<input type="hidden" name="cart_quantity" value="1" />' zen_draw_hidden_field('products_id', (int)$_GET['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CARTBUTTON_IN_CART_ALT);
            } else {
              
// show the quantity box
    
$the_button PRODUCTS_ORDER_QTY_TEXT '<input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($_GET['products_id'])) . '" maxlength="6" size="4" /><br />' zen_get_products_quantity_min_units_display((int)$_GET['products_id']) . '<br />' zen_draw_hidden_field('products_id', (int)$_GET['products_id']) . zen_image_submit(BUTTON_IMAGE_IN_CARTBUTTON_IN_CART_ALT);
            }
    
$display_button zen_get_buy_now_button($_GET['products_id'], $the_button);
  
?>
  <?php if ($display_qty != '' or $display_button != '') { ?>
    <div id="cartAdd">
    <?php
      
echo $display_qty;
      echo 
$display_button;
            
?>
          </div>
  <?php // display qty and button ?>
<?php 
// CUSTOMERS_APPROVAL == 3 ?>
<!--eof Add to Cart Box--><br />


<!--bof Attributes Module -->
<?php
  
if ($pr_attr->fields['total'] > 0) {
?>
<?php
/**
 * display the product atributes
 */
  
require($template->get_template_dir('/tpl_modules_attributes.php',DIR_WS_TEMPLATE$current_page_base,'templates'). '/tpl_modules_attributes.php'); ?>
<?php
  
}
?>
<!--eof Attributes Module -->


</center>
 <!--bof Product description -->
<?php if ($products_description != '') { ?>
<div id="productDescription" class="productGeneral biggerText"><?php echo stripslashes($products_description); ?></div>
<?php ?>
<!--eof Product description -->
<div style="text-align: center;">



<!--bof Product details list  -->
<?php if ( (($flag_show_product_info_model == and $products_model != '') or ($flag_show_product_info_weight == and $products_weight !=0) or ($flag_show_product_info_quantity == 1) or ($flag_show_product_info_manufacturer == and !empty($manufacturers_name))) ) { ?>
<ul id="productDetailsList" class="floatingBox back">
  <?php echo (($flag_show_product_info_model == and $products_model !='') ? '<li>' TEXT_PRODUCT_MODEL $products_model '</li>' '') . "\n"?>
  <?php echo (($flag_show_product_info_weight == and $products_weight !=0) ? '<li>' TEXT_PRODUCT_WEIGHT .  $products_weight TEXT_PRODUCT_WEIGHT_UNIT '</li>'  '') . "\n"?>
  <?php echo (($flag_show_product_info_quantity == 1) ? '<li>' $products_quantity TEXT_PRODUCT_QUANTITY '</li>'  '') . "\n"?>
  <?php echo (($flag_show_product_info_manufacturer == and !empty($manufacturers_name)) ? '<li>' TEXT_PRODUCT_MANUFACTURER $manufacturers_name '</li>' '') . "\n"?>
</ul>
<br class="clearBoth" />
<?php
  
}
?>
<!--eof Product details list -->


<!--bof Quantity Discounts table -->
<?php
  
if ($products_discount_type != 0) { ?>
<?php
/**
 * display the products quantity discount
 */
 
require($template->get_template_dir('/tpl_modules_products_quantity_discounts.php',DIR_WS_TEMPLATE$current_page_base,'templates'). '/tpl_modules_products_quantity_discounts.php'); ?>
<?php
  
}
?>
<!--eof Quantity Discounts table -->

<!--bof Prev/Next bottom position -->
<?php if (PRODUCT_INFO_PREVIOUS_NEXT == or PRODUCT_INFO_PREVIOUS_NEXT == 3) { ?>
<?php
/**
 * display the product previous/next helper
 */
 
require($template->get_template_dir('/tpl_products_next_previous.php',DIR_WS_TEMPLATE$current_page_base,'templates'). '/tpl_products_next_previous.php'); ?>
<?php 
?>
<!--eof Prev/Next bottom position -->

<!--bof Tell a Friend button -->
<?php
  
if ($flag_show_product_info_tell_a_friend == 1) { ?>
<div id="productTellFriendLink" class="buttonRow forward"><?php echo ($flag_show_product_info_tell_a_friend == '<a href="' zen_href_link(FILENAME_TELL_A_FRIEND'products_id=' $_GET['products_id']) . '">' zen_image_button(BUTTON_IMAGE_TELLAFRIENDBUTTON_TELLAFRIEND_ALT) . '</a>' ''); ?></div>
<?php
  
}
?>
<!--eof Tell a Friend button -->

<!--bof Reviews button and count-->
<?php
  
if ($flag_show_product_info_reviews == 1) {
    
// if more than 0 reviews, then show reviews button; otherwise, show the "write review" button
    
if ($reviews->fields['count'] > ) { ?>
<div id="productReviewLink" class="buttonRow back"><?php echo '<a href="' zen_href_link(FILENAME_PRODUCT_REVIEWSzen_get_all_get_params()) . '">' zen_image_button(BUTTON_IMAGE_REVIEWSBUTTON_REVIEWS_ALT) . '</a>'?></div>
<br class="clearBoth" />
<p class="reviewCount"><?php echo ($flag_show_product_info_reviews_count == TEXT_CURRENT_REVIEWS ' ' $reviews->fields['count'] : ''); ?></p>
<?php } else { ?>
<div id="productReviewLink" class="buttonRow back"><?php echo '<a href="' zen_href_link(FILENAME_PRODUCT_REVIEWS_WRITEzen_get_all_get_params(array())) . '">' zen_image_button(BUTTON_IMAGE_WRITE_REVIEWBUTTON_WRITE_REVIEW_ALT) . '</a>'?></div>
<br class="clearBoth" />
<?php
  
}
}
?>
<!--eof Reviews button and count -->


<!--bof Product date added/available-->
<?php
  
if ($products_date_available date('Y-m-d H:i:s')) {
    if (
$flag_show_product_info_date_available == 1) {
?>
  <p id="productDateAvailable" class="productGeneral centeredContent"><?php echo sprintf(TEXT_DATE_AVAILABLEzen_date_long($products_date_available)); ?></p>
<?php
    
}
  } else {
    if (
$flag_show_product_info_date_added == 1) {
?>
      <p id="productDateAdded" class="productGeneral centeredContent"><?php echo sprintf(TEXT_DATE_ADDEDzen_date_long($products_date_added)); ?></p>
<?php
    
// $flag_show_product_info_date_added
  
}
?>
<!--eof Product date added/available -->

<!--bof Product URL -->
<?php
  
if (zen_not_null($products_url)) {
    if (
$flag_show_product_info_url == 1) {
?>
    <p id="productInfoLink" class="productGeneral centeredContent"><?php echo sprintf(TEXT_MORE_INFORMATIONzen_href_link(FILENAME_REDIRECT'action=url&goto=' urlencode($products_url), 'NONSSL'truefalse)); ?></p>
<?php
    
// $flag_show_product_info_url
  
}
?>
<!--eof Product URL -->

<!--bof also purchased products module-->
<?php require($template->get_template_dir('tpl_modules_also_purchased_products.php'DIR_WS_TEMPLATE$current_page_base,'templates'). '/' 'tpl_modules_also_purchased_products.php');?>
<!--eof also purchased products module-->

<!--bof Form close-->
</form>
<!--bof Form close-->
</div>
My TPL Module Attributes is below. You will notice a string of <br> tags that I have used to move the attributes box below the add to cart box. Removing the string of BR tags does not resolve my problem.

PHP Code:
<?php
/**
 * Module Template
 *
 * Template used to render attribute display/input fields
 *
 * @package templateSystem
 * @copyright Copyright 2003-2005 Zen Cart Development Team
 * @copyright Portions Copyright 2003 osCommerce
 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
 * @version $Id: tpl_modules_attributes.php 3208 2006-03-19 16:48:57Z birdbrain $
 */
?>
<div id="productAttributes">
<?php if ($zv_display_select_option 0) { ?>
<br /><br /><br /><br /><br /><br /><br /><br /><br />
<h3 id="attribsOptionsText"><?php echo TEXT_PRODUCT_OPTIONS?></h3>
<?php // show please select unless all are readonly ?>

<?php
    
for($i=0;$i<sizeof($options_name);$i++) {
?>
<?php
  
if ($options_comment[$i] != '' and $options_comment_position[$i] == '0') {
?>
<h3 class="attributesComments"><?php echo $options_comment[$i]; ?></h3>
<?php
  
}
?>

<div class="wrapperAttribsOptions">
<h4 class="optionName back"><?php echo $options_name[$i]; ?></h4>
<div class="back"><?php echo "\n" $options_menu[$i]; ?></div>
<br class="clearBoth" />
</div>


<?php if ($options_comment[$i] != '' and $options_comment_position[$i] == '1') { ?>
    <div class="ProductInfoComments"><?php echo $options_comment[$i]; ?></div>
<?php ?>


<?php
if ($options_attributes_image[$i] != '') {
?>
<?php 
echo $options_attributes_image[$i]; ?>
<?php
}
?>
<br class="clearBoth" />
<?php
    
}
?>


<?php
  
if ($show_onetime_charges_description == 'true') {
?>
    <div class="wrapperAttribsOneTime"><?php echo TEXT_ONETIME_CHARGE_SYMBOL TEXT_ONETIME_CHARGE_DESCRIPTION?></div>
<?php ?>


<?php
  
if ($show_attributes_qty_prices_description == 'true') {
?>
    <div class="wrapperAttribsQtyPrices"><?php echo zen_image(DIR_WS_TEMPLATE_ICONS 'icon_status_green.gif'TEXT_ATTRIBUTES_QTY_PRICE_HELP_LINK1010) . '&nbsp;' '<a href="javascript:popupWindowPrice(\'' zen_href_link(FILENAME_POPUP_ATTRIBUTES_QTY_PRICES'products_id=' $_GET['products_id'] . '&products_tax_class_id=' $products_tax_class_id) . '\')">' TEXT_ATTRIBUTES_QTY_PRICE_HELP_LINK '</a>'?></div>
<?php ?>
</div>
I am using the latest version of zen cart with a number of add-ons. Any suggestions or observations will be greatly appreciated