var root_ = '';
/* WINDOWS */
function createWindow(){
	var window_box = $(
	"<div class='window_'>"+
		"<div class='window_top_'>"+
			"<div class='window_top_left_' ></div>"+
			"<div class='window_top_center_' >"+
				"<div id='window_windowClose_' class='window_windowClose_'></div>"+
				//"<div class='window_windowMin'></div>"+
			"</div>"+
			"<div class='window_top_right_' ></div>"+
		"</div>"+
		"<div class='window_middle_' >"+
			"<div class='window_middle_top_'></div>"+
			//"<div class='window_middle_left_' ></div>"+
			"<div class='window_middle_content_' >"+
			"</div>"+
			//"<div class='window_middle_right_' ></div>"+
		"</div>"+
		"<div class='window_bottom_'>"+
			"<div class='window_bottom_left_' ></div>"+
			"<div class='window_bottom_center_' ></div>"+
			"<div class='window_bottom_right_' ></div>"+
		"</div>"+
	"</div>" )
	.appendTo(document.body)
	.Resizable({
		minWidth: 	700,
		minHeight: 	500,
		maxWidth: 	800,
		maxHeight: 	600,
		dragHandle: '.window_ .window_top_',
		handlers: {
			se: '#windowResize'
		}
	});
}

/* 
 * SWEDISH 
 * 
 */
function initialization(option){ // option: euro_offer, option: euro_results 
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_initialization','value':option}, function(data){		
		$('#menu_').append(data); // automatic function recalls
	});
}

function setSwedishHorseWindowSelecttion(race_track,race_type,race_date,race_number,id_horse){
	$('.window_').animate({ "height": "show", "opacity": "show" }, "slow" );
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_horseWindowSelectionOptions','value[]':[race_type,race_date,race_number,race_track,id_horse]}, function(data){
 		if(data.length >0) {	$('.window_ .window_middle_top_').html(data); 	}
	});
}

function setSwedishHorse(race_track,race_type,race_date,race_number,id_horse){ // horses, jockeys
	if(!ajax_window){
		var offset = 25;
		var scrollPos = getScrollXY();
		$('.window_').css('top',scrollPos[1]+offset).css('left',offset);
		$('.window_').animate({ "height": "show", "opacity": "show" }, "slow" );
	}
	$('.window_ .window_middle_content_').html(createPreloader());// AJAX - preloader
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_horses','value':id_horse}, function(data){
 		if(data.length >0) {	
 			// update main content
 			$('.window_ .window_middle_content_').html(data); 	
 			// update select options
 			setSwedishHorseWindowSelecttion(race_track,race_type,race_date,race_number,id_horse);
 			// highlight selected
 			$('.window_ .window_top_center_ #horse option').each(function(){ 	if($(this).val() == id_horse){ $(this).attr('selected','selected'); }});	
 		}
	});
}

function setSwedishDriver(race_type,race_date,race_number,id_driver){
	$('.window_').animate({ "height": "show", "opacity": "show" }, "slow" );
	$('.window_ .window_middle_content_').html( "Loading..." );    // AJAX - preloader
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_driver','value':id_driver}, function(data){
 		if(data.length >0) {	$('.window_ .window_middle_content_').html(data); 	}
	});
}

function setSwedishTrainer(race_type,race_date,race_number,id_trainer){
	$('.window_').animate({ "height": "show", "opacity": "show" }, "slow" );
	$('.window_ .window_middle_content_').html( "Loading..." );    // AJAX - preloader
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_trainer','value':id_trainer}, function(data){ 		if(data.length >0) {	$('.window_ .window_middle_content_').html(data); 	}
		if(data.length >0) {	$('.window_ .window_middle_content_').html(data); 	}
	});
}

function changeSwedishWindowSelect(option,id){
	var ids = id.split('_'); // horse, driver, trainer
	if(option == 1){
		setSwedishHorse(set_race_track,set_race_type,set_race_date,set_race_number,ids[0]); 
	} else if(option == 2){
		setSwedishDriver(set_race_type,set_race_date,set_race_number,ids[1]);
	} else if(option == 3){
		setSwedishTrainer(set_race_type,set_race_date,set_race_number,ids[2]);
	}
}

function reCalculateWindowsTriggers(){
	// CREATE TRIGGERS FOR AJAX RESPONSE WINDOW
	$('#races_ .horse_trigger_').each(function(){
		$(this).bind( 'click' , function (){
			var args = $(this).parent().attr("rel").split("_");	
				if( args[0]=="swedish" && args[1]=="horses" ){
					setSwedishHorse(args[2],args[3],args[4],args[5],args[6]);
				}
				ajax_window = true;
		});
	});
	
	// METHOD OF CLOSING THE WINDOW
	$('#window_windowClose_').bind(	'click', function(){
			$('.window_').animate({ "height": "hide", "opacity": "hide" }, "slow" );
			ajax_window = false;
	});
}
/*
var settings = {};  
function getSettings(element){
	
} 
function setSettings(element,value){
	var settings = {
			race_type: 'v75',
			race_date: '2008-03-15',
			race_number: 4,
			set_show_mode: 1
		};
	jQuery.extend(settings,{element:value});
}*/

var set_race_type;
var set_race_date;
var set_race_number;
var set_show_mode;
var set_race_track;
var coupon;

var ajax_window = false;
var betting = true; 
var tooltips = true;
var show_mode = 1;
var HB = false;


function createCallendar(race_month, race_year){
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_racingDays','value[]':[race_year,race_month]}, function(data){
 	//if(data.length >0){ 
		$('#menu_callendar_').html( buildCallendar((race_month-1), race_year, data.split("_"), false)).show();//animate({"height": "show", "opacity": "show" }, "slow");
		// highlight current Date
		var date = new Date();
		if(set_race_date){
			var d = set_race_date.split('-');	date = new Date(d[0],(d[1]-1),d[2]);
		}
		if((race_month == date.getMonth()+1) && (race_year == date.getFullYear()))		$("#callendar_ .days[rel="+date.getDate()+"]").addClass('chosen_day'); 
 	//}	
	});
}

