jQuery.fn.setCursorAtEnd = function(){
	return this.each(function(){
		var o = this;
		if (o.setSelectionRange) {
			o.setSelectionRange(o.value.length,o.value.length);
		} else if (o.createTextRange) {
			var r = o.createTextRange();
			r.moveStart('character', o.value.length);
			r.select();
		}
	});
};

function scrollToAnchor(str, func){
	var target = $('a[name=' + str +']');
	if (target.length) {
		var targetOffset = target.offset().top - 25;
		if (func) $('html,body').animate({ scrollTop: targetOffset }, 'slow', func);
			else $('html,body').animate({ scrollTop: targetOffset }, 'slow');
	}
}

function showLoginAlert(){
	$('html,body').animate({ scrollTop: 0 }, 'slow');
	alert('この操作のためには、ログインする必要があります');
}

function japanizeRecaptcha(){
	var lang = {
		TYPE_THE_TWO_WORDS:'2語を続けて入力してください',
		GET_A_NEW_CHALLENGE:'新しい語句に変更します',
		GET_AN_AUDIO_CHALLENGE:'音声で確認します',
		HELP:'eCAPTCHAとは? (英語)'
	};
	if ($('#recaptcha_widget_div').size()>0){
		$('#recaptcha_instructions_image').text(lang.TYPE_THE_TWO_WORDS);
		$('#recaptcha_reload').attr('alt',lang.GET_A_NEW_CHALLENGE);
		$('#recaptcha_reload_btn').attr('title',lang.GET_A_NEW_CHALLENGE);
		$('#recaptcha_switch_audio').attr('alt',lang.GET_AN_AUDIO_CHALLENGE);
		$('#recaptcha_switch_audio_btn').attr('title',lang.GET_AN_AUDIO_CHALLENGE);
		$('#recaptcha_whatsthis').attr('alt',lang.HELP);
		$('#recaptcha_whatsthis_btn').attr('title',lang.HELP);
	}
}
