1 2/*-------------------------------------------------------------------------- 3 4 Script Name : Responsive Mailform 5 Author : FIRSTSTEP - Motohiro Tani 6 Author URL : https://www.1-firststep.com 7 Create Date : 2014/03/25 8 Version : 8.1 9 Last Update : 2022/12/22 10 11--------------------------------------------------------------------------*/ 12 13 14(function( $ ) { 15 16 // global variable init 17 var mailform_dt = $( 'form#mail_form dl dt' ); 18 var confirm_window = 1; 19 var rm_token = ''; 20 var scroll_amount = 70; 21 var required_text = 'å¿ é '; 22 var optional_text = 'ä»»æ'; 23 24 25 26 27 // function resize 28 function resize() { 29 30 $( '.loading-layer' ).css({ 31 'width': $( window ).width() + 'px', 32 'height': window.innerHeight + 'px' 33 }); 34 35 } 36 37 38 39 40 // function slice_method 41 function slice_method( el ) { 42 43 var dt = el.parents( 'dd' ).prev( 'dt' ); 44 var dt_name = dt.html().replace( /<i.*<\/i>/gi, '' ); 45 dt_name = dt_name.replace( /<span.*<\/span>/gi, '' ); 46 dt_name = dt_name.replace( /<br>|<br \/>/gi, '' ); 47 return dt_name; 48 49 } 50 51 52 53 54 // function error_span 55 function error_span( e, dt, comment, bool ) { 56 57 if ( bool === true ) { 58 var m = e.parents( 'dd' ).find( 'span.error_blank' ).text( dt + 'ã' + comment + 'ããã¦ãã¾ãã' ); 59 } else { 60 var m = e.parents( 'dd' ).find( 'span.error_blank' ).text( '' ); 61 } 62 63 } 64 65 66 67 68 // function compare_method 69 function compare_method( s, e ) { 70 71 if ( s > e ) { 72 return e; 73 } else { 74 return s; 75 } 76 77 } 78 79 80 81 82 // function hidden_append 83 function hidden_append( name, value ) { 84 85 $( '<input />' ) 86 .attr({ 87 type: 'hidden', 88 id: name, 89 name: name, 90 value: value 91 }) 92 .appendTo( $( 'p#form_submit' ) ); 93 94 } 95 96 97 98 99 // function token_get 100 function token_get() { 101 102 var form = $( 'form#mail_form' ); 103 104 105 if ( form.length > 0 ) { 106 $.ajax({ 107 type: form.attr( 'method' ), 108 url: form.attr( 'action' ), 109 cache: false, 110 dataType: 'text', 111 data: 'token_get=true&javascript_action=true', 112 113 success: function( res ) { 114 var response = res.split( ',' ); 115 if ( response[0] === 'token_success' ) { 116 rm_token = response[1]; 117 setTimeout(function() { 118 token_get(); 119 }, 900000 ); 120 } else { 121 window.alert( 'ãã¼ã¯ã³ã®åå¾ã«å¤±æãã¾ããã' ); 122 } 123 }, 124 125 error: function( res ) { 126 window.alert( 'Ajaxéä¿¡ã失æãã¾ããã\nãã¼ã¸ã®åèªã¿è¾¼ã¿ããã¦ããããä¸åº¦ã試ããã ããã' ); 127 } 128 }); 129 } 130 131 } 132 133 134 135 136 // function required_check 137 function required_check() { 138 139 var error = 0; 140 var scroll_point = $( 'body' ).height(); 141 142 143 for ( var i = 0; i < mailform_dt.length; i++ ) { 144 if ( mailform_dt.eq(i).next( 'dd' ).find( 'input' ).length && mailform_dt.eq(i).next( 'dd' ).hasClass( 'required' ) ) { 145 146 var elements = mailform_dt.eq(i).next( 'dd' ).find( 'input' ); 147 var dt_name = slice_method( elements.eq(0) ); 148 149 if ( elements.eq(0).attr( 'type' ) === 'radio' || elements.eq(0).attr( 'type' ) === 'checkbox' ) { 150 151 var list_error = 0; 152 for ( var j = 0; j < elements.length; j++ ) { 153 if ( elements.eq(j).prop( 'checked' ) === false ) { 154 list_error++; 155 } 156 } 157 158 if ( list_error === elements.length ) { 159 error_span( elements.eq(0), dt_name, '鏿', true ); 160 error++; 161 scroll_point = compare_method( scroll_point, elements.eq(0).offset().top ); 162 } else { 163 error_span( elements.eq(0), dt_name, '', false ); 164 } 165 166 } else { 167 168 var list_error = 0; 169 for ( var j = 0; j < elements.length; j++ ) { 170 if ( elements.eq(j).val() === '' ) { 171 list_error++; 172 } 173 } 174 175 if ( list_error !== 0 ) { 176 error_span( elements.eq(0), dt_name, 'å ¥å', true ); 177 error++; 178 scroll_point = compare_method( scroll_point, elements.eq(0).offset().top ); 179 } else { 180 error_span( elements.eq(0), dt_name, '', false ); 181 } 182 183 } 184 } 185 186 187 if ( mailform_dt.eq(i).next( 'dd' ).find( 'select' ).length && mailform_dt.eq(i).next( 'dd' ).hasClass( 'required' ) ) { 188 var elements = mailform_dt.eq(i).next( 'dd' ).find( 'select' ); 189 var dt_name = slice_method( elements.eq(0) ); 190 191 var list_error = 0; 192 for ( var j = 0; j < elements.length; j++ ) { 193 if ( elements.eq(j).val() === '' ) { 194 list_error++; 195 } 196 } 197 198 if ( list_error !== 0 ) { 199 error_span( elements.eq(0), dt_name, '鏿', true ); 200 error++; 201 scroll_point = compare_method( scroll_point, elements.eq(0).offset().top ); 202 } else { 203 error_span( elements.eq(0), dt_name, '', false ); 204 } 205 } 206 207 208 if ( mailform_dt.eq(i).next( 'dd' ).find( 'textarea' ).length && mailform_dt.eq(i).next( 'dd' ).hasClass( 'required' ) ) { 209 var elements = mailform_dt.eq(i).next( 'dd' ).find( 'textarea' ); 210 var dt_name = slice_method( elements.eq(0) ); 211 if ( elements.eq(0).val() === '' ) { 212 error_span( elements.eq(0), dt_name, 'å ¥å', true ); 213 error++; 214 scroll_point = compare_method( scroll_point, elements.eq(0).offset().top ); 215 } else { 216 error_span( elements.eq(0), dt_name, '', false ); 217 } 218 } 219 220 221 if ( mailform_dt.eq(i).next( 'dd' ).find( 'input' ).length && mailform_dt.eq(i).next( 'dd' ).find( 'input' ).eq(0).attr( 'type' ) === 'email' ) { 222 var elements = mailform_dt.eq(i).next( 'dd' ).find( 'input' ); 223 var dt_name = slice_method( elements.eq(0) ); 224 if ( elements.eq(0).val() !== '' && ! ( elements.eq(0).val().match(/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/) ) ) { 225 elements.eq(0).parents( 'dd' ).find( 'span.error_format' ).text( 'æ£ããã¡ã¼ã«ã¢ãã¬ã¹ã®æ¸å¼ã§ã¯ããã¾ããã' ); 226 error++; 227 scroll_point = compare_method( scroll_point, elements.eq(0).offset().top ); 228 } else { 229 elements.eq(0).parents( 'dd' ).find( 'span.error_format' ).text( '' ); 230 } 231 } 232 } 233 234 235 if ( $( 'input[name="mail_address_confirm"]' ).length && $( 'input[name="mail_address"]' ).length ) { 236 var element = $( 'input[name="mail_address_confirm"]' ); 237 var element_2 = $( 'input[name="mail_address"]' ); 238 var dt_name = slice_method( element ); 239 240 if ( element.val() !== '' && element.val() !== element_2.val() ) { 241 element.parents( 'dd' ).find( 'span.error_match' ).text( 'ã¡ã¼ã«ã¢ãã¬ã¹ãä¸è´ãã¾ããã' ); 242 error++; 243 scroll_point = compare_method( scroll_point, element.offset().top ); 244 } else { 245 element.parents( 'dd' ).find( 'span.error_match' ).text( '' ); 246 } 247 } 248 249 250 251 252 if ( error === 0 ) { 253 254 if ( confirm_window === 1 ) { 255 if ( window.confirm( 'éä¿¡ãã¦ãããããã§ããï¼' ) ) { 256 send_setup(); 257 order_set(); 258 send_method(); 259 } 260 } 261 262 } else { 263 $( 'html, body' ).animate({ 264 scrollTop: scroll_point - scroll_amount 265 }, 500 ); 266 } 267 268 } 269 270 271 272 273 // function send_setup 274 function send_setup() { 275 276 hidden_append( 'javascript_action', true ); 277 hidden_append( 'token', rm_token ); 278 279 var now_url = encodeURI( document.URL ); 280 hidden_append( 'now_url', now_url ); 281 282 var before_url = encodeURI( document.referrer ); 283 hidden_append( 'before_url', before_url ); 284 285 } 286 287 288 289 290 // function order_set 291 function order_set() { 292 293 var order_number = 0; 294 for ( var i = 0; i < mailform_dt.length; i++ ) { 295 296 if ( mailform_dt.eq(i).next( 'dd' ).find( 'input' ).length ) { 297 var elements = mailform_dt.eq(i).next( 'dd' ).find( 'input' ); 298 var dt_name = slice_method( elements.eq(0) ); 299 300 if ( elements.eq(0).attr( 'type' ) === 'radio' || elements.eq(0).attr( 'type' ) === 'checkbox' ) { 301 302 var attr_name = elements.eq(0).attr( 'name' ).replace( /\[|\]/g, '' ); 303 var attr_type = elements.eq(0).attr( 'type' ); 304 order_number++; 305 hidden_append( 'order_' + order_number, attr_type + ',' + attr_name + ',false,' + dt_name ); 306 307 } else { 308 309 for ( var j = 0; j < elements.length; j++ ) { 310 var attr_name = elements.eq(j).attr( 'name' ); 311 var attr_type = elements.eq(j).attr( 'type' ); 312 if ( j === 0 ) { 313 var connect = 'false'; 314 } else { 315 var connect = 'true'; 316 } 317 order_number++; 318 hidden_append( 'order_' + order_number, attr_type + ',' + attr_name + ',' + connect + ',' + dt_name ); 319 } 320 321 } 322 } 323 324 325 if ( mailform_dt.eq(i).next( 'dd' ).find( 'select' ).length ) { 326 var elements = mailform_dt.eq(i).next( 'dd' ).find( 'select' ); 327 var dt_name = slice_method( elements.eq(0) ); 328 329 for ( var j = 0; j < elements.length; j++ ) { 330 var attr_name = elements.eq(j).attr( 'name' ); 331 var attr_type = 'select'; 332 if ( j === 0 ) { 333 var connect = 'false'; 334 } else { 335 var connect = 'true'; 336 } 337 order_number++; 338 hidden_append( 'order_' + order_number, attr_type + ',' + attr_name + ',' + connect + ',' + dt_name ); 339 } 340 } 341 342 343 if ( mailform_dt.eq(i).next( 'dd' ).find( 'textarea' ).length ) { 344 var elements = mailform_dt.eq(i).next( 'dd' ).find( 'textarea' ); 345 var dt_name = slice_method( elements.eq(0) ); 346 var attr_name = elements.eq(0).attr( 'name' ); 347 var attr_type = 'textarea'; 348 order_number++; 349 hidden_append( 'order_' + order_number, attr_type + ',' + attr_name + ',false,' + dt_name ); 350 } 351 352 } 353 354 355 hidden_append( 'order_count', order_number ); 356 357 } 358 359 360 361 362 // function send_method 363 function send_method() { 364 365 $( '<div>' ) 366 .addClass( 'loading-layer' ) 367 .appendTo( 'body' ) 368 .append( '<span class="loading"></span>' ); 369 370 setTimeout(function() { 371 372 var form_data = new FormData( $( 'form#mail_form' ).get(0) ); 373 374 $.ajax({ 375 type: $( 'form#mail_form' ).attr( 'method' ), 376 url: $( 'form#mail_form' ).attr( 'action' ), 377 cache: false, 378 dataType: 'html', 379 data: form_data, 380 contentType: false, 381 processData: false, 382 383 success: function( res ) { 384 $( 'div.loading-layer, span.loading' ).remove(); 385 var response = res.split( ',' ); 386 if ( response[0] === 'send_success' ) { 387 window.location.href = response[1]; 388 } else { 389 $( 'input#form_submit_button' ).nextAll( 'input' ).remove(); 390 response[1] = response[1].replace( /<br>|<br \/>/gi, "\n" ); 391 window.alert( response[1] ); 392 ios_bugfix(); 393 } 394 }, 395 396 error: function( res ) { 397 $( 'div.loading-layer, span.loading' ).remove(); 398 $( 'input#form_submit_button' ).nextAll( 'input' ).remove(); 399 window.alert( 'éä¿¡ã«å¤±æãã¾ããã\nãã¼ã¸ã®åèªã¿è¾¼ã¿ããã¦ããããä¸åº¦ã試ããã ããã' ); 400 } 401 }); 402 403 }, 1000 ); 404 405 } 406 407 408 409 410 // function ios_bugfix 411 function ios_bugfix() { 412 413 } 414 415 416 417 418 // page setting 419 for ( var i = 0; i < mailform_dt.length; i++ ) { 420 if ( mailform_dt.eq(i).find( 'i' ).length ) { 421 if ( mailform_dt.eq(i).next( 'dd' ).hasClass( 'required' ) ) { 422 $( '<span/>' ) 423 .text( 'å¿ é ' ) 424 .addClass( 'required' ) 425 .prependTo( mailform_dt.eq(i).find( 'i' ) ); 426 } else { 427 $( '<span/>' ) 428 .text( 'ä»»æ' ) 429 .addClass( 'optional' ) 430 .prependTo( mailform_dt.eq(i).find( 'i' ) ); 431 } 432 } 433 434 $( '<span/>' ) 435 .addClass( 'error_blank' ) 436 .appendTo( mailform_dt.eq(i).next( 'dd' ) ); 437 438 if ( mailform_dt.eq(i).next( 'dd' ).find( 'input' ).length && mailform_dt.eq(i).next( 'dd' ).find( 'input' ).eq(0).attr( 'type' ) === 'email' ) { 439 $( '<span/>' ) 440 .addClass( 'error_format' ) 441 .appendTo( mailform_dt.eq(i).next( 'dd' ) ); 442 } 443 } 444 445 446 if ( $( 'input[name="mail_address_confirm"]' ).length ) { 447 $( '<span/>' ) 448 .addClass( 'error_match' ) 449 .appendTo( $( 'input[name="mail_address_confirm"]' ).parents( 'dd' ) ); 450 } 451 452 453 $( 'form#mail_form input' ).on( 'keydown', function( e ) { 454 if ( ( e.which && e.which === 13 ) || ( e.keyCode && e.keyCode === 13 ) ) { 455 return false;
456 } else { 457 return true; 458 } 459 }); 460 461 462 $( window ).on( 'resize', resize ); 463 464 465 token_get(); 466 467 468 $( 'input#form_submit_button' ).on( 'click', required_check ); 469 470})( jQuery );
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.