(function() {
	$.postJSONAny = function(url, data, success) {
		$.ajax({
			type: 'POST',
			url: url,
			processData: false,
			contentType: 'application/json',
			data: $.toJSON(data),
			success: success
		});
	};

	$.putJSONJSON = function(url, data, success) {
		$.ajax({
			type: 'PUT',
			url: url,
			processData: true,
			dataType: 'json',
			contentType: 'application/json',
			data: $.toJSON(data),
			success: success
		});
	};
	
	$.getUrlParam = function(strParamName) {
		var strReturn = "";
		var strHref = window.location.href;
		var bFound=false;

		var cmpstring = strParamName + "=";
		var cmplen = cmpstring.length;

		if ( strHref.indexOf("?") > -1 ) {
			var strQueryString = strHref.substr(strHref.indexOf("?")+1);
		    var aQueryString = strQueryString.split("&");
		    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ) {
				if (aQueryString[iParam].substr(0,cmplen)==cmpstring) {
					var aParam = aQueryString[iParam].split("=");
					strReturn = aParam[1];
					bFound=true;
					break;
				}
		    }
		}

		if (bFound === false) {
			return null;
		}

		return strReturn;
	};

	$(function() {
		$('input.signin').click(function() {
			var data = {
				user: $('#username').val(),
				password: $('#password').val(),
				perm: $('#remember_me').attr('checked')
			};

			if (data.user == '' || data.pwd == '') {
				return;
			}
			
			var lsid = $.getUrlParam('ls_id');
			if (lsid !== null) {
				data.ls_id = lsid;
			}

			$.postJSONAny('/login', data, function(result) {
				if (result == 'ok') {
					var loc = $('#login_dest').attr('rel');

					if (loc == '') {
						loc = '/';
					}

					document.location.href = loc;
				}
				else {
					$('#login_error')
						.find('.inner')
						.html('Username and password do not match');
				}
			});
		});
		
		$('#password').keypress(function(e) {
			if (e.which == 13) {
				$('input.signin').click();
				e.preventDefault();
			}
		});

		$('#logout_menu').click(function(e) {
			$.postJSONAny($(this).attr('href'), {}, function() {
				document.location.href = '/';
			});
			e.preventDefault();
		});
	});

})();

