Enhanced Registration form Buddypress

Am trying to get my new enhanced registration form working.... am willing to share code in order to get this working 100%. I would like to post the extra fields to the wp_users table (have valid reasons for that), and do not want to use the meta table, and have added the required columns to the table....

I would have liked to use ajax to refresh the form once the user sets his location, but could not get this working (am an old ASP programmer with limited php knowledge)... so i opted instead to go for an inline frame... problem is the extra data is not being written to the db... is this because of the inline frame? Any assistance would be appreciated and possibly even rewarded

see form here http://smeak.com/register/

I just did an inline frame call from my wp-content/plugins/membership/membershipincludes/includes/bp.registration.form.php page

<input type="hidden" name="signup_profile_field_ids" id="signup_profile_field_ids" value="<?php bp_the_profile_group_field_ids() ?>" />
					<?php endwhile; endif; endif; ?>

<Iframe src="http://mydomain.com/wp-content/plugins/membership/membershipincludes/includes/test.php" width="428" height="650"></Iframe>

   <input type="hidden" name="signup_profile_field_ids" id="signup_profile_field_ids" value="<?php bp_the_profile_group_field_ids(); ?>" />

Here is the code for the inline page called test.php

<label><strong>Please Enter your physical Address:</strong> </label><br /> <br />
<input type="text" name="address" id="address" value="<?php echo $_GET['map_address'] ?>" />
<a href="javascript:void(0);" onclick="faddress()">and then click here</a><br />  <br />
<script type="text/javascript">
    function faddress(){
    window.location="test.php?map_address="+document.getElementById('address').value;
    }
</script>

<?php
/**
 * Get STATE from Google GeoData
 */
function reverse_geocode($address) {
	$address = str_replace(" ", "+", "$address");
	$url = "http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false";
	$result = file_get_contents("$url");
	$json = json_decode($result);
	foreach ($json->results as $result)
	{
		foreach($result->address_components as $addressPart) {
			if((in_array('locality', $addressPart->types)) && (in_array('political', $addressPart->types)))
	    		$city = $addressPart->long_name;
	    	else if((in_array('administrative_area_level_1', $addressPart->types)) && (in_array('political', $addressPart->types)))
	    		$state = $addressPart->long_name;
	    	else if((in_array('country', $addressPart->types)) && (in_array('political', $addressPart->types)))
	    		$country = $addressPart->long_name;
		}
	}

	if(($city != '') && ($state != '') && ($country != ''))
		$address = $city.', '.$state.', '.$country;
	else if(($city != '') && ($state != ''))
		$address = $city.', '.$state;
	else if(($state != '') && ($country != ''))
		$address = $state.', '.$country;
	else if($country != '')
		$address = $country;

	// return $address;
	return "$country;$state;$city";
}
// Usage: In my case, I needed to return the State and Country of an address
$myLocation = reverse_geocode($_GET['map_address']);
$all_data =explode(";", $myLocation);
//echo $all_data[0]; echo $all_data[1];echo $all_data[2];
//echo "$myLocation";

/**
 *  CONVERT ADDRESS TO COORDINATES
 */
 function ConvertToCoords($address)
 {
	$ch = curl_init();
    $rip_it = array( " " => "+", "," => "", "?" => "", "&" => "", "=" => "" , "#" => "");

    //// MAKE SURE ADDRES DOENST HAVE ANY CHARACTERS THAT GOOGLE CANNOT READ //
    $address = str_replace(array_keys($rip_it), array_values($rip_it), $address);

    //// GET THE XML FILE WITH RESUALTS
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/2.0 (compatible; MSIE 3.02; Update a; AK; Windows 95)");
	curl_setopt($ch, CURLOPT_HTTPGET, true);
	curl_setopt($ch, CURLOPT_URL, 'http://maps.google.com/maps/geo?output=xml&q=' . $address  );
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
	$got_xml = curl_exec($ch);
    //// PARSE THE XML FILE //////////////
	$xml = new SimpleXMLElement($got_xml);	

	//// GET THE LATITUDE/LONGITUDE FROM THE XML FILE ///////////////
	list($longitude, $latitude) = explode(",", $xml->Response->Placemark->Point->coordinates);

     return "$latitude;$longitude";
}
$myLatLong = ConvertToCoords($_GET['map_address']);
$all_LatLong =explode(";", $myLatLong);

//echo '<pre>';
//print_r($myLatLong);
//echo '</pre>';

 ?>   

 <style type="text/css">
            body { font: normal 10pt Helvetica, Arial; }
            #map { width: 425px; height: 350px; border: 0px; padding: 0px; }
        </style>
        <script src="http://maps.google.com/maps/api/js?v=3&sensor=false" type="text/javascript"></script>
        <script type="text/javascript">
            //Sample code written by August Li
            var icon = new google.maps.MarkerImage("http://maps.google.com/mapfiles/ms/micons/blue.png",
                       new google.maps.Size(32, 32), new google.maps.Point(0, 0),
                       new google.maps.Point(16, 32));
            var center = null;
            var map = null;
            var currentPopup;
            var bounds = new google.maps.LatLngBounds();
            function addMarker(lat, lng, info) {
                var pt = new google.maps.LatLng(lat, lng);
                bounds.extend(pt);
                var marker = new google.maps.Marker({
                    position: pt,
                    icon: icon,
                    map: map
                });
                var popup = new google.maps.InfoWindow({
                    content: info,
                    maxWidth: 300
                });
                google.maps.event.addListener(marker, "click", function() {
                    if (currentPopup != null) {
                        currentPopup.close();
                        currentPopup = null;
                    }
                    popup.open(map, marker);
                    currentPopup = popup;
                });
                google.maps.event.addListener(popup, "closeclick", function() {
                    map.panTo(center);
                    currentPopup = null;
                });
            }
            function initMap() {
                map = new google.maps.Map(document.getElementById("map"), {
                    center: new google.maps.LatLng(0, 0),

                    zoom: 11,
                    mapTypeId: google.maps.MapTypeId.ROADMAP,
                    mapTypeControl: true,
                    mapTypeControlOptions: {
                        style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
                    },
                    navigationControl: true,
                    navigationControlOptions: {
                        style: google.maps.NavigationControlStyle.ZOOM_PAN
                    }
                });
                //add marker on given coordinates
                addMarker(<?php echo $all_LatLong[0];?>,<?php echo $all_LatLong[1];?>,'<?php echo $_GET['map_address']; ?>');
                center = bounds.getCenter();
                map.fitBounds(bounds);
            }
        </script>

    <body onload="initMap()" style="margin:0px; border:0px; padding:0px;">
        <div id="map"></div>

<br /> 

<div class="editfield"><label><strong>Country: </label> <input type="text" name="country" id="country" value="<?php echo $all_data[0]; ?>" /></div><br />
<div class="editfield"><label><strong>Region: </label><input type="text" name="state" id="state" value="<?php echo $all_data[1]; ?>" /></div><br />
<div class="editfield"><label><strong>City: </label><input type="text" name="city" id="city" value="<?php echo $all_data[2]; ?>" /></div><br />
<div class="editfield"><label><strong>Latitude: </label><input type="text" name="latitude" id="latitude" value="<?php echo $all_LatLong[0]; ?>" /></div><br />
<div class="editfield"><label><strong>Longitude: </label><input type="text" name="longitude" id="longitude" value="<?php echo $all_LatLong[1]; ?>" /></div><br />