/* Szczegoly wyscigu -> lista koni bioracych w nim udzial */
function setRace(race_track,race_type,race_date,race_number,show_mode){	
	// AJAX 
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_race','value[]':[race_type,race_date,race_number,race_track,show_mode]}, function(data){
 		if(data.length >0){ 
 			
 			$('#races_').html(data);			
 			set_race_number = race_number;
 			reCalculateWindowsTriggers();
 			 			
			if(betting){
				// bet triggers
				$('#races_ .addbet_trigger_').bind('click',function(){ /*.unbind('click')*/
					if(betting_lock_) return;
					var rel = $(this).parent().attr('rel').split('_'); // {$track}_{$type}_{$date}_{$race_number}_{$horse['horse_id']}' 
					if(!$('#coupon_reserve_').is(':checked')?($(this).parent().hasClass('menu_race_track_selected')||$(this).parent().hasClass('mpg_on')):$(this).html().match(/[0-9]{1,2}[AB]{1}/)){
						removeBet( rel[2], rel[3], rel[4], rel[5], rel[6], rel[7] , false);
					} else {
						addBet( rel[2], rel[3], rel[4], rel[5], rel[6], rel[7] , false);
					}  
				});
				
				// TODO: przekazanie stawki do PHP 				
				var HBtypes_ = Array('V75','V64','V65','V5','V4');
				if(HB && HBtypes_.in_array(race_type))	
					buildHBCoupon(race_track,race_type,race_date,race_number);
				else
					buildCoupon(race_track,race_type,race_date,race_number);
			} 
			
			// triggers
			race_arrows_triggers();
			
			// tooltips 
			if(tooltips) $('#races_ .horses_table_ .block_row_cols_title').each(function(){$(this).tooltip($(this).attr('title'));});
			if(tooltips) $('#race_tips').each(function(){$(this).tooltip($(this).attr('title'));});
			// Update 'Window' if opened during 'type/track' change
			if(ajax_window){
				// First horse in a list
				var horse_rel = $('#races_ .block_ .block_content_ .horses_table_ .block_row_').attr("rel").split("_");
				setSwedishHorse( race_track, race_type, race_date, race_number, horse_rel[6] );
			}
			track_lock 	= false;
			type_lock 	= false;
			number_lock = false;
 		}
	});
	
	var x = race_date.split('-');
	$("#callendar_ .days").each(function(){ 
		if( $(this).attr("rel") == x[2] ){ 		$(this).addClass("chosen_day"); 
		} else if($(this).hasClass("chosen_day"))	$(this).removeClass("chosen_day"); 
	})
	
}

function race_arrows_triggers(){
	//left
	var clss = 'top';
	if($('.menu_race_numbers_ .menu_race_numbers_bottom .menu_race_number_ready').length > 0){
		clss = 'bottom';
	}
	$('#race_arrows .race_previous_arrow').bind('click',function(){	
		//window.alert($('#menu_types_selection_ .menu_race_numbers_bottom .menu_race_number_ready').html());
		if(parseInt(set_race_number) > $('#menu_types_selection_ .menu_race_numbers_'+clss+' .menu_race_number_ready').html()){ 	
			$('.menu_race_numbers_'+clss+' .menu_race_number_ready[rel='+set_race_track+'_'+set_race_type+'_'+set_race_date+'_'+(parseInt(set_race_number)-1)+']').click();	
		} 
	});
	//right
	$('#race_arrows .race_next_arrow').bind('click',function(){ 	
		if(parseInt(set_race_number) < $('#menu_types_selection_ .menu_race_numbers_ .menu_race_numbers_'+clss+' .menu_race_number_ready:last').html()){ 
			$('.menu_race_numbers_'+clss+' .menu_race_number_ready[rel='+set_race_track+'_'+set_race_type+'_'+set_race_date+'_'+(parseInt(set_race_number)+1)+']').click(); 	
		} 
	});
	// hide
	if(parseInt(set_race_number) >= $('#menu_types_selection_ .menu_race_numbers_ .menu_race_numbers_'+clss+' .menu_race_number_ready:last').html())
		$('#race_arrows .race_next_arrow').hide();
	if(parseInt(set_race_number) <= $('#menu_types_selection_ .menu_race_numbers_ .menu_race_numbers_'+clss+' .menu_race_number_ready').html())
		$('#race_arrows .race_previous_arrow').hide();
}

var track_lock = false;
var type_lock = false;
var number_lock = false;

function set_race_triggers(date){
	
	// tracks
	$('#menu_race_tracks_ .menu_race_track_').unbind('click').bind('click', function(){				
		if(!track_lock){
			var track = $(this).attr('rel');
			changeRaces(date,track,false,false);
			$("#races_").html(createPreloader());  $("#coupon_").html(createPreloader());
			track_lock = true;
		}
	});
	$('#menu_types_selection2_ .menu_race_track_').unbind('click').bind('click', function(){				
		if(!track_lock){
			var track = $(this).attr('rel');
			changeRaces(date,track,false,false);
			$("#races_").html(createPreloader());  $("#coupon_").html(createPreloader());
			track_lock = true;
		}
	});
	
	// types
	$('#menu_race_types_ .menu_race_type_').unbind('click').bind('click', function(){
		if(!type_lock){
			var options = $(this).attr('rel').split("_");
			changeRaces(date,options[0],options[1],false);
			$("#races_").html(createPreloader());  $("#coupon_").html(createPreloader());
			type_lock = true;
		}
	});
	$('#menu_types_selection2_ .menu_race_type_').unbind('click').bind('click', function(){
		if(!type_lock){
			var options = $(this).attr('rel').split("_");
			changeRaces(date,options[0],options[1],false);
			$("#races_").html(createPreloader());  $("#coupon_").html(createPreloader());
			type_lock = true;
		}
	});
	
	// numbers
	$('#menu_race_numbers_ .menu_race_number_ready').unbind('click').bind( 'click' , function(){ // menu_types_selection2_
		if(!number_lock){
			var options = $(this).attr('rel').split('_');
			changeRaces(date,options[0],options[1],options[3]);
			$("#races_").html(createPreloader());  
			var types_ = Array('V75','V64','V65','V5','V4','DD','LD');
			if(!types_.in_array(options[1])){	
				$("#coupon_").html(createPreloader());
			}
			number_lock = true;
		}
	});
	$('#menu_types_selection2_ .menu_race_number_ready').unbind('click').bind( 'click' , function(){ // menu_types_selection2_
		if(!number_lock){
			var options = $(this).attr('rel').split('_');
			changeRaces(date,options[0],options[1],options[3]);
			$("#races_").html(createPreloader()); $("#coupon_").html(createPreloader());
			number_lock = true;
		}
	});	
	
	// tooltips
	if(tooltips){
		$('#menu_race_types_ .menu_race_type_').each(function(){$(this).tooltip($(this).attr('title'));});
	}
}

/*
 * Tooltip
 * 
 */
$(document).ready(function(){
	$("<div id='tooltip' class='tooltip' style='" +
		"position: absolute;  " +
		"z-index: 9999; " +
		"max-width: 550px; " +
		//"height: 100px; " +
		"background-color: #DDD;" +
		//"left: 50px; top: 50px;" +
		"border: 1px solid black;'>" +
		"</div>").appendTo(document.body).hide();
});

jQuery.fn.extend({
	tooltip: function(text) {
		var t_out;
		$(this).hover(function(){
			var x = $(this);
			$(this).attr('title','');
			t_out = setTimeout(function(){
				t_open = true;
				if(t_open && text){
					var l = $(x).offset().left;
			    	var t = $(x).offset().top + $(x).height() + 5;
					$('#tooltip').html(text);
					if(l>0 && t>0) // patch: gdy szybko klika sie w tory i w trakcie przeladowania pobieral 0`owe dlugosci i wyswietlal w lewym gornym rogu.
						$('#tooltip').css('left',l).css('top',t).show();
				}
			},750);
	    },function(){
	    	t_open = false;
	    	clearTimeout(t_out);
	    		$('#tooltip').hide();
	    });
	}
});
var t_open = false;
var autocorrect = false;

