_swfReady = false;
_jsReady = false;
function isSwfReady() { return _swfReady; }
function jsReady() { return _jsReady; }
function swfReady() { _swfReady = true; } 

function gf(embed, varName) {
	try {
		return $(embed).GetVariable("/:"+varName);
	} catch(err) {
		return false;
	}
}

function login(button, before, success) {
	if (typeof(before) == 'function') {
		if (!before()) {
			return false;
		}
	}

	var feedback = $(button).getParent('form').getChildren('.feedback').pop();

	$(button).getParent('form').set('send', {
		url: '/ajax/login', 
		method: 'post',
		onSuccess: function(res) {
			res = res.split(':');
			if (res[0] == '+') {
				feedback.removeClass('error');
				feedback.set('html', res[1]);
				if (typeof(success) == 'function') {
					success();
				}
			} else {
				feedback.addClass('error');
				feedback.set('html', res[1]);
			}
		},
		onFailure: function(xhr) {
			feedback.addClass('error');
			feedback.set('html', 'An error has occured. [ '+xhr.status+' '+xhr.statusText+' ]');
		}
	}).send();
}

function signup(button, before, success) {
	if (typeof(before) == 'function') {
		if (!before()) {
			return false;
		}
	}

	var feedback = $(button).getParent('form').getChildren('.feedback').pop();

	$(button).getParent('form').set('send', {
		url: '/ajax/signup', 
		method: 'post',
		onSuccess: function(res) {
			res = res.split(':');
			if (res[0] == '+') {
				feedback.removeClass('error');
				feedback.set('html', res[1]);
				if (typeof(success) == 'function') {
					success();
				}
			} else {
				feedback.addClass('error');
				feedback.set('html', res[1]);
			}
		},
		onFailure: function(xhr) {
			feedback.addClass('error');
			feedback.set('html', 'An error has occured. [ '+xhr.status+' '+xhr.statusText+' ]');
		}
	}).send();
}
	
function ucfirst(s) {
	return s.replace(/^./, s.match(/^./)[0].toUpperCase());
}

var tracking = [];
function track(item, done) {
	if (tracking[item]) return;

	tracking[item] = true;
	new Request({
		url: '/ajax/track',
		onComplete: function(res) {
			if (typeof(done) == 'function') { done(); };
		}
	}).send('item='+escape(item));
}
