/*************************************************
Memory Game, ©Copyright 2006 - bezumie.com, All Rights Reserved
Îáðúùàíêè, ©Copyright 2006 - bezumie.com, Âñè÷êè ïðàâà çàïàçåíè
**************************************************/
var selected = new Array();
var timeoutid;
var clr;
var tries;
var found;

function load(set){
	clearSelected();
	randomizeImgs();
	var p;
	var obj;
	for (p=1; p<=piecesCnt; p++){
		// picture
		obj = document.getElementById('p' + p);
		obj.style.background = 'url(' + pex[p-1] + ') no-repeat center';
	}
	tries=0;
	found=0;
	setTries(tries);
	hideMessage();
	hideSets();
	hideSizes();
}

function randomizeImgs(){
	var tmp;
	for (var p=0; p<piecesCnt; p++){
		var rnd= Math.floor(Math.random()*piecesCnt);
		tmp = pex[p];
		pex[p] = pex[rnd];
		pex[rnd] = tmp;
	}
}

function isSame(){
	var obj1 = document.getElementById('p'+selected[0]);
	var obj2 = document.getElementById('p'+selected[1])
	if (obj1.style.background == obj2.style.background) {
		return true;
	}
	else return false;
}

function piececlick(piece){
	var id = (piece.id).substr(1, 2);
	if (selected[0]==false) {
		selected[0]=id;
		piece.style.display = 'none';
	}
	else if (selected[1]==false) {
		selected[1]=id;
		piece.style.display = 'none';
		tries++;
		setTries(tries);
		if (isSame()) {
			clr = false;
			timeoutid = setTimeout("disappearSelected()", 1000);
		}
		else {
			clr = true;
			timeoutid = setTimeout("clearSelected()", 1000);
		}
	}
	else{
		clearTimeout(timeoutid);
		if (clr) clearSelected();
		else disappearSelected();
		piececlick(piece);
	}
}

function clearSelected(){
	var obj;
	for (var i=0; i<2; i++){
		if (selected[i]){
			obj = document.getElementById('h' + selected[i]);
			obj.style.display = 'inline';
		};
		selected[i]=false;
	}
}

function disappearSelected(){
	var obj;
	for (var i=0; i<2; i++){
		if (selected[i]){
			obj = document.getElementById('p' + selected[i]);
			obj.style.background = '#ffffff';
		};
		selected[i]=false;
	}
	found++;
	if (found >= (piecesCnt / 2)){
		showMessage(msgGameOver + '<br /><a href="index.php">' + msgNewGame + '</a>');
	}
}

function setTries(count){
	var obj = document.getElementById('tries');
	obj.innerHTML = count;
}

function showMessage(aMessage){
	var msg = document.getElementById('message');
	msg.innerHTML = aMessage;
	msg.style.display = 'inline';
}

function hideMessage(){
	var msg = document.getElementById('message');
	msg.style.display = 'none';
}

var cancelHide = false;

function showSets() {
	var cp = document.getElementById('sets');
	if (cp.style.display == 'none'){
		cp.style.display = 'block';
		cancelHide = false;
		hideSizes();
		cancelHide = true;
	}
	else {
		cancelHide = false;
		hideSets();
	}
}

function hideSets() {
	if (cancelHide) return;
	document.getElementById('sets').style.display = 'none';
}

function selectSet(el) {
	var id = (el.id).substr(3, 2);
	SetCookie('PeXeSo_ImageSet', id);
	if (GetCookie('PeXeSo_ImageSet', 0) == 0){
		alert('Cookies must be enabled.');
	}
	else {
		window.location.reload();
		cancelHide = false;
		hideSets();
	}
}

function showSizes() {
	var cp = document.getElementById('sizes');
	if (cp.style.display == 'none'){
		cp.style.display = 'block';
		cancelHide = false;
		hideSets();
		cancelHide = true;
	}
	else {
		cancelHide = false;
		hideSizes();
	}
}

function selectSize(el) {
	var id = (el.id).substr(4, 3);
	SetCookie('PeXeSo_BoardSize', id);
	if (GetCookie('PeXeSo_BoardSize', 0) == 0){
		alert('Cookies must be enabled.');
	}
	else {
		window.location.reload();
		cancelHide = false;
		hideSizes();
	}
}

function hideSizes() {
	if (cancelHide) return;
	document.getElementById('sizes').style.display = 'none';
}

function SetCookie (name, value) {
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) +
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
	((path == null) ? "" : ("; path=" + path)) +
	((domain == null) ? "" : ("; domain=" + domain)) +
	((secure == true) ? "; 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;
}  
