var jfbcUsernameSuccessElement;

var jfbcEmailSuccessElement;



function jfbcCheckUsernameAvailable(usernameField)

{

	jfbcUsernameSuccessElement = document.getElementById(usernameField);

	var testName = $('username').value;

	if (testName != '')

		var myXHR = new XHR({method:'get', onSuccess:jfbcShowUsernameSuccess}).send('index.php', 'option=com_jfbconnect&view=loginregister&task=checkUsernameAvailable&username='+testName);

}



function jfbcShowUsernameSuccess(req)

{

	if (req == 1)

	{

		jfbcUsernameSuccessElement.innerHTML='<img src="' + jfbcRoot + 'images/apply_f2.png" width="20" height="20">' + jfbcUsernameIsAvailable;

	}

	else

	{

		jfbcUsernameSuccessElement.innerHTML='<img src="' + jfbcRoot + 'images/cancel_f2.png" width="20" height="20">' + jfbcUsernameIsInUse;

	}

}



function jfbcCheckEmailAvailable(emailField)

{

	jfbcEmailSuccessElement = document.getElementById(emailField);

	var testEmail = $('email').value;

	if (testEmail != '' && jfbcIsEmail(testEmail))

		var myXHR = new XHR({method:'get', onSuccess:jfbcShowEmailSuccess}).send('index.php', 'option=com_jfbconnect&view=loginregister&task=checkEmailAvailable&email='+testEmail);

}



function jfbcShowEmailSuccess(req)

{

	if (req == 1)

	{

		jfbcEmailSuccessElement.innerHTML='<img src="' + jfbcRoot + 'images/apply_f2.png" width="20" height="20">' + jfbcEmailIsAvailable;

	}

	else

	{

		jfbcEmailSuccessElement.innerHTML='<img src="' + jfbcRoot + 'images/cancel_f2.png" width="20" height="20">' + jfbcEmailIsInUse;

	}

}



function jfbcIsEmail( text )

{

	var pattern = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";

	var regex = new RegExp( pattern );

	return regex.test( text );

}



function jfbcCheckPermission(permission, callback)

{

	FB.ensureInit(function()

	{

		FB.Connect.requireSession(function()

		{

			FB.Connect.showPermissionDialog(permission,

				function(result)

				{

					callback();

				}, false, null);

		});

	});



	return false;

}





function dumpObj(obj, name, indent, depth) {

	if (depth > 10) {

		return indent + name + ": <Maximum Depth Reached>\n";

	}



	if (typeof obj == "object") {

		var child = null;

		var output = indent + name + "\n";

		indent += "\t";

		for (var item in obj)

		{

			try {

				child = obj[item];

			} catch (e) {

				child = "<Unable to Evaluate>";

			}

			if (typeof child == "object") {

 				output += dumpObj(child, item, indent, depth + 1);

			} else {

				output += indent + item + ": " + child + "\n";

			}

		}

		return output;

	} else {

		return obj;

	}

}


