var AJAX = false; // JS
var betting = true; 
var bets = Array(); 
var ajax_src = "../../../ajax/class.AjaxTotoligaTotgol.php";

var params = Array();
params[0] = Array(13,2,59049,'TLTG',3); // totoliga
params[1] = Array(6,1,32768,'TLTG',8); // totogol

var systems = Array();
var combs = 0; var c_combs=0;
var c_type; var c_game;

var host_addr = ''; 
var isLogged = 0;
/*
 * 
 * PROGRAM
 * 
 */
function initialization(option){ // option: euro_offer, option: euro_results 
	$.post(ajax_src,{'function':params[game_type][3]+'_initialization','value':option}, function(data){		
		$("#RPCJS").append(data);
	});
}

function getOffert(game,type,expert){
	//window.alert(params[game_type]);
	c_game = game; c_type = type;
	bets[c_game+'_'+c_type] = Array();
	// var height = $('#table_coupon').css('height'); height = (parseInt(height)+2)+'px';
	// window.alert(height);
	// $('#table_coupon').html("<div style='width:100%;height:"+height+"px; text-align:center; vertical-align:middle; font-size:12px; font-weight:bold;'>loading...</div>").css('height',height);
	$.post(ajax_src,{'function':params[game_type][3]+'_getOffert','value[]':[game,type,expert]}, function(data){
 		if(data.length >0){ 
 			// updade coupon
 			$('#menu_').html( data );
 			//window.alert(game+' '+type+' '+expert);
 			// highlight selected option
 			$('#'+game+'_'+type).addClass('selected_league');
 			// calculate combinations and value && validate
 			calculate(game,type);
 			// highlight all system blocks -> 0 for all 
 			highlight_system(0); 
 		}
	});
}


function calculate(game,type){
	//combs
	var valid = true; var valid_systems = 0; c_combs = 0; combs = 0;
	if(bets[game+'_'+type]){
		for(var system=0; system<=params[game_type][1]; system++){
			var v = 0; var x = 0; 
			for(var i=1; i<=params[game_type][0]; i++){ // todo: var
				if(bets[game+'_'+type][system+'_'+i]){
					var c = 0; var z1 = 0; var z2 = 0;
					if(game_type==0){
						if(bets[game+'_'+type][system+'_'+i][1] || bets[game+'_'+type][system+'_'+i][2] || 
						   bets[game+'_'+type][system+'_'+i][3]) 
							v += 1;
						c += bets[game+'_'+type][system+'_'+i][1]?1:0;
						c += bets[game+'_'+type][system+'_'+i][2]?1:0;
						c += bets[game+'_'+type][system+'_'+i][3]?1:0;	
					} else {
						if(bets[game+'_'+type][system+'_'+i][1] || bets[game+'_'+type][system+'_'+i][2] || 
						   bets[game+'_'+type][system+'_'+i][3] || bets[game+'_'+type][system+'_'+i][4])
							v += 0.5
						if(bets[game+'_'+type][system+'_'+i][5] || bets[game+'_'+type][system+'_'+i][6] ||
						   bets[game+'_'+type][system+'_'+i][7] || bets[game+'_'+type][system+'_'+i][8]) 
							v += 0.5;
						
						z1 += bets[game+'_'+type][system+'_'+i][1]?1:0;
						z1 += bets[game+'_'+type][system+'_'+i][2]?1:0;
						z1 += bets[game+'_'+type][system+'_'+i][3]?1:0;
						z1 += bets[game+'_'+type][system+'_'+i][4]?1:0;
						
						z2 += bets[game+'_'+type][system+'_'+i][5]?1:0;
						z2 += bets[game+'_'+type][system+'_'+i][6]?1:0;
						z2 += bets[game+'_'+type][system+'_'+i][7]?1:0;
						z2 += bets[game+'_'+type][system+'_'+i][8]?1:0;
						
						c = z1*z2;
					}
					if(c>0) x = (x==0?1:x)*c;
				}
			}
			//window.alert(game);
			if(v==0){	
				systems[system] = 0;
			} else if(v>0 && v<params[game_type][0]) {
				combs  = 0;
				valid = false; 
				c_combs += x;
				systems[system] = 1;
			} else if(v==params[game_type][0]){
				systems[system] = 2;
				combs += x; c_combs += x;
				valid_systems += 1;
			}			
	 	}
	}
	
	if(valid && valid_systems >= 1 && ((game_type==0 && combs >= 2) || (game_type==1 && combs >= 3))){ 
		$('#zatwierdz').show();
		$('#combs').css('color','black');
		$('#value').css('color','black'); 
		//$('#stake').css('color','black');
	} else {
		$('#zatwierdz').hide();
		$('#combs').css('color','#DDD');
		$('#value').css('color','#DDD'); 
		//$('#stake').css('color','#DDD');
		//combs = 0;
	} 
	// calculate combinations
	$('#combs').html(''+combs); 
	$('#value').html(''+combs * $('#stake').html());
}

