(function(b){function h(a){return a.replace(/[!-~]/g,function(c){return String.fromCharCode(c.charCodeAt(0)-65248)})}function n(a){var c=a.replace("-","");if(4>c.length)return c;a=c.substr(0,3);c=c.substr(3);return a+"-"+c}function l(a){var c=a.indexOf("@");return 0>c?"":a.slice(c+1)}b.extend(b.fn,{fassist:function(a){if(this.length){var c=b.data(this[0],"fassist");if(c)return c;c=new b.fassist(a,this[0]);b.data(this[0],"fassist",c);return c}a&&a.debug&&window.console&&console.warn("Nothing selected")}}); b.fassist=function(a,c){this.settings=b.extend(!0,{},b.fassist.defaults,a,b.fassist.custom);this.currentForm=c;this.requiredFields={};this.relatedFields={};this.validated=[];this.addressCache={};this.addressKeyLength=3;this.prefectureMap={"00101":"北海道","00202":"青森県","00203":"秋田県","00204":"岩手県","00305":"宮城県","00306":"山形県","00307":"福島県","00408":"茨城県","00409":"栃木県","00410":"群馬県","00411":"埼玉県","00412":"千葉県","00413":"神奈川県","00414":"東京都","00415":"山梨県","00516":"新潟県","00517":"長野県","00618":"静岡県","00619":"愛知県", "00620":"三重県","00621":"岐阜県","00722":"富山県","00723":"石川県","00724":"福井県","00825":"大阪府","00826":"京都府","00827":"滋賀県","00828":"奈良県","00829":"和歌山県","00830":"兵庫県","00931":"岡山県","00932":"広島県","00933":"山口県","00934":"鳥取県","00935":"島根県","01036":"香川県","01037":"徳島県","01038":"愛媛県","01039":"高知県","01140":"福岡県","01141":"佐賀県","01142":"長崎県","01143":"熊本県","01144":"大分県","01145":"宮崎県","01146":"鹿児島県","01247":"沖縄県"};this.firstError=null;this.relatedFields={};this.init()};b.extend(b.fassist,{defaults:{alwaysMakeValid:!1,singleError:!0, ignoreBlanks:!1,realTime:!0,focusOut:!0,ruleMessages:{required:"入力してください。",equalTo:"上記に入力した内容と違います。",minlength:"{0}文字以上で入力してください。"},toggleGroups:{},messagePlacement:{},errorClass:"FS2_assist_error",validClass:"FS2_assist_valid",requiredClass:"FS2_assist_required",multiFields:{},addressSearch:{}},custom:{},prototype:{init:function(){var a=this;b.each(this.settings.multiFields,function(c,b){var d=b.length,e,g,k;for(e=0;e'); else{var k=null,m=null;if(e){var h=a.fieldsBefore(d),l=null;b.each(e,function(c,f){var d=a.errorsForId(f);if(0l)&&(l=e,k=d);m=d.parent()}})}m?k?c.insertAfter(k):m.prepend(c):c.insertAfter(f).wrap('
')}}},validClass:this.settings.validClass,errorClass:"FS2_assist_message",errorElement:"span",success:function(c,f){a.settings.singleError?c.parent().remove():c.siblings().length?c.remove():c.parent().remove();b(f).removeAttr("aria-describedby")}, highlight:function(c,f,d){var e=this.groups[c.name];e?b.each(this.groups,function(c,f){if(f===e){var d=b("[name='"+c+"']",this.currentForm);a.highlight(d)}}):a.highlight(c)},unhighlight:function(c,f,d){var e=this.groups[c.name];e?b.each(this.groups,function(c,f){if(f===e){var d=b("[name='"+c+"']",this.currentForm);a.unhighlight(d)}}):a.unhighlight(c)},invalidHandler:function(c,f){b.each(a.settings.toggleGroups,function(c){a.toggleGroup(c,!1)});a.firstError=f.errorList.length?f.errorList[0].element: null;var d=a.arrangeErrors(f.errorList);f.errorList=d}});a.validator.focusInvalid=function(){if(this.settings.focusInvalid){var c=b(this.findLastActive()||a.firstError||[]).filter(":visible");try{c.focus().trigger("focusin")}catch(f){}var d=null;c.length&&(d=c.offset().top);c=a.errorsFor(c);c.length&&(c=c.offset().top,null===d||ce||e>=d[0]},b.validator.format("桁数が足りません。"));b.validator.addMethod("maxlengthtotal",function(c,a,d){var e=0;b(d[1],a.form).each(function(a,c){e+=b(c).val().length});return e<=d[0]},b.validator.format("桁数が多すぎます。"));b.validator.addMethod("phone_validCharacters",function(a,f,d){var e="";b(d,f.form).each(function(a,c){e+=b(c).val()});if(1>e.length)return!0;a=h(e);return/^\d+$/.test(a)},"数字を入力してください。");b.validator.addMethod("mail_validCharacters",function(a,b,d){if(this.optional(b))return!0;a= h(a);return/^[\-a-zA-Z0-9_%.\/@+]+$/.test(a)},"英数字と記号(_%+/@.-)で入力してください。");b.validator.addMethod("mail_hasAt",function(a,b){return this.optional(b)||-1h(a).indexOf("@"))return!0;var d=l(h(a));return 1>d.length?!0:0d.length)return!1;var d=d.split("."),e=!0;b.each(d,function(a,c){1>c.length&&(e=!1)});return e},".(ドット)以降の文字を入力してください。");b.validator.addMethod("mail_validDomain", function(a,b){if(this.optional(b))return!0;var d=l(h(a));return 1>d.length||0===d.indexOf(".")||-1=e.length)d=d.length+1;else{for(var g=0,k=0,m=e.length;;)if(k=d.indexOf(e,k),0<=k)g++,k+=m;else break;d=g}d=2>d}return d},"@が複数入力されています。");b.validator.addMethod("mobileMail_noAts",function(a,b){return this.optional(b)||0>h(a).indexOf("@")}, "@以降は、選択してください。");b.validator.addMethod("passwordChar",function(a,b){var d;(d=this.optional(b))||(d=/^[0-9a-zA-Z!#-\/:-@\[\]-`{-~]*$/.test(a));return d},"使用できない文字が含まれています。");b.validator.addMethod("containsDigit",function(a,b){return this.optional(b)||/[0-9]+/.test(a)},"数字を1文字以上使用してください。");b.validator.addMethod("containsAlphabet",function(a,b){return this.optional(b)||/[A-Z|a-z]+/.test(a)},"英字を1文字以上使用してください。");b.validator.addMethod("containsUpper",function(a,b){return this.optional(b)||/[A-Z]+/.test(a)}, "大文字を1文字以上使用してください。");b.validator.addMethod("containsLower",function(a,b){return this.optional(b)||/[a-z]+/.test(a)},"小文字を1文字以上使用してください。");b.validator.addMethod("containsPasswordSymbol",function(a,b){return this.optional(b)||/[!#-\/:-@\[\]-`{-~]+/.test(a)},"記号を1文字以上使用してください。");b.extend(!0,b.validator.messages,a.settings.ruleMessages);b.each(a.settings.toggleGroups,function(b){a.toggleGroup(b)});a.requiredFields=a.getRequiredFields();a.toggleHighlight(a.requiredFields);a.requiredFields.on("change keyup input", function(){a.toggleHighlight(b(this))});b("input[type=text],input[type=tel],input[type=email]").on("input",function(b){if(!a.isIgnored(this))return a.onInput(this)});b("select").on("change",function(){if(!a.isIgnored(this))return a.onChange(this)});b.each(this.settings.addressSearch,function(b,f){a.initAddressSearch(f)})},isIgnored:function(a){var c=this.validator.settings.ignore;return b(a).is(c)},clean:function(a){return b(a)[0]},hasRule:function(a){a=b(a).rules();return this.validator.objectLength(a)}, onFocusOut:function(a){this.settings.focusOut&&this.tryValidateField(a,this.settings.focusOut)},onKeyUp:function(a,b){var f=this.validator.elementValue(a);(9!==b.which&&16!==b.which||void 0!==f&&""!==f)&&this.tryValidateField(a,this.settings.realTime,!0)},onInput:function(a){this.tryValidateField(a,this.settings.realTime,!0)},onClick:function(a){"select-one"!==a.type&&this.tryValidateField(a,this.settings.realTime&&"checkbox"===a.type)},onChange:function(a){this.tryValidateField(a,this.settings.realTime, !0)},tryValidateField:function(a,b,f){var d=!1,e=this.validator;a.name in e.submitted?d=!0:f&&a===e.lastElement?d=!0:b&&(this.settings.alwaysMakeValid||this.hasRule(a))&&(f?d=!0:this.settings.ignoreBlanks?e.optional(a)||(d=!0):d=!0);d&&this.validateField(a)},validateField:function(a){var c=this.validator;if(c.element(a)&&(a=this.clean(a),a=this.relatedFields[a.id])){var f=this;b.each(a,function(a,e){var g=b("#"+e);if(0e.length?d.hideAddresses():/^\d+$/.test(g)?d.fetchAddresses(a,g):d.hideAddresses()})}},fetchAddresses:function(a,c){var f=this,d=f.addressKeyLength; if(!(c.lengthc.length)){if(7===f.length){if(1===c.length){d.autoFillAddress(a,c[0]);return}if(!a.showList){d.autoFillAddress(a,c[0]);return}}var e=b("
    ").attr({id:"fs2_addressMenu",name:"addressMenu","class":"FS2_addressMenu"});e.hide();var g=b.validator.format("[{0}] {1}{2}");b.each(c,function(a,c){var f=b("
  • ").attr({id:"fs2_addressMenuItem_"+a,name:"addressMenuItem_"+ a,"class":"FS2_addressMenuItem"});f.data("address",c);var h=d.prefectureMap[c.pref];f.append(g(n(c.zip),h,c.addr));e.append(f)});c=b(a.zipBack);b("body").prepend(e);e.menu({select:function(b,c){var e=c.item.data("address");d.autoFillAddress(a,e);d.hideAddresses()}});e.position({my:"left top",at:"right+20 top",of:c});e.show()}},autoFillAddress:function(a,c){var f=b(a.zipFront),d=b(a.zipBack),e=b(a.prefecture),g=b(a.address1),h=c.zip.substr(0,3),l=c.zip.substr(3);f.val(h).keyup();d.val(l).keyup();e.val(c.pref).change(); g.val(c.addr).keyup()}}})})(jQuery);