your conditional breaks the concatenation of the strings (which is not in your code, anyway)
try to re-write this section:
function info($atts, $content = null) {
extract(shortcode_atts(array(
"name" => '',
"image" => '',
"address" => '',
"phone" => '',
"email" => '',
"website" => '',
"description" => '',
"amenities" => ''
), $atts));
$output="<span class="sort">";
if($image) { $output .= '<img src="'.$image.'" />';}
$output .= '<span class="name">'.$name.'</span> <span class="details">';
if($phone) { $output .= $phone; }
if($address) { $output .= ' • <a href="http://maps.google.com/?q='.$address.'" target="_blank">'.$address.' <img src="' . get_bloginfo('template_directory') . '/_/images/mapmarker.png" width="16" height="16" alt="Map" /></a><br/>'; }
if($email) { $output .= ' <a class="infomail" href="mailto:'.$email.'">Send Email</a>'; }
if($website) { $output .= ' <a class="infosite" href="'.$website.'">Visit Website</a>'; }
if($description) { $output .= '<p class="infodetails">'.$description.'</p>'; }
if($amenities) { $output .= '<p class="amenities">'.$amenities.'</p>'; }
$output .= '</span> </span>';
return $output;
}
add_shortcode("info", "info");