function changeRaces(date,track,type,race){
	//window.alert(date+' '+track+' '+type+' '+race);
	autocorrect = false;	
	if(date){
		if(!track){
			track = $('#menu_race_tracks_ .menu_race_track_').attr('rel'); 
			autocorrect = true;
		}
		if(track){
			set_race_track  = track;
			$( '#menu_race_types_' ).html( $('.race_track_' + track ).html() );
			// Highlight
			$('.menu_race_track_').removeClass('menu_race_track_selected');
			$('#menu_race_tracks_ .menu_race_track_[rel='+track+']').addClass('menu_race_track_selected');
			$('#menu_types_selection2_ .menu_race_track_[rel='+track+']').addClass('menu_race_track_selected');
			// Show 
			$( '#menu_types_selection2_' ).show();//animate({"height": "show", "opacity": "show" }, "slow");
			$( '#menu_race_tracks_' ).show();//animate({"height": "show", "opacity": "show" }, "slow");
			$( '#menu_race_types_' ).show();//animate({"height": "show", "opacity": "show" }, "slow");
			if(!type){
				var x = $('#menu_race_types_ .menu_race_type_').attr('rel').split("_");
				type = x[1];  
				autocorrect = true;
			}
			if(type){
				set_race_type	= type;
				$('#menu_race_numbers_').html( $( '.' + track + '_' + type ).html() );
				// Highlight
				var types_ = Array('V75','V64','V65');
				for(t in types_){	
					if($('#menu_race_types_ .menu_race_type_').hasClass('menu_race_type_selected_'+types_[t]))	$('#menu_race_types_ .menu_race_type_').removeClass('menu_race_type_selected_'+types_[t]);	
					if($('#menu_types_selection2_ .menu_race_type_').hasClass('menu_race_type_selected_'+types_[t]))	$('#menu_types_selection2_ .menu_race_type_').removeClass('menu_race_type_selected_'+types_[t]);
				}
				if($('.menu_race_type_').hasClass('menu_race_type_selected'))	$('.menu_race_type_').removeClass('menu_race_type_selected');
				if(!types_.in_array(type)){	
					$('#menu_race_types_ .menu_race_type_[rel='+track+'_'+type+']').addClass('menu_race_type_selected');
					$('#menu_types_selection2_ .menu_race_type_[rel='+track+'_'+type+']').addClass('menu_race_type_selected');
				} else { 
					$('#menu_race_types_ .menu_race_type_[rel='+track+'_'+type+']').addClass('menu_race_type_selected_'+type);
					$('#menu_types_selection2_ .menu_race_type_[rel='+track+'_'+type+']').addClass('menu_race_type_selected_'+type);
				}	
				
				// highlight all in section_2 -> next version
				$('#menu_types_selection2_ .menu_race_type_').each(function(){
					var attr = $(this).attr('rel').split('_');
					if(types_.in_array(attr[1])){	
						var color = (attr[1]=='V75'?'yellow':(attr[1]=='V65'?'red':'orange'));
						$(this).css('border','1px solid '+color);
					}
				});
				// Position
				if($('#menu_race_numbers_ .menu_race_numbers_bottom .menu_race_number_ready').length > 0)
						$('#menu_race_numbers_ .menu_race_numbers_top_container').css('left', $('.menu_race_numbers_ .menu_race_numbers_bottom .menu_race_number_ready').offset().left - $('.menu_race_numbers_ .menu_race_numbers_bottom').offset().left );
				$('#menu_race_numbers_').css('visibility','visible');
				// Show
				$('#menu_race_numbers_').show();//animate({"height": "show", "opacity": "show" }, "slow");
				if(!race){ //automatic update
					var x  = $('#menu_race_numbers_ .menu_race_number_ready').attr('rel').split("_");
					race = x[3];  
					autocorrect = true;
				} 
				if(race){
					set_race_number = race;
					if(autocorrect){	
						checkRace( track, type, date);
					} else {
						setRace( track, type, date, race , show_mode);
						// highlight the current option
						$('.menu_race_number_ready').removeClass('menu_race_number_checked');
						$('#menu_race_numbers_ .menu_race_number_ready[rel='+track+'_'+type+'_'+date+'_'+race+']').addClass('menu_race_number_checked');
						$('#menu_types_selection2_ .menu_race_number_ready[rel='+track+'_'+type+'_'+date+'_'+race+']').addClass('menu_race_number_checked');
					}
					// patch
					if($('#menu_types_selection_ #menu_race_numbers_ .menu_race_numbers_bottom .menu_race_number_ready').length > 0 )
						$('#menu_types_selection_ #menu_race_numbers_ .menu_race_numbers_top_container').css('left', $('.menu_race_numbers_ .menu_race_numbers_bottom .menu_race_number_ready').offset().left - $('.menu_race_numbers_ .menu_race_numbers_bottom').offset().left );
				} 
			}
		}
		set_race_triggers(date);
	}
}

function checkRace(track, type, date){
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_checkrace','value[]':[track, type, date]}, function(data){
		if(data.length >0){
			var race = data;
			changeRaces(date, track, type, race );			
		}
	});
}

function setRaces(date){

	//$("#menu_race_numbers_").html(createPreloader());
	//$("#menu_race_tracks_").html(createPreloader()); 
	//$("#menu_race_types_").html(createPreloader());
	$("#races_").html(createPreloader());  
	$("#coupon_").html(createPreloader());  
	$("#menu_types_selection2_").html(createPreloader());
	
	$("#menu_race_numbers_").css("display","none");
	$("#menu_race_tracks_").css("display","none"); 
	$("#menu_race_types_").css("display","none");
		
	// Setting globals;
	set_race_date = date;
	set_race_type = set_race_number = set_show_mode = set_race_track = false;
	
	// Update Races -> new Date	
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_races','value':date}, function(data){
		if(data.length >0){
			
			/* Set races 2 */
			$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_races2','value':date}, function(data2){
				if(data2.length >0){
					
					$('#menu_race_tracks_').html(data);
					$('#menu_types_selection2_').html(data2);
					
					$( '#menu_types_selection_' ).show();//animate({"height": "show", "opacity": "show" }, "slow");
					$( '#menu_types_selection2_' ).show();//animate({"height": "show", "opacity": "show" }, "slow");
					$( '#menu_race_tracks_' ).show();//animate({"height": "show", "opacity": "show" }, "slow");
					
					changeRaces(date,false,false,false);
					
					// patch
					if($('#menu_types_selection_ #menu_race_numbers_ .menu_race_numbers_bottom .menu_race_number_ready').length > 0 )
						$('#menu_types_selection_ #menu_race_numbers_ .menu_race_numbers_top_container').css('left', $('.menu_race_numbers_ .menu_race_numbers_bottom .menu_race_number_ready').offset().left - $('.menu_race_numbers_ .menu_race_numbers_bottom').offset().left );
				}
			});
		} else {
			$('#menu_race_tracks_').show();
			$('#menu_types_selection_').show();
		}
	});
}

