$().ready(function() {

	//Encrypt any passwords
	$("form").livequery('submit', function() {
		if($(this).valid()) {
			$(this).find('input:password').each(function() {
				if($(this).val() != '')
					$(this).val(hex_md5($.trim($(this).val())));
			});
		}
	});
	
	observeAdminForms();
	
	$('.show').click(function(e) {
		e.preventDefault();

		$(this).hide();
		$(this).siblings('.hide').show();
		$('#' + $(this).attr('rel')).show();
	});

	$('.hide').click(function(e) {
		e.preventDefault();

		$(this).hide();
		$(this).siblings('.show').show();
		$('#' + $(this).attr('rel')).hide();
	});
});


function observeAdminForms() {

	$('.settings').submit(function(e) {
		e.preventDefault();

		$.ajax({
			type: "POST",
			url: $(this).attr("action"),
			data: $(this).serialize(),
			success: function(data){
				sexyUpdate('.settings_container', data);
			}
		});
	});

	$(".add_page_item").each(function() {
		$(this).validate({
			rules: {
				title: 'required'
			},		
			messages: {
				title: "Please give a title",
			}
		});
	});

	$(".login").validate({
		rules: {
			username: 'required',
			password: 'required'
		},		
		messages: {
			username: "Please give your username",
			password: "Please give your password"
		}
	}),
	$("#addUser").validate({
		rules: {
			username: {
				required: true,
				minlength: 5
			},
			password1: {
				required: true,
				minlength: 5
			},
			password2: {
				required: true,
				equalTo: "#password1"
			}
		},		
		messages: {
			username: {
				required: "Please give a username",
				minlength: "The username must consist of at least 5 characters"
			},
			password1: {
				required: "Please give a password",
				minlength: "The password must consist of at least 5 characters"
			},
			password2: {
				required: "Please repeat the password",
				equalTo: "The passwords must match"
			}
		}
	}),
	$("#updateUser").validate({
		rules: {
			password: {
				required: true,
				minlength: 5
			}
		},		
		messages: {
			password: {
				required: "Please give a password",
				minlength: "The password must consist of at least 5 characters"
			}
		},
		invalidHandler: function(form, validator) {
			$.fn.colorbox.resize();
		}
	}),
	$(".update_category").validate({
		rules: {
			title: {
				required: true,
				minlength: 3
			}
		},		
		messages: {
			title: {
				required: "Please give a title",
				minlength: "The title must consist of at least 3 characters"
			}
		},
		invalidHandler: function(form, validator) {
			setTimeout('$.fn.colorbox.resize()', 5);
		}
	}),
	$(".update_link").validate({
		rules: {
			title: {
				required: true,
				minlength: 3
			},
			url: {
				required: true,
				url: true
			}
		},		
		messages: {
			title: {
				required: "Please give a title",
				minlength: "The title must consist of at least 3 characters"
			},
			url: {
				required: "Please give a URL",
				url: "The URL is not valid"
			}
		},
		invalidHandler: function(form, validator) {
			setTimeout('$.fn.colorbox.resize()', 5);
		}
	}),
	$(".update_feed").validate({
		rules: {
			title: {
				required: true,
				minlength: 3
			},
			url: {
				required: true,
				url: true
			}
		},		
		messages: {
			title: {
				required: "Please give a title",
				minlength: "The title must consist of at least 3 characters"
			},
			url: {
				required: "Please give a URL",
				url: "The URL is not valid"
			}
		},
		invalidHandler: function(form, validator) {
			setTimeout('$.fn.colorbox.resize()', 5);
		}
	}),
	$("#addImage").validate({
		rules: {
			name: {
				required: true,
				minlength: 3
			},
			image_controller: 'required',
			image_file: 'required'
		},		
		messages: {
			name: {
				required: "Please give a name",
				minlength: "The name must consist of at least 3 characters"
			},
			image_controller: "Please select a controller",
			image_file: "Please select an image file"
		}
	}),
	$("#editImage").validate({
		rules: {
			name: {
				required: true,
				minlength: 3
			},
			image_controller: 'required'
		},		
		messages: {
			name: {
				required: "Please give a name",
				minlength: "The name must consist of at least 3 characters"
			},
			image_controller: "Please select a controller"
		},
		invalidHandler: function(form, validator) {
			setTimeout('$.fn.colorbox.resize()', 5);
		}
	});
}
