$.namespace("sb.delta");

var id;		//league id
var tid;	//team id
var ev;		//event update id
var mk;		//market update id
var vm;		//view mode
var vt;		//view type
var lang;	//language code
var disp;	//top 'n' event id

var fetchRate = 6000;
var repaintRate = 30000;

sb.delta.initDeltaFetcher = function() {
	$.timer(fetchRate, function(timer){
		sb.delta.fetchDelta(timer);
	});
	
	$.timer(repaintRate, function(timer){
		sb.delta.repaintCellChanges();
	});
};

sb.delta.fetchDelta = function(timer) {
	if ($("#dashboard-fixture").html() != null ||
		$("#daily-fixture").html() != null ||
		$("#inner-fixture").html() != null) {
		
		var matchurl = host + "matchdelta.jspa?jsoncallback=?";
		var param = { id: id, tid: tid, ev: ev, mk: mk, vt: vt, lang: lang, disp: disp };
		
		$.getJSON(matchurl, param,
			function(data, status) {
				var $dashboard = $("#dashboard-fixture");
				var $inner = $("#daily-fixture");
				
				if ($inner.html() == null)
					$inner = $("#inner-fixture");
				
				sb.delta.processDelta(data, $dashboard, $inner);
			}
		);
	}
	
	if ($("#dashboard-live").html() != null ||
		$("#inner-live").html() != null) {
		
		var liveurl = host + "livedelta.jspa?jsoncallback=?";
		var param = { ev: ev, mk: mk, vm: vm, lang: lang };
		
		$.getJSON(liveurl, param,
			function(data, status) {
				var $dashboard = $("#dashboard-live");
				var $inner = $("#inner-live");
				
				sb.delta.processDelta(data, $dashboard, $inner);
			}
		);
	}
};

sb.delta.processDelta = function(data, dashboard, inner) {
	ev = data.ev;
	mk = data.mk;
	
	var jsondata = JSON.parse(data.data);
	var container = (dashboard.html() == null ? inner : dashboard);
	
	if (jsondata != undefined) {
		for (var i = 0; i < jsondata.length; i++) {
			var update = jsondata[i];
			var row = $("#EVENT_" + update.id, container);
			
			if (row.length > 0) {
				row.replaceWith(update.delta);
			} else {
				sb.index.renderMatchFixture();
				sb.index.renderLiveFixture();
				
				if (typeof dflag != undefined)
					sb.index.renderDailyFixture(vt);
				
				break;
			}
		}
	}
};

sb.delta.repaintCellChanges = function() {
	var updCell = null;
	
	updCell = $(".highlightCell3");
	updCell.removeClass("highlightCell3");
	
	updCell = $(".highlightCell2");
	updCell.addClass("highlightCell3");
	updCell.removeClass("highlightCell2");
	
	updCell = $(".highlightCell1");
	updCell.addClass("highlightCell2");
	updCell.removeClass("highlightCell1");
	
	updCell = $(".highlightCell");
	updCell.addClass("highlightCell1");
	updCell.removeClass("highlightCell");
	
	
	var oddsDiv = null;
	
	oddsDiv = $(".oddsUpL1");
	oddsDiv.removeClass("oddsUpL1");
	oddsDiv = $(".oddsDownL1");
	oddsDiv.removeClass("oddsDownL1");
	
	oddsDiv = $(".oddsUpR1");
	oddsDiv.removeClass("oddsUpR1");
	oddsDiv = $(".oddsDownR1");
	oddsDiv.removeClass("oddsDownR1");
	
	oddsDiv = $(".oddsUpL");
	oddsDiv.addClass("oddsUpL1");
	oddsDiv.removeClass("oddsUpL");
	oddsDiv = $(".oddsDownL");
	oddsDiv.addClass("oddsDownL1");
	oddsDiv.removeClass("oddsDownL");
	
	oddsDiv = $(".oddsUpR");
	oddsDiv.addClass("oddsUpR1");
	oddsDiv.removeClass("oddsUpR");
	oddsDiv = $(".oddsDownR");
	oddsDiv.addClass("oddsDownR1");
	oddsDiv.removeClass("oddsDownR");
};

function hoverRow(row) {
	var prevName = row.className;
	
	row.className = prevName + " rowHover";
	row.onmouseout = function() {
		row.className = prevName.replace(/rowHover/g, "");
	}
}

function visitOperator(oprCode) {
	var url;
	
	if (oprCode == 'SBO')
		url = "http://www.sbobet.com/default.aspx?lang=en&p=sport";
	else if (oprCode == '12B')
		url = "http://www.12biying.com/92032323/sportsbook/en/index.aspx";
	else if (oprCode == '188')
		url = "http://www.188bet.com/en-gb?vendorid=6396&vendorType=3";
	else if (oprCode == 'PIN')
		url = "http://affiliates.pinnaclesports.com/processing/clickthrgh.asp?btag=a_4888b_1238";
	
	window.open(url, "_blank");
}
