var ajaxLoader='<img src="profile/ajax-loader.gif" style="width:125px;" alt="Loading data, please wait...">';


function create_game(obj) {


	$('#'+obj+"Text").slideUp();

	var tip=-1;
	if(document.getElementById('vxo1_0').checked==true) {
		tip=0;
	}
	if(document.getElementById('vxo1_1').checked==true) {
		tip=1;
	}
	
	if(tip==-1) {
	
		newClass(obj+'Text',"ajaxTextErr");	
		$('#'+obj+"Text").html('Вы не выбрали кем будете играть').slideDown();
		
	}
	else {

			$('#'+obj+"Loader").html(ajaxLoader).show();
			$('#'+obj).hide();
		
			$.ajax({
				type: "POST",
				url: host+"profile/krestiki-noliki_ajax.php?rnd="+Math.random(),
				data: "page="+obj+"&stavka="+$('#newstavka').val()+"&tip="+tip,
				error: function(xhr){	
					endLoader(obj);
					ajaxError(xhr);
				},
				success: function(d){		
					endLoader(obj);		
					if(d!="") {
						var data=eval('('+d+')');	
						if(data.err==0) {
							$('#gameC0').slideUp();
							newClass(obj+'Text',"ajaxText");
							$('#'+obj+"Text").html(data.atxt).slideDown();
							for(i in data["obj"]) {
								$('#'+i).html(data["obj"][i]);
							}
							cleatT("_s"+data.id);
							funrun("xoStep1("+data.id+")","xo_wait("+data.id+")","s"+data.id);
													
						}
						else {
							newClass(obj+'Text',"ajaxTextErr");			
							$('#'+obj+"Text").html(data.atxt).slideDown();
						}
					}
					else ajaxErrorAlert();
				}
			});		
		

	}

}
function cleatT(obj) {
	if(intfun[obj]) {
	
		window.clearTimeout(intfun[obj]);
	}
}

function gamePlayNew(id) {

		var obj="gamePNew"+id;

			$('#'+obj+"Loader").html(ajaxLoader).show();
			$('#'+obj).hide();
		
			$.ajax({
				type: "POST",
				url: host+"profile/krestiki-noliki_ajax.php?rnd="+Math.random(),
				data: "page=playstatus&id="+id,
				error: function(xhr){	
					endLoader(obj);
					ajaxError(xhr);
				},
				success: function(d){		
					endLoader(obj);		
					if(d!="") {
						var data=eval('('+d+')');
						for(i in data["obj"]) {
							$('#'+i).html(data["obj"][i]);
						}
						if(data.err==0) {							
							cleatT("_s"+id);
							funrun("xoStep1("+id+")","xo_wait("+id+")","s"+id);
						
						}
						else {
						
							
							
						}
					}
					else ajaxErrorAlert();
				}
			});

}


function gamePlay2(id) {

		var obj="gameP2"+id;

			$('#'+obj+"Loader").html(ajaxLoader).show();
			$('#'+obj).hide();
		
			$.ajax({
				type: "POST",
				url: host+"profile/krestiki-noliki_ajax.php?rnd="+Math.random(),
				data: "page=play2&id="+id,
				error: function(xhr){	
					endLoader(obj);
					ajaxError(xhr);
				},
				success: function(d){		
					endLoader(obj);		
					if(d!="") {
						var data=eval('('+d+')');
						for(i in data["obj"]) {
							$('#'+i).html(data["obj"][i]);
						}
						if(data.err==0) {
							
							cleatT("_s"+id);
							
							if(data.wait2) {
								cleatT("_w2"+id);
								funrun("xoWait2("+id+")","xo_wait2("+id+")","w2"+id);
							}
							
							if(data.wait) {
								cleatT("_w"+id);
								funrun("xoWait("+id+")","xo_wait2("+id+")","w"+id);
							}
							

													
						}
						else {
							
						}
					}
					else ajaxErrorAlert();
				}
			});
	
}


function xo_wait(id) {
		
			$.ajax({
				type: "POST",
				url: host+"profile/krestiki-noliki_ajax.php?rnd="+Math.random(),
				data: "page=wait&id="+id,
				error: function(xhr){	
					ajaxError(xhr);
				},
				success: function(d){			
					if(d!="") {
						var data=eval('('+d+')');	
						if(data.err==0) {
							for(i in data["obj"]) {
								$('#'+i).html(data["obj"][i]);
							}
							if(data.funrun==1) {
								cleatT("_s"+id);
								funrun("xoStep1("+id+")","xo_wait("+id+")","s"+id);
							}
							
							if(data.alert && document.getElementById("g4alert").checked==true) {
								alert(data.alert);
							}
							
						}
						$('#xohelp'+id).html(data.atxt);
					}
					else ajaxErrorAlert();
				}
			});		


}

function gameEnd(x) {

	if(window.clearTimeout(intfun["_w"+x])) {} 
	if(window.clearTimeout(intfun["_w2"+x])) {} 
	
	
}

