lastUpdate = new Date();

Ext.Ajax.request({
   url: live_site + 'ajax/offerupdate.php',
   method:'post',
   success: (function(result, request) {
		try {
   			var data = JSON.parse(result.responseText);
			lastUpdate = Date.parse(data['time']);
		} catch (ex) {
			
		}
   }),
   failure: (function() {
   }),
   params: {}
});

offerUpdateChecker = {
		
    run: function() {
    	
    	Ext.Ajax.request({
		   url: live_site + 'ajax/offerupdate.php',
		   method:'post',
		   success: (function(result, request) {
				try {
		   			var data = JSON.parse(result.responseText);
					var currentUpdate = Date.parse(data['time']);
					if (lastUpdate < currentUpdate ) {
						offerloader.UpdateAlert();
						lastUpdate = currentUpdate;
					}
				} catch (ex) {
					
				}
		   }),
		   failure: (function() {
		   }),
		   params: {}
		});

    },
    interval: 3000 //3 second
    
}

Ext.TaskMgr.start(offerUpdateChecker);

function Offerloader() 
{
	
	this.status = 0;
	
	this.part_no=1;
	this.day=1;
	
	this.Change = offerloader_change;
	
	this.Load = offerloader_load;
	
	this.UpdateAlert = offerloader_update_alert;
	this.UpdateAlertHide = offerloader_update_alert_hide;
	
	this.RenderExtra = offerloader_render_extra;
	this.RenderNextStep = offerloader_render_next_step;
	
	this.Stop = offerloader_stop;
	
}

function offerloader_update_alert() {
	try {
		document.getElementById('offerupdate_alert').style.display = 'block';
	} catch (ex){
		
	}
}

function offerloader_update_alert_hide() {
	try {
		document.getElementById('offerupdate_alert').style.display = 'none';
	} catch (ex){
		
	}
}

function offerloader_stop() {
	
	offertable.Stopped = true;

	offertable.Clear();

}


function offerloader_render_extra() {
	
	if (offertable.RenderStatus > -1) {
		offertable.Render();
		window.setTimeout(offerloader.RenderExtra, 3);	
	} else {
		offertable.RenderFinalize();
		offertable.RemoveLoader();
		betslip.markSelectedBets();
	}
	
}

function offerloader_render_next_step() {
	
	if (offertable.Stopped) return;
	
	if (offertable.RenderStatus > -1) {
		offertable.Render();
		window.setTimeout(offerloader.RenderNextStep, 3);	
	} else {
		offertable.RenderFinalize();
		betslip.markSelectedBets();
		window.setTimeout(offerloader.Load, 30);		
	}
	
}

function offerloader_load() {
	
	if (offertable.Stopped) {
		
		offertable.Stopped = false;
		
	}
	
	offertable.RenderAllBettypes = (selected_contest > -1)?true:false;
	
	offertable.RenderStatus = 0;
	offertable.counterContest = 0;
	offertable.counterBettype = 0;
	offertable.RenderInit();
	
	Ext.Ajax.request({
	   url: live_site + 'ajax/offertable.php',
	   method:'post',
	   success: (function(result, request) {
	   		if ((result.responseText.length > 0) && (result.responseText.indexOf('"contests":[]') == -1)) {

	   			offertable.ImportJSON(result.responseText);
	   			
	   			window.setTimeout(offerloader.RenderNextStep, 3);
	   			
	   			if (selected_contest > -1) offertable.RemoveLoader();

	   		} else {
	   			
	   			offertable.RenderFinalize();
	   			offertable.RenderSpacer();
	   			offertable.RemoveLoader();
	   			betslip.markSelectedBets();
	   			
	   			//	if contest is selected, show all bet types
	   			if (selected_contest > -1) {
	   				
	   				divs = document.getElementById('offertable').getElementsByTagName('div');
	   				for (i=0;i<divs.length;i++) {
						if (divs[i].className  == 'offertable_bettype') {
							divs[i].style.display = 'block';	
						}
					}
	   				
	   			}
	   			
	   		}
	   		
	   }),
	   failure: (function() {
	   }),
	   params: {d: selected_date, p: offerloader.part_no, s: selected_sport, c: selected_contest, lang: language_abbr}
	});
	
	offerloader.part_no++;
	
}

function offerloader_change(day, sport, contest, extraonly) {
	
	this.Stop();
	
	offerloader_update_alert_hide();
	
	document.getElementById('content').style.display = 'none';
	document.getElementById('carousel').style.display = 'none';
	
	document.getElementById('offertable').style.display = 'block';
	
	selected_sport = (sport == null)?-1:sport;
	selected_contest = (contest == null)?-1:contest;
		
	document.getElementById('datepick_' + selected_date).className = 'datepick';
	
	offerloader.part_no=0;

	selected_date = day;
	
	offertable.Clear();
	offertable.RenderLoader();
	
	if (selected_sport == -1) {

		Ext.Ajax.request({
		   url: live_site + 'ajax/sports.php',
		   success: (function(result, request) {
		   		document.getElementById('sports_browse_tree_content').innerHTML = result.responseText;
		   		if (!extraonly) {
		   			try {
		   				spans = document.getElementById('sports_browse_tree_content').getElementsByTagName('span');
   						spans[0].className = 'node_link_active';
		   			} catch (ex) {
		   				
		   			}
		   		}
		   }),
		   failure: (function() {
		   }),
		   params: {d: selected_date, lang: language_abbr},
		   disableCaching: false
		});
		
		Ext.Ajax.request({
		   url: live_site + 'ajax/rules.php',
		   success: (function(result, request) {
		   		betslip.loadRules(result.responseText);
		   }),
		   failure: (function() {
		   }),
		   params: {d:selected_date, lang: language_abbr},
		   disableCaching: false
		});
		
	} else {

   		spans = document.getElementById('sports_browse_tree_content').getElementsByTagName('span');
		spans[0].className = 'node_link';
		
	}

	if (extraonly == true) {
		
		offertable.Stopped = false;
		
		Ext.Ajax.request({
		   url: live_site + 'ajax/content.php',
		   method:'post',
		   success: (function(result, request) {
		   		//document.getElementById('content').style.display = 'block';
		   		document.getElementById('carousel').style.display = 'block';
		   		document.getElementById('content').innerHTML = result.responseText;
		   }),
		   failure: (function() {
		   }),
		   params: {lang: language_abbr, content: 'intro'},
		   disableCaching: false
		});
		
		offertable.RenderStatus = 0;
		offertable.counterContest = 0;
		offertable.counterBettype = 0;
		offertable.RenderInit();
		
		Ext.Ajax.request({
		   url: live_site + 'ajax/offertable.php',
		   method:'post',
		   success: (function(result, request) {
		   		if ((result.responseText.length > 0) && (result.responseText != '{"contests":[]}')) {
		   			offertable.ImportJSON(result.responseText);
		   			window.setTimeout(offerloader.RenderExtra, 3);
		   			offertable.RemoveLoader();
		   		} else {
		   			offertable.RenderSpacer();
		   			offertable.RemoveLoader();
		   		}
		   }),
		   failure: (function() {
		   }),
		   params: {d: selected_date, p: 0, s: 0, c:-1, lang: language_abbr}
		});
		
		return;

	}

	window.setTimeout(offerloader.Load, 100);
		
	document.getElementById('datepick_' + selected_date).className = 'datepick_selected';

}

offerloader = new Offerloader();