// COOKIES

function addCookie(name, value, hours) {
	if(hours) {
		var date = new Date();
		date.setTime(date.getTime()+(hours*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
function removeCookie(name) {
	addCookie(name, "", -1);
}
function getCookie(name, def) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return def;
}

// API

function api_send($params) {
	$.post('/ajax.php', $params, api_onAjaxSuccess);
}
function api_onAjaxSuccess(data) {
	if(!data || data == "") return;
	json = eval('('+data+')');
	if(json.errorNum) {
		if(json.action == "login") {
			$("#login_form > #password").get(0).value = "";
			$("#login_form > #password").addClass("error");
		} else {
			alert(json.errorMsg);
		}
	} else {
		//alert(data);
		var a = json.action;
		if(json.action == "reg") {
			location.href = portal;
		} else if(json.action == "login") {
			if(module_name == "game" || module_name == "user") {
				location.reload(true);
				return;
			}
			$("#login_form > #password").get(0).value = "";
			$("#login_info_block > a > .userlogin").text(json.login);
			$("img#avatar").attr({src:json.avatar});
			$("#login_info_block").removeClass("skip");
			$("#login_form_block").addClass("skip");
		} else if(json.action == "logout") {
			if(module_name == "game") {
				location.reload(true);
				return;
			} else if(module_name == "user") {
				location.href = portal;
			}
			$("#login_form_block").removeClass("skip");
			$("#login_info_block").addClass("skip");
		} else if(a == "forgot") {
			$("#txt_forgot").removeClass("skip");
			$("#frm_forgot").addClass("skip");
		} else if(a == "upload") {
			if(json.type == "avatar") {
				api_send({a:"change_avatar", file:json.file});
			}
		} else if(a == "avatar") {
			//$("img#avatar").attr({src:"1"});
			$("img#avatar").attr({src:json.avatar+"?"+Math.random()});
		} else if(json.action == "favadd") {
			$("#favadd").addClass("skip");
			$("#favremove").removeClass("skip");
		} else if(json.action == "favremove") {
			$("#favadd").removeClass("skip");
			$("#favremove").addClass("skip");
		} else if(json.action == "frndadd") {
			$("#frndadd").addClass("skip");
			$("#frndremove").removeClass("skip");
		} else if(json.action == "frndremove") {
			$("#frndadd").removeClass("skip");
			$("#frndremove").addClass("skip");
		} else if(json.action == "rating") { // RATING
			$("#user_rating > .score").text(json.score);
			$("#user_rating").removeClass("skip");
			is_rating_auto = true;
			$(".star").rating('select', Math.round(json.rating.score)-1);
			is_rating_auto = false;
			//$("#norating").addClass("skip");
		} else if(json.action == "comm_add") {
			//location.href = location.href+"#comments";
			//location.reload(true);
			c = $("#commenttemplate").clone();
			$(".login > a", c).attr("href", portal+"/user/"+json.login);
			$(".login > a", c).html(json.login);
			$(".text", c).html(json.text);
			$(c).removeClass("skip");
			c.insertBefore($(".comment").get(0));
		} else if(a == "comm_publish") {
			if(json.val == 0) { // hide
				$("#comm"+json.id+"_control_nohide").addClass("skip");
				$("#comm"+json.id+"_control_hide").removeClass("skip");
			} else { // show
				$("#comm"+json.id+"_control_nohide").removeClass("skip");
				$("#comm"+json.id+"_control_hide").addClass("skip");
			}
		} else if(a == "comm_remove") {
			$("#comment"+json.id).addClass("skip");
		}
	}
}

// user
function user_reg() {
	var login = $("#reg_form > p > #login").get(0).value;
	var password = $("#reg_form > p > #password").get(0).value;
	var password2 = $("#reg_form > p > #password2").get(0).value;
	if(password != password2) {
		$("#reg_form > p > #password").get(0).value = "";
		$("#reg_form > p > #password2").get(0).value = "";
		alert("Passwords error...");
		return;
	} else {
		var key = $("#reg_form > p > #key").get(0).value;
		var hkey = $("#reg_form > #hkey").get(0).value;
		var email = $("#reg_form > p > #email").get(0).value;
		api_send({a:"reg", login:login, password:password, email:email, key:key, hkey:hkey});
	}
}
function user_login() {
	// находим логин и пароль и используем AJAX API.
	$("#login_form > #login").removeClass("error");
	var login = $("#login_form > #login").get(0).value;
	$("#login_form > #password").removeClass("error");
	var password = $("#login_form > #password").get(0).value;
	api_send({a:"login", login:login, password:password});
}
function user_logout() {
	api_send({a:"logout"});
}
function user_forgot() {
	var email = $("#forgot_form > p > #email").get(0).value;
	var key = $("#forgot_form > p > #key").get(0).value;
	var hkey = $("#forgot_form > #hkey").get(0).value;
	api_send({a:"forgot", email:email, key:key, hkey:hkey});
}

// favorites
function fav_add(game_id) {
	api_send({a:"favadd", game_id:game_id});
}
function fav_remove(game_id) {
	api_send({a:"favremove", game_id:game_id});
}

// friends
function frnd_add(friend_id) {
	api_send({a:"frndadd", friend_id:friend_id});
}
function frnd_remove(friend_id) {
	api_send({a:"frndremove", friend_id:friend_id});
}

// rating
function rating(game_id, score) {
	api_send({a:"rating", game_id:game_id, score:score});
}

// comments
function comm_add(type, parent_id) {
	var text = $("#comment_form > #text").get(0).value;
	$("#comment_form > #text").get(0).value = "";
	api_send({a:"comm_add", type:type, parent_id:parent_id, text:text});
}
function comm_publish(id, v) {
	api_send({a:"comm_publish", id:id, val:v});
}
function comm_remove(id) {
	api_send({a:"comm_remove", id:id});
}

// games
function game_play(id) {
	var is_play = getCookie("play_game_"+id, false);
	//alert("play "+id+" is "+is_play);
	if(!is_play) {
		addCookie("play_game_"+id, true, 1);
		api_send({a:"game_play", id:id});
	}
}

//$(function() {
	//removeCookie("play_game_6");
//});