    function setup(map) 
    {
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        return map;
    }
    
    function initIcon (baseIcon)
    {
        baseIcon.iconSize = new GSize(16, 16);
        baseIcon.shadowSize = new GSize(16, 16);
        baseIcon.iconAnchor = new GPoint(6, 20);
        baseIcon.infoWindowAnchor = new GPoint(5, 1);
        return baseIcon;
    }
    
    function createMarker(point, requestType, displayText)
    {        
        var marker = new GMarker(point, getIconName(requestType));
        GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(displayText);});
        return marker;
    }
    
    function getIconName(name) 
    {
        var icon = new GIcon(baseIcon);
        var iconName = "";
        switch (name)
        {
			case "airport":
				iconName = "airport" + ".bmp";
				break;
			case "bridges":
			case "bridge":
                iconName = "bridges3" + ".bmp";
				break;
			case "buildings":
			case "building":
				iconName = "buildings" + ".bmp";
				break;
			case "car":
				iconName = "car" + ".bmp";
				break;
			case "fire department":
				iconName = "firehouse" + ".bmp";
				break;
			case "parks":
                iconName = "parkbench" + ".bmp";
				break;
			case "police dept":
                iconName = "policecar" + ".bmp";
				break;
            case "sanitary sewers":
			case "sanitary sewer":
                iconName = "sewerpipe2" + ".bmp";
				break;
            case "storm sewers":
			case "storm sewer":
                iconName = "stormsewer" + ".bmp";
				break;
            case "streets":
			case "street":
                iconName = "streets" + ".bmp";
				break;
            case "streetscape":
                iconName = "tree" + ".bmp";
				break;
            case "traffic signals":
			case "traffic signal":
				iconName = "signal" + ".bmp";
				break;
			case "water":
                iconName = "water" + ".bmp";
				break;
            case 'Search Address' : 
                iconName = 'redstar' + ".gif"; 
                break;
            default:
                iconName = "info" + ".bmp";
				break;
        }
        icon.image = hostUrl + "/images/" + iconName;
        return icon;
    }

    function clear_onclick() 
    {
        document.forms.searchFields.ddlCouncilDistrict.value = "(show all)";
        //document.forms.searchFields.DropDownList1.value = "(show all)";
        document.forms.searchFields.ddlProjType.value = "(show all)";
        document.forms.searchFields.ddlNeighborhood.value = "(show all)";
        document.forms.searchFields.textProjectNumber.value = "";
        document.forms.searchFields.textProjectName.value = "";
        document.forms.searchFields.textAddress.value = "";
        document.forms.searchFields.textZip.value = "";
        document.forms.searchFields.textPiacNumber.value = "";
        document.getElementById("errorLabel").innerText = "";
    }

    function submit_onclick() 
    {
        document.getElementById("errorLabel").innerText = "Searching for Projects...";
        document.forms.searchFields.submit();
    }

    function showProjectOnMap(projectNum)
    {
        clear_onclick();
        document.forms.searchFields.textProjectNumber.value = projectNum;
        submit_onclick();
    }
        
    function showProjectDetails(entityId)
    {
	    var strFeatures = "fullscreen=no,menubar=no,titlebar=no,location=no,resizable=no,statusbar=no,toolbar=no,scrollbars=yes,height=400px,width=450px"
	    var objWin = window.open("ProjectDetails.aspx" + "?entityId=" + entityId, "ProjectDetails", strFeatures, false);
	    objWin.focus();
    }	

    function showProjectDoc(docUrl)
    {
	    var objWin = window.open(docUrl);
	    objWin.focus();
    }	
