/*
 	 Copyright (c) 2007, iUI Project Members
	 See LICENSE.txt for licensing terms
 */


(function() {

var slideSpeed = 20;
var slideInterval = 0;

var currentPage = null;
var currentDialog = null;
var currentWidth = 0;
var currentHash = location.hash;
var hashPrefix = "#_";
var pageHistory = [];
var newPageCount = 0;
var checkTimer;

// *************************************************************************************************

window.iui =
{
    showPage: function(page, backwards)
    {
        if (page)
        {
            if (currentDialog)
            {
                currentDialog.removeAttribute("selected");
                currentDialog = null;
            }

            if (hasClass(page, "dialog"))
                showDialog(page);
            else
            {
                var fromPage = currentPage;
                currentPage = page;

                if (fromPage)
                    setTimeout(slidePages, 0, fromPage, page, backwards);
                else
                    updatePage(page, fromPage);
            }
        }
    },

    showPageById: function(pageId)
    {
        var page = $(pageId);
        if (page)
        {
            var index = pageHistory.indexOf(pageId);
            var backwards = index != -1;
            if (backwards)
                pageHistory.splice(index, pageHistory.length);

            iui.showPage(page, backwards);
        }
    },

    showPageByHref: function(href, args, method, replace, cb)
    {
        var req = new XMLHttpRequest();
        req.onerror = function()
        {
            if (cb)
                cb(false);
        };
        
        req.onreadystatechange = function()
        {
            if (req.readyState == 4)
            {
                if (replace)
                    replaceElementWithSource(replace, req.responseText);
                else
                {
                    var frag = document.createElement("div");
                    frag.innerHTML = req.responseText;
                    iui.insertPages(frag.childNodes);
                }
                if (cb)
                    setTimeout(cb, 1000, true);
            }
        };

        if (args)
        {
            req.open(method || "GET", href, true);
            req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            req.setRequestHeader("Content-Length", args.length);
            req.send(args.join("&"));
        }
        else
        {
            req.open(method || "GET", href, true);
            req.send(null);
        }
    },
    
    insertPages: function(nodes)
    {
        var targetPage;
        for (var i = 0; i < nodes.length; ++i)
        {
            var child = nodes[i];
            if (child.nodeType == 1)
            {
                if (!child.id)
                    child.id = "__" + (++newPageCount) + "__";

                var clone = $(child.id);
                if (clone)
                    clone.parentNode.replaceChild(child, clone);
                else
                    document.body.appendChild(child);

                if (child.getAttribute("selected") == "true" || !targetPage)
                    targetPage = child;
                
                --i;
            }
        }

        if (targetPage)
            iui.showPage(targetPage);    
    },

    getSelectedPage: function()
    {
        for (var child = document.body.firstChild; child; child = child.nextSibling)
        {
            if (child.nodeType == 1 && child.getAttribute("selected") == "true")
                return child;
        }    
    }    
};

// *************************************************************************************************

addEventListener("load", function(event)
{
    var page = iui.getSelectedPage();
    if (page)
        iui.showPage(page);

    setTimeout(preloadImages, 0);
    setTimeout(checkOrientAndLocation, 0);
    checkTimer = setInterval(checkOrientAndLocation, 300);
}, false);
    
addEventListener("click", function(event)
{
    var link = findParent(event.target, "a");
    if (link)
    {
        function unselect() { link.removeAttribute("selected"); }
        
        if (link.href && link.hash && link.hash != "#")
        {
            link.setAttribute("selected", "true");
            iui.showPage($(link.hash.substr(1)));
            setTimeout(unselect, 500);
        }
        else if (link == $("backButton"))
            history.back();
        else if (link.getAttribute("type") == "submit")
            submitForm(findParent(link, "form"));
        else if (link.getAttribute("type") == "cancel")
            cancelDialog(findParent(link, "form"));
        else if (link.target == "_replace")
        {
            link.setAttribute("selected", "progress");
            iui.showPageByHref(link.href, null, null, link, unselect);
        }
        else if (!link.target)
        {
            link.setAttribute("selected", "progress");
            iui.showPageByHref(link.href, null, null, null, unselect);
        }
        else
            return;
        
        event.preventDefault();        
    }
}, true);

addEventListener("click", function(event)
{
    var div = findParent(event.target, "div");
    if (div && hasClass(div, "toggle"))
    {
        div.setAttribute("toggled", div.getAttribute("toggled") != "true");
        event.preventDefault();        
    }
}, true);

function checkOrientAndLocation()
{
    if (window.innerWidth != currentWidth)
    {   
        currentWidth = window.innerWidth;
        var orient = currentWidth == 320 ? "profile" : "landscape";
        document.body.setAttribute("orient", orient);
        setTimeout(scrollTo, 100, 0, 1);
    }

    if (location.hash != currentHash)
    {
        var pageId = location.hash.substr(hashPrefix.length)
        iui.showPageById(pageId);
    }
}

function showDialog(page)
{
    currentDialog = page;
    page.setAttribute("selected", "true");
    
    if (hasClass(page, "dialog") && !page.target)
        showForm(page);
}

function showForm(form)
{
    form.onsubmit = function(event)
    {
        event.preventDefault();
        submitForm(form);
    };
    
    form.onclick = function(event)
    {
        if (event.target == form && hasClass(form, "dialog"))
            cancelDialog(form);
    };
}

function cancelDialog(form)
{
    form.removeAttribute("selected");
}

function updatePage(page, fromPage)
{
    if (!page.id)
        page.id = "__" + (++newPageCount) + "__";

    location.href = currentHash = hashPrefix + page.id;
    pageHistory.push(page.id);

    var pageTitle = $("pageTitle");
    if (page.title)
        pageTitle.innerHTML = page.title;

    if (page.localName.toLowerCase() == "form" && !page.target)
        showForm(page);
        
    var backButton = $("backButton");
    if (backButton)
    {
        var prevPage = $(pageHistory[pageHistory.length-2]);
        if (prevPage && !page.getAttribute("hideBackButton"))
        {
            backButton.style.display = "inline";
            backButton.innerHTML = prevPage.title ? prevPage.title : "Back";
        }
        else
            backButton.style.display = "none";
    }    
}

function slidePages(fromPage, toPage, backwards)
{        
    var axis = (backwards ? fromPage : toPage).getAttribute("axis");
    if (axis == "y")
        (backwards ? fromPage : toPage).style.top = "100%";
    else
        toPage.style.left = "100%";

    toPage.setAttribute("selected", "true");
    scrollTo(0, 1);
    clearInterval(checkTimer);
    
    var percent = 100;
    slide();
    var timer = setInterval(slide, slideInterval);

    function slide()
    {
        percent -= slideSpeed;
        if (percent <= 0)
        {
            percent = 0;
            if (!hasClass(toPage, "dialog"))
                fromPage.removeAttribute("selected");
            clearInterval(timer);
            checkTimer = setInterval(checkOrientAndLocation, 300);
            setTimeout(updatePage, 0, toPage, fromPage);
        }
    
        if (axis == "y")
        {
            backwards
                ? fromPage.style.top = (100-percent) + "%"
                : toPage.style.top = percent + "%";
        }
        else
        {
            fromPage.style.left = (backwards ? (100-percent) : (percent-100)) + "%"; 
            toPage.style.left = (backwards ? -percent : percent) + "%"; 
        }
    }
}

function preloadImages()
{
    var preloader = document.createElement("div");
    preloader.id = "preloader";
    document.body.appendChild(preloader);
}

function submitForm(form)
{
    iui.showPageByHref(form.action || "POST", encodeForm(form), form.method);
}

function encodeForm(form)
{
    function encode(inputs)
    {
        for (var i = 0; i < inputs.length; ++i)
        {
            if (inputs[i].name)
                args.push(inputs[i].name + "=" + escape(inputs[i].value));
        }
    }

    var args = [];
    encode(form.getElementsByTagName("input"));
    encode(form.getElementsByTagName("select"));
    return args;    
}

function findParent(node, localName)
{
    while (node && (node.nodeType != 1 || node.localName.toLowerCase() != localName))
        node = node.parentNode;
    return node;
}

function hasClass(self, name)
{
    var re = new RegExp("(^|\\s)"+name+"($|\\s)");
    return re.exec(self.getAttribute("class")) != null;
}

function replaceElementWithSource(replace, source)
{
    var page = replace.parentNode;
    var parent = replace;
    while (page.parentNode != document.body)
    {
        page = page.parentNode;
        parent = parent.parentNode;
    }

    var frag = document.createElement(parent.localName);
    frag.innerHTML = source;

    page.removeChild(parent);

    while (frag.firstChild)
        page.appendChild(frag.firstChild);
}

function $(id) { return document.getElementById(id); }
function ddd() { console.log.apply(console, arguments); }

})();

