// Initialize browser side Javascript controls
function initJsChartViewer()
{
    if (!window.JsChartViewer)
        return;

	JsChartViewer.updatingMsg = '<div style="padding:0 8 0 6;background-color:#FFFFCC;color:#000000;border:1px solid #000000"><table><tr><td><img src="/chart/chartviewer/wait.gif"></td><td style="font-size:8pt;font-weight:bold;font-family:Verdana">Aktualisiere ...</td></tr></table></div>';

	JsChartViewer.serverErrorMsg = '<div style="font-family:Arial; font-size:12px; padding:5px; background:#ffd0d0; border:1px solid black; max-width:400px; overflow:hidden; text-align:center"><b>Chart konnte nicht aktualisiert werden.</b><br>Fehler %errCode </div>';	

    var viewer = JsChartViewer.get('chartimage');

    connectViewerMouseUsage('ViewerMouseUsage1', viewer);

    if (JsChartViewer.canSupportPartialUpdate())
    {
        viewer.attachHandler("ViewPortChanged", viewer.partialUpdate);
    }
}
// Connect the mouse usage buttons to the Javascript ChartViewer
function connectViewerMouseUsage(controlId, viewer)
{
    // A cross browser utility to get the object by id.
    function getObj(id) { return document.getElementById(id); }

    // Set the button styles (colors) based on the current mouse usage mode of the Javascript ChartViewer
    function syncButtons()
    {
//        getObj(controlId + "_Default").className = (viewer.getMouseUsage() == JsChartViewer.Default) ?
//            "chartPushButton chartPushButtonSelected" : "chartPushButton";
		if (getObj(controlId + "_Scroll")) {
        	getObj(controlId + "_Scroll").className = (viewer.getMouseUsage() == JsChartViewer.Scroll) ?
            	"chartPushButton chartPushButtonSelected" : "chartPushButton";
		}
		if (getObj(controlId + "_ZoomIn")) {
        	getObj(controlId + "_ZoomIn").className = (viewer.getMouseUsage() == JsChartViewer.ZoomIn) ?
            	"chartPushButton chartPushButtonSelected" : "chartPushButton";
		}
		if (getObj(controlId + "_ZoomOut")) {
        	getObj(controlId + "_ZoomOut").className = (viewer.getMouseUsage() == JsChartViewer.ZoomOut) ?
            	"chartPushButton chartPushButtonSelected" : "chartPushButton";
		}
    }
    function doAfterUpdate() 
    {
        // aktuellen Zoom-Button setzen 
        syncButtons();
        // Zeitangaben in Zeitraum-Felder setzen
        getObj('idstring').value = viewer.getCustomAttr('idstring');
        getObj('start').value = viewer.getCustomAttr('displayStart');
        getObj('end').value = viewer.getCustomAttr('displayEnd');

        if (getObj('long_link')) {		
            getObj('long_link').href = getObj('long_link').href.replace(/&start=[^&]+/, "");
            getObj('long_link').href = getObj('long_link').href.replace(/&end=[^&]+/, "");
            getObj('long_link').href = getObj('long_link').href.replace(/&t=[^&]+/, "");
            getObj('long_link').href = getObj('long_link').href + "&t=free&start="+getObj('start').value + "&end="+getObj('end').value;
        }
        if (getObj('admin_link_short')) {
            getObj('admin_link_short').href = "/z=" + getObj('idstring').value;
        }
        if (getObj('admin_link_long')) {
            getObj('admin_link_long').href = getObj('long_link').href;
        }

        getObj('freetimefields').style.display = "block";
        getObj('freetimebr').style.display = "block";
        setTimeFree();

    	// reiterzeile inaktiv setzen
        getObj("cr1intraday").className = "ARnav";
        getObj("cr2intraday").className = "ARnav";
        getObj("cr1week").className = "ARnav";
        getObj("cr2week").className = "ARnav";
        getObj("cr1month").className = "ARnav";
        getObj("cr2month").className = "ARnav";
        getObj("cr1quarter").className = "ARnav";
        getObj("cr2quarter").className = "ARnav";
        getObj("cr1year").className = "ARnav";
        getObj("cr2year").className = "ARnav";
        getObj("cr13years").className = "ARnav";
        getObj("cr23years").className = "ARnav";
        getObj("cr1all").className = "ARnav";
        getObj("cr2all").className = "ARnav";
    }
    syncButtons();

    // Run syncButtons whenever the Javascript ChartViewer is updated
    viewer.attachHandler("PostUpdate", doAfterUpdate);

    // Set the Javascript ChartViewer mouse usage mode if a button is clicked.
//    getObj(controlId + "_Default").onclick = function() { viewer.setMouseUsage(JsChartViewer.Default); syncButtons(); }
	if (getObj(controlId + "_Scroll")) {
    	getObj(controlId + "_Scroll").onclick = function() { viewer.setMouseUsage(JsChartViewer.Scroll); syncButtons(); }
	}
	if (getObj(controlId + "_ZoomIn")) {
    	getObj(controlId + "_ZoomIn").onclick = function() { viewer.setMouseUsage(JsChartViewer.ZoomIn); syncButtons(); }
	}
	if (getObj(controlId + "_ZoomOut")) {
    	getObj(controlId + "_ZoomOut").onclick = function() { viewer.setMouseUsage(JsChartViewer.ZoomOut); syncButtons(); }
	}
}
