//jquery.validateの日本語化
jQuery.extend(jQuery.validator.messages, {
	required: "必須入力です。",
	maxlength: jQuery.format("{0}文字以上の入力はできません。"),
	minlength: jQuery.format("{0}文字以上の入力が必要です。"),
	rangelength: jQuery.format("{0}文字以上{1}文字以下で入力してください。"),
	email: "E-mailの形式で入力してください。",
	url: "URLの形式で入力してください。",
	date: "日付の形式で入力してください。",
	number: "数値を入力してください。",
	digits: "数字を入力してください。"
});

//フォーカス設定
function setDefaultFocus() {
	var inputElements;
	var found = false;
	$("form").each(function(){
		inputElements = this.elements
		if(inputElements && !found){
			for(i=0;i<inputElements.length;i++){
				if(inputElements[i].type != "submit" &&
				   inputElements[i].type != "button" &&
				   !inputElements[i].readOnly){
					inputElements[i].focus();
					found = true;
					return;
				}
			}
		}
	});
}
//カレンダーのローカライズ
function localizeCalendar(){
	Calendar._DN = new Array ("日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日");
	Calendar._SDN = new Array ("日", "月", "火", "水", "木", "金", "土");
	Calendar._FD = 0;
	Calendar._MN = new Array ("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月");
	Calendar._SMN = new Array ("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月");
	Calendar._TT = {};
	Calendar._TT["INFO"] = "このカレンダーについて";
	Calendar._TT["ABOUT"] =
	"DHTML Date/Time Selector\n" +
	"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
	"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
	"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
	"\n\n" +
	"日付の選択方法:\n" +
	"- \xab, \xbb ボタンで年を選択。\n" +
	"- " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " ボタンで年を選択。\n" +
	"- 上記ボタンの長押しでメニューから選択。";
	Calendar._TT["ABOUT_TIME"] = "\n\n" +
	"Time selection:\n" +
	"- Click on any of the time parts to increase it\n" +
	"- or Shift-click to decrease it\n" +
	"- or click and drag for faster selection.";

	Calendar._TT["PREV_YEAR"] = "前年 (長押しでメニュー表示)";
	Calendar._TT["PREV_MONTH"] = "前月 (長押しでメニュー表示)";
	Calendar._TT["GO_TODAY"] = "今日の日付を選択";
	Calendar._TT["NEXT_MONTH"] = "翌月 (長押しでメニュー表示)";
	Calendar._TT["NEXT_YEAR"] = "翌年 (長押しでメニュー表示)";
	Calendar._TT["SEL_DATE"] = "日付を選択してください";
	Calendar._TT["DRAG_TO_MOVE"] = "ドラッグで移動";
	Calendar._TT["PART_TODAY"] = " (今日)";

	Calendar._TT["DAY_FIRST"] = "%s始まりで表示";
	Calendar._TT["WEEKEND"] = "0,6";
	Calendar._TT["CLOSE"] = "閉じる";
	Calendar._TT["TODAY"] = "今日";
	Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
	Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
	Calendar._TT["TT_DATE_FORMAT"] = "%b%e日(%a)";
	Calendar._TT["WK"] = "週";
	Calendar._TT["TIME"] = "Time:";
}
// カレンダーを初期化する
function initCalendar(){
	$('input.use_calendar').each(function() {
		$(this).after("<span id='" + this.id + "_cal" + "' class='calendar_trigger'>&nbsp;</span>");
		Calendar.setup({
			inputField : this.id,
			ifFormat : '%Y/%m/%d',
			button : this.id + "_cal"
		});
		this.maxLength = 10;
	});
}
// バリデータの初期化
function initValidator(){
	var index = 0;
	$("form").each(function(){
		if(index++ == 0) {
			$(this).validate();
		} else {
			$(this).validate({meta: this.id});
		}
	});
}
// テーブルソーターの初期化
function initTableSorter(){
	$("table.tablesorter").tablesorter(); 
}

// 二重送信防止
$.validator.setDefaults({
	submitHandler: function(form) {
		$.blockUI({message:""});
		form.onsubmit();
	}
});
// 確認ダイアログの初期化
function initConfirm(){
	$(".msg_regist").click(function(){
		return confirm("登録してもよろしいですか？");
	});
	$(".msg_update").click(function(){
		return confirm("更新してもよろしいですか？");
	});
	$(".msg_delete").click(function(){
		return confirm("削除してもよろしいですか？");
	});
}

function initColorbox(){
	$("a.colorbox").colorbox({width:"60%", height:"60%", iframe:true,
		onClosed:function(){
			location.reload();
		}
	});
}

function initSecurityCode() {
	$("#security_code").realperson({
		length: 5,
		regenerate: ''
	});
}

//メイン
$(function(){
	initValidator();
	localizeCalendar();
	initCalendar();
	initTableSorter();
	initConfirm();
	initColorbox();
	initSecurityCode();
	$(".tooltip").tooltip();
	setDefaultFocus();
});