var q = -1;

function handleStat(which) {
	if (q!=statArray.length-1) {
	q++;
		if (statArray[q]==which) {
			window.location = "#_stationinfo";
			document.getElementById("stationinfo").title = nameArray[q];
			document.getElementById("addya").href = "http://maps.google.com/maps?q=" + addArray[q];
			document.getElementById("nextta").href = "http://wmata.com/metrorail/Stations/showpid/showpid.cfm?station=" + stanumArray[q];
			
		};
		if (statArray[q]!=which) {
			handleStat(which);
		};
	};
	if (q==statArray.length-1) {
		q=-1;
		}
};

var statArray = new Array;
statArray[0] = "bethesda";
statArray[1] = "brookland";
statArray[2] = "clevpark";
statArray[3] = "dupont";
statArray[4] = "farragutn";
statArray[5] = "forestglen";
statArray[6] = "forttotten";
statArray[7] = "friendship";
statArray[8] = "chinatown";
statArray[9] = "glenmont";
statArray[10] = "grosvenor";
statArray[11] = "judsquare";
statArray[12] = "medicalcenter";
statArray[13] = "metrocenter";
statArray[14] = "gallaudet";
statArray[15] = "riave";
statArray[16] = "rockville";
statArray[17] = "shadygrove";
statArray[18] = "silverspring";
statArray[19] = "takoma";
statArray[20] = "tenleytown";
statArray[21] = "twinbrook";
statArray[22] = "unionstation";
statArray[23] = "vanness";
statArray[24] = "wheaton";
statArray[25] = "whiteflint";
statArray[26] = "woodley";
statArray[27] = "ballstonmu";
statArray[28] = "capitolsouth";
statArray[29] = "cheverly";
statArray[30] = "clarendon";
statArray[31] = "courthouse";
statArray[32] = "deanwood";
statArray[33] = "dunnloring";
statArray[34] = "easternmarket";
statArray[35] = "efallschurch";
statArray[36] = "farragutw";
statArray[37] = "fedcentersw";
statArray[38] = "federaltriangle";
statArray[39] = "foggybottom";
statArray[40] = "landover";
statArray[41] = "lenfantplaza";
statArray[42] = "mcphersonsq";
statArray[43] = "metrocenter";
statArray[44] = "minnesota";
statArray[45] = "newcarrollton";
statArray[46] = "potomacave";
statArray[47] = "rosslyn";
statArray[48] = "smithsonian";
statArray[49] = "stadiumarmory";
statArray[50] = "vasqgmu";
statArray[51] = "vienna";
statArray[52] = "wfallschurch";
statArray[53] = "addisonrd";
statArray[54] = "arlingtoncemetery";
statArray[55] = "benningrd";
statArray[56] = "braddockrd";
statArray[57] = "capitolheights";
statArray[58] = "capitolsouth";
statArray[59] = "crystalcity";
statArray[60] = "easternmarket";
statArray[61] = "farragutw";
statArray[62] = "fedcentersw";
statArray[63] = "federaltriangle";
statArray[64] = "foggybottom";
statArray[65] = "franconia";
statArray[66] = "kingstreet";
statArray[67] = "largo";
statArray[68] = "lenfantplaza";
statArray[69] = "mcphersonsq";
statArray[70] = "metrocenter";
statArray[71] = "morganblvd";
statArray[72] = "pentagon";
statArray[73] = "pentagoncity";
statArray[74] = "potomacave";
statArray[75] = "reaganairport";
statArray[76] = "rosslyn";
statArray[77] = "smithsonian";
statArray[78] = "stadiumarmory";
statArray[79] = "vandornst";
statArray[80] = "archives";
statArray[81] = "braddockrd";
statArray[82] = "columbiaheights";
statArray[83] = "crystalcity";
statArray[84] = "eisenhowerave";
statArray[85] = "forttotten";
statArray[86] = "chinatown";
statArray[87] = "georgiaave";
statArray[88] = "huntington";
statArray[89] = "kingstreet";
statArray[90] = "lenfantplaza";
statArray[91] = "mtvernonsq";
statArray[92] = "pentagon";
statArray[93] = "pentagoncity";
statArray[94] = "reaganairport";
statArray[95] = "shaw";
statArray[96] = "ustreet";
statArray[97] = "anacostia";
statArray[98] = "archives";
statArray[99] = "branchave";
statArray[100] = "collegepark";
statArray[101] = "columbiaheights";
statArray[102] = "congressheights";
statArray[103] = "forttotten";
statArray[104] = "chinatown";
statArray[105] = "georgiaave";
statArray[106] = "greenbelt";
statArray[107] = "lenfantplaza";
statArray[108] = "mtvernonsq";
statArray[109] = "navyyard";
statArray[110] = "naylorrd";
statArray[111] = "pgplaza";
statArray[112] = "shaw";
statArray[113] = "southernave";
statArray[114] = "suitland";
statArray[115] = "ustreet";
statArray[116] = "waterfront";
statArray[117] = "whyattsville";