function highlight_system(system){
	if(system!=0){
		for(var i=1;i<=params[game_type][0];i++){
			for(var o=1;o<=params[game_type][4];o++){
				if(systems[system] == 1){		$('#id_'+system+'_'+i+'_'+o).css('border','1px solid #FAA');
				} else if(systems[system] == 2){$('#id_'+system+'_'+i+'_'+o).css('border','1px solid #AFA');
				} else {						$('#id_'+system+'_'+i+'_'+o).css('border',"1px solid white");	}
			}
		}
	} else {
		for(var s in systems){
			for(var i=1;i<=params[game_type][0];i++){
				for(var o=1;o<=params[game_type][4];o++){
					if(systems[s] == 1){		$('#id_'+s+'_'+i+'_'+o).css('border','1px solid #FAA');
					} else if(systems[s] == 2){	$('#id_'+s+'_'+i+'_'+o).css('border','1px solid #AFA');
					} else {					$('#id_'+s+'_'+i+'_'+o).css('border',"1px solid white");	}
				}
			}
		}
	}
}

function addBet(id,system,option){
	$.post(ajax_src,{'function':params[game_type][3]+'_addbet','value[]':[c_game,c_type,id,system,option]}, function(data){
 		if(data.length >0){ }
	});
}

function removeBet(id,system,option){
	$.post(ajax_src,{'function':params[game_type][3]+'_removebet','value[]':[c_game,c_type,id,system,option]}, function(data){
 		if(data.length >0){ }
	});
}

function changeBet(nr,system,option){
	if($('#id_'+system+'_'+nr+'_'+option).hasClass('selected')){
		$('#id_'+system+'_'+nr+'_'+option).removeClass('selected');		
		if(AJAX) {// AJAX 
			removeBet(nr,system,option);
		} else {// JS
			var new_bets = Array();
			new_bets[c_game+'_'+c_type] = Array();
			new_bets[c_game+'_'+c_type][system+'_'+nr] = Array();
			if(bets[c_game+'_'+c_type][system+'_'+nr]){
				for(var i in bets[c_game+'_'+c_type][system+'_'+nr]){
					if(i != option){
						new_bets[c_game+'_'+c_type][system+'_'+nr][i] = 1;
					}
				}
			}
			bets[c_game+'_'+c_type][system+'_'+nr] = new_bets[c_game+'_'+c_type][system+'_'+nr];
		}
	} else {
		$('#id_'+system+'_'+nr+'_'+option).addClass('selected');
		if(AJAX) {// AJAX
			addBet(nr,system,option);
		} else { // JS
			if(!bets[c_game+'_'+c_type]) bets[c_game+'_'+c_type] = Array();
			if(!bets[c_game+'_'+c_type][system+'_'+nr]) bets[c_game+'_'+c_type][system+'_'+nr] = Array();
			bets[c_game+'_'+c_type][system+'_'+nr][option] = 1;
		}
	}
	calculate(c_game,c_type);
	if(c_combs > params[game_type][2]){
		window.alert('liczba kombinacji nie może przekroczyć: '+params[game_type][2]+', aktualnie: '+c_combs);
		changeBet(nr,system,option);
	} else {
		//window.alert(c_combs);
	}
	highlight_system(system);
}

function saveBets(){
	if(AJAX){ 
		// ***
	} else { 
		var params_ = Array();
		for(var i in bets[c_game+'_'+c_type]){
			var x = i.split('_');
			var system = x[0]; var nr = x[1];
			for(var option in bets[c_game+'_'+c_type][i]){				
				params_.push(nr+'_'+system+'_'+option); 
			}
		}
		var value = 100;
		$.post(ajax_src,{'function':params[game_type][3]+'_saveBetsJS','value[]':[c_game,c_type,$('#combs').html(),$('#value').html(),params_.join(',')]},function(data){
			//window.alert(data);	
		});
	}
}

function makeBets(){
	if(AJAX){ 
		// ***
	} else { 
		var params_ = Array();
		for(var i in bets[c_game+'_'+c_type]){
			var x = i.split('_');
			var system = x[0]; var nr = x[1];
			for(var option in bets[c_game+'_'+c_type][i]){				
				params_.push(nr+'_'+system+'_'+option); 
			}
		}
		var value = $('#value').html(); var combs = $('#combs').html();
		$.post(ajax_src,{'function':params[game_type][3]+'_makeBetsJS','value[]':[c_game,c_type,combs,value,params_.join(',')]},function(data){
			if(data){
				//$('#menu_').append(data);
			}
			// if !logged
			if(isLogged){
				document.location = host_addr;
			} else {
				$('#zatwierdz').hide();
				printSummary(c_game,c_type);
			}
			//window.alert(data);	
		});
	}
}

function printSummary(game,type){
	$.post(ajax_src,{'function':params[game_type][3]+'_printSummary','value[]':[game,type]},function(data){
		$('#coupon_summary_block').html( data ).show();
	});
}

function clearBets(){
	$.post(ajax_src,{'function':params[game_type][3]+'_clearBets','value[]':[c_game,c_type]},function(data){
		$('#menu_').html( data );
		$('#'+c_game+'_'+c_type).addClass('selected_league');
		calculate(c_game,c_type);
	});
}


