var Mov = Array(10);

var last = 0;

vec = Array(
Array('0'),
Array('1','2','3'),
Array('4','5','6'),
Array('7','8','9'),
Array('1','4','7'),
Array('2','5','8'),
Array('3','6','9'),
Array('1','5','9'),
Array('3','5','7')
);


hum = Array(9);
com = Array(9);

for (i=1;i<9;i++){
	hum[i] = 0;
	com[i] = 0;
}



//check winnig vectors
function vector(i){
	var flag;
	flag = false;
			for (k=0;k<3;k++){
				for (t=1;t<vec.length;t++){
					if (Mov[i] == 1){
						if (vec[t][k] == i) {hum[t] += 1;if(hum[t]==3)flag=1}
					}
					if (Mov[i] == 2){
						if (vec[t][k] == i) {com[t] += 1;if(com[t]==3)flag=2}
					}
				}
			}
	return flag;
}


//find best move
function getb(){

		for (k=1;k<9;k++){
			
			if (hum[k]>1) {
				
				for (i=0; i<3;i++)
					if (!Mov[window['vec'][k][i]]) return window['vec'][k][i];
			}
			else if (com[k]>1){
				for (i=0; i<3;i++)
					if (!Mov[window['vec'][k][i]]) return window['vec'][k][i];
			}
			
		}
	return false;
}



//set computers move
function game(){
	
			
			document.getElementById('main').style.display='block';
			document.getElementById('start').style.display='none';
			document.getElementById('end').style.display='block';
			
			
			//computer
			arr = Array();
			t = 0;
			
			//make computer more difficult
			//get better option not a random
			arr[0] = getb();
			
			
			var c = 1;
			for (i=1;i<10;i++){
				if (Mov[i]){
					c++;
				}
			}
			
			
			//check table and decide what to do
			if (!arr[0] || c>8){
				for (i=1;i<10;i++){
					//leave chance for human to win 0/4
					if (!Mov[i] && i!=2 && i!=4 && i!=6 && i!=8 && (c<6||c==6) ){
						arr[t++] = i;
					}
					else if (!Mov[i] && c>6)	arr[t++] = i;
				}
			}
			
			
			//alert(arr.length);
			
			
			
			if (arr.length>0 && c<10){
				rand=Math.floor(Math.random()*arr.length);

				Mov[arr[rand]] = 2;
				document.getElementById('f'+arr[rand]).style.background = 'blue';
				//check table
				
				if (vector(arr[rand]) == 2) {alert('You lose try again!!!');window.location.reload();return;}
				last = 2;
			}

			
			
			
			
			if (c >= 9){
				alert('Sorry no winner try again!!!');
				window.location.reload();
			}
}



//start the game
function state(a){

	switch (a){
		case 1:
			//alert('Make your move!!!');
			document.getElementById('start').innerHTML = 'Make your move!!!';
			setTimeout("state(3)", 1000);
		break;
		case 2:
			//alert('Prepare yourself for a battle!!!');
			document.getElementById('start').innerHTML = 'Prepare yourself for a battle!!!';
			setTimeout("game()", 1500);
			
		break;
		default:
			document.getElementById('main').style.display='block';
			document.getElementById('start').style.display='none';
			document.getElementById('end').style.display='block';
		break;
	}
	
}

//set humans move
function set(a){
	//check your move
	if (last != 1){
		if (!Mov[a]){
			
			last = 1;
			Mov[a] = 1;
			document.getElementById('f'+a).style.background = 'red';
			if (vector(a)==1) {alert('You won try again!!!');window.location.reload();return;}
			setTimeout("game()", 1000);
		}
		else{
			alert('I\'m sorry that field is used select another one!!!');
		}
	}
}