function setRacesRemote(date,track,type,race){
	$("#menu_race_numbers_").css("display","none");
	$("#menu_race_tracks_").css("display","none"); 
	$("#menu_race_types_").css("display","none");
	$("#races_").css("display","none");  
	$("#coupon_").css("display","none");  
	$("#menu_types_selection2_").css("display","none");
	// Setting globals;
	set_race_date = date;
	set_race_type = set_race_number = set_show_mode = set_race_track = false;
	// Update Races -> new Date	
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_races','value':date}, function(data){
		if(data.length >0){
			$('#menu_race_tracks_').html(data);
			$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_races2','value':date}, function(data2){
				if(data2.length >0){
					
					$('#menu_types_selection2_').html(data2);
					$( '#menu_types_selection_' ).show();//animate({"height": "show", "opacity": "show" }, "slow");
					$( '#menu_types_selection2_' ).show();//animate({"height": "show", "opacity": "show" }, "slow");
					$( '#menu_race_tracks_' ).show();//animate({"height": "show", "opacity": "show" }, "slow");
			
					//changeRaces(date,track,type,race);
					checkRace( track, type, date);
					
					// patch
					if($('#menu_types_selection_ #menu_race_numbers_ .menu_race_numbers_bottom .menu_race_number_ready').length > 0 )
						$('#menu_types_selection_ #menu_race_numbers_ .menu_race_numbers_top_container').css('left', $('.menu_race_numbers_ .menu_race_numbers_bottom .menu_race_number_ready').offset().left - $('.menu_race_numbers_ .menu_race_numbers_bottom').offset().left );
				}
			});
		} else {
			$('#menu_race_tracks_').show();
			$( '#menu_types_selection_' ).show();
		}
	});
}

function getPule(race_track, race_type, race_date){
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_pool','value[]':[race_track, race_type,race_date]}, function(data){	
		//window.alert(data);
	});
}

/*
 * CALLENDAR
 * */
function buildCallendar(m, y, links, resultsonly){ // month 0-11
	
	var mn	= ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec','Lipiec','sierpień','Wrzesień','Paździenik','Listopad','Grudzień'];
	var dim	= [31,0,31,30,31,30,31,31,30,31,30,31];
	var oD 	= new Date(y, m, 1); //DD replaced line to fix date bug when current day is 31st
	oD.od 	= (oD.getDay()+6)%7; //DD replaced line to fix date bug when current day is 31st
	var todaydate = new Date() //DD added
	var scanfortoday = (y==todaydate.getFullYear() && m==todaydate.getMonth())? todaydate.getDate() : 0 //DD added
	dim[1] = ( ((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0)) || (oD.getFullYear()%400==0) )? 29 : 28;
	var t='<table id="callendar_" cols="7" cellpadding="0" border="0" cellspacing="0">\
			<tr align="center" class="callendar_top_">';
	// previous arrow <<
	var previous, next, year = y;
	if(m - 1 >= 0){
		previous = m - 1;
	} else {
		previous = 11;
		year = y - 1;
	}
	t +=     '<td class="callendar_arrow" onclick="'+(resultsonly==true?'createCallendarResults':'createCallendar')+ '('+(previous+1)+','+year+')"> <<  </td>'; // previous month
	// current date
	t +=	 '<td colspan="5" align="center" class="month" rel="'+m+'">'+mn[m]+' - '+y+'</td>';
	// next arrow >>
	year = y;
	if(m + 1 <= 11){
		next = m + 1;
	} else { 
		next = 0;
		year = y + 1;
	}
	t +=	 '<td class="callendar_arrow" onclick="'+(resultsonly==true?'createCallendarResults':'createCallendar')+'('+(next+1)+','+year+')"> >> </td></tr>'; // next month
	//t += 	 '<tr style=\'background-color:white; height:1px\'><td colspan=\'7\'>&nbsp;</td></tr>';
	t +=	 '<tr align="center" class=\'callendar_months_bar\'>';
	// names of weekdays          
	for(s=0;s<7;s++)
		t +=       '<td class="daysofweek">'+"PWSCPSN".substr(s,1)+'</td>';
	t +=     '</tr> <tr align="center">';	
	// days 
	for(i=1; i<=42; i++){
		var x =( ((i-oD.od) > 0) && ((i-oD.od) <= dim[m]) )? (i-oD.od) : '';
		var d = x;
		if (x==scanfortoday) d='<span class="today">'+x+'</span>'; //DD added
		if(x){
			t += '<td rel='+(i-oD.od);
			if(links.toString().indexOf(x) != -1){// AJAX [links] date has races ? => link to race 
				t += ' class="days active_days" ';
				t += ' onclick=\''+(resultsonly==true?'setRacesResults':'setRaces')+'("'+y+'-'+(m+1)+'-'+x+'");  \'>' + d + ' </td>';
			} else {
				t += ' class="days"><a href="#">'+ ((x==scanfortoday)? '<b>'+x+'</b>' : d )+'<span>Program Gonitw Niedostępny</span></a></td>';
			}
			//t += '</td>';
			if(((i)%7==0)&&(i<36))
				t += '</tr><tr align="center">';
		} else { t += '<td></td>'; }
	}
	return t += '</tr></table>';
}

/* Kupon */
function buildCoupon(race_track,race_type,race_date,race_number){
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_coupon','value[]':[race_track,race_type,race_date,race_number]}, function(data){
		if(data.length > 0){
			// html source code
			$('#coupon_').html(data);
			var types_ = Array('P','V','TV');
			if(types_.in_array(race_type)) $('#coupon_').css('width','630px'); else  $('#coupon_').css('width','705px'); 
			// graphical presentation of coupon 
			$('#coupon_ #coupon_logo_').addClass('coupon_logo_'+race_type);
			
			// coupon triggers
			$('#coupon_ .coupon_option_').bind('click',function(){
				if(betting_lock_) return;
				var rel = $(this).attr('rel').split('_'); // {$track}_{$type}_{$date}_{$race_number}_{$horse['horse_id']}' 
				if(!$('#coupon_reserve_').is(':checked')?$(this).hasClass('menu_race_track_selected'):$(this).html().match(/[0-9]{1,2}[AB]{1}/)){
					removeBet( rel[0], rel[1], rel[2], rel[3], rel[4], rel[5], false);
				} else {
					addBet( rel[0], rel[1], rel[2], rel[3], rel[4], rel[5], false);
				}
			});
			
			verifyBet();
			
			if(tooltips){
				$('#coupon_harryboy_').each(function(){$(this).tooltip($(this).attr('title'));});
				$('#howto').each(function(){$(this).tooltip($(this).attr('title'));});
				$('#coupon_reserve_').each(function(){$(this).tooltip($(this).attr('title'));});
			}
		} else { 
			$('#coupon_').html("<div style='color:red; left:70px; position:relative; text-align:center; top:50px; width:500px; font-size:12px;'>Typowanie zakładu niedostępne.<br>Gonitwa lub grupa rozrachunkowa gonitw dla tego zakładu rozpoczęta.<br>Sprawdź kolejną gonitwę lub termin rozgrywania gonitw na tym torze.</div>");
		}
		$('#coupon_').show();
		$('#races_').show()
	});
}
// harry boy
function buildHBCoupon(race_track,race_type,race_date,race_number){
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_hbCoupon','value[]':[race_track,race_type,race_date,race_number]}, function(data){
		if(data.length > 0){
			// html source code
			$('#coupon_').html(data);
			
			// graphical presentation of coupon 
			$('#coupon_ #coupon_logo_').addClass('coupon_logo_'+race_type);
			
			// coupon triggers
			$('#coupon_ .coupon_option_').bind('click',function(){
				if(betting_lock_) return;
				var rel = $(this).attr('rel').split('_'); // {$track}_{$type}_{$date}_{$race_number}_{$horse['horse_id']}' 
				if(!$('#coupon_reserve_').is(':checked')?$(this).hasClass('menu_race_track_selected'):$(this).html().match(/[0-9]{1,2}[AB]{1}/)){
					removeBet( rel[0], rel[1], rel[2], rel[3], rel[4], rel[5], false);
				} else {
					addBet( rel[0], rel[1], rel[2], rel[3], rel[4], rel[5], false);
				}
			});
			$('#coupon_').show();
			
			//verifyBet();
			
			if(tooltips){
				$('#howto').each(function(){$(this).tooltip($(this).attr('title'));});
				$('#hb_logo').each(function(){$(this).tooltip($(this).attr('title'));});
				$('#coupon_reserve_').each(function(){$(this).tooltip($(this).attr('title'));});
				$('#coupon_harryboy_').each(function(){$(this).tooltip($(this).attr('title'));});
			}
			
		} else { 
			$('#coupon_').html("<div style='color:red; left:70px; position:relative; text-align:center; top:50px; width:500px; font-size:12px;'>Typowanie zakładu niedostępne.<br>Gonitwa lub grupa rozrachunkowa gonitw dla tego zakładu rozpoczęta.<br>Sprawdź kolejną gonitwę lub termin rozgrywania gonitw na tym torze.</div>");
		}
		
		$('#races_').show()
	});
}

