function OdklAuthorize()
{
	var odklwnd = window.open("http://www.odnoklassniki.ru/oauth/authorize?client_id=" + User.ODKL_APPID + "&scope=SET STATUS;VALUABLE ACCESS;PHOTO CONTENT;MESSAGING&response_type=code&redirect_uri=http://www.drakoff.ru/odkl.php", "", "width=600,height=350,resizable=1,scrollbars=1,menubar=1,toolbar=0,status=0");
}

function OdklAuthCallback(code)
{
	APPPostResponse("odkl_get_access_token", {"code":code, "redirect_uri":"http://www.drakoff.ru/odkl.php", "grant_type":"authorization_code", "client_id":User.ODKL_APPID}, OdklOnAccessTokenComplete);
}

function OdklRefreshToken()
{
	if (!User.Odkl.refresh_token)
		return;
	APPPostResponse("odkl_refresh_access_token", {"refresh_token":User.Odkl.refresh_token, "grant_type":"refresh_token", "client_id":User.ODKL_APPID}, OdklOnRefreshTokenComplete);
}

function OdklOnAccessTokenComplete(response)
{
	if (response && response.access_token)
	{
		User.Odkl.access_token = response.access_token;
		if (response.refresh_token)
			User.Odkl.refresh_token = response.refresh_token;
		User.Authorized(User.Odkl, true);
		OdklGetCurrentUser();
	}
}

function OdklOnRefreshTokenComplete(response)
{
	if (response && response.access_token)
	{
		User.Odkl.access_token = response.access_token;
		if (response.refresh_token)
			User.Odkl.refresh_token = response.refresh_token;
		User.Authorized(User.Odkl, true);
	}
}

function OdklGetCurrentUser()
{
	if (!User.Odkl.access_token)
		return;
	APPPostResponse("odkl_api", {"access_token":User.Odkl.access_token, "method":"users.getCurrentUser"}, OdklOnGetCurrentUser);
}

function OdklOnGetCurrentUser(response)
{
	if (!response || !response.uid || !response.first_name || !response.last_name || !response.name || !response.pic_1 || !User.Odkl.refresh_token)
		return;
	User.Odkl.id = response.uid;
	var params = {"uid":response.uid, "first_name":response.first_name, "last_name":response.last_name, "name":response.name, "pic_1":encodeURIComponent(response.pic_1), "refresh_token":User.Odkl.refresh_token, "js_render_headers":"1"};
	if (User.authParams["get_vote_video"])
		params.get_vote_video = User.authParams["get_vote_video"];
	if (User.authParams["get_favourite"])
		params.get_favourite = User.authParams["get_favourite"];
	APPResponse("odkl_authorize", params, OdklOnAuthComplete, true);
}

function OdklOnAuthComplete(response)
{
	ResetParams();
	var response = ParseHeaders(response);
	var authform = document.getElementById("authenticationform");
	if (authform)
		authform.innerHTML = response;
	if (window["authComplete"] && window["authComplete"] == "1")
	{
		AuthorizeCallback();
		if (Redirectable())
			RedirectAfterAuth();
	}
}

function OdklLogOut()
{
	User.Odkl.authorized = false;
	var authform = document.getElementById("authenticationform");
	var request = GetRequest();
	if (request)
	{
		request.onreadystatechange = function()
		{
			if (request.readyState == 4 && request.status == 200)
			{
				if (authform)
				{
					authform.innerHTML = request.responseText;
					ClearParams();
					AuthorizeCallback();
				}
				else
					window.location.href = "register.php?type=authorize";
			}
		}
	}
	request.open("GET", "webservice.php?m=logout&t=odkl&rnd=" + Math.ceil(Math.random() * 100000000));
	request.send(null);
	return false;
}

function OdklOnPage()
{
	var c = document.getElementById("odkl_share_btn");
	if (!c)
		return;
	c.getElementsByTagName("a")[0].click();
}
