﻿Buzzboot.Api2.Auth.SignIn = function (userName, pwd, cbSuccess, cbFail) {
	var pwdHash = hex_md5(pwd);

	$.ajax({
		url: 'http://79.125.76.169:8080/api/signin.php',
		//url: 'http://79.125.76.169:8080/example.json',
		method: 'POST',
		cache: false,
		dataType: 'text',
		data: {
			username: userName,
			pwdhash: pwdHash
		},
		success: function (info) {
			Buzzboot.Api2.Utils.SetCookie('signed-in', info, 60, '/');
			if (cbSuccess != null) {
				cbSuccess();
			}
		},
		error: function (info, info2) {
			alert('Neplatný email nebo heslo. Zkuste to prosím znovu');
			Buzzboot.Api2.Utils.DeleteCookie('signed-in', '/');
			if (cbFail != null) {
				cbFail();
			}
		}
	});
}


Buzzboot.Api2.Auth.SignOut = function () {
	Buzzboot.Api2.Utils.DeleteCookie('signed-in', '/');
}


Buzzboot.Api2.Auth.GetSignedInUser = function() {
	var cookie = Buzzboot.Api2.Utils.GetCookie('signed-in');
	if (cookie == null) {
		return null;
	}

	var re = new RegExp("([0-9]+)--([0-9]+)--([^-]+)--(.*)");
	var m = re.exec(cookie);

	if (m == null) {
		return null;
	}
	
	var user = {
		id: m[1],
		expiration: m[2],
		hash: m[3],
		name: m[4]
	};
	return user;
}


Buzzboot.Api2.Auth.GetSignedInUserId = function() {
	var cookie = Buzzboot.Api2.Utils.GetCookie('signed-in');
	if (cookie == null) {
		return -1;
	}

	return cookie;
}


Buzzboot.Api2.Auth.RenderSignIn = function (container) {
	var user = Buzzboot.Api2.Auth.GetSignedInUser();

	if (user == null) {
		var script = document.createElement('script');
		script.type = 'text/javascript';
		script.text = "$('#bb-sign-in').submit(function() { " +
		  "var user = $('#bb-sign-in-username')[0].value; var pass = $('#bb-sign-in-password')[0].value;" +
		  "Buzzboot.Api2.Auth.SignIn(user, pass, function() { Buzzboot.Api2.Auth.RenderSignIn('" + container + "'); });" +
		  "return false;" +
		  "});";

		$(container)
		  .empty()
		  .append(
			  "<form name='bb-sign-in' id='bb-sign-in'>" +
			  "<input name='bb-sign-in-username' id='bb-sign-in-username' type='text' value='csuprai@buzzboot.com' />" +
			  "<input name='bb-sign-in-password' id='bb-sign-in-password' type='password' value='pass' />" +
			  "<input name='bb-sign-in-submit' id='bb-sign-in-submit' type='submit' value='sign in' />" +
			  "</form>");

		document.body.appendChild(script);
	}
	else {
		var script = document.createElement('script');
		script.type = 'text/javascript';
		script.text = "$('#bb-sign-out').submit(function() {" +
		  "Buzzboot.Api2.Auth.SignOut(); " +
		  "Buzzboot.Api2.Auth.RenderSignIn('" + container + "');" +
		  "return false;" +
		  "});";

		$(container)
		  .empty()
		  .append("signed in " + user +
			  "<form name='bb-sign-out' id='bb-sign-out'>" +
			  "<input name='bb-sign-out-submit' id='bb-sign-out-submit' type='submit' value='sign out' />" +
			  "</form>");

		document.body.appendChild(script);
	}
}

