function init_maps() {

  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map_canvas"));
    var geocoder = new GClientGeocoder();
    // map.setCenter(new GLatLng(37.4419, -122.1419), 13);
    map.setMapType(G_HYBRID_MAP);
    map.setUIToDefault();
    geocoder.getLatLng(
		JSAddress,
		function(point) {
			if (!point) {
				alert(JSAddress + " not found. Please return to Step One and try again");
				//history.go(-1);
			} else {
				map.setCenter(point, 0);
				//document.step_three.lat.value = point.lat();
				document.getElementById('lat').value = point.lat(); 
				document.getElementById('long').value = point.lng(); 
			 	//document.step_three.long.value =  point.lng();
				
				// for some reason setMaxZoomCenter takes too long.				
				map.setCenter(point,18);

				var marker = new GMarker(point, {draggable: true});

				GEvent.addListener(marker, "dragend", function(position) {

						document.step_three.lat.value = position.lat();
					    document.step_three.long.value =  position.lng();

				});

				map.addOverlay(marker);
			}
		}
  	);
  }
}

function setMaxZoomCenter(map, latlng) {
		map.getCurrentMapType().getMaxZoomAtLatLng(latlng, function(response) {
		if (response && response['status'] == G_GEO_SUCCESS) {
 			map.setCenter(latlng, response['zoom']-1);
			alert(response['zoom']);
		} else {
		
			alert(response['status']);
		}
		map.setCenter(latlng,5);
		});
}


function validate_email(field,alerttxt)

{

with (field)

  {

  apos=value.indexOf("@");

  dotpos=value.lastIndexOf(".");

  if (apos<1||dotpos-apos<2)

    {alert(alerttxt);return false;}

  else {return true;}

  }

}



function validate_required(field,alerttxt)

{

with (field)

  {

  if (value==null||value=="")

    {

    alert(alerttxt);return false;

    }

  else

    {

    return true;

    }

  }

}



function validate_postal_code(field,alerttxt)

{

 	var regEx = /[a-zA-Z][0-9][a-zA-Z](-| |)[0-9][a-zA-Z][0-9]/;

    if(regEx.test(field.value))
    {
		return true;
	}
	else
	{
		alert(alerttxt);return false;
	}
}



function validate_phone(field,alerttxt)
{

 	var regEx = /[2-9][0-9][0-9](-| |)[0-9][0-9][0-9](-| |)[0-9][0-9][0-9][0-9]/;

    if(regEx.test(field.value))
    {
		return true;
	}
	else
	{
		alert(alerttxt);return false;
	}
}


function validate_form(thisform)

{


  with (thisform)

  {


	if (validate_required(first_name,"First Name must be filled out!")==false)

  		  {first_name.focus();return false;}

	if (validate_required(last_name,"Last Name must be filled out!")==false)

  		  {last_name.focus();return false;}

	if (validate_required(email,"Email must be filled out!")==false)

  		{email.focus();return false;}

  	if (validate_email(email,"Not a valid Email address!")==false)

    	{ email.focus();return false; }

  	if (validate_required(phone,"Phone Number must be filled out!")==false)

  		  {phone.focus();return false;}

  	if (validate_phone(phone,"Not a valid Phone Number. Format: 555-555-5555")==false)
    	{ phone.focus();return false; }

	if (checkboxesAreChecked(thisform)==false)
		{return false;}

	if (company.value==null||company.value==""||company.value==" ") {
    	company.value = "Residential - " + ' ' + last_name.value;
    }

	/*if ( zip.value != null && zip.value != "" ) {


		if(validate_postal_code(zip,"Not a valid Postal Code. Format: A1A 1A1")==false) {
			zip.focus(); return false;
		}
	}
*/


  }

}

function checkboxesAreChecked(fobj) {

	var ok2go = false;

	o1 = document.getElementById('00N80000004BLlD');
	o2 = document.getElementById('00N80000004BLlI');
	o3 = document.getElementById('00N80000004BLlN');
	o4 = document.getElementById('00N80000004BLlS');

	if (o1.checked)	{ ok2go = true; }
	if (o2.checked)	{ ok2go = true; }
	if (o3.checked)	{ ok2go = true; }
	if (o4.checked)	{ ok2go = true; }

	if (!ok2go) { alert('You must choose at least one service type'); }
	return ok2go;
}


/*	commented out by sean because salesforce sent different fields

function checkboxesAreChecked(fobj) {

	ok2go = false;

	for (var i = 0; i < fobj.servicetype.length; i++ ) {
		if (fobj.servicetype[i].checked == true)	ok2go = true;
	}
	
	if (!ok2go) {
	
		alert('You must choose at least one service type');
	
	}
	
	return ok2go;
	
}
*/

function checkForAddress(streetfield) {

	ok2go = false;

	if (streetfield.value.length) ok2go = true;

	if (!ok2go) alert('You must type in a street address');
	
	return ok2go;

}

