        var _map;
	var geocoder = new GClientGeocoder();
	var mapProj = new OpenLayers.Projection('EPSG:900913');
	var userProj = new OpenLayers.Projection('EPSG:4326');
        OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
        OpenLayers.Util.onImageLoadErrorColor = "transparent";
	var _solar_empty = false;
	var _solar_oth, _solar_res, _solar_poly, _solar_safe, _solar_zip = null;
	var gmap, ghyb, gsat, gphy = null;

        function init(){
            
            var options = {
		// the "community" epsg code for spherical mercator
                projection: "EPSG:900913",
                // map horizontal units are meters
                units: "m",
                // this resolution displays the globe in one 256x256 pixel tile
                maxResolution: 78271.515625,
                // these are the bounds of the globe in sperical mercator
                maxExtent: new OpenLayers.Bounds(-20037508,-20037508,20037508,20037508)
            };

            _map = new OpenLayers.Map('wrapperMap', options);

            gmap = new OpenLayers.Layer.Google(
                "Google Maps",
                {type: G_NORMAL_MAP, 'sphericalMercator': true, 'maxZoomLevel':18}
            );

            ghyb = new OpenLayers.Layer.Google(
                "Google Hybrid",
                {type: G_HYBRID_MAP, 'sphericalMercator': true, 'maxZoomLevel':18}
            );

            gsat = new OpenLayers.Layer.Google(
                "Google Sattelite",
                {type: G_SATELLITE_MAP, 'sphericalMercator': true, 'maxZoomLevel':18}
            ); 

            gphy = new OpenLayers.Layer.Google(
                "Google Terrain",
                {type: G_PHYSICAL_MAP, 'sphericalMercator': true, 'maxZoomLevel':16}
            );
            _solar_safe = new OpenLayers.Layer.WMS(
                "solar_safe",
                "http://205.153.117.147/tilecache/tilecache.py?",
                {
		   layers: 'solar_safe',
                   srs: 'EPSG:900913',
                   format: 'image/gif',
		   QUERY_LAYERS: 'solar_safe',
                   tiled: 'true',
                   transparent: true
                },
                {
                    	'isBaseLayer': false, 
			'displayInLayerSwitcher': false,
			'buffer': 0
                }
            );

            _solar_poly = new OpenLayers.Layer.WMS(
                "solar_polygons",
                "http://205.153.117.147/tilecache/tilecache.py?",
                {
		   layers: 'solar_polygons',
                   srs: 'EPSG:900913',
                   format: 'image/gif',
                   tiled: 'true',
                   transparent: true
                },
                {
                    	'isBaseLayer': false,
			'opacity': 0.5, 
			'displayInLayerSwitcher': false,
			'buffer': 0
                }
            );

            _solar_zip = new OpenLayers.Layer.WMS(
                "solar_zipcode",
                "http://205.153.117.147/tilecache/tilecache.py?",
                {
		   layers: 'solar_zipcode',
                   srs: 'EPSG:900913',
                   format: 'image/gif',
                   tiled: 'true',
                   transparent: true
                },
                {
                    	'isBaseLayer': false,
			'opacity': 0.3, 
			'displayInLayerSwitcher': false,
			'visibility': false,
			'buffer': 0
                }
            );
	// ##################### SOLAR LAYERS #######################

	    var urlArray = ["http://sd.solarmap.org/tilecache/tilecache.py?",
                    "http://sd1.solarmap.org/tilecache/tilecache.py?",
		    "http://sd2.solarmap.org/tilecache/tilecache.py?"];

            _solar_res = new OpenLayers.Layer.WMS(
                "solar_res",
                urlArray,
                {
		   layers: 'solar_res',
                   srs: 'EPSG:900913',
                   format: 'image/gif',	
		   query_layers: 'solar_res',
                   tiled: 'true',
                   transparent: true
                },
                {
                    	'isBaseLayer': false, 
			'displayInLayerSwitcher': false,
			'buffer': 0
                }
            );
            _solar_oth = new OpenLayers.Layer.WMS(
                "solar_oth",
                urlArray,
                {
		   layers: 'solar_oth',
                   srs: 'EPSG:900913',
                   format: 'image/gif',
		   query_layers: 'solar_oth',
                   tiled: 'true',
                   transparent: true
                },
                {
                    	'isBaseLayer': false, 
			'displayInLayerSwitcher': false,
			'buffer': 0
                }
            );
  
            _map.addLayers([ghyb, gmap, gsat, gphy, _solar_zip, _solar_poly, _solar_safe, _solar_res, _solar_oth]);
            _map.setCenter(new OpenLayers.LonLat(-13022207, 3870210), 11);
	    var mp = new OpenLayers.Control.MousePosition();
	    mp.displayProjection = new OpenLayers.Projection("EPSG:4326");
            _map.addControl(mp);

	    _map.events.register('zoomend', _map, function(e) {
		if (_map.getZoom() > 14) {
			document.getElementById('safeimg').src = "img/red8.gif";
		} else {
			document.getElementById('safeimg').src = "img/safeArea.png";
		}
	    });


            _map.events.register('click', _map, function (e) {
		document.getElementById('accordion4').innerHTML = "";
            	document.getElementById('accordion4').innerHTML = "<span id='loading'>Loading... please wait...</span>";
		$('#accordion').accordion('activate', 3);
		var url = null;

		url = _map.layers[6].getFullRequestString(
					{
						REQUEST: "GetFeatureInfo",
						EXCEPTIONS: "application/vnd.ogc.se_xml",
						SRS: "EPSG:900913",
						SERVICE: "WMS",
						VERSION: "1.0.0",
						BBOX: _map.getExtent().toBBOX(),
						X: e.xy.x,
						Y: e.xy.y,
						INFO_FORMAT: 'text/html',
						FEATURE_COUNT: 3,
						WIDTH: _map.size.w,
						HEIGHT: _map.size.h
					},
					"../../cgi-bin/mapserv.exe?map=../htdocs/solar/solar_safe.map");

		if (_solar_safe.getVisibility() && _map.getZoom() > 14) {
            		OpenLayers.loadURL(url, '', this, setHTML, setHTML);
		}

		url = _map.layers[7].getFullRequestString(
					{
						REQUEST: "GetFeatureInfo",
						EXCEPTIONS: "application/vnd.ogc.se_xml",
						SRS: "EPSG:900913",
						SERVICE: "WMS",
						VERSION: "1.0.0",
						BBOX: _map.getExtent().toBBOX(),
						X: e.xy.x,
						Y: e.xy.y,
						INFO_FORMAT: 'text/html',
						FEATURE_COUNT: 3,
						WIDTH: _map.size.w,
						HEIGHT: _map.size.h
					},
					"../../cgi-bin/mapserv.exe?map=../htdocs/solar/solar_res.map");

		if (_solar_res.getVisibility()) {
            		OpenLayers.loadURL(url, '', this, setHTML2, setHTML2);
		}

		url = _map.layers[8].getFullRequestString(
					{
						REQUEST: "GetFeatureInfo",
						EXCEPTIONS: "application/vnd.ogc.se_xml",
						SRS: "EPSG:900913",
						SERVICE: "WMS",
						VERSION: "1.0.0",
						BBOX: _map.getExtent().toBBOX(),
						X: e.xy.x,
						Y: e.xy.y,
						INFO_FORMAT: 'text/html',
						FEATURE_COUNT: 3,
						WIDTH: _map.size.w,
						HEIGHT: _map.size.h
					},
					"../../cgi-bin/mapserv.exe?map=../htdocs/solar/solar_oth.map");

		if (_solar_oth.getVisibility()) {
            		OpenLayers.loadURL(url, '', this, setHTML2, setHTML2);
		}
      	    });
            function setHTML(response) {
		document.getElementById('loading').style.display = 'none';
                OpenLayers.Util.getElement('accordion4').innerHTML += response.responseText;
            }
            function setHTML2(response) {
		document.getElementById('loading').style.display = 'none';
                OpenLayers.Util.getElement('accordion4').innerHTML += response.responseText;
            }

	    resizeApp();
    	    window.onresize = resizeApp;
            $('#accordion').accordion('activate', 1);
        }

	function zoom2Address() {
		geocoder.getLatLng(
		document.getElementById('uxSearch').value,
		function(point) {
		      if (!point) {
			document.getElementById('uxSearch').style.border = "1px solid #990000";
 		      } else {
			document.getElementById('uxSearch').style.border = "1px solid #cccccc";
                        var ll = new OpenLayers.LonLat(point.x,point.y);
                        ll.transform(userProj, mapProj);

			var layerMarkers = new OpenLayers.Layer.Markers("Markers");
			_map.addLayer(layerMarkers);
			_map.setCenter(ll, 17);

			var size = new OpenLayers.Size(32,32);
			var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
			var icon = new OpenLayers.Icon('img/blue-dot.png',size,offset);
			layerMarkers.addMarker(new OpenLayers.Marker(ll,icon));

	              }
	        }
              );
        }