//var clicks = Array();
var betting_lock_ = false;

function addBet(track,type,date,race_number,horse_id,place,force_){
	
	if(betting_lock_ && !force_) return;
	
	var reserve = $('#coupon_reserve_').is(':checked');

	// max 2 reserve horses in one race
	var reserve_limit = 0;
	$('#coupon_ .block_coupon_ .coupon_table_ tr[rel="'+race_number+'"] .coupon_option_').each(function(i){		
		if($(this).html().match(/[0-9]{1,2}[AB]{1}/)) reserve_limit++;
	});	
	
	if(reserve_limit < 2 || !reserve){

		if(!force_) betting_lock_ = true;
		
		$.post(root_+"/ajax/class.AjaxSwedishBets.php",{'function':'swedish_addbet','value[]':[track,type,date,race_number,horse_id,place,reserve]}, function(data){
			var res = reserve_limit==1?'B':'A';
			if(reserve){
				if($('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+show_mode+'"] .uh span').length > 0){
					$('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+show_mode+'"] .uh span[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+place+'"] .addbet_trigger_').html(res);	
				} else {
					$('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+show_mode+'"] .addbet_trigger_').append(res);	
				}		
				$('#coupon_ .block_coupon_ .coupon_table_ .coupon_option_[rel="'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+place+'"]').append(res);

				// RESERVE BOX
				var hs_number = $('#coupon_ .block_coupon_ .coupon_table_ .coupon_option_[rel="'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+place+'"]').html().replace(/[AB]{1}/,'');
				$('#coupon_reserve_box #reserv_'+race_number+'_'+(reserve_limit+1)).html(hs_number);
			
			} else {
				$('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+show_mode+'"]').addClass('menu_race_track_selected');
				$('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+show_mode+'"] .uh span[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+place+'"]').removeClass('mpg_off').addClass('mpg_on');
				$('#coupon_ .block_coupon_ .coupon_table_ .coupon_option_[rel="'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+place+'"]').addClass('menu_race_track_selected');			
			}
			$('#coupon_combinations_').val(data);
			verifyBet();
			
			//HB
			if(	$('#coupon_ #coupon_summary_2 #coupon_harryboy_').is(":checked") &&
				$('#coupon_ .coupon_table_ tr[rel='+race_number+'] .menu_race_track_selected').length == 1)
				setHBRow(track,type,date,race_number,1);
			
			if(!force_) betting_lock_ = false;
		});
	} else {
		window.alert('W jednej gonitwie wybrać można maksymalnie dwa konie rezerwowe');
	}
}

function removeBet(track,type,date,race_number,horse_id,place,force_){
	
	if(!force_) betting_lock_ = true;
	
	var reserve = $('#coupon_reserve_').is(':checked');

	// A -> B
	if(	reserve && $('#coupon_ .block_coupon_ .coupon_table_ .coupon_option_[rel="'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+place+'"]').html().match('A')){
		$('#coupon_ .block_coupon_ .coupon_table_ tr[rel='+race_number+'] .coupon_option_').each(function(i){		
			if($(this).html().match('B')){ // nieprawidlowe usuniecie  -> kasowanie calego zakladu w wyscigu race_number
				var x = $(this).attr('rel').split('_'); 
				removeBet(track,type,date,race_number,x[4],place,true);
			}
		})
	}
	
	$.post(root_+"/ajax/class.AjaxSwedishBets.php",{'function':'swedish_removebet','value[]':[track,type,date,race_number,horse_id,place,reserve]}, function(data){
		if(reserve){			
			//RESERVE BOX
			var which = $('#coupon_ .block_coupon_ .coupon_table_ .coupon_option_[rel="'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+place+'"]').html().match('A');
			$('#coupon_reserve_box #reserv_'+race_number+'_'+(which=='A'?1:2)+'').html('&nbsp;');
			
			$('#coupon_ .block_coupon_ .coupon_table_ .coupon_option_[rel="'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+place+'"]')
			.each(function(i){$(this).html($(this).html().replace(/[AB]{1}/,''));});
			if($('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+show_mode+'"] .uh span').length > 0){
				$('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+show_mode+'"] .uh span[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+place+'"] .addbet_trigger_').each(function(i){$(this).html($(this).html().replace(/[AB]{1}/,'&nbsp;'));});
			} else {
				$('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+show_mode+'"] .addbet_trigger_').each(function(i){
					$(this).html($(this).html().replace(/[AB]{1}/,'')); 
				});
			}
		} else {
			$('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+show_mode+'"] .uh span[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+place+'"]').removeClass('mpg_on').addClass('mpg_off');
			$('#coupon_ .block_coupon_ .coupon_table_ .coupon_option_[rel="'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+place+'"]').removeClass('menu_race_track_selected');
			var f_highlight_uh = false;
			$('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+show_mode+'"] .uh span').each(function(){ if($(this).hasClass('mpg_on')) f_highlight_uh = true; });
			if(!f_highlight_uh) $('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_[rel="swedish_horses_'+track+'_'+type+'_'+date+'_'+race_number+'_'+horse_id+'_'+show_mode+'"]').removeClass('menu_race_track_selected');
		}
		$('#coupon_combinations_').val(data);
		verifyBet();
		
		//HB
		if(	$('#coupon_ #coupon_summary_2 #coupon_harryboy_').is(":checked") &&
			$('#coupon_ .coupon_table_ tr[rel='+race_number+'] .menu_race_track_selected').length == 0)
			setHBRow(track,type,date,race_number,0);
		
		if(!force_) betting_lock_ = false;
	});
}

function betTriggers(){
	// remove option buttons
	$('#bet_accepted_ .bet_horse_remove_').each(function(){
		var options = $(this).parent().attr('rel').split('_');
		$(this).bind('click',function(){
			removeBet(options[0],options[1],options[2],options[3],options[4],options[5]);
		});
	});
}

function getBet(track,type,date,race_number,horse_id){
	$.post(root_+"/ajax/class.AjaxSwedishBets.php",{'function':'swedish_getbets','value[]':[track,type,date,race_number,horse_id]}, function(data){
		$('#bet_accepted_').html(data);
		betTriggers();
	});
}

function verifyBet(){	// wylicz kupon
	var combinations = $('#coupon_combinations_').val();
	var mnoznik = $('#coupon_ #coupon_multi_').val(); var stawka = $('#coupon_ #coupon_stake_').val();
	$('#coupon_ #coupon_combinations_').val(combinations);
	$('#coupon_ #coupon_value_').val(combinations * stawka * mnoznik);
}

function makeBets(track,type,date,race){
	// error check, incorrect betting...
	var err = false;
	$('#coupon_ .block_coupon_ .coupon_table_ tr').each(function(i){		
		if($('.menu_race_track_selected',this).length == 0) err = true;
	});
	if(!err && $('#coupon_combinations_').val() != 0){
		// params
		var multi = $('#coupon_multi_').val(); var combs = $('#coupon_combinations_').val(); var stake = $('#coupon_stake_').val(); var value = $('#coupon_value_').val(); 
		$.post(root_+"/ajax/class.AjaxSwedishBets.php",{'function':'swedish_makebets','value[]':[track,type,date,race,multi,combs,stake,value]}, function(data){
			//redirect to Jaro
			document.location=host_addr;
		});
	} else {
		window.alert('Nieprawidłowe typowanie, prosimy poprawić!');
	}
}

function makeBetsHB(track,type,date,race){ // HB
	// params
	var investment = $('#coupon_investment_').val();
	var combs = $('#coupon_combinations_').val();
	$.post(root_+"/ajax/class.AjaxSwedishBets.php",{'function':'swedish_makebetsHB','value[]':[track,type,date,race,investment,combs]}, function(data){
		//window.alert(host_addr);
		document.location=host_addr;
	});
}

function printBets(track,type,date,race){
	// error check, incorrect betting...
	var multi = $('#coupon_multi_').val(); var combs = $('#coupon_combinations_').val(); var stake = $('#coupon_stake_').val(); var value = $('#coupon_value_').val(); 
	$.post(root_+"/ajax/class.AjaxSwedishBets.php",{'function':'swedish_makebets','value[]':[track,type,date,race,multi,combs,stake,value]}, function(data){
		//redirect to Jaro
		window.alert(data);
	});		
}

function printHBBets(track,type,date,race){
	// error check, incorrect betting...
	var multi = $('#coupon_multi_').val(); var combs = $('#coupon_combinations_').val(); var stake = $('#coupon_stake_').val(); var value = $('#coupon_value_').val(); 
	$.post(root_+"/ajax/class.AjaxSwedishBets.php",{'function':'swedish_makebetsHB','value[]':[track,type,date,race,multi,combs,stake,value]}, function(data){
		//redirect to Jaro
		window.alert(data);
	});		
}


function clearBets(track,type,date,race){
	$("#races_").html(createPreloader());  $("#coupon_").html(createPreloader());
	$.post(root_+"/ajax/class.AjaxSwedishBets.php",{'function':'swedish_clearBets','value[]':[track,type,date,race]}, function(data){
		if(data.length > 0){
			changeRaces(date,track,type,race);
		}
	});
}

function changeStake(multi){
	if($('#coupon_multi_').val().match(/^[0-9]{1,3}$/)){
		$('#coupon_value_').val($('#coupon_multi_').val() * $('#coupon_stake_').val() * $('#coupon_combinations_').val());
		$.post(root_+"/ajax/class.AjaxSwedishBets.php",{'function':'swedish_changeStake','value':multi}, function(data){
			if(data.length > 0){
				//window.alert(data);
			}
		});
	} else { window.alert('Nie dozwolona wartość w polu: Mnożnik'); $('#coupon_multi_').val(1) } 
}

function changeHBInvestment(inv){
	if(inv.match(/^[0-9]{1,3}$/)){
		$.post(root_+"/ajax/class.AjaxSwedishBets.php",{'function':'swedish_changeHBInvestment','value':inv}, function(data){});
	} else {
		window.alert('Nie dozwolona wartość w polu: Mnożnik'); $('#coupon_investment_').val(1);
	}
}

function HBChangeRow(track,type,date,race){
	if($('#coupon_ .coupon_table_ tr[rel='+race+'] .menu_race_track_selected').length > 0){ // przynajmniej jedna pozycja zaznaczona w wierszu
		var value = $('#coupon_ .coupon_table_ tr[rel='+race+'] .HB_row').hasClass('HB_row_select');
		setHBRow(track,type,date,race,value==true?0:1);
	}
}

function setHBRow(track,type,date,race,value){
	$.post(root_+"/ajax/class.AjaxSwedishBets.php",{'function':'swedish_setHBRow','value[]':[track,type,date,race,value]}, function(data){
		//window.alert(data);
	});
	value ? $('#coupon_ .coupon_table_ tr[rel='+race+'] .HB_row').addClass("HB_row_select") : $('#coupon_ .coupon_table_ tr[rel='+race+'] .HB_row').removeClass("HB_row_select");
	//$('#coupon_ .coupon_table_ tr[rel='+race+'] .HB_row').toggleClass("HB_row_select");
	//window.alert($('#coupon_ .coupon_table_ tr[rel='+race+'] .HB'));
}

function checkRow(track,type,date,race,place){
	var l = $('#coupon_ .coupon_table_ tr[rel='+race+'] .coupon_option_').length; var ll = 0;
	switch(type){
		case 'T': { 
			l = l/3;
			$('#coupon_ .coupon_table_ tr[rel='+race+'] .menu_race_track_selected').each(function(i){
				x = $(this).attr('rel'); x = x.split('_');	if(x[5]==place)	ll++;
			});	break; 
		}
		case 'TV': case 'K': { 
			l = l/2; 
			$('#coupon_ .coupon_table_ tr[rel='+race+'] .menu_race_track_selected').each(function(i){
				x = $(this).attr('rel'); x = x.split('_');	if(x[5]==place)	ll++;
			});	break; 
		}
		default: {
			ll = $('#coupon_ .coupon_table_ tr[rel='+race+'] .menu_race_track_selected').length;
			break;
		}
	}
	$('#coupon_reserve_').attr('checked', false);
	var horse_ids = Array(); var x; var y;
	if(l > 0){
		$('#coupon_ .coupon_table_ tr[rel='+race+'] .coupon_option_').each(function(i){
			x = $(this).attr('rel'); x = x.split('_');
			if(place == x[5])	horse_ids.push(x[4]);
		});
		if(l==ll){ // REMOVE BETS
			$.post(root_+"/ajax/class.AjaxSwedishBets.php",{'function':'swedish_removebetrow','value[]':[track,type,date,race,horse_ids.join('_'),place]}, function(data){
				// races
				var f_highlight_uh = false;
				$('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_ .uh span').each(function(i){
					y = $(this).attr('rel'); if(y){	
						y = y.split('_'); 	
						if(place==y[7]) $(this).removeClass('mpg_on').addClass('mpg_off'); 					
						if($(this).hasClass('mpg_on')) f_highlight_uh = true; 
					}
				});
				var types_ = Array('TV','K','T');
				//window.alert(f_highlight_uh);
				if(types_.in_array(type)){
					$('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_').each(function(i){
						y = $(this).attr('rel'); y = y.split('_');
						if($('.uh .mpg_on',this).length==0) $(this).removeClass('menu_race_track_selected');
					});
				} else{
					$('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_').each(function(i){
						y = $(this).attr('rel'); 
						y = y.split('_');
						if(race==set_race_number) $(this).removeClass('menu_race_track_selected');
					});
				}
				//$('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_').removeClass('menu_race_track_selected');
				// coupon
				$('#coupon_ .block_coupon_ .coupon_table_ tr[rel='+race+'] .coupon_option_').each(function(i){
					y = $(this).attr('rel'); 
					y = y.split('_');
					if(y[5]==place) $(this).removeClass('menu_race_track_selected');
				})	
				$('#coupon_combinations_').val(data);
				verifyBet();
				// HB
				if(	$('#coupon_ #coupon_summary_2 #coupon_harryboy_').is(":checked") &&
					$('#coupon_ .coupon_table_ tr[rel='+race_number+'] .menu_race_track_selected').length == 0)
					setHBRow(track,type,date,race_number,0);
			});
		} else if(!$(this).hasClass('menu_race_track_selected')){ // ADD BETS
			$.post(root_+"/ajax/class.AjaxSwedishBets.php",{'function':'swedish_addbetrow','value[]':[track,type,date,race,horse_ids.join('_'),place]}, function(data){
				// races
				$('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_ .uh span').each(function(i){
					y = $(this).attr('rel'); 
					if(y){	y = y.split('_'); 	if(place==y[7]) $(this).removeClass('mpg_off').addClass('mpg_on'); }
				});
				$('#races_ .block_race_ .block_race_content_ .horses_table_ .block_row_').each(function(i){
					y = $(this).attr('rel'); y = y.split('_');
					if(race==set_race_number) $(this).addClass('menu_race_track_selected');
				});
				// coupon
				$('#coupon_ .block_coupon_ .coupon_table_ tr[rel='+race+'] .coupon_option_').each(function(i){
					y = $(this).attr('rel'); 
					y = y.split('_');
					if(y[5]==place) $(this).addClass('menu_race_track_selected');
				})			
				$('#coupon_combinations_').val(data);
				verifyBet();
				// HB
				if(	$('#coupon_ #coupon_summary_2 #coupon_harryboy_').is(":checked") &&
					$('#coupon_ .coupon_table_ tr[rel='+race_number+'] .menu_race_track_selected').length == 1)
					setHBRow(track,type,date,race_number,1);
			});
		}
	}
}

/*
 * 
 * RESULTS
 * 
 * */

function changeSwedishWindowSelectResults(option,id){
	var ids = id.split('_'); // horse, driver, trainer
	if(option == 1){
		setSwedishHorseResults(set_race_track,set_race_type,set_race_date,ids[0]); 
	} else if(option == 2){
		//setSwedishDriver(set_race_type,set_race_date,set_race_number,ids[1]);
	} else if(option == 3){
		//setSwedishTrainer(set_race_type,set_race_date,set_race_number,ids[2]);
	}
}
function reCalculateWindowsTriggersResults(){
	
	$('#races_ .horse_trigger_').each(function(){	
		$(this).bind( 'click' , function (){
			var args = $(this).attr("rel").split("_");	
			if( args[0]=="swedish" && args[1]=="horses" ){
				setSwedishHorseResults(args[2],args[3],args[4],args[6]);
			}
			ajax_window = true;
		});	
	});

	$('#window_windowClose_').bind(	'click', function(){
			$('.window_').animate({ "height": "hide", "opacity": "hide" }, "slow" );
			ajax_window = false;
		}
	);
}

function setSwedishHorseResults(race_track,race_type,race_date,id_horse){ // horses, jockeys
	//window.alert( race_type + race_date + race_number + id_horse );	
	if(!ajax_window){
		var offset = 25;
		var scrollPos = getScrollXY();
		$('.window_').css('top',scrollPos[1]+offset).css('left',offset);
		$('.window_').animate({ "height": "show", "opacity": "show" }, "slow" );
	}
	$('.window_ .window_middle_content_').html( "Loading..." );    // AJAX - preloader
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_horses','value':id_horse}, function(data){
 		if(data.length >0) {	
 			// update main content
 			$('.window_ .window_middle_content_').html(data); 	
 			// update select options
 			setSwedishHorseWindowSelectionResults(race_track,race_type,race_date,id_horse);
 			// highlight selected
 			$('.window_ .window_top_center_ #horse option').each(function(){ 	if($(this).val() == id_horse){ $(this).attr('selected','selected'); }});	
 		}
	});
}
function setSwedishHorseWindowSelectionResults(race_track,race_type,race_date,id_horse){
	$('.window_').animate({ "height": "show", "opacity": "show" }, "slow" );
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_horseWindowSelectionOptionsResults','value[]':[race_type,race_date,race_track,id_horse]}, function(data){
 		if(data.length >0) {	$('.window_ .window_middle_top_').html(data); 	}
	});
}
function setRacesResults(date){
	$("#menu_race_tracks_").css("display","none"); 
	$("#menu_race_types_").css("display","none");
	$("#races_").css("display","none");  
	set_race_date = date;
	set_race_type = set_race_number = set_show_mode = set_race_track = false;
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_racesresults','value':date}, function(data){
		if(data.length >0){
			$('#menu_race_tracks_').html(data);
			if($('#menu_race_types_').html().length > 0){
				changeRacesResults(date,false,false,false);
			} else {
				changeRacesResults(date,false,false,false);
			}
			$( '#menu_types_selection_' ).show();//animate({"height": "show", "opacity": "show" }, "slow");			
			$( '#menu_race_tracks_' ).show();
		}
	});
	$("#callendar_ .days").each(function(){ 
		var x = date.split('-');
		if( $(this).attr("rel") == x[2] ){		$(this).addClass("chosen_day"); 
		} else if($(this).hasClass("chosen_day"))	$(this).removeClass("chosen_day"); 
	});
}

