$(function() { entry = Array(); category = Array(); category['profile/'] = Array(); category['profile/']['title'] = "profile"; category['profile/']['description'] = ""; category['profile/']['type'] = "page"; category['profile/']['pagenation'] = "0"; category['profile/']['format'] = "Profile_Format_001"; category['profile/']['directory'] = "profile/"; category['root'] = Array(); category['root']['title'] = "top"; category['root']['description'] = ""; category['root']['type'] = "page"; category['root']['pagenation'] = "0"; category['root']['format'] = "Part_Content_001"; category['root']['directory'] = "root"; category['about'] = Array(); category['about']['title'] = "top/about"; category['about']['description'] = ""; category['about']['type'] = "ground"; category['about']['pagenation'] = "2"; category['about']['format'] = "Part_Content_003"; category['about']['directory'] = "root"; category['gallery'] = Array(); category['gallery']['title'] = "top/gallery"; category['gallery']['description'] = ""; category['gallery']['type'] = "ground"; category['gallery']['pagenation'] = "3"; category['gallery']['format'] = "Part_Content_100"; category['gallery']['directory'] = "root"; category['wedding'] = Array(); category['wedding']['title'] = "top/wedding"; category['wedding']['description'] = ""; category['wedding']['type'] = "ground"; category['wedding']['pagenation'] = "4"; category['wedding']['format'] = "Part_Content_101"; category['wedding']['directory'] = "root"; category['products'] = Array(); category['products']['title'] = "top/products"; category['products']['description'] = ""; category['products']['type'] = "ground"; category['products']['pagenation'] = "5"; category['products']['format'] = "Part_Content_102"; category['products']['directory'] = "root"; category['stockists'] = Array(); category['stockists']['title'] = "top/stockists"; category['stockists']['description'] = ""; category['stockists']['type'] = "ground"; category['stockists']['pagenation'] = "6"; category['stockists']['format'] = "Part_Content_005"; category['stockists']['directory'] = "root"; category['info/'] = Array(); category['info/']['title'] = "info"; category['info/']['description'] = ""; category['info/']['type'] = "page"; category['info/']['pagenation'] = "7"; category['info/']['format'] = "Part_Content_040"; category['info/']['directory'] = "info/"; category['gallery/'] = Array(); category['gallery/']['title'] = "gallery"; category['gallery/']['description'] = ""; category['gallery/']['type'] = "page hidden"; category['gallery/']['pagenation'] = "8"; category['gallery/']['format'] = "Part_Content_200"; category['gallery/']['directory'] = "gallery/"; category['wedding/'] = Array(); category['wedding/']['title'] = "wedding"; category['wedding/']['description'] = ""; category['wedding/']['type'] = "page hidden"; category['wedding/']['pagenation'] = "9"; category['wedding/']['format'] = "Part_Content_201"; category['wedding/']['directory'] = "wedding/"; category['products/'] = Array(); category['products/']['title'] = "products"; category['products/']['description'] = ""; category['products/']['type'] = "page hidden"; category['products/']['pagenation'] = "10"; category['products/']['format'] = "Part_Content_202"; category['products/']['directory'] = "products/"; function htmlEncode(value){ return $('
').text(value).html(); } function htmlDecode(value){ return $('
').html(value).text(); } var href = ""; var past_href = location.href; var history_back_url = ""; var past_directory = $("body").attr("data-directory"); var past_index_num = $("body").attr("data-index_num"); var past_archive_year_dir = $("body").attr("data-archive_year_dir"); var past_modal_content_type = ""; var memo_scroll = 0; var id = past_href.replace( "https://babo.world/", "" ).replace( "?mode=preview", "" ); var option = ""; function PJAX_pjax( href, option, target ) { hash = ""; if(href.indexOf( "#/" ) != -1){ hash_arr = href.split("#/"); href = hash_arr[0]; hash = hash_arr[1]; PJAX_hash( hash ); } id = href.replace( "https://babo.world/", "" ).replace( "?mode=preview", "" ); var scroll_id = href.replace( "https://babo.world/", "" ).replace( "?mode=preview", "" ); if( scroll_id == "" ){ scroll_id = "root"; } var modal_remove_flg = 0 var modal_after_id = ""; if( id == "" ){ modal_after_id = "root"; }else{ modal_after_id = id; } if( typeof category[modal_after_id] != "undefined" ){ if( option == "by_onpop" || history_back_url == href ){ if( ($("body").hasClass("modal") || $("body").hasClass("entry")) && category[modal_after_id]['type'] != "modal" && category[modal_after_id]['type'] != "entry" ){ // console.log("modal_remove") modal_remove_flg = 1; $("body").removeClass("modal entry"); setTimeout( function(){ if( $("body #entry").css("z-index") == -1 ){ $("body #entry").empty(); scroll_on(); } } , 1000); } } } var scroll_ground_flg = PJAX_scroll_ground( scroll_id, option ); if( href && past_href != href && href.indexOf( "#" ) == -1 ){ scroll_action_flag = false; if( typeof scroll_action_limiter != "undefined" ){ clearTimeout( scroll_action_limiter ); } if( typeof entry[id] != "undefined" ){ id = entry[id]; href = href.replace( id, entry[id] ); } history_back_url = past_href; past_href = href; // console.log("──── pjax ────"); // console.log("href: " + href); // console.log("id: " + id); // console.log("option: " + option); // console.log("target: " + target); var data_directory = ""; if( typeof $("body").attr("data-directory") !== 'undefined' && $("body").attr("data-directory") !== false ){ var data_directory = String($("body").attr("data-directory")); } var data_archive_year_dir = ""; if( typeof $("body").attr("data-archive_year_dir") !== 'undefined' && $("body").attr("data-archive_year_dir") !== false ){ var data_archive_year_dir = String($("body").attr("data-archive_year_dir")); } var data_index_num = ""; if( typeof $("body").attr("data-index_num") !== 'undefined' && $("body").attr("data-index_num") !== false ){ var data_index_num = String($("body").attr("data-index_num")); } if( option != "by_scroll" && typeof category[scroll_id] != "undefined" && category[scroll_id]['type'] != "modal" && category[scroll_id]['directory'] == data_directory && data_archive_year_dir+data_index_num == "" ){ }else if( scroll_ground_flg != 1 && modal_remove_flg != 1 && option != "by_scroll" && option != "by_load_more" ){ $("body").append('
'); $("body > div.loading").addClass("show"); } if( typeof pjax_request != "undefined" ){ pjax_request.abort(); } // console.log("https://babo.world/js_pjax_json.php?id=" + id + "&lang=&type=json" + ""); pjax_request = $.ajax({ url: "https://babo.world/js_pjax_json.php", data: "id=" + id + "&type=json" + "", dataType: "json", success: function(data, dataType){ var pagetitle = data.pagetitle; var meta_og_image = data.meta_og_image; var permalink = data.permalink; var page_format = data.page_format; var body_class = data.body_class; var path = data.path; var directory = data.directory; var directory_1 = data.directory_1; var directory_2 = data.directory_2; var directory_3 = data.directory_3; var directory_4 = data.directory_4; var file = data.file; var scroll = data.scroll; var page_type = data.page_type; var pagenation = data.pagenation; var index_num = data.index_num; var archive_year_dir = data.archive_year_dir; var index_parent_dir = data.index_parent_dir; var modal_content_type = data.modal_content_type; var modal_content_page_format = data.modal_content_page_format; var modal_content_entry_date = data.modal_content_entry_date; var modal_content_entry_title_jp = data.modal_content_entry_title_jp; var modal_content_entry_title_en = data.modal_content_entry_title_en; var modal_content_entry_description_jp = data.modal_content_entry_description_jp; var modal_content_entry_description_en = data.modal_content_entry_description_en; var modal_content_media = data.modal_content_media; if( option != "by_onpop" && // option != "by_forward" && option != "by_load_more" ){ // console.log("push"); PJAX_pushState( href, pagetitle ); } document.title = pagetitle; var ga_title = pagetitle; if( option != "by_load_more" ){ $("body").attr("class",body_class); $("body").attr("data-directory",directory); $("body").attr("data-file",file); $("body").attr("data-scroll",scroll); $("body").attr("data-index_num",index_num); $("body").attr("data-archive_year_dir",archive_year_dir); } // console.log("modal_content_type: " + modal_content_type); // console.log("past_directory: " + past_directory); // console.log("directory: " + directory); // console.log("pagenation: " + pagenation); // console.log("page_type: " + page_type); // console.log("index_num: " + index_num); // console.log("archive_year_dir: " + archive_year_dir); // console.log("index_parent_dir: " + index_parent_dir); // console.log("scroll: " + scroll); // console.log("_______________________________________"); // console.log("_pjax"); // console.log(href); // console.log(past_modal_content_type); if( modal_content_type != "" ){ past_modal_content_type = modal_content_type; // console.log("_modal_content_type"); // console.log(past_modal_content_type); if( past_directory == "root" ){ modal_close_past_directory = ""; }else{ modal_close_past_directory = past_directory; } var modal_close_url = "https://babo.world/" + modal_close_past_directory; PJAX_ajaxload_modal( href, data, option, target, hash, modal_close_url ); }else{ if( option != "by_scroll" ){ if( option == "by_load_more" && target != "" ){ PJAX_ajaxload_loadmore( href, data, option, target ); }else if( past_directory != directory || past_index_num != index_num || past_archive_year_dir != archive_year_dir ){ past_index_num = index_num; past_directory = directory; past_archive_year_dir = archive_year_dir; scrollto(0); // console.log("_ajaxload_directory"); // console.log(data); PJAX_ajaxload_directory( href, data, option, target ); }else if( past_directory == directory && scroll == "" ){ scroll_action_flag = true; // if( past_modal_content_type == "" ){ // scrollto(0); // }else{ // } PJAX_loading_remove(); }else{ // console.log("_else"); // console.log(data); scroll_action_flag = true; if( past_modal_content_type == "" ){ scroll_action_flag = false; var scrollto_val = 0; if( scroll != "" ){ // window_resize(); scrollto_val = $("#" + selectorEscape(scroll)).offset().top + 10; } scrollto(scrollto_val); }else{ window_resize(); if( scroll != "" ){ // window_resize(); scrollto_val = $("#" + selectorEscape(scroll)).offset().top + 10; scrollto(scrollto_val); } } PJAX_loading_remove(); } } past_modal_content_type = ""; } setTimeout( function(){ if( $("body #entry").css("z-index") == -1 ){ $("body #entry").empty(); } window_resize(); } , 1000); }, error: function(XMLHttpRequest, textStatus, errorThrown){ if( XMLHttpRequest.status !== 0 ){ window.location = href; } } }); }else{ if( option != "by_scroll" ){ var elm_id = id.replace( /\//g, '' ); if( $("#"+elm_id)[0] ){ var target= $("#"+elm_id); var scrollto_val = target.offset().top + 10; scrollto(scrollto_val); }else{ // console.log("?"); // scrollto(0); } } PJAX_loading_remove(); } } function PJAX_loading_remove() { $("body > div.loading").removeClass("show"); setTimeout( function(){ $("body > div.loading").remove(); } , 1000); } function PJAX_scroll_ground( scroll_id, option ) { // window_resize(); if( option != "by_scroll" && typeof category[scroll_id] != "undefined" && category[scroll_id]['type'] != "modal" && category[scroll_id]['directory'] == $("body").attr("data-directory") ){ if( past_modal_content_type == "" ){ // console.log("ground: " + scroll_id); var scrollto_val = 0; if( category[scroll_id]['type'] == "ground" && $("#" + selectorEscape(scroll_id))[0] ){ scrollto_val = $("#" + selectorEscape(scroll_id)).offset().top + 10; } scrollto(scrollto_val); return 1; }else{ $("body").removeClass("entry modal"); return 1; } PJAX_loading_remove(); } return 0; } function PJAX_ajaxload_modal( href, data, option, target, hash, modal_close_url ) { $("#entry").empty(); $("#entry").removeClass(); if( typeof ajax_request != "undefined" ){ ajax_request.abort(); } ajax_request = $.ajax({ url: href, dataType: "html", success: function(data, dataType){ var get_elm = $('#entry > *', $('
').prepend(data)); $("#entry").append(get_elm); $("#entry > div.inner").addClass("pending"); setTimeout( function(){ $("#entry > div.inner").removeClass("pending"); window_resize(); } , 100); // var container_id = $("body #container > div#base > article").attr("id"); // if( container_id == "root" ){ // container_id = ""; // } // var return_href = "https://babo.world/" + container_id; // $("#entry a.pjax.close").attr("href",return_href); // $("#entry a.pjax.return").attr("href",return_href); img_load(); window_resize(); PJAX_loading_remove(); if( $("#entry .pjax.modal_close")[0] ){ $("#entry .pjax.modal_close").attr("href",modal_close_url); } }, error: function(XMLHttpRequest, textStatus, errorThrown){ } }); } function PJAX_ajaxload_directory( href, data, option, target ) { $("body > #wrapper > #container > div.static_elm").fadeOut(1000, function() { $(this).remove(); }); $("html").addClass("moving"); var scroll = data.scroll; if( typeof ajax_request != "undefined" ){ ajax_request.abort(); } ajax_request = $.ajax({ url: href, dataType: "html", success: function(ajax_data, dataType){ // console.log($('#wrapper.logged_in', $('
').prepend(ajax_data))); if( $('#wrapper.logged_in', $('
').prepend(ajax_data))[0] ){ $("#wrapper").addClass("logged_in"); }else{ $("#wrapper").removeClass("logged_in"); } var get_article_elm = $('#container > div#base > article', $('
').prepend(ajax_data)); $("#container > div#base > article").addClass("leave"); $("#container > div#base").append(get_article_elm); // var get_navi_elm = $('#navi', $('
').prepend(ajax_data)); // $("#navi").empty(); // $("#navi").prepend(get_navi_elm); $("#container > div#base > article").addClass("ajax"); setTimeout( function(){ $("#container > div#base > article.leave").remove(); setTimeout( function(){ $("html").removeClass("moving"); scroll_trigger(); if( data.directory == "root" ){ root_init(); } } , 500); load_iframe(); // FB.XFBML.parse(); window_resize(); PJAX_loading_remove(); var scrollto_val = 0; if( scroll != "" ){ scrollto_val = $("#" + selectorEscape(scroll)).offset().top; } scrollto(scrollto_val); } , 10); img_load(); scroll_action_flag = true; }, error: function(XMLHttpRequest, textStatus, errorThrown){ } }); } function PJAX_ajaxload_loadmore( href, data, option, target ) { var scroll = data.scroll; if( typeof ajax_request != "undefined" ){ ajax_request.abort(); } ajax_request = $.ajax({ url: href, dataType: "html", success: function(data, dataType){ target.children("li.load_more").remove(); var get_elm = $('div.index > ul > *', $('
').prepend(data)); target.append(get_elm); img_load(); window_resize(); scroll_action_flag = true; var target_index = target.closest(".index"); thm_random_fade_start( target_index ); }, error: function(XMLHttpRequest, textStatus, errorThrown){ } }); } function scrollto(val){ scroll_action_flag = false; if( $("body.modal")[0] || $("body.entry")[0] ){ $('#entry > div.inner').stop().animate({ scrollTop: val }, 600, "easeOutQuint",function(){ scroll_action_flag = true; }); }else{ $('html,body').stop().animate({ scrollTop: val }, 600, "easeOutQuint",function(){ scroll_action_flag = true; }); } } function PJAX_pushState( href, title ) { if ( window.history.pushState ) { window.history.pushState( title, null, href ); } else { } } window.onpopstate = function(event){ if (event.state) { } else { } var href = location.href; if ( window.history.pushState ) { PJAX_pjax( href, "by_onpop", "" ); } else { var href = "https://babo.world/#!/" + href.replace( /^.\//, '' ); window.location = href; } } $(document).on("click", "a.pjax", function(){ var href = $(this).attr("href"); if ( window.history.pushState ) { PJAX_pjax( href, "", "" ); } else { var href = href.replace( "https://babo.world/", "" ); var href = "https://babo.world/#!/" + href.replace( /^.\//, '' ); var past_href = location.href; window.location = href; } return false; }); $(document).on("click", "div.index > ul > li.load_more > a.pjax_load_more", function(){ var href = $(this).attr("href"); var target = $(this).closest("ul"); if ( window.history.pushState ) { var parent = $(this).parent(); parent.addClass("loading"); parent.append('
loading
'); PJAX_pjax( href, "by_load_more", target ); } return false; }); $(window).hashchange( function(){ var hash = location.hash; if( hash.indexOf( "#!/" ) != -1 ){ var href = hash.replace( /^#!\//, '' ); if( href == "" ){ var href = "https://babo.world/"; } PJAX_pjax( href, "", "" ); } }) $(window).bind('load', function() { var hash = location.hash; if( hash.indexOf( "#!/" ) != -1 ){ var href = hash.replace( /^#!\//, '' ); if ( window.history.pushState ) { window.location = href; }else{ PJAX_pjax( href, "", "" ); } } }); function scroll_trigger() { if( $(".scroll_trigger")[0] ){ var target = $(".scroll_trigger"); var length = target.length; for(var i=0; i 800 ){ var tracking = 0.5; move_y -= window_height/5; }else{ var tracking = 0.25; move_y -= window_height/4; } if( target_parallax.attr("data-tracking") ){ var tracking = target_parallax.attr("data-tracking"); } target_parallax.css({"transform": "matrix(1, 0, 0, 1, 0, "+ -move_y*tracking +")"}); } } if(target.eq(i).hasClass('action')) continue; var in_position = position + window_height/3*2; var window_bottom_position = $(window).scrollTop() + $(window).height(); if(in_position < window_bottom_position){ target.eq(i).addClass('action'); if( target.eq(i).find(".index")[0] ){ // console.log("find_index :"+target.eq(i).attr("id")); var target_index = target.eq(i).find(".index"); if( target_index.find("ul > li.thm:not(.show)")[0] ){ thm_random_fade_start( target_index ); } } } } } } function thm_random_fade_start( target_index ){ // console.log("thm_random_fade_start"); // console.log(target_index.closest("article").attr("id")); var target_thms = target_index.find("ul > li.thm:not(.show)"); thm_random_fade( target_thms, 200 ); } function thm_random_fade( targets, delay ){ var target_num = targets.length; var random_i = Math.floor(Math.random()*target_num); $(targets[random_i]).addClass("show"); targets.splice(random_i,1); if (target_num > 0) { setTimeout(function(){ thm_random_fade( targets, delay ); },delay); } else { return false; } } var document_height = $(document).height(); if( $("html.touch_device")[0] ){ var window_height = screen.height; }else{ var window_height = window.innerHeight ? window.innerHeight: $(window).height(); } var window_width = $(window).width(); var window_ratio = window_height / window_width; var scroll_val = $(window).scrollTop(); var scroll_action_flag = true; if( $("body.modal")[0] ){ scroll_action_flag = false; } if( $("body.entry")[0] ){ scroll_action_flag = false; } function window_action() { scroll_trigger(); scroll_val = $(window).scrollTop(); document_height = $(document).height(); if( scroll_val < Math.round(window_height*0.99) ){ $("html").removeClass("scrolled") $("html").removeClass("scrollend") }else if( scroll_val >= Math.round(window_height*0.99) && scroll_val+window_height < document_height ){ $("html").addClass("scrolled") $("html").removeClass("scrollend") }else{ $("html").addClass("scrolled") $("html").addClass("scrollend") } if( scroll_val > 10 || ! $("article#root")[0] ){ $("html").addClass("logo_hide") }else{ $("html").removeClass("logo_hide") } if( scroll_action_flag === true && $("body #container > div#base article.ground")[0] ){ scroll_action_flag = false; if( typeof scroll_action_limiter != "undefined" ){ clearTimeout( scroll_action_limiter ); } scroll_action_limiter = setTimeout( function(){ $("body #container > div#base article.ground").each(function(){ if( $(this).attr("id") != null ){ var ground_id = $(this).attr("id"); scroll_val = $(window).scrollTop(); if( typeof category[ground_id] != "undefined" ){ var ground_offset = $("#" + selectorEscape( ground_id )).offset().top; var ground_height = $("#" + selectorEscape( ground_id )).height(); if( scroll_val >= ground_offset && scroll_val <= ground_offset + ground_height ){ // console.log(id); // console.log(ground_id); var href = "https://babo.world/" + ground_id; // console.log("scroll::"+href); PJAX_pjax( href, "by_scroll", "" ); }else if( scroll_val < $("body #container > div#base article.ground").first().offset().top ){ if( $("body").attr("data-scroll") != "" ){ var ground_directory = $("body").attr("data-directory"); if( ground_directory == "root" ){ ground_directory = ""; } var href = "https://babo.world/" + ground_directory; // console.log("top::"+href); PJAX_pjax( href, "by_scroll", "" ); } } } } }); scroll_action_flag = true; } , 1000); } } function window_resize() { document_height = $(document).height(); if( $("html.touch_device")[0] ){ window_height = screen.height; }else{ window_height = window.innerHeight ? window.innerHeight: $(window).height(); } window_width = $(window).width(); window_ratio = window_height / window_width; if( window_ratio > 1 ){ $("html").removeClass("horizontal"); $("html").addClass("portrait"); }else{ $("html").removeClass("portrait"); $("html").addClass("horizontal"); } if( window_ratio < 0.6 ){ $("html").addClass("panorama"); }else{ $("html").removeClass("panorama"); } // if( $("body").hasClass("navi_open") ){ // $("body").removeClass("navi_open"); // } window_action(); } $(window).scroll(function(){ window_action(); }); $(window).bind("resize", window_resize); function selectorEscape(val){ return val.replace(/\//g, '\\/'); } function rnd(n){ return Math.floor(Math.random()*(n+1)); } function slide_start(target_wrapper) { var max_num = target_wrapper.find("li").length; var first_target = target_wrapper.find("li").eq(rnd(max_num-1)); var img_url = first_target.find("div.img").attr("data-img-url"); first_target.find("img").imagesLoaded(function(){ first_target.addClass("active"); if( typeof timerId_slide != "undefined" ){ clearInterval(timerId_slide); } timerId_slide = setInterval(function(){ if( max_num > 1 ){ var past_target = target_wrapper.find("li.active"); past_target.addClass("pending active"); var next_target = ""; if( past_target.next("li")[0] ){ next_target = past_target.next("li"); }else{ next_target = target_wrapper.find("li").first(); } img_url = next_target.find("div.img").attr("data-img-url"); next_target.find("img").imagesLoaded(function(){ next_target.addClass("active"); setTimeout(function(){ past_target.removeClass("pending active"); },2000); }); next_target.find("img").attr("src", img_url); }else{ clearInterval(timerId_slide); } },10000); }); first_target.find("img").attr("src", img_url); } function root_init(){ if( $("article#root > article#top > div#slide_wrapper")[0] ) { slide_start( $("article#root > article#top > div#slide_wrapper") ); } setTimeout(function(){ window_resize(); },100); } function load_iframe(){ $("iframe.preload:not('.loaded')").each(function(){ $(this).load(function(){ $(this).addClass("loaded"); }); }); } load_iframe(); $("html").data("preloaded", 0); function preload(){ var img = [], img_arr = $("img.preload"), // ローディング対象の画像を指定 img_arr_lngth = img_arr.size(); var img_arr_lngth_total = img_arr_lngth; if( img_arr_lngth_total > 0 ){ img_arr.each(function(indx){ img[indx] = new Image(); img[indx].onload = function(){ img_arr_lngth = img_arr_lngth - 1; var progress = Math.round((1-img_arr_lngth/img_arr_lngth_total)*100); $("div.progress").stop().animate({"width": progress + "%"},2000); if( 0 >= img_arr_lngth ){ $("html").data("preloaded", 1); $("div.progress").stop().animate({"width": "100%"},1500,"easeOutQuad",function(){ setTimeout(function(){ $("div.progress").addClass("out"); setTimeout(function(){ $("div#preloader").fadeOut(1000, function() { $(this).remove(); window_resize(); $("html").addClass("start"); root_init(); }); },1000); },200); }); } }; img[indx].src = $(this).attr('src'); }); }else{ $("html").data("preloaded", 1); $("div#progress").stop().animate({"width": "100%"},1500,"easeOutQuad",function(){ setTimeout(function(){ $("div.progress").addClass("out"); setTimeout(function(){ $("div#preloader").fadeOut(2000, function() { $(this).remove(); window_resize(); }); },1000); },200); }); } } function img_load(){ $("img.preload:not('.loaded')").each(function(){ $(this).imagesLoaded(function(){ $(this).addClass("loaded"); }); }); } $("div#preloader > div.bg > div.logo_wrapper > img.logo").imagesLoaded(function(){ $("div#preloader > div.bg").addClass("show"); preload(); }); $(window).bind('load', function() { img_load(); window_resize(); if( $("body #container > div#base article.ground")[0] ){ var target = $("#" + selectorEscape($("body").attr("data-scroll"))); if( target[0] ){ var val = target.offset().top; scrollto(val); } } }); });