/* gmaps.js
   some of the code in thils file originated from
   http://www.google.com/apis/maps/documentation/
*/
var map;

// Thanks to Simon Willison for this function
// http://simon.incutio.com/archive/2004/05/26/addLoadEvent
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

// change all marker links to "new window" links
function externalLinks() {
        if (!document.getElementsByTagName) return;
        var anchors = document.getElementsByTagName("a");
        for (var i=0; i<anchors.length; i++) {
                var anchor = anchors[i];
                if (anchor.getAttribute("href") &&
                        anchor.getAttribute("rel") == "external")
                        anchor.target = "_blank";
                }
        }

function ymapInit() {
    // get lat/lng
    var lat_elem = document.getElementById('lat');
    var lng_elem = document.getElementById('lng');
    var map = new YMap(document.getElementById('map'));
    map.addTypeControl();
    map.addZoomLong();
    map.setMapType(YAHOO_MAP_REG);

    if (lat_elem && lng_elem) {
        var lat = parseFloat(lat_elem.innerHTML);
        var lng = parseFloat(lng_elem.innerHTML);
        var pt = addMapOverlay(lat, lng, map);
        map.drawZoomAndCenter(pt, 2);
    }
    else
    {
        var accidents = document.getElementById("accidents");
        for (var x=0; x < accidents.childNodes.length; x++) {
            if (accidents.childNodes[x].tagName == "LI") {
                var lat = parseFloat(accidents.childNodes[x].childNodes[3].innerHTML);
                var lng = parseFloat(accidents.childNodes[x].childNodes[4].innerHTML);
                addMapOverlay(lat, lng, map);
            }
        }
        var mad_lat = 43.049572;
        var mad_lng = -89.403992;
        var pt = new YGeoPoint(mad_lat, mad_lng);
        map.drawZoomAndCenter(pt, 7);
    }
    
}

function addMapOverlay(lt, lg, map_obj) {
    var pt = new YGeoPoint(lt, lg);
    var marker = new YMarker(pt);
    map_obj.addOverlay(marker);
    return pt;
}

// http://www.sitepoint.com/article/rotate-content-with-dhtml
function getElementbyClass(classname){
    var inc=0;
    var accident_array=new Array(); 
    var alltags=document.all? document.all : document.getElementsByTagName("*");
    for (i=0; i<alltags.length; i++){
        if (alltags[i].className==classname)
            accident_array[inc++]=alltags[i];
    }
    return accident_array;
} 

addLoadEvent(ymapInit);
//addLoadEvent(externalLinks);