function setResults(race_track,race_type,race_date,show_mode){
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_results','value[]':[race_type,race_date,race_track,show_mode]}, function(data){
 		if(data.length >0){ 
 			$('#races_').html(data).show();			 			
 			reCalculateWindowsTriggersResults();
 			
 			if(ajax_window){
 				var horse_rel = $('#races_ .block_ .block_content_ .horses_table_ .block_row_').attr("rel").split("_");
 				setSwedishHorseResults( race_track, race_type, race_date, horse_rel[6] );
 			}
 		}
	});
}

function set_result_triggers(date){
	// tracks
	$('#menu_race_tracks_ .menu_race_track_').unbind('click').bind('click', function(){				
		var track = $(this).attr('rel');
		changeRacesResults(date,track,false);
		$("#races_").hide(); 
	});	
	// types
	$('#menu_race_types_ .menu_race_type_').unbind('click').bind('click', function(){
		var options = $(this).attr('rel').split("_");
		changeRacesResults(date,options[0],options[1]);		
		$("#races_").hide(); 
	});
}

function changeRacesResults(date,track,type){
	if(date){	
		if(!track){
			track = $('#menu_race_tracks_ .menu_race_track_').attr('rel');
		}		
		if(track){			
			set_race_track  = track;		
			$( '#menu_race_types_' ).html( $('.race_track_' + track ).html() );	
			// Highlight
			var types_ = Array('V75','V64','V65');
			for(t in types_){	
				if($('#menu_race_types_ .menu_race_type_').hasClass('menu_race_type_selected_'+types_[t]))	$('#menu_race_types_ .menu_race_type_').removeClass('menu_race_type_selected_'+types_[t]);	
			}
			if($('.menu_race_type_').hasClass('menu_race_type_selected'))	$('.menu_race_type_').removeClass('menu_race_type_selected');
			if(!types_.in_array(type)){	
				$('#menu_race_types_ .menu_race_type_[rel='+track+'_'+type+']').addClass('menu_race_type_selected');
			} else { 
				$('#menu_race_types_ .menu_race_type_[rel='+track+'_'+type+']').addClass('menu_race_type_selected_'+type);
			}	
			// Highlight
			$('.menu_race_track_').removeClass('menu_race_track_selected');
			$('#menu_race_tracks_ .menu_race_track_[rel='+track+']').addClass('menu_race_track_selected');
			$('#menu_types_selection2_ .menu_race_track_[rel='+track+']').addClass('menu_race_track_selected');
			// Show 
			$( '#menu_race_tracks_' ).show();//animate({"height": "show", "opacity": "show" }, "slow");
			$( '#menu_race_types_' ).show();//animate({"height": "show", "opacity": "show" }, "slow");
			if(!type){
				var x = $('#menu_race_types_ .menu_race_type_').attr('rel').split("_");
				type = x[1];
			}			
			if(type){	
				set_race_type	= type;			
				setResults( track, type, date, show_mode );
				// Highlight
				$('.menu_race_type_').removeClass('menu_race_type_selected');
				$('#menu_race_types_ .menu_race_type_[rel='+track+'_'+type+']').addClass('menu_race_type_selected');
			}
		}
	}
	set_result_triggers(date);
}

