// ↓↓↓ 2017.04.12 Add TerraSight
var minage = 20;
var maxage = 84;
// ページロード時に実行される内容
$(document).ready(function(){
var typepass = $('input[name=typepass]').val();
if(typepass=="support")
{
minage = 20; maxage = 84;
}
else if(typepass=="sougi1" || typepass=="sougi2")
{
minage = 40; maxage = 84;
}
else if(typepass=="sougi3")
{
minage = 40; maxage = 79;
}
else if(typepass=="kaigo")
{
minage = 40; maxage = 84;
}
else
{
//minage = 20; maxage = 74;
minage = 20; maxage = 79; // 2020.08.06 新規加入年齢変更(79歳まで)
}
// 画面表示時は年齢エラー欄非表示
$("#Birth_error").hide();
// チェック0ボタン群クリック
$('input[name=Start_Check0]').click(function(){
updateAvater();
});
// チェック1ボタン群クリック
$('input[name=Start_Check1]').click(function(){
updateAvater();
});
// チェック2ボタン群クリック
$('input[name=Start_Check2]').click(function(){
updateAvater();
});
// チェック3ボタン群クリック
$('input[name=Start_Check3]').click(function(){
updateAvater();
});
// 郵便番号:入力
$('input[name=OrderInput_K_Postal1]').keyup(function(){
//updateAvater();
if($('input[name=OrderInput_K_Postal1]').val().length==3
&& $('input[name=OrderInput_K_Postal2]').val().length==4)
{
setTimeout(updateAvater, 0);
}
});
// 郵便番号:入力
$('input[name=OrderInput_K_Postal2]').keyup(function(){
//updateAvater();
if($('input[name=OrderInput_K_Postal1]').val().length==3
&& $('input[name=OrderInput_K_Postal2]').val().length==4)
{
setTimeout(updateAvater, 0);
}
});
// 職業リスト選択
$('#Business').change(function(){
updateAvater();
});
// 性別ボタン群クリック
$('input[name=Sex]').click(function(){
updateAvater();
});
// // 都道府県:選択
// $('#Pref').change(function(){
// updateAvater();
// });
// 結婚ボタン群クリック
$('input[name=Marriage]').click(function(){
updateAvater();
});
// こどもボタン群クリック
$('input[name=Child]').click(function(){
updateAvater();
});
// 年、月、日リストボックス初期化+動的に内容が変わるようにする
initBirthListBox('#Birth_Year', '#Birth_Month', '#Birth_Day', '#Birth_man_age');
// 郵便番号自動入力:郵便番号から住所を自動入力させる為の設定
$('#Postal1').zip2addr(
{
zip2:'#Postal2',
pref:'#Pref',
addr:'#City'
});
$('#spgoadvice').click(function(){
var form = $('#estimateform');
$('').attr({
'type': 'hidden',
'name': 'Go_Advice',
'value':'true'
}).appendTo(form);
form.submit();
});
$('#spgoplanselect').click(function(){
var form = $('#estimateform');
$('').attr({
'type': 'hidden',
'name': 'Go_PlanSelect',
'value':'true'
}).appendTo(form);
form.submit();
});
// 入力チェックの設定
$("#estimateform").validate(
{
ignore:[],
invalidHandler: function(event, validator){
var errors = validator.numberOfInvalids();
if(errors){
$('#ErrorTitle').show();
}
},
submitHandler: function(form)
{
// $('#Pref').val("");
// $('#City').val("");
// $('input[name=OrderInput_K_Postal1]').change();
form.submit();
},
groups :{
Postal :"OrderInput_K_Postal1 OrderInput_K_Postal2",
},
rules : {
OrderInput_K_Postal1: {
required: true,
number: true,
minlength: 3
},
OrderInput_K_Postal2: {
required: true,
number: true,
minlength: 4
}
},
messages:{
OrderInput_K_Postal1: {
required: jQuery.format("郵便番号を入力してください。"),
number: jQuery.format("郵便番号1は半角数字となります。"),
minlength: jQuery.format("郵便番号1は{0}桁となります。")
},
OrderInput_K_Postal2: {
required: jQuery.format("郵便番号を入力してください。"),
number: jQuery.format("郵便番号2は半角数字となります。"),
minlength: jQuery.format("郵便番号2は{0}桁となります。")
}
},
errorPlacement: function(error,element)
{
// (入力フィールドの)name+’_err’のidをもつlabelに出力
var name = element.attr("name");
if(name==="OrderInput_K_Postal1" || name==="OrderInput_K_Postal2")
{
$('#K_Postal_err').html('');
error.appendTo($('#K_Postal_err'));
}
else
{
$('#'+ element.attr('id') + '_err').html('');
error.appendTo($('#'+ element.attr('id') + '_err'));
}
}
});
// フォーム内のEnterキーでのsubmitを抑止する
$("#estimateform").keypress(function(ev) {
if ((ev.which && ev.which === 13) || (ev.keyCode && ev.keyCode === 13)) {
return false;
} else {
return true;
}
});
});
$.fn.isVisible = function() {
return $.expr.filters.visible(this[0]);
};
// アバター欄表示更新処理
function updateAvater()
{
var typepass = $('input[name=typepass]').val();
var isCheck0_Yes = false;
var isCheck0_No = true;
var isCheck1 = $('input[name=Start_Check1]:checked').val()==="Yes";
var isCheck2 = $('input[name=Start_Check2]:checked').val()==="Self";
var isCheck3 = $('input[name=Start_Check3]:checked').val()==="Check3_Yes";
var age = $('#Birth_man_age').val();
var postal1 = $('input[name=OrderInput_K_Postal1]').val();
var postal2 = $('input[name=OrderInput_K_Postal2]').val();
// var isPostal = postal1.length==3 && postal1.match(/^[0-9]+$/)
// && postal2.length==4 && postal2.match(/^[0-9]+$/);
var isPostal = postal1.length==3
&& postal2.length==4;
var business = $('#Business').val();
var isBusiness = business!=="";
var isMan = $('input[name=Sex]:checked').val()==="1";
var isWoman = $('input[name=Sex]:checked').val()==="2";
var showavater;
if(typepass=="support")
{
var isage = age>19 && age<85;
var isMarriage = $('input[name=Marriage]:checked').val()==="1" || $('input[name=Marriage]:checked').val()==="2";
var isChild = $('input[name=Child]:checked').val()==="1" || $('input[name=Child]:checked').val()==="2";
showavater = isage && isPostal && isBusiness && (isMan || isWoman) && isMarriage && isChild;
isCheck0_Yes = $('input[name=Start_Check0]:checked').val()==="Yes";
isCheck0_No = $('input[name=Start_Check0]:checked').val()==="No";
}
else if(typepass=="sougi1" || typepass=="sougi2" || typepass=="sougi3")
{
var isage = age>39 && age<85;
showavater = isage && isPostal && isBusiness && (isMan || isWoman);
}
else if(typepass=="kaigo")
{
var isage = age>39 && age<85;
showavater = isage && isPostal && isBusiness && (isMan || isWoman);
}
else
{
//var isage = age>=19 && age<75;
var isage = age>=19 && age<80; // 2020.08.06 新規加入年齢変更(79歳まで)
showavater = isage && isPostal && isBusiness && (isMan || isWoman);
}
// 年齢が範囲内&性別選択している場合は対応するアバタースタイルを設定。
// 年齢範囲外、または性別非選択の場合はアバター欄非表示
if(showavater)
{
if(isMan)
{
if(age<30)
{
updateAvatarClass("male20");
}
else if(age<40)
{
updateAvatarClass("male30");
}
else if(age<50)
{
updateAvatarClass("male40");
}
else if(age<60)
{
updateAvatarClass("male50");
}
else if(age<70)
{
updateAvatarClass("male60");
}
else if(age<80)
{
updateAvatarClass("male70");
}
else if(age<85)
{
updateAvatarClass("male80");
}
else
{
$('#Notice1').hide();
$('#Notice2').hide();
$('#AvatarBox').hide();
}
}
else if(isWoman)
{
if(age<30)
{
updateAvatarClass("female20");
}
else if(age<40)
{
updateAvatarClass("female30");
}
else if(age<50)
{
updateAvatarClass("female40");
}
else if(age<60)
{
updateAvatarClass("female50");
}
else if(age<70)
{
updateAvatarClass("female60");
}
else if(age<80)
{
updateAvatarClass("female70");
}
else if(age<85)
{
updateAvatarClass("female80");
}
else
{
$('#Notice1').hide();
$('#Notice2').hide();
$('#AvatarBox').hide();
}
}
else
{
$('#Notice1').hide();
$('#Notice2').hide();
$('#AvatarBox').hide();
}
}
else
{
$('#Notice1').hide();
$('#Notice2').hide();
$('#AvatarBox').hide();
}
if(showavater && (isCheck0_Yes || isCheck0_No) && isCheck1 && isCheck2 && isCheck3)
{
$('button[name=Go_Advice]').prop('disabled', false);
$('button[name=Go_PlanSelect]').prop('disabled', false);
}
else
{
$('button[name=Go_Advice]').prop('disabled', true);
$('button[name=Go_PlanSelect]').prop('disabled', true);
}
}
// アバター画像表示更新処理
function updateAvatarClass(classname)
{
// $("#Pref").val("");
// $("#City").val("");
// $('#Pref').change();
// アバター欄表示する
$('#Notice1').show();
$('#Notice2').show();
$('#AvatarBox').show();
// 一旦全てのアバタースタイルクラスを取り除き
$('#AvatarImage').removeClass("male20");
$('#AvatarImage').removeClass("male30");
$('#AvatarImage').removeClass("male40");
$('#AvatarImage').removeClass("male50");
$('#AvatarImage').removeClass("male60");
$('#AvatarImage').removeClass("male70");
$('#AvatarImage').removeClass("male80");
$('#AvatarImage').removeClass("female20");
$('#AvatarImage').removeClass("female30");
$('#AvatarImage').removeClass("female40");
$('#AvatarImage').removeClass("female50");
$('#AvatarImage').removeClass("female60");
$('#AvatarImage').removeClass("female70");
$('#AvatarImage').removeClass("female80");
// 指定されたアバタースタイルクラスを設定する
$('#AvatarImage').addClass(classname);
$('input[name=Hidden_AvatarClass]').val(classname);
var typepass = $('input[name=typepass]').val();
var business = $('#Business option:selected').text();
var isMan = $('input[name=Sex]:checked').val()==="1";
var isWoman = $('input[name=Sex]:checked').val()==="2";
var sex;
if(isMan)sex="男性";
else if(isWoman)sex="女性";
var age = $('#Birth_man_age').val();
var birth = Number($('#Birth_Year').val()) + "年" + Number($('#Birth_Month').val()) + "月" + Number($('#Birth_Day').val()) + "日生まれ";
var info;
var info_f = "契約年齢とは、ご契約日(毎月1日)時点の満年齢です。";
if(typepass=="support")
{
var pref = $("#Pref").val();
var isMarriage1 = $('input[name=Marriage]:checked').val()==="1";
var isMarriage2 = $('input[name=Marriage]:checked').val()==="2"
var isMarriage = isMarriage1 || isMarriage2;
var marriage;
if(isMarriage1)marriage="未婚";
else if(isMarriage2)marriage="既婚";
var isChild1 = $('input[name=Child]:checked').val()==="1";
var isChild2 = $('input[name=Child]:checked').val()==="2";
var isChild = isChild1 || isChild2;
var child;
if(isChild1)child="こどもあり";
else if(isChild2)child="こどもなし";
info = birth + "
契約年齢" + age + "歳" + "
" + pref + " " + sex + "[" + business + "/" + marriage + "/" + child +"]";
}
else if(typepass=="sougi1" || typepass=="sougi2" )
{
var pref = $("#Pref").val();
info = birth + "
契約年齢" + age + "歳" + "
" + pref + " " + sex + "[" + business + "]";
}
else
{
var pref = $("#Pref").val();
info = birth + "
契約年齢" + age + "歳" + "
" + pref + " " + sex + "[" + business +"]";
}
$('#AvatarInfo').html(info + info_f);
}
// 生年月日リストボックスの初期化
function initBirthListBox(yearid, monthid, dayid, manageid){
// 契約年齢の基準日算出
var nowdate = new Date();
var year = nowdate.getFullYear();
var month = nowdate.getMonth();
if(month==11)
{
month=0;
year++;
}
else
{
month++
}
var basedate = new Date(year,month,1);
// 生年月日から満年齢を自動算出するためのコード
//$(yearid+","+monthid+","+dayid).bind("change",{year:yearid,month:monthid,day:dayid,manage:manageid},changebirthevent);
var y = $(yearid).val();
var m = $(monthid).val();
// 年リストの更新
updateYearList(basedate,yearid);
// 月リストの更新
updateMonthList(basedate,yearid,monthid);
// 日リストの更新
updateDayList(basedate,yearid,monthid,dayid)
// 年を選択ごとに日付を修正して表示
$('select'+yearid).change(function(){
updateMonthList(basedate,yearid,monthid);
updateDayList(basedate,yearid,monthid,dayid);
//leapYearCheck(yearid, monthid, dayid);
});
// 月を選択ごとに日付を修正して表示
$('select'+monthid).change(function(){
updateDayList(basedate,yearid,monthid,dayid);
//leapYearCheck(yearid, monthid, dayid);
});
var year = $(yearid+"_H").val();
$(yearid).val(year);
var month = $(monthid+"_H").val();
$(monthid).val(month);
var day = $(dayid+"_H").val();
$(dayid).val(day);
$(yearid+","+monthid+","+dayid).bind("change",{year:yearid,month:monthid,day:dayid,manage:manageid},changebirthevent);
changebirth(yearid, monthid, dayid, manageid);
}
function updateYearList(basedate,yearid){
// 基準年-minage~基準年-maxage年まで表示
var year = basedate.getFullYear();
var minyear = year - minage;
var maxyear = year - maxage-1;
$(yearid).empty();
$(yearid).append('');
for(var i=minyear;i>=maxyear;i--)$(yearid).append('');
}
function updateMonthList(basedate,yearid,monthid){
var y=$(yearid).val();
var m=$(monthid).val();
var year=basedate.getFullYear();
var month=basedate.getMonth();
var minyear=year-minage;
var maxyear=year-maxage - 1;
var minmonth=0;
var maxmonth=11;
if(y==('0000'+minyear).slice(-4))
{
maxmonth=month;
}
else if(y==('0000'+maxyear).slice(-4))
{
minmonth=month;
}
//minmonth月〜maxmonth月まで表示
$(monthid).empty();
$(monthid).append('');
for(var i=minmonth+1;i<=maxmonth+1;i++)$(monthid).append('');
if(('00'+(minmonth+1)).slice(-2)<=m && ('00'+(maxmonth+1)).slice(-2)>=m)$(monthid).val(m);
else $(monthid).val("");
}
//うるう年判定して日付リストボックスの中身を更新
function updateDayList(basedate,yearid,monthid,dayid){
var y = $(yearid).val();
var m = $(monthid).val();
var d = $(dayid).val();
var year=basedate.getFullYear();
var month=basedate.getMonth();
var minyear=year-minage;
var maxyear=year-maxage - 1;
var minday=1;
var maxday=31;
if(m!="")
{
if (y!="" && 2 == m && (0 == y % 400 || (0 == y % 4 && 0 != y % 100))) {
maxday = 29;
} else {
maxday = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)[m - 1];
}
}
if(y==('0000'+minyear).slice(-4) && m==('00'+(month+1)).slice(-2))
{
maxday=1;
}
else if(y==('0000'+maxyear).slice(-4) && m==('00'+(month+1)).slice(-2))
{
minday=2;
}
$(dayid).empty();
$(dayid).append('');
for (var i = minday; i <= maxday; i++) {
$(dayid).append('');
}
if(('00'+minday).slice(-2)<=d && ('00'+maxday).slice(-2)>=d)$(dayid).val(d);
else $(dayid).val("");
// $(dayid).selectmenu('refresh');
}
function changebirthevent(event)
{
var cn_year = event.data.year;
var cn_month = event.data.month;
var cn_day = event.data.day;
var cn_man_age = event.data.manage;
changebirth(cn_year, cn_month, cn_day, cn_man_age);
}
function changebirth(cn_year, cn_month, cn_day, cn_man_age){
// テキストボックスから年齢文字列を取得し、Date型にする
// 日付からDate型に変換しただけでは時刻がを09:00:00となり、年齢計算が正確でなくなるので、
// 時刻を00:00:00にするために2度変換している
var year = $(cn_year).val();
var month = $(cn_month).val();
var day = $(cn_day).val();
var age = null;
if(year=="" || month=="" || day=="")
{
age = null;
}
else
{
var birth = year+'/'+month+'/'+day;
var nowDateTemp = new Date(birth);
var nowDate = new Date(nowDateTemp.getFullYear(),nowDateTemp.getMonth(),nowDateTemp.getDate());
// 満年齢の算出
age = calculateManAge(nowDate);
}
// 満年齢の表示
if(age==null || age==undefined || isNaN(age) || age>120)
{
$(cn_man_age).val('');
$(cn_man_age+"_disp").show();
$(cn_man_age+"_show").html('-');
}
else
{
$(cn_man_age).val(age);
$(cn_man_age+"_disp").show();
$(cn_man_age+"_show").html(age);
if(agemaxage){
$("#Birth_error").show();
}
else
{
$("#Birth_error").hide();
}
}
updateAvater();
}
/**
* 満年齢を算出する
*/
var calculateManAge = function(birthday, targetDate){
var manAge = null;
var nowdate = new Date();
var year = nowdate.getFullYear();
var month = nowdate.getMonth();
if(month==11)
{
month=0;
year++;
}
else
{
month++
}
var date = new Date(year,month,1);
targetDate = targetDate || date;
//targetDate = targetDate || new Date(2014,1,1,0,0,0,0);
if (birthday > targetDate) {return manAge;}
// 西暦差し引きで計算した値に
// 年が揃えた際にbirthdayがtargetDateを超えていた場合は-1する
manAge = targetDate.getFullYear() - birthday.getFullYear();
modTargetDate = new Date(birthday.getFullYear(), targetDate.getMonth(), targetDate.getDate());
if (modTargetDate < birthday) {manAge -= 1;}
return manAge;
};
// ↑↑↑ 2017.04.12 Add TerraSight