$(document).ready(function() {
	var previousPoint = 0;
	var gotoMerchantsPage = function(elements, item) {
		var element = elements[item.dataIndex];
		var merchantUrl = undefined;
		var sid = undefined;
		if (item.seriesIndex == 0 && element.minMerchantItem) {
			merchantUrl = element.minMerchantItem.merchantItemUrl;
			sid = element.minMerchantItem.sid;
		} else if (item.seriesIndex == 1 && element.maxMerchantItem) {
			merchantUrl = element.maxMerchantItem.merchantItemUrl;
			sid = element.maxMerchantItem.sid;
		}
		if (merchantUrl != undefined) {
			$.get("/click?sid=" + sid, null, function(data) {
				var href = document.location.href.replace(/(\?|&)ad=\d+$/, "");
				if (href.indexOf("?") == -1) {
					document.location.href = href + "?ad=" + sid;
				} else {
					document.location.href = href + "&ad=" + sid;
				}
			});
			window.open(merchantUrl, "_blank");
		}
	};
	var showTooltip = function(x, y, label, date, price, elements, item) {
		var element = elements[item.dataIndex];
		var logo = undefined;
		var labelContainer = $("<div>").html(label).css({
			textAlign : "center",
			"float" : "left"
		});
		var priceContainer = $("<div>").html(price).css({
			textAlign : "center",
			fontWeight : "bold",
			"float" : "right"
		});
		var dateContainer = $("<div>").html(date).css({
			textAlign : "center"
		});
		var contentContainer = $("<div>").css({
			width : "150px"
		}).append(labelContainer).append(priceContainer).append($("<div>").css({
			clear : "both"
		})).append(dateContainer);
		if (item.seriesIndex == 0) {
			logo = $("<img>").attr("src", "/logos/" + element.minMerchant.merchantLogo);
		} else if (item.seriesIndex == 1) {
			logo = $("<img>").attr("src", "/logos/" + element.maxMerchant.merchantLogo);
		} else {
			logo = "";
		}
		logo = $("<div>").css({
			textAlign : "center",
			width : "100%",
			paddingTop : "10px"
		}).append(logo);
		$("<div>").attr("id", "tooltip").append(contentContainer).css({
			position : 'absolute',
			display : 'none',
			top : y + 5,
			left : x + 5,
			border : '2px solid #ff9b98',
			padding : '10px',
			'background-color' : '#fff'

		}).append(logo).appendTo("body").fadeIn(200);
	};
	var itemId = $("#item-id").text();
	if (itemId != undefined && itemId != null && itemId != "") {
		$.ajax({
			url : "/resources/charts/" + itemId,
			type : "GET",
			contentType : "",
			datatype : "json",
			success : function(data) {
				if (data && data.chartElement) {
					var minPrices = [];
					var maxPrices = [];
					var elements = data.chartElement;
					for (element in elements) {
						minPrices.push([ Date.parse(elements[element].day.split("T")[0]), elements[element].minPrice ]);
						maxPrices.push([ Date.parse(elements[element].day.split("T")[0]), elements[element].maxPrice ]);
					}
					$.plot($("#pricehistory"), [ {
						data : minPrices,
						label : "En Düşük",
						color : "#9999ff"
					}, {
						data : maxPrices,
						label : "En Yüksek",
						color : "#ff9999"
					} ], {
						xaxis : {
							mode : "time"
						},
						legend : {
							show : true,
							container : $("#price-history-legend"),
							noColumns : 3
						},
						grid : {
							hoverable : true,
							clickable : true
						},
						series : {
							lines : {
								show : true
							},
							points : {
								show : true
							}
						}
					});
					$("#pricehistory").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(2), y = item.datapoint[1].toFixed(2);
								var price = y + " TL";
								var date = new Date();
								date.setTime(parseInt(x));
								date = date.getDate() + "." + (date.getMonth() + 1) + "." + (date.getYear() + 1900);
								$(this).css("cursor", "pointer");
								showTooltip(item.pageX, item.pageY, item.series.label, date, price, elements, item);
							}
						} else {
							$(this).css("cursor", "default");
							$("#tooltip").remove();
							previousPoint = null;
						}
					}).bind("plotclick", function(event, pos, item) {
						gotoMerchantsPage(elements, item);
					});
				} else {
					$("#price-history-container").hide();
					$("a.goto-price-history").parent().parent().hide();
				}
			}
		});
	}
});

