
function rdChartLoad(imgChart) {
	//Does this chart support drill-down?
	if (imgChart.src.indexOf("rdDrillDownID=")!=-1) { 
	    var sDrilldownID = imgChart.src
	    sDrilldownID = sDrilldownID.substring(sDrilldownID.indexOf("rdDrillDownID=") + 14)
	    sDrilldownID = sDrilldownID.substring(0,sDrilldownID.indexOf("&"))
		rdMakeDrilldownAfterBodyLoad(sDrilldownID)
	}
	if (imgChart.src.indexOf("rdResizer=")!=-1) { 
        rdInitResizer(imgChart)
	}
}

function rdChartError(imgChart) {
	if (imgChart.parentNode.tagName != "A") {
		parentChart = imgChart.parentNode
		//Create a link pointing to the error page.
		var aLink = document.createElement("A")
		aLink.href = imgChart.src + "&rdChartDebug=True"
		//Make a new IMG inside of the anchor that points to the error GIF.
		var imgError = document.createElement("IMG")
		imgError.src = "rdTemplate/rdChartError.gif"
		aLink.appendChild(imgError)
		parentChart.appendChild(aLink)
		//Remove the chart image.
		parentChart.removeChild(imgChart)
	}
}

function rdMakeDrilldownAfterBodyLoad(sDrilldownID) {
	if (document.rdBodyLoaded) {
		rdLoadChartMap(sDrilldownID)
	} else {
		setTimeout("rdMakeDrilldownAfterBodyLoad('" + sDrilldownID + "')", 1000)
	}
}

function rdLoadChartMap(sDrilldownID) {
	//Create an IFrame control that will get the image map.
	var fraImageMap=document.getElementById(sDrilldownID)
	if (!fraImageMap) {
	    fraImageMap=document.createElement("IFRAME");
	    fraImageMap.id = sDrilldownID
	}
	fraImageMap.height = 0; fraImageMap.width = 0
	//Some browsers like onload, others onreadystatechange. 
	fraImageMap.onload =             new Function("chartLoadImageMap('" + sDrilldownID + "')")
	fraImageMap.onreadystatechange = new Function("chartLoadImageMap('" + sDrilldownID + "')")
	fraImageMap.src = "rdChart.aspx?rdDrillDownID=" + sDrilldownID + "&" + Math.floor(Math.random() * 100000)
	if (!fraImageMap.parentNode) {
	    document.body.appendChild(fraImageMap)
	}
}

function chartLoadImageMap(sDrilldownID) {
	var fraImageMap = document.getElementById(sDrilldownID)
	if (fraImageMap.readyState=="loading") {
	    return
	}
	
	var sAreaHtml
	if (document.getElementById(sDrilldownID).contentWindow) {
		//IE, Mozilla
		sAreaHtml = fraImageMap.contentWindow.window.document.firstChild.innerHTML
	} else {
		if (fraImageMap.document.firstChild.firstChild.tagName=="MAP") {
			//Opera
			sAreaHtml = fraImageMap.document.firstChild.firstChild.innerHTML
		} else {
			//Safari
			sAreaHtml = fraImageMap.document.firstChild.firstChild.firstChild.innerHTML
		}
	}
	var map = document.getElementById(sDrilldownID + "_map")
	if (!map) {
	    map = document.createElement("MAP")
	    map.id = sDrilldownID + "_map"
	}
	map.name = sDrilldownID
	map.innerHTML = sAreaHtml
	document.body.appendChild(map)	
	fraImageMap.style.display = "none"
	
	//For mozilla and the Resizer, refresh the USEMAP attribute.
    var eleCharts = document.getElementsByTagName("IMG")
    for (var i=eleCharts.length-1; i > -1; i--) {
        var eleChart = eleCharts[i]
        if (eleChart.src.indexOf(sDrilldownID) != -1) {
            eleChart.useMap = "#" + sDrilldownID
        }
    }

}