function gameVik(id,t,type) {
	
	if(t!="") {
	
		var g4d1=t.match(/([0-9]{1,2})\.([0-9]{1,2})/ig);
		var cgv=g4d1.length;
		for(v=0;v<cgv;v++) {
		
			var g4d2=g4d1[v].match(/([0-9]{1,2})\.([0-9]{1,2})/i);
			gameEnd(id);
			var obg=document.getElementById("g"+id+"c"+g4d2[2]+"r"+g4d2[1]);
			if(type==0) {
				obg.style.background="green";
				
			}
			else {
				
				obg.style.background="red";
			}
			obg.style.color="#ffffff";
		}
	
	}

}

function xo_wait2(id) {
		
			$.ajax({
				type: "POST",
				url: host+"profile/krestiki-noliki_ajax.php?rnd="+Math.random(),
				data: "page=wait2&id="+id+"&h="+game4xod["_"+id],
				error: function(xhr){	
					ajaxError(xhr);
				},
				success: function(d){			
					if(d!="") {
						var data=eval('('+d+')');	
						if(data.err==0) {
							for(i in data["obj"]) {
								$('#'+i).html(data["obj"][i]);
							}
							if(data.wait1) {
								cleatT("_w"+id);
								funrun("xoWait("+id+")","xo_wait2("+id+")","w"+id);
								cleatT("_w2"+id);
								funrun("xoWait2("+id+")","xo_wait2("+id+")","w2"+id);

							}
							if(data.xo) {
							
								game4p(id,data.xo);
							
							}
							if(data.vik) {
								gameVik(id,data.vik,0);
							}
							
							if(data.vikno) {
								gameVik(id,data.vikno,1);
							}
							
											
						}
						$('#xohelp'+id).html(data.atxt);
					}
					else ajaxErrorAlert();
				}
			});		


}

function xoStep1(x) {

	$('#xoup_'+x).html(Number($('#xoup_'+x).html())-1);
	var n=Number($('#xoup_'+x).html());
	if(n==0) {
		return 1;
	}
	else {
	
		if(n<0) {
			$('#xoup_'+x).html("0");
			return 2;
		}
		else {
			return 0;
		}
		
		
	}
}

function funrun(f,f2,id) {
	var answer=eval(f);
	if(answer==0) {
		intfun["_"+id]=window.setTimeout("funrun('"+f+"','"+f2+"','"+id+"')",1000);
	}
	if(answer==1) {
		eval(f2);
	}
}


function gameOpen(id) {

	var gdiv=document.getElementById("g3odiv"+id).style;

	if(gdiv.display=="none" || gdiv.display=="") {
	
		$('#g3open'+id).val("закрыть");
		
		var obj="g3open"+id;
		$('#'+obj+"Loader").html(ajaxLoader).show();
		$('#'+obj).hide();
	
		$.ajax({
			type: "POST",
			url: host+"profile/krestiki-noliki_ajax.php?rnd="+Math.random(),
			data: "page=open&id="+id,
			error: function(xhr){	
				endLoader(obj);
				ajaxError(xhr);
			},
			success: function(d){
				
				endLoader(obj);
				gdiv.visibility="visible";
	
				$('#g3odiv'+id).html(d).slideDown();
				
				
			}
		});			

	}
	else {
	
		$('#g3open'+id).val("открыть");
		$('#g3odiv'+id).slideUp();
		

	}
		
}

function gamePlay(id) {

	var obj="game"+id;
	
	$('#'+obj+"Loader").html(ajaxLoader).show();
	$('#'+obj).hide();

	$('#'+obj+"Text").slideUp();
	
		$.ajax({
			type: "POST",
			url: host+"profile/krestiki-noliki_ajax.php?rnd="+Math.random(),
			data: "page=play&id="+id,
			error: function(xhr){	
				endLoader(obj);
				ajaxError(xhr);
			},
			success: function(d){		
				endLoader(obj);		
				if(d!="") {
					var data=eval('('+d+')');
					if(data.err==0) {
						if(data.atxt!="") {
							newClass(obj+'Text',"ajaxText");
							$('#'+obj+"Text").html(data.atxt).slideDown();
						}
						for(i in data["obj"]) {
							$('#'+i).html(data["obj"][i]);
						}
						for(i in data["cl"]) {
							if(data["cl"][i]==1) {
								newClass(i,"xoa");
							}
						}
						cleatT("_w"+id);
						cleatT("_w2"+id);
						funrun("xoWait("+id+")","xo_wait2("+id+")","w"+id);						
						funrun("xoWait2("+id+")","xo_wait2("+id+")","w"+id);						
					}
					else {
						newClass(obj+'Text',"ajaxTextErr");			
						$('#'+obj+"Text").html(data.atxt).slideDown();
					}
				}
				else ajaxErrorAlert();
			}
		});	

}

function xoWait(x) {

	$('#xowait'+x).html(Number($('#xowait'+x).html())-1);
	var n=Number($('#xowait'+x).html());
	if(n==0) {
		return 1;
	}
	else {
	
		if(n<0) {
			$('#xowait'+x).html("0");
			return 2;
		}
		else {
			return 0;
		}
		
		
	}
}

