

// this variable will collect the html which will eventually be placed in the side_bar
var side_bar_html = "<table>";
// arrays to hold copies of the markers and html used by the side_bar
// because the function closure trick doesnt work there
var gmarkers = [];

function load() {
    if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));

        // add wheel
        map.addControl(new GLargeMapControl());
        map.enableScrollWheelZoom();
        map.setCenter(new GLatLng(38, -78.50), 7);

        /*************************************************************
                    MAP POINTS
        *************************************************************/
        // Abingdon Stockyard Exchange
        var pAbingdon = new GLatLng(36.686185, -81.983602);
        map.addOverlay(createMarker(pAbingdon,
                                    "Abingdon Stockyard Exchange",
                                     "21488 Vances Mill Rd<br />Abingdon, VA 24211<br />276.628.8613<br />Saturday 10:00 a.m.",
                                    ""));

        // Charlottesville Livestock Market
        var pCharlottesville = new GLatLng(38.018713, -78.466056);
        map.addOverlay(createMarker(pCharlottesville,
                                    "Charlottesville Livestock Market",
                                     "801 Franklin St<br />Charlottesville, VA 22902<br />434.295.4551<br />Saturday 2:00 p.m.",
                                    ""));
		
		// Christiansburg Livestock Market
        var pChristiansburg = new GLatLng(37.135177, -80.391176);
        map.addOverlay(createMarker(pChristiansburg,
                                    "Christiansburg Livestock Market",
                                     "870 Park St<br />Christiansburg, VA 24073<br />540.382.2291<br />Wednesday 1:00 p.m.",
                                    ""));
		
		// Culpeper Agricultural Enterprise
        var pCulpeper = new GLatLng(38.455681, -78.059554);
        map.addOverlay(createMarker(pCulpeper,
                                    "Culpeper Agricultural Enterprise",
                                     "10220 James Monroe Highway<br />Culpeper, VA 22701<br />540.547.2188",
                                    ""));
		
		// Ewing Livestock Market
        var pEwing = new GLatLng(36.637966, -83.433308);
        map.addOverlay(createMarker(pEwing,
                                    "Ewing Livestock Market",
                                     "Highway 58<br />Ewing, VA 24248<br />276.445.4897<br />Saturday",
                                    ""));
		
		// Farmer's Livestock Exchange
        var pWinchester = new GLatLng(39.190616, -78.201777);
        map.addOverlay(createMarker(pWinchester,
                                    "Farmer's Livestock Exchange",
                                     "1995 Northwestern Pike<br />Winchester, VA 22603<br />540.667.1023<br />Monday 1:00 p.m.",
                                    ""));
        
		// Farmer's Livestock Market
        var pTazewell = new GLatLng(37.138357, -81.513357);
        map.addOverlay(createMarker(pTazewell,
                                    "Farmer's Livestock Market",
                                     "21865 The Governor George C. Peery Hwy<br />Tazewell, VA 24651<br />276.988.5501<br />Thursday 6:00 p.m.",
                                    ""));
		
		// Fauquier Livestock Exchange
        var pMarshall = new GLatLng(38.86673, -77.819877);
        map.addOverlay(createMarker(pMarshall,
                                    "Fauquier Livestock Exchange",
                                     "7404 John Marshall Hwy<br />Marshall, VA 20115<br />540.364.1566<br />Tuesday 2:00 p.m.",
                                    ""));
		
		// Fredericksburg Livestock Exchange
        var pFredericksburg = new GLatLng(38.289342, -77.468889);
        map.addOverlay(createMarker(pFredericksburg,
                                    "Fredericksburg Livestock Exchange",
                                     "906 Summit St<br />Fredericksburg, VA 22404<br />540.373.8207<br />Thursday",
                                    ""));
		
		// Lee Farmers Livestock Market
        var pJonesville = new GLatLng(36.688136, -83.110885);
        map.addOverlay(createMarker(pJonesville,
                                    "Lee Farmers Livestock Market",
                                     "Highway 58<br />Jonesville, VA 24263<br />276.346.1943<br />Monday 1:00 p.m.",
                                    ""));
		
		// Lynchburg Livestock Market		
        var pLynchburg = new GLatLng(37.280115, -79.163277);
        map.addOverlay(createMarker(pLynchburg,
                                    "Lynchburg Livestock Market",
                                     "243 Livestock Rd<br />Rustburg, VA 24588<br />434.821.5956<br />Monday 1:00 p.m.",
                                    ""));
		
		// Madison Livestock Market
        var pMadison = new GLatLng(38.30477, -78.187739);
        map.addOverlay(createMarker(pMadison,
                                    "Madison Livestock Market",
                                     "7129 Orange Rd<br />Radiant, VA 22732<br />540.672.2811<br />Saturday 2:00 p.m.",
                                    ""));
		
		// Monterey Livestock Sales
        var pMonterey = new GLatLng(38.395618, -79.593201);
        map.addOverlay(createMarker(pMonterey,
                                    "Monterey Livestock Sales",
                                     "1367 Jackson River Rd<br />Monterey, VA 24465<br />540.499.2718<br />Call for schedule",
                                    ""));
		
		// Narrows Livestock Auction Market
        var pNarrows = new GLatLng(37.345208, -80.825536);
        map.addOverlay(createMarker(pNarrows,
                                    "Narrows Livestock Auction Market",
                                     "114 Stockpen Mountain Rd<br />Narrows, VA 24124<br />540.726.2152<br />Saturday 2:00 p.m.",
                                    ""));
		
		// Orange Livestock Market
        var pOrange = new GLatLng(38.191497, -78.136701);
        map.addOverlay(createMarker(pOrange,
                                    "Orange Livestock Market",
                                     "15415 James Madison Hwy<br />Gordonsville, VA 22942<br />540.672.4688<br />Wednesday 3:00 p.m.",
                                    ""));
		
		// Pulaski Livestock Market
        var pPulaski = new GLatLng(37.09648, -80.691679);
        map.addOverlay(createMarker(pPulaski,
                                    "Pulaski Livestock Market",
                                     "5509 Banks Ave<br />Dublin, VA 24084<br />540.674.5311<br />Friday 2:30 p.m.",
                                    ""));
				
        // Roanoke Hollins Stockyard
        var pRoanoke = new GLatLng(37.360917, -79.923947);
        map.addOverlay(createMarker(pRoanoke,
                                    "Roanoke Hollins Stockyard",
                                     "471 Lee Hwy<br />Roanoke, VA 24019<br />540.992.1112<br />Monday 2:00 p.m.",
                                    "http://rhsy.home.mindspring.com/"));
		
		// Rockingham Livestock Sales
        var pRockingham = new GLatLng(38.425782, -78.887215);
        map.addOverlay(createMarker(pRockingham,
                                    "Rockingham Livestock Sales",
                                     "1820 Dealton Ave<br />Harrisonburg, VA 22801<br />540.434.6765<br />Thursday 2:00 p.m.",
                                    ""));
		
		// Shenandoah Valley Livestock Sales
        var pShenandoah = new GLatLng(38.461112, -78.867187);
        map.addOverlay(createMarker(pShenandoah,
                                    "Shenandoah Valley Livestock Sales",
                                     "1044 Edom Rd<br />Harrisonburg, VA 22802<br />540.434.4482<br />Saturday 12:30 p.m.",
                                    ""));
				
       // Southside Livestock Markets.
        var pBlackstone = new GLatLng(37.112451, -78.020254);
        map.addOverlay(createMarker(pBlackstone,
                                    "Southside Livestock Markets",
                                     "170 Livestock Rd<br />Blackstone, VA 23824<br />434.292.7277<br />Wednesday 3:00 p.m.",
                                    ""));
		
		// Spring Lake Livestock Market
        var pSpringlake = new GLatLng(37.233113, -79.613633);
        map.addOverlay(createMarker(pSpringlake,
                                    "Spring Lake Livestock Market",
                                     "1069 Sickle Ct<br />Moneta, VA 24121<br />540.297.1707<br />Saturday 1:00 p.m.",
                                    ""));
		
		// Staunton Union Stockyards
        var pStaunton = new GLatLng(38.152505, -79.051687);
        map.addOverlay(createMarker(pStaunton,
                                    "Staunton Union Stockyards",
                                     "320 New Hope Rd<br />Staunton, VA 24401<br />540.886.5131<br />Tuesday and Friday 2:00 p.m.",
                                    ""));
		
		// Tri-State Livestock Market
        var pTriState = new GLatLng(36.69352, -82.025914);
        map.addOverlay(createMarker(pTriState,
                                    "Tri-State Livestock Market",
                                     "17455 Sky King Dr<br />Abingdon, VA 24210<br />276.628.5111<br />Friday 9:00 a.m.",
                                    ""));
		
		// Victoria Livestock Market
        var pVictoria = new GLatLng(36.980958, -78.214363);
        map.addOverlay(createMarker(pVictoria,
                                    "Victoria Livestock Market",
                                     "368 KV Rd<br />Victoria, VA 23973<br />804.539.6946<br />Second Saturday 2:00 p.m.",
                                    ""));
		
		// Virginia Carolina Livestock Market
        var pDanville = new GLatLng(36.669937, -79.365576);
        map.addOverlay(createMarker(pDanville,
                                    "Virginia Carolina Livestock Market",
                                     "652 Livestock Rd<br />Danville, VA 24540<br />434.836.1010<br />Thursday 1:30 p.m.",
                                    ""));
		
		// Virginia Cattle Company
        var pRadiant = new GLatLng(38.306075, -78.19064);
        map.addOverlay(createMarker(pRadiant,
                                    "Virginia Cattle Company",
                                     "5866 Orange Rd<br />Radiant, VA 22732<br />540.672.1760<br />Tuesday 10:30 a.m.",
                                    ""));
		
		// Virginia Livestock LLC
        var pFrontRoyal = new GLatLng(38.912045, -78.236905);
        map.addOverlay(createMarker(pFrontRoyal,
                                    "Virginia Livestock LLC",
                                     "2796 Rivermont Dr<br />Front Royal, VA 22630<br />540.635.5511<br />Thursday 1:30 p.m.",
                                    ""));
		
		// Wythe County Livestock Market
        var pWytheCounty = new GLatLng(36.963251, -81.13833);
        map.addOverlay(createMarker(pWytheCounty,
                                    "Wythe County Livestock Exchange",
                                     "3561 Stoney Fork Rd<br />Wytheville, VA 24382<br />276.223.0003<br />Thursday 11:00 a.m.",
									"http://www.wythelivestock.com/"));
										                                                                                                                       
        /*************************************************************
                END MAP POINTS
        *************************************************************/

        // put the assembled side_bar_html contents into the side_bar div
        side_bar_html += "</table>"
        document.getElementById("sidebar").innerHTML = side_bar_html;
    }
}