var nameArray = new Array;
nameArray[0] = "Bethesda";
nameArray[1] = "Brookland-CUA";
nameArray[2] = "Cleveland Park";
nameArray[3] = "Dupont Circle";
nameArray[4] = "Farragut North";
nameArray[5] = "Forest Glen";
nameArray[6] = "Fort Totten";
nameArray[7] = "Friendship Heights";
nameArray[8] = "Gallery Pl-Chinatown";
nameArray[9] = "Glenmont";
nameArray[10] = "Grosvenor-Strathmore";
nameArray[11] = "Judiciary Square";
nameArray[12] = "Medical Center";
nameArray[13] = "Metro Center";
nameArray[14] = "New York Ave-Florida Ave-Gallaudet U";
nameArray[15] = "Rhode Island Ave-Brentwood";
nameArray[16] = "Rockville";
nameArray[17] = "Shady Grove";
nameArray[18] = "Silver Spring";
nameArray[19] = "Takoma";
nameArray[20] = "Tenleytown-AU";
nameArray[21] = "Twinbrook";
nameArray[22] = "Union Station";
nameArray[23] = "Van Ness-UDC";
nameArray[24] = "Wheaton";
nameArray[25] = "White Flint";
nameArray[26] = "Woodley Park-Zoo/Adams Morgan";
nameArray[27] = "Ballston-MU";
nameArray[28] = "Capitol South";
nameArray[29] = "Cheverly";
nameArray[30] = "Clarendon";
nameArray[31] = "Court House";
nameArray[32] = "Deanwood";
nameArray[33] = "Dunn Loring-Merrifield";
nameArray[34] = "Eastern Market";
nameArray[35] = "East Falls Church";
nameArray[36] = "Farragut West";
nameArray[37] = "Federal Center SW";
nameArray[38] = "Federal Triangle";
nameArray[39] = "Foggy Bottom";
nameArray[40] = "Landover";
nameArray[41] = "L'Enfant Plaza";
nameArray[42] = "McPherson Square";
nameArray[43] = "Metro Center";
nameArray[44] = "Minnesota Ave";
nameArray[45] = "New Carrollton";
nameArray[46] = "Potomac Ave";
nameArray[47] = "Rosslyn";
nameArray[48] = "Smithsonian";
nameArray[49] = "Stadium-Armory";
nameArray[50] = "Virginia Square-GMU";
nameArray[51] = "Vienna/Fairfax-GMU";
nameArray[52] = "West Falls Church-VT/UVA";
nameArray[53] = "Addison Road-Seat Pleasant";
nameArray[54] = "Arlington Cemetery";
nameArray[55] = "Benning Road";
nameArray[56] = "Braddock Road";
nameArray[57] = "Capitol Heights";
nameArray[58] = "Capitol South";
nameArray[59] = "Crystal City";
nameArray[60] = "Eastern Market";
nameArray[61] = "Farragut West";
nameArray[62] = "Federal Center SW";
nameArray[63] = "Federal Triangle";
nameArray[64] = "Foggy Bottom-GWU";
nameArray[65] = "Franconia-Springfield";
nameArray[66] = "King Street";
nameArray[67] = "Largo Town Center";
nameArray[68] = "L'Enfant Plaza";
nameArray[69] = "McPherson Square";
nameArray[70] = "Metro Center";
nameArray[71] = "Morgan Boulevard";
nameArray[72] = "Pentagon";
nameArray[73] = "Pentagon City";
nameArray[74] = "Potomac Ave";
nameArray[75] = "Ronald Reagan Washington National Airport";
nameArray[76] = "Rosslyn";
nameArray[77] = "Smithsonian";
nameArray[78] = "Stadium-Armory";
nameArray[79] = "Van Dorn Street";
nameArray[80] = "Archives-Navy Memorial-Penn Quarter";
nameArray[81] = "Braddock Road";
nameArray[82] = "Columbia Heights";
nameArray[83] = "Crystal City";
nameArray[84] = "Eisenhower Avenue";
nameArray[85] = "Fort Totten";
nameArray[86] = "Gallery Pl-Chinatown";
nameArray[87] = "Georgia Ave-Petworth";
nameArray[88] = "Huntington";
nameArray[89] = "King Street";
nameArray[90] = "L'Enfant Plaza";
nameArray[91] = "Mt Vernon Sq 7th St-Convention Center";
nameArray[92] = "Pentagon";
nameArray[93] = "Pentagon City";
nameArray[94] = "Ronald Reagan Washington National Airport";
nameArray[95] = "Shaw-Howard U";
nameArray[96] = "U Street/African-Amer Civil War Memorial/Cardozo";
nameArray[97] = "Anacostia";
nameArray[98] = "Archives-Navy Memorial-Penn Quarter";
nameArray[99] = "Branch Ave";
nameArray[100] = "College Park-U of MD";
nameArray[101] = "Columbia Heights";
nameArray[102] = "Congress Heights";
nameArray[103] = "Fort Totten";
nameArray[104] = "Gallery Pl-Chinatown";
nameArray[105] = "Georgia Ave-Petworth";
nameArray[106] = "Greenbelt";
nameArray[107] = "L'Enfant Plaza";
nameArray[108] = "Mt Vernon Sq 7th St-Convention Center";
nameArray[109] = "Navy Yard";
nameArray[110] = "Naylor Road";
nameArray[111] = "Prince George's Plaza";
nameArray[112] = "Shaw-Howard U";
nameArray[113] = "Southern Avenue";
nameArray[114] = "Suitland";
nameArray[115] = "U Street/African-Amer Civil War Memorial/Cardozo";
nameArray[116] = "Waterfront-SEU";
nameArray[117] = "West Hyattsville";

