/* =====================================================================
*
*   config.js | for MR-STICKER
*
* =================================================================== */


/* =====================================================================
*
*	CONFIG	
*
* =================================================================== */

var CONFIG = {
	
	//-----------------------------------
	//	LoaderConfig
	//-----------------------------------
	
	loaderConfig : {
		
		template : {
			url : "/data/template.html",
			type : "html",
			callback : function(data){}
		},
		
		rules : {
			url : "/data/rules.php",
			type : "json",
			callback : function(data){}
		},
		
		shortcutNav : {
			url : "/data/shortcut.php",
			type : "json",
			callback : function(data){}
		}
		
	},
	
	//-----------------------------------
	//	Cookie Strage
	//-----------------------------------
	
	cookie : {
		
		estimate : {
			//-----------------------------------
			//	Page1
			//-----------------------------------
			"EstStickerSizeFirst"		:	null,
			"EstStickerSizeLast"		:	null,
			"EstColorNum"				:	null,
			"EstIsPict"					:	null,
			"EstPrintNum1"				:	null,
			"EstPrintNum2"				:	null,
			"EstPrintNum3"				:	null,
			"EstStickerType"			:	null,
			"EstAdherence"				:	null,
			"EstAfterEnv"				:	null,
			
			//-----------------------------------
			//	Page2
			//-----------------------------------
			"EstAfterExec"				:	null,
			"EstSendType"				:	null,
			"EstRemarks"				:	null,
			
			//-----------------------------------
			//	Page3
			//-----------------------------------
			"EstCompanyName"			:	null,
			"EstCompanyNameKana"		:	null,
			"EstPostName"				:	null,
			"EstPersonalNameFirst"		:	null,
			"EstPersonalNameLast"		:	null,
			"EstPersonalNameKanaFirst"	:	null,
			"EstPersonalNameKanaLast"	:	null,
			"EstZipFirst"				:	null,
			"EstZipLast"				:	null,
			"EstDivisions"				:	null,
			"EstCity"					:	null,
			"EstHouseNumber"			:	null,
			"EstBilName"				:	null,
			"EstMailAddress"			:	null,
			"EstTelFirst"				:	null,
			"EstTelSecond"				:	null,
			"EstTelThird"				:	null,
			"EstIsMemory"				:	null
			
		},
		
		contact : {
			//-----------------------------------
			//	Page1
			//-----------------------------------
			"CntType"					:	null,
			"CntContactBody"			:	null,
			
			//-----------------------------------
			//	Page2
			//-----------------------------------
			"CntCompanyName"			:	null,
			"CntCompanyNameKana"		:	null,
			"CntPostName"				:	null,
			"CntPersonalNameFirst"		:	null,
			"CntPersonalNameLast"		:	null,
			"CntPersonalNameKanaFirst"	:	null,
			"CntPersonalNameKanaLast"	:	null,
			"CntMailAddress"			:	null,
			"CntTelFirst"				:	null,
			"CntTelSecond"				:	null,
			"CntTelThird"				:	null,
			"CntIsMemory"				:	null
		}
		
	},
	
	//-----------------------------------
	//	validation rules
	//-----------------------------------
	validateRules : {
		
		estimate : {
			
			sec1 : {
				errorLabelContainer : "#ErrorMassageWrapper",
				wrapper : "li",
				groups : {
					EstStickerSize : "EstStickerSizeFirst EstStickerSizeLast"
				},
				rules : {
					EstStickerSizeFirst : {
						required : true,
						number : true
					},
					EstStickerSizeLast : {
						required : true,
						number : true
					},
					EstColorNum : "required",
					EstIsPict : "required",
					EstPrintNum1 : {
						required : true,	
						number : true
					},
					EstPrintNum2 : {
						number : true
					},
					EstPrintNum3 : {
						number : true
					},
					EstStickerType : "required",
					EstAdherence : "required",
					'EstAfterEnv[]' : "required"
				},
				messages : {
					EstStickerSizeFirst : {
						required : "ステッカーのサイズを入力してください",
						number : "ステッカーのサイズは半角数字で入力してください"
					},
					EstStickerSizeLast : {
						required : "ステッカーのサイズを入力してください",
						number : "ステッカーのサイズは半角数字で入力してください"
					},
					EstColorNum : "ステッカーの色数を選択してください",
					EstIsPict : "ステッカーに写真かグラデーションがはいるかを選択してください",
					EstPrintNum1 : {
						required : "印刷枚数を入力してください",
						number : "印刷枚数は半角数字で入力してください"
					},
					EstPrintNum2 : {
						number : "印刷枚数は半角数字で入力してください"
					},
					EstPrintNum3 : {
						number : "印刷枚数は半角数字で入力してください"
					},
					EstStickerType : "ステッカーの形状を入力してください",
					EstAdherence : "ステッカーの被着体を入力してください",
					'EstAfterEnv[]' : "ステッカーはりつけ後の環境を選択してください"
				}
			},
			
			sec2 : {
				errorLabelContainer : "#ErrorMassageWrapper",
				wrapper : "li",
				rules : {
					EstAfterExec : "required",
					EstSendType : "required"
				},
				messages : {
					EstAfterExec : "ステッカー貼付け後の処理を選択してください",
					EstSendType : "入稿方法を選択して下さい"
				}
			},
			
			sec3 : {
				errorLabelContainer : "#ErrorMassageWrapper",
				wrapper : "li",
				groups : {
					EstPersonalName : "EstPersonalNameFirst EstPersonalNameLast",
					EstPersonalNameKana : "EstPersonalNameKanaFirst EstPersonalNameKanaLast",
					EstZip : "EstZipFirst EstZipLast",
					EstTel : "EstTelFirst EstTelSecond EstTelThird"
				},
				rules : {
					EstCompanyName : "required",
					EstCompanyNameKana : "required",
					EstPersonalNameFirst : "required",
					EstPersonalNameLast : "required",
					EstPersonalNameKanaFirst : "required",
					EstPersonalNameKanaLast : "required",
					EstZipFirst : {
						required : true,
						number : true,
						minlength: 3,
						maxlength: 3
					},
					EstZipLast : {
						required : true,
						number : true,
						minlength: 4,
						maxlength: 4
					},
					EstDivisions : "required",
					EstCity : "required",
					EstHouseNumber : "required",
					EstMailAddress : {
					       required: true,
					       email: true
					},
					EstTelFirst : {
						required : true,
						number : true,
						minlength: 2,
						maxlength: 4
					},
					EstTelSecond : {
						required : true,
						number : true,
						minlength: 2,
						maxlength: 4
					},
					EstTelThird : {
						required : true,
						number : true,
						minlength: 4,
						maxlength: 4
					},
					EstFaxFirst : {
						number : true
					},
					EstFaxSecond : {
						number : true
					},
					EstFaxThird : {
						number : true
					}
				},
				messages : {
					EstCompanyName : "会社名を入力してください",
					EstCompanyNameKana : "会社名のフリガナを入力してください",
					EstPersonalNameFirst : "ご担当者名を入力してください",
					EstPersonalNameLast : "ご担当者名を入力してください",
					EstPersonalNameKanaFirst : "ご担当者名のフリガナを入力してください",
					EstPersonalNameKanaLast : "ご担当者名のフリガナを入力してください",
					EstZipFirst : {
						required : "郵便番号を入力してください",
						number : "郵便番号は半角数字で入力してください",
						minlength: "郵便番号の形式が正しくありません",
						maxlength: "郵便番号の形式が正しくありません"
					},
					EstZipLast : {
						required : "郵便番号を入力してください",
						number : "郵便番号は半角数字で入力してください",
						minlength: "郵便番号の形式が正しくありません",
						maxlength: "郵便番号の形式が正しくありません"
					},
					EstDivisions : "都道府県を選択してください",
					EstCity : "市町区村を入力してください",
					EstHouseNumber : "番地を入力してください",
					EstMailAddress : {
					       required: "メールアドレスを入力してください",
					       email: "メールアドレスの形式が正しくありません"
					},
					EstTelFirst : {
						required : "電話番号を入力してください",
						number : "電話番号は半角数字で入力してください",
						minlength: "電話番号の形式が正しくありません",
						maxlength: "電話番号の形式が正しくありません"
					},
					EstTelSecond : {
						required : "電話番号を入力してください",
						number : "電話番号は半角数字で入力してください",
						minlength: "電話番号の形式が正しくありません",
						maxlength: "電話番号の形式が正しくありません"
					},
					EstTelThird : {
						required : "電話番号を入力してください",
						number : "電話番号は半角数字で入力してください",
						minlength: "電話番号の形式が正しくありません",
						maxlength: "電話番号の形式が正しくありません"
					},
					EstFaxFirst : {
						number : "FAX番号は半角数字で入力してください"
					},
					EstFaxSecond : {
						number : "FAX番号は半角数字で入力してください"
					},
					EstFaxThird : {
						number : "FAX番号は半角数字で入力してください"
					}
				}
				
			}
			
		},
		
		contact : {
			
			sec1 : {
				errorLabelContainer : "#ErrorMassageWrapper",
				wrapper : "li",
				rules : {
					CntType : "required",
					CntContactBody : "required"
				},
				messages : {
					CntType : "お問い合わせ項目を選択して下さい",
					CntContactBody : "お問い合わせ内容を入力して下さい"
				}
			},
			
			sec2 : {
				errorLabelContainer : "#ErrorMassageWrapper",
				wrapper : "li",
				groups : {
					CntPersonalName : "CntPersonalNameFirst CntPersonalNameLast",
					CntPersonalNameKana : "CntPersonalNameKanaFirst CntPersonalNameKanaLast",
					CntTel : "CntTelFirst CntTelSecond CntTelThird"
				},
				rules : {
					CntCompanyName : "required",
					CntCompanyNameKana : "required",
					CntPersonalNameFirst : "required",
					CntPersonalNameLast : "required",
					CntPersonalNameKanaFirst : "required",
					CntPersonalNameKanaLast : "required",
					CntMailAddress : {
					       required: true,
					       email: true
					},
					CntTelFirst : {
						required : true,
						number : true,
						minlength: 2,
						maxlength: 4
					},
					CntTelSecond : {
						required : true,
						number : true,
						minlength: 3,
						maxlength: 4
					},
					CntTelThird : {
						required : true,
						number : true,
						minlength: 4,
						maxlength: 4
					}
				},
				messages : {
					CntCompanyName : "会社名を入力してください",
					CntCompanyNameKana : "会社名のフリガナを入力してください",
					CntPersonalNameFirst : "氏名を入力してください",
					CntPersonalNameLast : "氏名を入力してください",
					CntPersonalNameKanaFirst : "氏名のフリガナを入力してください",
					CntPersonalNameKanaLast : "氏名のフリガナを入力してください",
					CntMailAddress : {
					       required: "メールアドレスを入力してください",
					       email: "メールアドレスの形式が正しくありません"
					},
					CntTelFirst : {
						required : "電話番号を入力してください",
						number : "電話番号は半角数字で入力してください",
						minlength: "電話番号の形式が正しくありません",
						maxlength: "電話番号の形式が正しくありません"
					},
					CntTelSecond : {
						required : "電話番号を入力してください",
						number : "電話番号は半角数字で入力してください",
						minlength: "電話番号の形式が正しくありません",
						maxlength: "電話番号の形式が正しくありません"
					},
					CntTelThird : {
						required : "電話番号を入力してください",
						number : "電話番号は半角数字で入力してください",
						minlength: "電話番号の形式が正しくありません",
						maxlength: "電話番号の形式が正しくありません"
					}
					
				}
			}
			
		}
		
	},
	
	//-----------------------------------
	//	reselect rules
	//-----------------------------------
	currentStep : {
		
		estimate : 0,
		contact : 0
		
	},
	
	//-----------------------------------
	//	reselect rules
	//-----------------------------------
	reselect : {
	
		isLock : false,
		
		//useとmaterial間の関係をしめすルール
		rule : {
		
		},
		
		//選択状態のデフォルト
		defaults : {
		
			use : "その他",
			material : "相談する",
			process : ["相談する", "加工なし"],
			finish : "相談する"
		
		},
		
		//画像のデフォルト
		imgDefaults : {
			
			use : "/images/quicknav/_sn/uses/uses-00.gif",
			material : "/images/quicknav/_sn/material/material-00.gif",
			process : "/images/quicknav/_sn/processing/processing-00.gif",
			finish : "/images/quicknav/_sn/finishing/finishing-00.gif"
			
		},
		
		//ショートカットナビ用選択状態
		current : {
			
			use : "その他",
			material : "相談する",
			process : "相談する",
			finish : "相談する"
			
		},
		
		//現在の選択状態
		selected : {
		
			use : "その他",
			material : "相談する",
			process : ["加工なし"],
			finish : "相談する"
			
		},
		
		//クイックナビ用表示コンバーター
		convert : {
			
			use : "用途",
			material: "素材",
			process : "加工",
			finish : "仕上げ"
			
		},
		
		//実際に表示する必要のある要素一覧
		list : {
		
			use : {
				lists : [],
				appender : "その他"
			},
			
			material : {
				lists : [],
				appender : "相談する"
			},
			
			process : {
				prepender : "加工なし",
				lists : [],
				appender : "相談する"
			},
			
			finish : {
				lists : [],
				appender : "相談する"
			}
		}
		
	},
	
	//-----------------------------------
	//	data Strage
	//-----------------------------------
	data : {}
};