function createCallendarResults(race_month, race_year){
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_racingDaysResult','value[]':[race_year,race_month]}, function(data){
 		if(data.length >0){ 
 			$('#menu_callendar_').html( buildCallendar((race_month-1), race_year, data.split("_"), true)).show();//animate({"height": "show", "opacity": "show" }, "slow");
 			// highlight current Day
 			//var date = new Date(Math.round(new Date().getTime())-(3600*24*1000)); // yesterday => results
 			//if((race_month == date.getMonth()+1) && (race_year == date.getFullYear()))
 			//	$("#callendar_ .days[rel="+date.getDate()+"]").addClass('chosen_day');

 			var date = new Date(); var d = Array();
 			if(set_race_date){
 				d = set_race_date.split('-');	date = new Date(d[0],(d[1]-1),d[2]);
 			}
 			if((race_month == date.getMonth()+1) && (race_year == date.getFullYear()))	$("#callendar_ .days[rel="+date.getDate()+"]").addClass('chosen_day');
 		}	
	});
}



/* 
 * WIDGET na glowna strone 
 * */
function setRacesWidget(date){
	$('#menu_types_selection_widget').html("<div style='width:450px; text-align:center;'>"+createPreloader()+"</div>").show();
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_racesWidget','value':date}, function(data){
		if(data.length >0){
			$('#menu_types_selection_widget').html(data).show();
			race_triggers_widget(date);
			// highlight
			var types_ = Array('V75','V64','V65');
			$('#menu_types_selection_widget .menu_race_type_').each(function(){
				var attr = $(this).attr('rel').split('_');
				if(types_.in_array(attr[1])){
					$(this).addClass('menu_race_type_selected_'+attr[1]);
				}
			});//.hover(function(){$(this).addClass('menu_race_type_selected');},function(){$(this).removeClass('menu_race_type_selected');});
			$('#menu_types_selection_widget .menu_race_type_').hover(function(){$(this).addClass('menu_race_type_selected');},function(){$(this).removeClass('menu_race_type_selected');});
			$('#menu_types_selection_widget .menu_race_number_ready').hover(function(){$(this).addClass('menu_race_type_selected');},function(){$(this).removeClass('menu_race_type_selected');});
			//$('#menu_types_selection_widget .menu_race_track_').hover(function(){$(this).addClass('menu_race_type_selected');},function(){$(this).removeClass('menu_race_type_selected');});
			//$('#menu_types_selection2_ .menu_race_track_').css('cursor','default');
			$('#menu_types_selection_widget .menu_race_track_').addClass('menu_race_type_selected');
		}
	});
}


