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