function getGraph(url, div, option, button, beschreibung, backset, ururl) {
	$.getJSON(url, function (response) {
		$.plot($(div), response, option);
		backs(button, response, option, div, backset);
		hover(div, beschreibung);
		getback(url, div, option, button, beschreibung, backset, ururl);
	});
}

function getback(url, div, option, button, beschreibung, backset, ururl) {
	$(backset).click(function () {
        getGraph(ururl, div, option, button, beschreibung, backset, ururl);
		$(backset).hide();
		statussponsor = 1;
		statususer = 1;
		statuskampagnen = 1;
    });	
	$(button).hide();
}

function backs(button, data, option, div, backset) {
	$(button).click(function () {
        $.plot($(div), data, option);
		$(button).hide();
    });
	$(div).bind("plotselected", function (event, ranges) {
		// do the zooming
		plot = $.plot($(div), data, $.extend(true, {}, option, {
				xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to },
				yaxis: { min: ranges.yaxis.from, max: ranges.yaxis.to }
			}));
		$(button).show();
		$(backset).show();
	});
}

function hover(div, beschreibung) {
	var previousPoint = null;

	$(div).bind("plothover", function (event, pos, item) {
		$("#x").text(pos.x.toFixed(2));
    	$("#y").text(pos.y.toFixed(2));
    	if (item) {
    		if (previousPoint != item.datapoint) {
     		   	previousPoint = item.datapoint;
                    
        	    $("#tooltip").remove();
        	    var x = item.datapoint[0].toFixed(0),
        	        y = item.datapoint[1].toFixed(0);
                    
         	   showTooltip(item.pageX, item.pageY, y + " "+beschreibung);
			}
		} else {
    		$("#tooltip").remove();
			previousPoint = null;            
    	}
    });
}

function showTooltip(x, y, contents) {
	$('<div id="tooltip">' + contents + '</div>').css( {
		position: 'absolute',
		display: 'none',
		top: y + 5,
		left: x + 5,
		border: '1px solid #fdd',
		padding: '2px', 'background-color': '#fee',
		opacity: 0.80
	}).appendTo("body").fadeIn(200);
}