function race_triggers_widget(date){
	// tracks
	$('#menu_types_selection_widget .menu_race_track_').unbind('click').bind('click', function(){				
		var option = $(this).attr('rel').split("_");
		remotePage(date,option[0],option[1],option[2]);
	});	
	// types
	$('#menu_types_selection_widget .menu_race_type_').unbind('click').bind('click', function(){
		var options = $(this).attr('rel').split("_");
		remotePage(date,options[0],options[1],options[2]);
	});
	// numbers
	$('#menu_types_selection_widget .menu_race_number_ready').unbind('click').bind( 'click' , function(){ // menu_types_selection2_ 
		var options = $(this).attr('rel').split('_');
		remotePage(options[2],options[0],options[1],options[3]);
	});		
}

function remotePage(date,track,type,race){
	$.post(root_+"/ajax/class.AjaxSwedish.php",{'function':'swedish_widgetSession','value[]':[date,track,type,race]}, function(data){
		$('#menu_').append(data); // automatic function recalls
	}); 
}


function createPreloader(){//  src='https://img.totolotek.pl/img/ajax_loader.gif
	return "<div style='width:100%; height:100%; text-align:center; vertical-align:middle;'><img src='"+root_+"/gfx/img/boxes/preloader.gif'' width='16px' height='16px'></div>";
}



/*
 * UTILS
 * */
function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

Array.prototype.in_array = function(obj){ 
    return new RegExp('(^|\,)'+obj+'(\,|$)','gi').test(this);
  } 
