/*
General, ©Copyright 2007 - bezumie.com, All Rights Reserved
Генерал, ©Copyright 2007 - bezumie.com, Всички права запазени
*/
var gameIsOver;
var DICEIMG=[];
var score;
var RL;
var CL;
var dices=[];
function rand(a,b){
	return Math.floor(Math.random()*(b-a+1)+a);
}
function SetCookie(name, value, expires, path, domain, secure){
	var today = new Date();
	today.setTime(today.getTime());
	if (expires) expires = expires * 1000 * 60 * 60 * 24;
	else expires = 0;
	var expires_date = new Date(today.getTime() + (expires));
	document.cookie = name + "=" + escape(value) +
	((expires) ? ";expires=" + expires_date.toGMTString() : "") +
	((path) ? ";path=" + path : "") +
	((domain) ? ";domain=" + domain : "") +
	((secure) ? ";secure" : "");
}

function getCookieVal(offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
	endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie(name, DefaultVal) {
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
			return getCookieVal (j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
	}
	return DefaultVal;
}
function newGame(){
	document.location=document.location;
}
function showHelp(){
	alert('Help is not available at this time');
}
function dicecount(dice){
	var i;
	var cnt=0;
	for(i in dices){
		if(dices[i]==dice){cnt++};
	}
	return cnt;
}
function clearcomb(){
	var i,c;
	for(i in COMB){
		c=document.getElementById('c_'+COMB[i]);
		if(c.pts==undefined){
			c.innerHTML='';
		}
	}
}
function combd(e){
	if(gameIsOver||(RL==3)){return;}
	if(e){
		if(e.preventDefault){e.preventDefault();}
		e.returnValue=false;
	}
	if(this.pts!=undefined){return;}
	var s=this.id.split('_');
	var c=s[1];
	this.className='score';
	var pts=(this.innerHTML-0);
	this.pts=pts;
	score+=pts;
	document.getElementById('c_sum').innerHTML=score;
	nextroll();
}
function diced(e){
	if(gameIsOver||(!RL)){return;}
	if(e){
		if(e.preventDefault){e.preventDefault();}
		e.returnValue=false;
	}
	var s=this.id.split('_');
	var d=s[1];
	if(this.src==DICEIMG[0].src){
		this.src=DICEIMG[dices[d]].src;
	}
	else{
		this.src=DICEIMG[0].src;
	}
}
function showinfo(id){
	for(var i=1;i<=4;i++){
		if(i==id){document.getElementById('help'+i).style.display='block';}
		else{document.getElementById('help'+i).style.display='none';}
	}
}
function nextroll(){
	var i,d;
	for(i=1;i<=5;i++){
		d=document.getElementById('dice_'+i);
		d.src=DICEIMG[0].src;
		dices[i]=0;
	}
	clearcomb();
	if(CL){
		CL--;
		RL=3;
		showinfo(1);
		document.getElementById('rollbtn').className='btn';
	}
	else{
		gameIsOver=true;
		showinfo(0);
		document.getElementById('score').innerHTML=score;
		document.getElementById('score2').innerHTML=score;
		var topscore=GetCookie('general_topscore', 0);
		if(topscore<score){
			topscore=score;
			SetCookie('general_topscore', topscore, 365);
			document.getElementById('gameOverTopScore').style.display='block';
		}
		else{
			document.getElementById('gameOver').style.display='block';
		}
		document.getElementById('topscore').innerHTML=topscore;
	}
}
function roll(){
	if(gameIsOver||!RL){return;}
	var i,d,rnd;
	var r=false;
	for(i=1;i<=5;i++){
		d=document.getElementById('dice_'+i);
		if(d.src==DICEIMG[0].src){
			rnd=rand(1,6);
			d.src=DICEIMG[rnd].src;
			dices[i]=rnd;
			r=true;
		}
	}
	var cnt,s;
	var cnts=[];
	var chance=0;
	if(r){
		RL--;
		showinfo(4-RL);
		clearcomb();
		if(!RL){document.getElementById('rollbtn').className='btndis';}
		for(i=1;i<=6;i++){
			cnt=dicecount(i);
			cnts[i]=cnt;
			chance+=cnt*i;
			d=document.getElementById('c_'+i);
			if(d.pts==undefined){
				if(cnt<3){s=-25;}
				else{s=i*(cnt-3);}
				d.innerHTML=s;
			}
		}
		d=document.getElementById('c_chance');
		if(d.pts==undefined){d.innerHTML=chance;}
		d=document.getElementById('c_sstraight');
		if(d.pts==undefined){
			if(cnts[1]&&cnts[2]&&cnts[3]&&cnts[4]&&cnts[5]){d.innerHTML=15;}
			else{d.innerHTML=0;}
		}
		d=document.getElementById('c_lstraight');
		if(d.pts==undefined){
			if(cnts[2]&&cnts[3]&&cnts[4]&&cnts[5]&&cnts[6]){d.innerHTML=20;}
			else{d.innerHTML=0;}
		}
		var pair1=0;
		var pair2=0;
		var full3=0;
		var full2=0;
		var five=0;
		var four=0;
		var three=0;
		var two=0;
		for(i=6;i>0;i--){
			if(cnts[i]==5){
				if(!five){five=(5*i)+50;}
			}
			if(cnts[i]>=4){
				if(!four){four=4*i};
				if(!pair1){
					pair1=2*i;
					pair2=2*i;
				}
			}
			if(cnts[i]>=3){
				if(!three){three=3*i;}
				if(!full3){full3=3*i;}
			}
			if(cnts[i]>=2){
				if(!two){two=2*i};
				if(!pair1){pair1=2*i;}
				else if(!pair2){pair2=2*i;}
				if(cnts[i]==2){
					if(!full2){full2=2*i;}
				}
			}
		}
		d=document.getElementById('c_5k');
		if(d.pts==undefined){d.innerHTML=five;}
		d=document.getElementById('c_4k');
		if(d.pts==undefined){d.innerHTML=four;}
		d=document.getElementById('c_3k');
		if(d.pts==undefined){d.innerHTML=three;}
		d=document.getElementById('c_2k');
		if(d.pts==undefined){d.innerHTML=two;}
		d=document.getElementById('c_full');
		if(d.pts==undefined){
			if(full2&&full3){d.innerHTML=full2+full3;}
			else if(five){d.innerHTML=five-50;}
			else{d.innerHTML=0;}
		}
		d=document.getElementById('c_pairs');
		if(d.pts==undefined){
			if(pair1&&pair2){d.innerHTML=pair1+pair2;}
			else{d.innerHTML=0;}
		}
	}
}
function init(){
	var i;
	for(i=0;i<=7;i++){
		DICEIMG[i]=new Image();
		DICEIMG[i].src='img/dice'+i+'.gif';
	}
	var d;
	for(i=1;i<=5;i++){
		d=document.getElementById('dice_'+i);
		d.onmousedown=diced;
		d.ondragstart=function(){return false;};
	}
	for(i in COMB){
		d=document.getElementById('c_'+COMB[i]);
		d.onmousedown=combd;
	}
	CL=COMB.length;
	score=0;
	nextroll();
	gameIsOver=false;
}