var stanumArray = new Array;
stanumArray[1] = 27;
stanumArray[2] = 8;
stanumArray[3] = 6;
stanumArray[4] = 4;
stanumArray[5] = 32;
stanumArray[6] = 28;
stanumArray[7] = 11;
stanumArray[8] = 21;
stanumArray[9] = 34;
stanumArray[10] = 14;
stanumArray[11] = 23;
stanumArray[12] = 13;
stanumArray[13] = 1;
stanumArray[14] = 108;
stanumArray[15] = 26;
stanumArray[16] = 17;
stanumArray[17] = 18;
stanumArray[18] = 31;
stanumArray[19] = 29;
stanumArray[20] = 10;
stanumArray[21] = 16;
stanumArray[22] = 25;
stanumArray[23] = 9;
stanumArray[24] = 33;
stanumArray[25] = 15;
stanumArray[26] = 7;
stanumArray[27] = 99;
stanumArray[28] = 59;
stanumArray[29] = 66;
stanumArray[30] = 97;
stanumArray[31] = 96;
stanumArray[32] = 65;
stanumArray[33] = 102;
stanumArray[34] = 60;
stanumArray[35] = 100;
stanumArray[36] = 38;
stanumArray[37] = 58;
stanumArray[38] = 53;
stanumArray[39] = 40;
stanumArray[40] = 67;
stanumArray[41] = 82;
stanumArray[42] = 36;
stanumArray[43] = 1;
stanumArray[44] = 64;
stanumArray[45] = 68;
stanumArray[46] = 61;
stanumArray[47] = 41;
stanumArray[48] = 54;
stanumArray[49] = 63;
stanumArray[50] = 98;
stanumArray[51] = 103;
stanumArray[52] = 101;
stanumArray[53] = 92;
stanumArray[54] = 42;
stanumArray[55] = 90;
stanumArray[56] = 47;
stanumArray[57] = 91;
stanumArray[58] = 59;
stanumArray[59] = 45;
stanumArray[60] = 60;
stanumArray[61] = 38;
stanumArray[62] = 58;
stanumArray[63] = 53;
stanumArray[64] = 40;
stanumArray[65] = 95;
stanumArray[66] = 48;
stanumArray[67] = 109;
stanumArray[68] = 82;
stanumArray[69] = 36;
stanumArray[70] = 1;
stanumArray[71] = 110;
stanumArray[72] = 43;
stanumArray[73] = 44;
stanumArray[74] = 61;
stanumArray[75] = 93;
stanumArray[76] = 41;
stanumArray[77] = 54;
stanumArray[78] = 63;
stanumArray[79] = 94;
stanumArray[80] = 81;
stanumArray[81] = 47;
stanumArray[82] = 75;
stanumArray[83] = 45;
stanumArray[84] = 49;
stanumArray[85] = 28;
stanumArray[86] = 21;
stanumArray[87] = 76;
stanumArray[88] = 50;
stanumArray[89] = 48;
stanumArray[90] = 82;
stanumArray[91] = 70;
stanumArray[92] = 43;
stanumArray[93] = 44;
stanumArray[94] = 93;
stanumArray[95] = 72;
stanumArray[96] = 73;
stanumArray[97] = 85;
stanumArray[98] = 81;
stanumArray[99] = 89;
stanumArray[100] = 79;
stanumArray[101] = 75;
stanumArray[102] = 86;
stanumArray[103] = 28;
stanumArray[104] = 21;
stanumArray[105] = 76;
stanumArray[106] = 80;
stanumArray[107] = 82;
stanumArray[108] = 70;
stanumArray[109] = 84;
stanumArray[110] = 87;
stanumArray[111] = 78;
stanumArray[112] = 72;
stanumArray[113] = 107;
stanumArray[114] = 88;
stanumArray[115] = 73;
stanumArray[116] = 83;
stanumArray[117] = 77;