/* =====================================================================
*
*	PRELOAD IMAGES
*
* =================================================================== */

var preLoadImages = {
	
	initialLoad : [
		"/images/quicknav/sn-inner-bg-use.gif",
		"/images/quicknav/sn-inner-bg-material.gif",
		"/images/quicknav/sn-inner-bg-process.gif",
		"/images/quicknav/sn-inner-bg-finish.gif",
		"/images/quicknav/ShotcutNavi_tt.gif",
		"/images/quicknav/as-estimate-btn.png",
		"/images/quicknav/as-contact-btn.png",
		"/images/quicknav/as-est-s1-box1.gif",
		"/images/quicknav/as-est-s1-box2.gif",
		"/images/quicknav/as-est-s1-box3.gif",
		"/images/quicknav/img-pdf.gif",
		"/images/quicknav/reselect-bg_lt.png",
		"/images/quicknav/reselect-bg_rt.png",
		"/images/quicknav/reselect-bg_lb.png",
		"/images/quicknav/reselect-bg_rb.png",
		"/images/quicknav/reselect-bg_ct.png",
		"/images/quicknav/reselect-bg_cb.png",
		"/images/quicknav/reselect-bg_lm.png",
		"/images/quicknav/reselect-bg_rm.png",
		"/images/quicknav/sn-tooltip-back.png"
	]
}