function xoWait2(x) {

	$('#xowait2'+x).html(Number($('#xowait2'+x).html())-1);
	var n=Number($('#xowait2'+x).html());
	if(n==0) {
		return 1;
	}
	else {
	
		if(n<0) {
			$('#xowait2'+x).html("0");
			return 2;
		}
		else {
			return 0;
		}
		
		
	}
}

var intfun= new Array();

var game4xod= new Array();


function g4p(e,obj) {

	var objload=status(e);
	
	var arxo=obj.id.match(/g([0-9]{1,8})c([0-9]{1,3})r([0-9]{1,3})/i);
	
	var h=0;
	if(game4xod["_"+arxo[1]]) h=game4xod["_"+arxo[1]];
	$("#game"+arxo[1]+"Text").slideUp();

		$.ajax({
			type: "POST",
			url: host+"profile/krestiki-noliki_ajax.php?rnd="+Math.random(),
			data: "page=xod&id="+arxo[1]+"&c="+arxo[2]+"&r="+arxo[3]+"&h="+h,
			error: function(xhr) {	
				$('#'+objload).hide();
				ajaxError(xhr);
			},
			success: function(d){
				$('#'+objload).hide();
				
				if(d!="") {
					var data=eval('('+d+')');
					
					if(data.obj) {
						for(i in data["obj"]) {
								
								$('#'+i).html(data["obj"][i]);
						}
					}
					if(data.err==0) {

						if(data.atxt!="") {
							newClass("game"+arxo[1]+"Text","ajaxText");		
							$("#game"+arxo[1]+"Text").html(data.atxt).slideDown();
						}
				

						if(data.wait2) {
							cleatT("_w"+arxo[1]);
							funrun("xoWait("+arxo[1]+")","xo_wait2("+arxo[1]+")","w"+arxo[1]);
							cleatT("_w2"+arxo[1]);
							funrun("xoWait2("+arxo[1]+")","xo_wait2("+arxo[1]+")","w2"+arxo[1]);
						}
				
						if(data.xod) {
							
							game4p(arxo[1],data.xod);
							
						}
						
						
							if(data.vik) {
								gameVik(arxo[1],data.vik,0);
							}
							
							if(data.vikno) {
								gameVik(arxo[1],data.vik,1);
							}
				
				
					}
					else {
						if(data.atxt!="") {
							newClass("game"+arxo[1]+"Text","ajaxTextErr");		
							$("#game"+arxo[1]+"Text").html(data.atxt).slideDown();
						}
					}

					
				}
				
				
			}
		});				
	
}
	
function game4pT(text,id,z) {

	var g4d2=text.match(/([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1})/i);			
	var obgtemp=document.getElementById("g"+id+"c"+g4d2[1]+"r"+g4d2[2]);
	
	if(obgtemp) {
		if(g4d2[3]==0) {
			obgtemp.innerHTML="X"; obgtemp.style.color="blue";
		}
		else {
			obgtemp.innerHTML="O"; obgtemp.style.color="red";
		}
	}
	if(z==1) obgtemp.style.background="#fbff94";
}

function game4p(id,t) {

	if(t!="") {

		for(w=0;w<15;w++) {
			for(e=0;e<15;e++) {
				document.getElementById("g"+id+"c"+w+"r"+e).style.background="#ffffff";
			}
		}
	
		var g4d1=t.match(/([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1})/ig);
			
		if(game4xod["_"+id]) game4xod["_"+id]++; else game4xod["_"+id]=1;
		var cgxod=g4d1.length;
		if(cgxod>game4xod["_"+id]) game4xod["_"+id]=cgxod;
		
		for(k=0;k<cgxod;k++) {
				
			if(k==cgxod-1) game4pT(g4d1[k],id,1); else game4pT(g4d1[k],id,0);
				
					
		}
		
	}
	
}



function gameCencel(id) {

		var obj="gameCencel"+id;
		$('#'+obj+"Loader").html(ajaxLoader).show();
		$('#'+obj).hide();

		$.ajax({
			type: "POST",
			url: host+"profile/krestiki-noliki_ajax.php?rnd="+Math.random(),
			data: "page=gameRepeal&id="+id,
			error: function(xhr){	
				endLoader(obj);
				ajaxError(xhr);
			},
			success: function(d){
				endLoader(obj);
				if(d!="") {
					var data=eval('('+d+')');
					if(data.err==0) {
						$('#'+obj).hide();
						$('#gameButton'+id).hide();
						newClass(obj+'Content',"ajaxText");	
					}
					else {
						newClass(obj+'Content',"ajaxTextErr");	
					}	
					$('#'+obj+'Content').html(data.atxt).slideDown();
					
				}
				else ajaxErrorAlert();			
				
			}
		});		

}


$(document).ready(function(){

    $("#createGame").click(function () { 
		create_game("createGame");
    });
     
    $("#newstavka").change(function () { 
		bank("createGame");
    });
    $("#newstavka").keyup(function () { 
		bank("createGame");
    });

});
