function addMarkers(points) {
    var i;
    mrkrMgr.clearMarkers();
    for (i = 0; i < points.length; i++) {
        if (parseInt(points[i].AYPStatusLevel) < 7 || points[i].AYPStatusLevel == "") {
            if (!$("#cbStatus" + points[i].AYPStatusLevel)[0] || $("#cbStatus" + points[i].AYPStatusLevel).attr("checked") == true) {
                mrkrMgr.addMarker(createMarker(points[i]), 0);
            }
        }
        else if (!$("#cbStatus7")[0] || $("#cbStatus7").attr("checked") == true) {
            mrkrMgr.addMarker(createMarker(points[i]), 0);
        }
        
    }
    mrkrMgr.refresh();
}

function createMarker(data) {
    var tinyIcon = new GIcon();
    tinyIcon.shadow = kmlLoc + "mm_20_shadow.png";
    tinyIcon.iconSize = new GSize(12, 20);
    tinyIcon.shadowSize = new GSize(22, 20);
    tinyIcon.iconAnchor = new GPoint(6, 20);
    tinyIcon.infoWindowAnchor = new GPoint(5, 1);

    tinyIcon.image = getIconImage(data.AYPStatusLevel);
    var point = new GLatLng(data.Lat, data.Long);
    if (point.equals(new GLatLng(0, 0))) {
        markerOptions = { icon: tinyIcon, hide: true };
    }
    else {
        markerOptions = { icon: tinyIcon };
    }
    var marker = new GMarker(point, markerOptions);
    GEvent.addListener(marker, "click", function() {
        var myHtml = '<div style="text-align:left;">' + data.Name + '<br/>' + data.Address + '<br/>' + getKeystone(data.AYPStatusLevel) +
                 '&nbsp;&nbsp;' + getStatusText(data.AYPStatusLevel) + '<br/><a target="_blank" href="' + data.Href + '">School Report</a><br/></div>';
        map.panTo(point);
        map.openInfoWindowHtml(point, myHtml, { maxWidth: 200 });
    });
    mrkrs[data.Num] = marker;
    return marker;
}

function getIconImage(statusLevel) {
    var image;
    
    switch (statusLevel) {
        case "1": image = kmlLoc + "mm_20_green.png";
            break;
        case "2": image = kmlLoc + "mm_20_orange.png";
            break;
        case "3": image = kmlLoc + "mm_20_yellow.png";
            break;
        case "4":
        case "5":
        case "6":
        case "7":
        case "8":
        case "9":
        case "A":
        case "B":
        case "C":
        case "D":
        case "E": image = kmlLoc + "mm_20_red.png";
            break;
        case "": image = kmlLoc + "mm_20_blue.png";
            break;
        default: image = kmlLoc + "mm_20_black.png";
    }

    return image;
}

function selectMarker(schoolNum) {
    var marker = mrkrs[schoolNum];
    var undef = new GLatLng(0, 0);
    var url;
    if (!marker || marker.getLatLng().equals(undef)) {
        noGeoData(schoolNum);
    }
    else {
        GEvent.trigger(marker, 'click');
    }
}

function selectDistrict(distNum) {
    var xml = new GGeoXml(kmlLoc + distNum + '.kml');
    var myListener = GEvent.addListener(xml, 'load', function() {
        xml.gotoDefaultViewport(map);
        GEvent.removeListener(myListener);
    });
    $('#schoolSelect').html('<option value="">Select a School</option>');
    addSchoolsByDistrict(distNum);
} 

function getStatusText(status) {
    return statusTexts[status];
}

function selectAll() {
    if ($("#cbAll").attr("checked") == true) {
        $("input:checkbox").attr("checked", true);
    }
    else {
        $("input:checkbox").attr("checked", false);
    }
}

function deselect() {
    if ($("input:checkbox[id^='cbStatus'][checked='true']").length >= 8) {
        $("#cbAll").attr("checked", true);
    }
    else {
        $("#cbAll").attr("checked", false);
    }
}

function applyFilter(schoolObjs) {
    $("#loading_indicator").show();
    addMarkers(schoolObjs);
    $("#loading_indicator").hide();
}

function addSchoolsToDropdown(schools) {
    for (i = 0; i < schoolObjs.length; i++) {
        $('#schoolSelect').append('<option value="' + schoolObjs[i].Num + '">' + schoolObjs[i].Name + '</option>');
    }
}

function wireDisclaimer() {
    var overlayLinks = $('a.overlay');
    if (overlayLinks.overlay) {
        overlayLinks.overlay({
            onBeforeLoad: function(content) {
                $('#disclaimer:visible').hide();
            }
        });
    }
}