/* =====================================================================
*
*	ANIMATION PARAMS
*
* =================================================================== */

var animParams = (function(){
	
	var params = {
	
		qnUp : {
			params : { bottom : 30 },
			duration : 400,
			easing : "easeOutExpo"
		},
		
		qnUpToDef : {
			params : { bottom : -35 },
			duration : 1000,
			easing : "easeOutElastic",
			delay : 250
		},
		
		qnBottomToDef : {
			params : { bottom : -35 },
			duration : 700,
			easing : "easeOutExpo"
		},
	
		qnHideOut : {
			params : { bottom : -200 },
			duration : 700,
			easing : "easeOutExpo"
		},
	
		snUp : {
			params : { bottom : 100 },
			duration : 400,
			easing : "easeOutExpo"
		},
	
		snDown : {
			params : { bottom : -400 },
			duration : 300,
			easing : "easeInQuad"
		},
		
		atUp : {
			params : { bottom : 30 },
			duration : 400,
			easing : "easeOutExpo"
		},
		
		atDown : {
			params : { bottom : -535 },
			duration : 300,
			easing : "easeInQuad"
		},
		
		atHeadUp : {
			params : { top : 0, height : 41 },
			duration : 300,
			easing: "easeOutQuad"
		}
	}
	
	return {
		getPrams : function(i_key, i_delay, i_callback) {
			if(!params[i_key]) return;
			var ret = $.extend({ delay : i_delay }, params[i_key]);
			if(typeof i_callback != "undefined") ret = $.extend({ callback : i_callback }, ret);
			return ret;
		}
	}
	
})();