function createMarker(point, title, desc, url1) {
    var baseIcon = new GIcon();
    baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
    baseIcon.iconSize = new GSize(16, 16);
    baseIcon.shadowSize = new GSize(37, 34);
    baseIcon.iconAnchor = new GPoint(9, 34);
    baseIcon.infoWindowAnchor = new GPoint(9, 2);
    baseIcon.infoShadowAnchor = new GPoint(18, 25);

    var cIcon = new GIcon(baseIcon);
    cIcon.image = "images/marker.png";

    // Set up our GMarkerOptions object  
    markerOptions = { icon: cIcon };
    var marker = new GMarker(point, markerOptions);
    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml("<div style='font-size:.8em;'><h5>" + title + "</h5>" + desc + "<br /><a target='_blank' href='" + url1 + "'>" + url1 + "</a></div>");
    }
    );

    // add a line to the side_bar html
    gmarkers.push(marker);
    //alert(gmarkers.length);
    if (gmarkers.length % 2) {
        side_bar_html += '<tr><td class="alt"><a href="javascript:myclick(' + (gmarkers.length - 1) + ')">' + title + '</a></td></tr>';
    }
    else {
        side_bar_html += '<tr><td class="reg"><a href="javascript:myclick(' + (gmarkers.length - 1) + ')">' + title + '</a></td></tr>';
    }
    
    return marker;
}

// This function picks up the click and opens the corresponding info window
function myclick(i) {
    GEvent.trigger(gmarkers[i], "click");
}
