i'm at my wits end with this now so i'm going to show you the entire two scripts in my web appliation to see if you can figure out why it won't work.

the first script is map_data.php which pulls out coordinates out of a database and formats them in a way js should understand. you can see an example of the output data at http://www.nl-webspace.co.uk/~unn_p9...t/map_data.php


Code:
<?php 
//function getPubMarkers() { 
    require_once('common.php'); 
    db_connect(); 
    $sql = mysql_query ( " select Latitude, Longitude, pubName, pubStreetNo, pubStreet, pubCity, pubCounty, 
                         pubPostcode, pubPhone from Pubs " ) or die( 'Invalid query: ' . mysql_error() ); 
        $markers = array(); 
    while( $elements = mysql_fetch_array($sql) ) { 
         $br = '<br>';        
     $markers[] =      '{'    
                                 ." 'latitude' : " .$elements[0] .',' 
                                                         ." 'longitude' : " .$elements[1] .',' 
                                 ." 'name' : '" .$elements[2] ."' " 
                                 //."'address': '" .$elements[3] .$br .$elements[4] .$br .$elements[5]    
                                 //                .$br .$elements[6] .$br .$elements[7] ."' ," 
                                // ."'phone': '" .$elements[8] ."'" 
                                      .'},'; 
    } 
     //convert array into a single string variable  
     $markers  = implode( ' ', $markers ); 
     //remove the end comma in the string                             
     $markers = substr_replace($markers,"",-1);     
      
         
         $jscript = 'var markers =' .'[' .$markers .'];';  
        // return $jscript; 
      
//} 
print $jscript; 
?>

the second script is map_function.js which i copied directly from a book:


Code:
var centerLatitude = 54.52473;        // global var      
var centerLongitude = -1.556582;         // global var 
var startZoom = 13; 
var map; 
  
//function addMarker() 
function init() 
{                                                        // JavaScript coding from Purvis et al (2006: p.22, p.29) 

  if ( GBrowserIsCompatible() ) {                                 
    map = new GMap2(document.getElementById("mapviewer")); 
    map.addControl( new GSmallMapControl () ); 
    //map.addControl( new GMap2TypeControl () );           //undefined? 
    //map.addControl( new GLatLng ( centerLatitude, centreLongitude ), startZoom ); 
        //location = GLatLng(centerLatitude, centerLongitude); 
        
        map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom); 
    for (id in markers) { 
        addMarker(markers[id].latitude, markers[id].longitude, markers[id].name);   // line 19 
    } 
  } 
} 

 //opens map when browser window loads up 
window.onload = init; 
window.onunload = GUnload;
the script addresses are referenced on the page header of my webpage in the order described. when i load the webpage i get a google map set at the speciified coordinates and zoom level but no markers. my debugger points to line 19 of map_functions.js and states 'error: object expected'

please somone tell me what i can do to fix this