$(document).ready(function() 
{
	//borrowed from jQuery easing plugin
	//http://gsgd.co.uk/sandbox/jquery.easing.php
	$.easing.easeOutExpo = function (x, t, b, c, d) {
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	};
		
	var inputToType = function (c, type) {
	    var shadow = jQuery(document.createElement(c.context.nodeName));
	    for (var i = 0; i < c[0].attributes.length; i++) {
	        var attr = c[0].attributes[i].name;
	        var val = c[0].attributes[i].value;
	        if (attr == "type") val = type;
	        shadow.attr(attr, val);
	    }
	    shadow.insertAfter(c);
	    c.remove();
		return shadow;
	};
	
	var bindPage = function () {
		$('input.toggleable').each(function (index, item) {
			$(item).val(item.title);
		}).focus(function (event) {
			if ( event.target.value == event.target.title ) $(event.target).val('');
		}).blur(function (event) {
			if ( event.target.value == '' ) $(event.target).val(event.target.title);
		});
		var passFocus = function (event) {
			if ( event.target.value == event.target.title ) {
				item = inputToType($(event.target), "password");
				item.val('');
				item.focus();
				item.blur(passBlur);
				item.focus(passFocus);
			}
		};
		var passBlur = function (event) {
			if ( event.target.value == '' ) {
				var item = inputToType($(event.target), "text");
				item.val(item.attr('title'));
				item.blur(passBlur);
				item.focus(passFocus);
			}
		};
		$('input.password-toggleable').each(function (index, item) {
			item = inputToType($(item), "text");
			item.val(item.attr('title'));
			item.blur(passBlur);
			item.focus(passFocus);
		});
		
		$('a#top').click(function (event) {
			$.scrollTo( '.container', 800, { easing: 'easeOutExpo' } );
		});
		$('a.disabled').click(function (event) {
			return false;
		});
		
		$('form#signup').submit(function (event) {
			$('form#signup button').attr('disabled', 'true');
			$.post('signup-rpc.php', $(event.target).serialize(), function (data) {
				if ( data == 'true' )
				{
					$('form#signup div.error').hide();
					$('form#signup div.elements').hide();
					$('form#signup div.applied').fadeIn('fast');
				}
				else if ( data == 'false' )
				{
					$('form#signup div.error').fadeIn('fast');
				}
				$('form#signup button').removeAttr('disabled');
			});
			return false;
		});
		
		$('form button').hover(function (item) {
			$(this).addClass('over');
		}, function (item) {
			$(this).removeClass('over');
		});
	};
	
	$.address.change(function(event) {  
		var l = event.value.replace(/\//, '');
		if ( l != '' ) {
			var o = $('#article').html().replace(/[\s\n]+/, '');
			if ( o == '' ) {
				$('#article').load(l + '.php #article', bindPage);
			}
			else {
				$('#body').fadeOut('fast', function() {
					$('#article').load(l + '.php #article > *', function () {
						bindPage();
						$('#body').fadeIn('slow');
					});
				});						
			}
		}
	});
	
	bindPage();

});