var addArray = new Array;
addArray[0] = "7450 Wisconsin Avenue, Bethesda, MD 20814";
addArray[1] = "801 Michigan Avenue, NE, Washington, DC 20017";
addArray[2] = "3599 Connecticut Avenue, NW, Washington, DC 20008";
addArray[3] = "1525 20th St. NW, Washington, DC 20036";
addArray[4] = "1001 Connecticut Avenue, NW, Washington, DC 20036";
addArray[5] = "9730 Georgia Avenue, Forest Glen, MD 20910";
addArray[6] = "550 Galloway Street, NE, Washington, DC 20011";
addArray[7] = "5337 Wisconsin Avenue, NW, Washington, DC 20015";
addArray[8] = "630 H St. NW, Washington, DC 20001";
addArray[9] = "12501 Georgia Avenue, Silver Spring, MD 20906";
addArray[10] = "10300 Rockville Pike, Bethesda, MD 20852";
addArray[11] = "450 F Street NW, Washington, DC 20001";
addArray[12] = "8810 Rockville Pike, Bethesda, MD 20814";
addArray[13] = "607 13th St. NW, Washington, DC 20005";
addArray[14] = "200 Florida Ave, N.E. 20002";
addArray[15] = "919 Rhode Island Avenue, NE, Washington, DC 20018";
addArray[16] = "251 Hungerford Drive, Rockville, MD 20850";
addArray[17] = "15903 Somerville Drive, Rockville, MD 20855";
addArray[18] = "8400 Colesville Road, Silver Spring, MD 20910";
addArray[19] = "327 Cedar Street, NW, Washington, DC 20012 ";
addArray[20] = "4501 Wisconsin Avenue, NW, Washington, DC 20016";
addArray[21] = "1600 Chapman Avenue, Rockville, MD 20852";
addArray[22] = "701 First St. NE, Washington, DC 20002";
addArray[23] = "4200 Connecticut Avenue, NW, Washington, DC 20008";
addArray[24] = "11171 Georgia Avenue, Silver Spring, MD 20902";
addArray[25] = "5500 Marinelli Road, Rockville, MD 20852";
addArray[26] = "2700 24th Street, NW, Washington, DC 20008";
addArray[27] = "4230 Fairfax Drive, Arlington, VA 22201";
addArray[28] = "355 First Street, SE, Washington, DC 20003";
addArray[29] = "5501 Columbia Park, Cheverly, MD 20785";
addArray[30] = "3100 Wilson Blvd, Arlington, VA 22201";
addArray[31] = "2100 Wilson Blvd, Arlington, VA 22201 ";
addArray[32] = "4720 Minnesota Avenue, NE, Washington, DC 20019";
addArray[33] = "2700 Gallows Road, Vienna, VA 22180";
addArray[34] = "701 Pennsylvania Avenue, SE, Washington, DC 20003 ";
addArray[35] = "2001 N. Sycamore St., Arlington, VA 22205";
addArray[36] = "900 18th St. NW, Washington, DC 20006";
addArray[37] = "401 3rd Street, SW, Washington, DC 20024";
addArray[38] = "302 12th St., NW, Washington, DC 20004";
addArray[39] = "2301 I St. NW, Washington, DC 20037";
addArray[40] = "3000 Pennsy Drive, Hyattsville, MD 20024";
addArray[41] = "600 Maryland Avenue, SW, Washington, DC 20024";
addArray[42] = "1400 I St. NW, Washington, DC 20005";
addArray[43] = "607 13th St. NW, Washington, DC 20005";
addArray[44] = "4000 Minnesota Avenue, NE, Washington, DC 20019";
addArray[45] = "4700 Garden City Drive, New Carrollton, MD 20784";
addArray[46] = "700 14th Street, SE, Washington, DC 20003";
addArray[47] = "1850 N. Moore Street, Arlington, VA 22209";
addArray[48] = "1200 Independence Avenue, SW, Washington, DC 20004";
addArray[49] = "192 19th St., SE, Washington, DC 20003";
addArray[50] = "3600 Fairfax Drive, Arlington, VA 22201";
addArray[51] = "2900 Nutley St., Fairfax, VA 22031";
addArray[52] = "7040 Haycock Road, Falls Church, VA 22043";
addArray[53] = "100 Addison Road S., Capitol Heights, MD 20743";
addArray[54] = "1000 North Memorial Drive, Arlington, VA 22211";
addArray[55] = "4500 Benning Road, Washington, DC 20019";
addArray[56] = "700 N. West St., Alexandria, VA 22301";
addArray[57] = "133 Central Avenue, Capitol Heights, MD 20743";
addArray[58] = "355 First Street, SE, Washington, DC 20003";
addArray[59] = "1750 South Clark St., Arlington, VA 22202";
addArray[60] = "701 Pennsylvania Avenue, SE, Washington, DC 20003";
addArray[61] = "900 18th St. NW, Washington, DC 20006";
addArray[62] = "401 3rd Street, SW, Washington, DC 20024";
addArray[63] = "302 12th St., NW, Washington, DC 20004";
addArray[64] = "2301 I St. NW, Washington, DC 20037";
addArray[65] = "6880 Frontier Drive, Springfield, VA 22150";
addArray[66] = "1900 King Street, Alexandria, VA 22301";
addArray[67] = "Largo Town Center, 9000 Lottsford Road, Largo, MD 20774";
addArray[68] = "600 Maryland Avenue, SW, Washington, DC 20024";
addArray[69] = "1400 I St. NW, Washington, DC 20005";
addArray[70] = "607 13th St. NW, Washington, DC 20005";
addArray[71] = "300 Garrett Morgan Blvd., Landover, MD 20785";
addArray[72] = "2 South Rotary Road, Arlington, VA 22202";
addArray[73] = "1250 South Hayes St., Arlington, VA 22202";
addArray[74] = "700 14th Street, SE, Washington, DC 20003";
addArray[75] = "2400 S. Smith Blvd., Arlington, VA 22202";
addArray[76] = "1850 N. Moore Street, Arlington, VA 22209";
addArray[77] = "1200 Independence Avenue, SW, Washington, DC 20004";
addArray[78] = "192 19th St., SE, Washington, DC 20003";
addArray[79] = "5690 Eisenhower Avenue, Alexandria, VA 22310";
addArray[80] = "701 Pennsylvania Avenue, NW, Washington, DC 20004";
addArray[81] = "700 N. West St., Alexandria, VA 22301";
addArray[82] = "3030 14th St., NW, Washington, DC 20009";
addArray[83] = "1750 South Clark St., Arlington, VA 22202";
addArray[84] = "2400 Eisenhower Avenue, Alexandria, VA 22314";
addArray[85] = "550 Galloway Street, NE, Washington, DC 20011";
addArray[86] = "630 H St. NW, Washington, DC 20001";
addArray[87] = "3700 Georgia Avenue, NW, Washington, DC 20010";
addArray[88] = "2701 Huntington Avenue, Alexandria, VA 22303";
addArray[89] = "1900 King Street, Alexandria, VA 22301";
addArray[90] = "600 Maryland Avenue, SW, Washington, DC 20024";
addArray[91] = "700 M St., NW, Washington, DC 20001 ";
addArray[92] = "2 South Rotary Road, Arlington, VA 22202";
addArray[93] = "1250 South Hayes St., Arlington, VA 22202";
addArray[94] = "2400 S. Smith Blvd., Arlington, VA 22202";
addArray[95] = "1701 8th St., NW, Washington, DC 20001";
addArray[96] = "1240 U Street, NW, Washington, DC 20009";
addArray[97] = "1101 Howard Road, SE, Washington, DC 20020";
addArray[98] = "701 Pennsylvania Avenue, NW, Washington, DC 20004";
addArray[99] = "4704 Old Soper Road, Suitland, MD 20746";
addArray[100] = "4931 Calvert Road, College Park, MD 20740";
addArray[101] = "3030 14th St., NW, Washington, DC 20009";
addArray[102] = "1290 Alabama Avenue, SE, Washington, DC 20020";
addArray[103] = "550 Galloway Street, NE, Washington, DC 20011";
addArray[104] = "630 H St. NW, Washington, DC 20001";
addArray[105] = "3700 Georgia Avenue, NW, Washington, DC 20010";
addArray[106] = "5717 Greenbelt Metro Drive, Greenbelt, MD 20740";
addArray[107] = "600 Maryland Avenue, SW, Washington, DC 20024";
addArray[108] = "700 M St., NW, Washington, DC 20001";
addArray[109] = "200 M Street, SE, Washington, DC 20003";
addArray[110] = "3101 Branch Avenue, Temple Hills, MD 20748";
addArray[111] = "3575 East West Highway, Hyattsville, MD 20782";
addArray[112] = "1701 8th St., NW, Washington, DC 20001";
addArray[113] = "1411 Southern Avenue, Temple Hills, MD 20748";
addArray[114] = "4500 Silver Hill Road, Suitland, MD 20746";
addArray[115] = "1240 U Street, NW, Washington, DC 20009";
addArray[116] = "399 M Street, SW, Washington, DC 20024";
addArray[117] = "2700 Hamilton St., Hyattsville, MD 20782";