﻿/// <reference path="../jquery-1.4.4.js" />

String.prototype.trim = function () {
	return this.replace(/^\s+|\s+$/g, "");
}
String.prototype.trimStart = function () {
	return this.replace(/^\s+/, "");
}
String.prototype.trimEnd = function () {
	return this.replace(/\s+$/, "");
}

function initializeColorbox(pageName) {
	function getChartLink(marketId, runnerId) {
		return "http://uk.site.sports.betfair.com//betting/LoadRunnerInfoAction.do?marketId=" + marketId + "&selectionId=" + runnerId + "&currency=EUR";
	}

	function getMarketLink(marketId) {
		return "http://site.sports.betfair.com/widgets/layouts/marketView.jsp?_localeId=en_GB&_brandId=betfair&_regionId=GBR&dom=betfair.com&origin=MRL&contentDomain=content.betfair.com&ds1=http://uk.site.sports.betfair.com/&ds2=http://au.site.sports.betfair.com/&cdnEnabled=true&cdnAddress=cache.site.sports.betfair.com&zoneVideoEnabled=true#mi=" + marketId + "&ex=1";
	}

	function centerPop(page, w, h) {
		var sw = screen.availWidth;
		var sh = screen.availHeight;
		var dx = sw / 2 - w / 2;
		var dy = sh / 2 - h / 2;
		var hwnd = window.open(page, "popup", "width=" + w + ",height=" + h + ",left=" + dx + ",top=" + dy);
		return (hwnd) ? false : true;
	}

	var timeTracker = new TimeTracker([1000, 5000, 10000, 30000, 60000, 180000])
	var completed = false;

	$("a.icon_stats").live("click", function (data) {
		var $this = $(this);
		var marketId = $this.data("marketId");
		var runnerId = $this.data("runnerId");

		if ($.browser.mozilla) {
			centerPop(getChartLink(marketId, runnerId), 700, 540);
			return false;
		}

		$(this).colorbox({
			href: getChartLink(marketId, runnerId),
			width: "700px",
			height: "540px",
			iframe: true,
			scrolling: false,
			open: true,
			current: "Chart {current} of {total}",
			onOpen: function () {
				// track click event
				_gaq.push(['_trackEvent', pageName, 'click', 'chart']);
			},
			onComplete: function () {
				// if charts were switched from within the colorbox
				if (!completed) {
					timeTracker._recordEndTime();
					var pageTracker = _gaq._getAsyncTracker('');
					timeTracker._track(pageTracker, undefined, 'chart');
				}

				timeTracker._recordStartTime();
				completed = false;
			},
			onCleanup: function () {
				timeTracker._recordEndTime();

				var pageTracker = _gaq._getAsyncTracker('');
				timeTracker._track(pageTracker, undefined, 'chart');
				completed = true;
			}
		});

		return false;
	});

	$("a.icon_game").live("click", function (data) {

		var $this = $(this);
		var marketId = $this.data("marketId");

		if ($.browser.mozilla) {
			centerPop(getMarketLink(marketId), 900, 650);
			return false;
		}

		$(this).colorbox({
			href: getMarketLink(marketId),
			width: "900px",
			height: "640px",
			iframe: true,
			scrolling: false,
			open: true,
			onOpen: function () {
				// track click event
				_gaq.push(['_trackEvent', pageName, 'click', 'market']);
			},
			onComplete: function () {
				// if markets were switched from within the colorbox
				if (!completed) {
					timeTracker._recordEndTime();
					var pageTracker = _gaq._getAsyncTracker('');
					timeTracker._track(pageTracker, undefined, 'market');
				}

				timeTracker._recordStartTime();
				completed = false;
			},
			onCleanup: function () {
				timeTracker._recordEndTime();
				var pageTracker = _gaq._getAsyncTracker('');
				timeTracker._track(pageTracker, undefined, 'market');
				completed = true;
			}
		});

		return false;
	});

	// Set Navigation Key Bindings
	$(document).live("keydown.cbox_arrows", function (e) {
		if ($related.length > 1) {
			if (e.keyCode === 37) {
				e.preventDefault();
				$prev.click();
			} else if (e.keyCode === 39) {
				e.preventDefault();
				$next.click();
			}
		}
	});
}

function getMetaSort(value, isString) {
	if (isString) {
		value = "'" + value + "'";
		//value = '"' + value + '"';
	}
	return '{sortValue: ' + value + '}';
}

function getOddsSort(odds) {
	if (odds == null || odds == '' || odds == 0) return getMetaSort(1001);
	return getMetaSort(odds);
}

function getLocale(value) {
	switch (value) {
		case 'el':
			return '1032';
			break;
		default:
			return '1033';
			break;
	}
}

function getArrowClass(show, up) {
	if (show) {
		if (up) {
			return 'icon_up';
		} else {
			return 'icon_down';
		}
	}
	return '';
}

function getColorClass(value, color) {
	if (value == null || value <= 0 || value == '')
		return '';

	var baseColorClass = '';
	switch (color) {
		case "red":
			baseColorClass = 'cellbg_red';
			break;
		case "green":
			baseColorClass = 'cellbg_green';
			break;
		case "blue":
			baseColorClass = 'cellbg_blue';
			break;
		case "pink":
			baseColorClass = 'cellbg_pink';
			break;
	}

	if (baseColorClass == '')
		return '';

	return baseColorClass + value;
}

function getSpecificColorClass(value, color, colorValue) {
	if (value == null || value == 0) return '';
	return getColorClass(colorValue, color);
}

function getPickColorClass(pick) {
	if (pick == null || pick == '')
		return '';
	return getColorClass(3, "blue");
}

function getSpecificPickColorClass(pick, color, colorValue) {
	if (pick == null || pick == '')
		return '';
	return getColorClass(colorValue, color);
}

function formatPercent(value) {
	return Math.round(value * 100) + '%';
}

function formatVolume(value) {
	// if the value is <= 0
	if (value == null || value == NaN || value <= 0) return '';
	// otherwise
	return '€ ' + addCommas(value);
}

function formatVolumeIndex(value) {
	if (value < 0.01) return '';

	return formatPercent(value);
}

function formatDropPercentage(value) {
	if (value == 1) return '-';
	return formatPercent(value - 1);
}

function addCommas(nStr) {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + '.' + '$2');
	}
	return x1 + x2;
}

function formatTip(value) {
	if (value == null) return '';
	return value;
}
