(function($){
$.password = {
	menu: function() {
		var _s = $.password.s;

		$('#topbar strong.listname').fadeIn().html($.defaults.page);

		$('#topbar strong.tools').css('marginLeft','2px').fadeIn()
			.click(function(){ document.location.href = '/preference' })
			.html($.Trans.Options);

		if ($('#topbar .pulldown').is(':visible'))
			$('#userid').trigger('click');

		$.password.getstate();
	},
	getstate: function() {
		$.post($.password.s.cgi,{func: 'passwd', id: $.password.s.id},
		function($j){
			var _j = JSON.parse($j);
			if (_j.status == 'err') {
				$('#content').addClass('err').html($.Trans.ESystemError).show();
				return false;
			}
			$('#pw').passwd({div: '#strength'}).data('ok',-1);

			if (_j.state == 'forgot') {
				$('#forgotpw').show();
			} else {
				if (_j.state == 'reset')  {
					$('#content input[name="birthday"]')
						.datepicker({changeMonth: true, changeYear: true, dateFormat: 'yy-mm-dd', showOn:'focus', yearRange: '1900:2010' });
					$('#resetpw').show();
				} else
					$('#changepw').show();
				
				$('#newpw').show();
			}

			$('div.hdr2, div.text').css({textAlign: 'left'});
			$('#content input.txt2').css({width: '380px'});
			$('#content')
				.css({width: '400px', padding: '9px', backgroundColor: $.mau.s4})
				.corners().fadeIn()
				.find('h2').css('color',$.mau.s9);
		});
	},
	save: function() {
		var _opts = { func: 'passwd' };
		$('#content input').each(function(){
			_opts[$(this).attr('name')] = $(this).val();
		});

		if (!$('#pw').data('ok')) {
			alert($.Trans.PasswordWeak);
			return false;
		}

		if (_opts['npw'] != _opts['cpw']) {
			alert($.Trans.ERetypePassword);
			return false;
		} else if (_opts['birthday'] && !_opts['birthday'].match(/^\d\d\d\d-\d\d-\d\d$/)) {
			alert($.Trans.EWrongBirthdate);
			return false;
		}

		if (_opts['email'] || (_opts['opw'] && _opts['npw']) 
			|| (_opts['birthday'] && _opts['npw']))
				$.password.do_save(_opts);

		return false;
	},
	do_save: function($o) {
		$('#content input').attr('disabled',true);
		$('span.hide').show();

		$o['id'] = $.password.s.id || 0;

		$.post($.password.s.cgi,$o,function($j){
			$('#content input').attr('disabled',false);
			$('span.hide').hide();

			var _j = JSON.parse($j);
			if (_j.status == 'err')
				return _j.errno == 204
					? alert($.Trans.EWrongPassword)
					: (_j.errno == 400 
						? alert($.Trans.EWrongBirthdate + ' (' + _j.tries + ' '+ $.Trans.TriesLeft+')')
						: alert($.Trans.ESystemError + ' ' + _j.errno));

			if (_j.state == 'changed' || _j.state == 'resetted')
				$('#content').after('<div class="err">'+$.Trans.PasswordSuccess+'<\/div>').remove();
			else if (_j.state == 'emailed')
				$('#content').after('<div class="err">'+$.Trans.PasswordEmailed+'<\/div>').remove();

			return true;
		});
	},
	s: { cgi: '/--/info' }
};
})(jQuery);

