/** * @copyright (c) luft co.,ltd. * @link http://www.luft.co.jp * @date 2013.6.04 * @author Nao Egami,Sayuri Kanetaka * * @update 2013.5.30 * */ ;$(function() { /* console for IE */ if(typeof window.console === "undefined"){window.console = {}} if(typeof window.console.log !== "function"){window.console.log = function(){}} var $body = $("html,body"); var $document = $(document); var $window = $(window); var $wrapper = $("#wrapper"); var $block = $(".block"); var $navbtn = $("#navbtn"); var $navi = $("#navi"); var navFlg = false; var _winW,_winH; /* TOP */ var _IE_minW = 826; var _IE_maxW = 1210; var _NAV_minW = 626; var _masonry_minW = 626; var _masonry_flag = false; var _imgList = []; var _loaded = 0; var $imgClass = $(".img,.p_img,.b_img"); var $slide_ov = $(".slide_dtl"); var $multiSlider = $("#multiSlider"); /* Tweets Search JSONP */ var _timeout = 15000; var dataHolder = []; var datalng; var _loadPerson = [ //"yamamoto_kanae", //"hisatake_sugi", "osakakomei" ]; /* FAQ */ var $q = $("#faq > li > dl >dt"); var $a = $("#faq > li > dl >dd"); /* CategoryMenu */ var $cate_tgl = $("#cate_tgl"); var $archive_tgl = $("#archive_tgl"); var _Webkit_minW = (!document.uniqueID && !window.opera && !window.sidebar && window.localStorage && typeof window.orientation == "undefined")? _IE_minW : _IE_minW - 17; var _nav_minW = (!document.uniqueID && !window.opera && !window.sidebar && window.localStorage && typeof window.orientation == "undefined")? _NAV_minW : _NAV_minW - 17; //var _Webkit_minW = ($.browser.webkit)?_IE_minW:_IE_minW-17; //var _nav_minW = ($.browser.webkit)?_NAV_minW:_NAV_minW-17; /* Election */ var $elec_tgl = $(".elec_tgl"); /* ----------------------------- * Navigation * ----------------------------- */ if(Modernizr.opacity){ $window.bind('resize', navResize).trigger('resize'); $("#lower").each(function() { $navbtn.bind('click',navOpenfn); }); } /* ----------------------------- * Initialize * ----------------------------- */ function initialize() { $imgClass.each(function () { _imgList.push($(this).data("imgurl")); $(this).css({ "backgroundImage": "url('images/common/loader.gif')", "backgroundPosition": "center center", "backgroundRepeat": "no-repeat" }); }); $block.bind("mouseenter",topHover); if(!Modernizr.opacity){ $window.bind("resize",ieDisplay).trigger("resize"); } $window.bind("resize",masonry_check).trigger("resize"); setTimeout(onImageLoad, 1000); for (var i=0; i<_loadPerson.length; i++) { twSearchJsonRequestSetup(_loadPerson[i]); } multiSlider_set(); $window.bind("resize",slide_ovHeight).trigger("resize"); } /* ----------------------------- * Groval Navi * ----------------------------- */ function navTopOpenfn() { if(!navFlg) { $(this).find("span").addClass("opn"); $navi.stop(true,true).slideDown(500); $(this).find("p").text("閉じる"); navFlg = true; } else { $(this) .find("span").removeClass("opn"); $navi.stop(true,true).slideUp(); $(this).find("p").text("メニュー"); navFlg = false; } } function navOpenfn() { if(!navFlg) { $(this).find("span").addClass("opn"); $navi.stop(true,true).slideDown(500); $(this).find("p").text("閉じる"); navFlg = true; } else { $(this) .find("span").removeClass("opn"); $navi.stop(true,true).slideUp(); $(this).find("p").text("メニュー"); navFlg = false; } } function navResize() { var $winW = $window.width(); if($winW >= (_nav_minW+1)) { $navi.css('display','block'); } else if(!navFlg && $winW < (_nav_minW+1)) { $navbtn.find("span").removeClass("opn"); $navi.css('display','none'); } else { $navbtn.find("span").addClass("opn"); $navi.css('display','block'); } } /* ----------------------------- * Top Link Hover * ----------------------------- */ function topHover() { $(this).has("aside, article, .btn_election").addClass("link"); } /* ----------------------------- * IE Masonry Off * ----------------------------- */ function ieDisplay() { _winW = $window.width(); if(_winW <= _IE_minW){ $wrapper.css({"width":_IE_minW+"px"}); } else { $wrapper.css({"width":_IE_maxW+"px"}); } } /* ----------------------------- * Images Load * ----------------------------- */ function onImageLoad() { $wrapper.trigger('imgloader', imageLoad(_loaded)); } function imageLoader(i) { /** * Timeout */ var isLoaded = false; var loadTimeOut = setTimeout(function() { if(!isLoaded) { clearTimeout(loadTimeOut); $img.stop().trigger('error'); } },_timeout); var $img = $("", { src: $.browser.opacity?_imgList[i]:_imgList[i]+'?'+new Date().getTime(), width: '100%', height: $.browser.msie? 'auto':'' }) .bind('load',function(e) { /** * Timeout Cancel */ isLoaded = true; clearTimeout(loadTimeOut); $(this).unbind('load'); $imgClass.eq(i).css({ "background-image": "", "background-position": "", "background-repeat": "" }); $imgClass.eq(i).append($(this)); $wrapper.trigger('imgloader', imageLoad(++i)); if(_masonry_flag){ $wrapper.masonry('reload'); } }) .bind('error', function(e) { $(this).unbind('load'); alert("Loading Error: 画像ファイルの読み込みに失敗しました。再読み込みしてください。"); }); } /** * Load */ function imageLoad(i) { if(_imgList[i]) imageLoader(i); } /* ----------------------------- * Masonry * ----------------------------- */ function masonry_set() { $window.load(function() { $wrapper.masonry({ itemSelector : '.block', columnWidth: 200, isFitWidth: true }); }); _masonry_flag = true; } function masonry_off() { $wrapper.masonry('destroy'); _masonry_flag = false; } function masonry_reload(){ $wrapper.masonry({ itemSelector : '.block', columnWidth: 200, isFitWidth: true }); _masonry_flag = true; } function masonry_check() { _winW = $window.width(); if (_winW <= _masonry_minW){ (_masonry_flag)? masonry_off():""; } else { masonry_reload(); } } /* ----------------------------- * Twitter * ----------------------------- */ function twSearchJsonRequestSetup(loadId) { var $tWarticle = $("#"+loadId); $tWarticle.css("height","150px"); var $twloading = $("", { 'class': 'twloading', src: 'images/common/loader.gif' }).css({ position: 'absolute', top: '50%', left: '50%', marginLeft: -16, marginTop: -16, opacity: 0 }).prependTo($tWarticle).animate({ opacity: 1 },{duration:1500, easing:"easeInOutExpo", queue:false, complete: function() { twSearchJsonRequest(loadId); } }); } function twSearchJsonRequest(person) { $.ajax({ scriptCharset: 'utf-8', cache: false, type: 'GET', dataType: 'jsonp', url: '//www.komei-osaka.jp/callback/'+person+'/php/getJsonp.php?callback=?', data: { 'query': '', 'count': '1' }, timeout: _timeout, success: function(data){ tweetParseJson(data, person); }, error: function(){ tweetParseError(); } }); } function tweetParseError() { alert("Error: Load failed / データの読み込みに失敗しました。検索が集中している可能性があります。しばらく経ってからアクセスしてください。"); } function tweetParseJson(json, p) { if(json == undefined || json == "" || json.error) { alert("Error: Load failed / 投稿がありません。誠に申し訳ございませんが、しばらく経ってからアクセスしてください。"); return; } datalng = json.length; dataHolder[p] = ["id_str"]; dataHolder[p] = ["profile_image_url_https"]; dataHolder[p] = ["text"]; dataHolder[p] = ["name"]; dataHolder[p] = ["screen_name"]; dataHolder[p] = ["created_at"]; $.each(json, function(i,data) { /* data["id_str"] */ var _id = data.id_str; dataHolder[p]["id_str"] = _id; console.log(data); /* data["user"]["profile_image_url"] */ var _p = 'Twitter User Image'; dataHolder[p]["profile_image_url_https"] = _p; /* data["text"] */ var _t = data.text; _t = _t.replace(/(s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:@&=+$,%#]+)/gi,'$1'); // href _t = _t.replace(/#([\w\-]+)/gi,'#$1'); // hash _t = _t.replace(/@(\w+)/gi,'@$1'); // Reply dataHolder[p]["text"] = _t; /* data["user"]["name"] */ var _n = data.user.name; dataHolder[p]["name"] = _n; /* data["user"]["screen_name"] */ var _s = data.user.screen_name; dataHolder[p]["screen_name"] = _s; /* data["created_at"] */ var _d = {}; _d = data.created_at.split(" "); _d = _d[1]+" "+_d[2]+", "+_d[5]+" "+_d[3]; dataHolder[p]["created_at"] = prettyDate(new Date(Date.parse(_d))); }); tweetParseComplete(p); } function tweetParseComplete(perS) { tweetCreate(perS); } function tweetTmpl(n) { var tmpl = '
' + ''+ dataHolder[n]["profile_image_url_https"] +'' + '
' + '
'+ dataHolder[n]["name"] +'
' + '
@'+ dataHolder[n]["screen_name"] +'
' + '
' + '
' + '
'+ dataHolder[n]["text"] +'
' + '
'; return tmpl; } function tweetCreate(P) { var $messeageWrap = $("#"+P); $messeageWrap.children("img.twloading").delay(500).animate({ opacity: 0 },{duration:1500, easing:"easeInOutExpo", queue:true, complete: function() { $messeageWrap.css("height",""); $(this).remove(); $messeageWrap.append(tweetTmpl(P)); $wrapper.masonry('reload'); } }); } /* ----------------------------- * MultiSlider * ----------------------------- */ function slide_ovHeight() { if(Modernizr.touch){ $("#multiSlider > li > img").remove(); $slide_ov.css({"height":"187px", "display":"block" }); $multiSlider.css("height","187px"); } else { $slide_ov.css({"height":$slide_ov.parent().parent().height(), "display":"none" }); $multiSlider.css("height",$slide_ov.parent().parent().height()); } } function multiSlider_set() { $multiSlider.multiSlider({ width:'100%', speed:750, timer:4000, easing:"easeInOutExpo", slideMode:'row', startSlide:0, directionNav:true, pointNav:false, prevNavText: 'g', nextNavText: 'h', onMouseOver: multiSlider_over, onMouseOut: multiSlider_out }); } function multiSlider_over() { if(!Modernizr.touch){ $slide_ov.stop(true,false).css({ display:'block', opacity: 0 }).animate({ opacity: 1 },{duration:250, easing:"easeOutQuart", queue:false}); } } function multiSlider_out() { if(!Modernizr.touch){ $slide_ov.stop(true,false).css({ display:'block' }).animate({ opacity: 0 },{duration:650, easing:"easeOutQuart", queue:false}); } } /* ----------------------------- * TOP * ----------------------------- */ $("#top").each(function() { /** * Initialize */ initialize(); $navbtn.bind('click',navTopOpenfn); }); /* ----------------------------- * IMGload * ----------------------------- */ $("#article_wrap").each(function() { $imgClass.each(function () { _imgList.push($(this).data("imgurl")); $(this).css({ "backgroundImage": "url('/images/common/loader.gif')", "backgroundPosition": "center center", "backgroundRepeat": "no-repeat" }); }); if(_imgList.length != 0){ setTimeout(onImageLoad, 1000); } }); /* ----------------------------- * FAQ * ----------------------------- */ $("#faq").each(function() { $q.bind('click',faqSlide); //$a.css("display","none"); }); function faqSlide() { if($(this).parent("dl").hasClass("select")){ $(this).next("dd").stop(true, true).slideUp('fast','easeOutQuad',function(){ $(this).parent("dl").removeClass("select"); $(this).prev().find(".check").text("+"); }); }else{ $(this).next("dd").stop(true, true).slideDown('easeOutQuad',function(){ $(this).parent("dl").addClass("select"); $(this).prev().find(".check").text("-"); }); } } /* ----------------------------- * Category Menu * ----------------------------- */ if(Modernizr.opacity){ $cate_tgl.each(function() { $(this).bind('click',cateSlide); $window.bind("resize",cateSlideResize); }); $archive_tgl.each(function() { $(this).bind('click',cateSlide); $window.bind("resize",archiveSlideResize); }); } function cateSlide() { if($(this).hasClass("open")){ $(this).next("ul").stop(true, true).slideUp('fast','easeOutQuad',function(){ $(this).prev("p").removeClass("open"); $(this).prev("p").find("i").text("+"); }); }else{ $(this).next("ul").stop(true, true).slideDown('easeOutQuad',function(){ $(this).prev("p").addClass("open"); $(this).prev("p").find("i").text("-"); }); } } function cateSlideResize() { if($window.width() > _Webkit_minW){ $cate_tgl.next("ul").show(); } else { if($cate_tgl.hasClass("open")){ $cate_tgl.next("ul").show(); $(this).prev("p").removeClass("open"); $(this).prev("p").find("i").text("+"); } else { $cate_tgl.next("ul").hide(); $(this).prev("p").addClass("open"); $(this).prev("p").find("i").text("-"); } } } function archiveSlideResize() { if($window.width() > _Webkit_minW){ $archive_tgl.next("ul").show(); } else { if($archive_tgl.hasClass("open")){ $archive_tgl.next("ul").show(); $(this).prev("p").removeClass("open"); $(this).prev("p").find("i").text("+"); } else { $archive_tgl.next("ul").hide(); $(this).prev("p").addClass("open"); $(this).prev("p").find("i").text("-"); } } } /* ----------------------------- * Election Box Open * ----------------------------- */ $("#e_schedule > dl.e_kouho > dt").addClass("open"); //$("#e_schedule > dl.e_kouho > dt").find("i").text("+"); $("#e_result > dl.e_kouho > dt").find("i").text("+"); $("#e_result > dl.e_kouho > dt:first").find("i").text("-"); $("#e_result > dl.e_kouho > dt:eq(1)").find("i").text("-"); $("#e_result > dl.e_kouho > dt:eq(2)").find("i").text("-"); $elec_tgl.each(function() { $(this).bind('click',elecSlide); }); function elecSlide() { if($(this).hasClass("open")){ $(this).next("dd").stop(true, true).slideUp('fast','easeOutQuad',function(){ $(this).prev("dt").removeClass("open"); $(this).prev("dt").find("i").text("+"); }); }else{ $(this).next("dd").stop(true, true).slideDown('easeOutQuad',function(){ $(this).prev("dt").addClass("open"); $(this).prev("dt").find("i").text("-"); }); } } /* ----------------------------- * Responsive-tables.js * ----------------------------- */ $("#fuhonbu_tbl").each(function() { if(Modernizr.opacity){ var switched = false; var updateTables = function() { if (($(window).width() < _Webkit_minW) && !switched ){ switched = true; $("table.responsive").each(function(i, element) { splitTable($(element)); }); return true; } else if (switched && ($(window).width() > _Webkit_minW)) { switched = false; $("table.responsive").each(function(i, element) { unsplitTable($(element)); }); } }; $(window).load(updateTables); $(window).on("redraw",function(){switched=false;updateTables();}); // An event to listen for $(window).on("resize", updateTables); } function splitTable(original) { original.wrap("
"); var copy = original.clone(); copy.find("td:not(:first-child), th:not(:first-child)").css("display", "none"); copy.removeClass("responsive"); original.closest(".table-wrapper").append(copy); copy.wrap("
"); original.wrap("
"); setCellHeights(original, copy); } function unsplitTable(original) { original.closest(".table-wrapper").find(".pinned").remove(); original.unwrap(); original.unwrap(); } function setCellHeights(original, copy) { var tr = original.find('tr'), tr_copy = copy.find('tr'), heights = []; tr.each(function (index) { var self = $(this), tx = self.find('th, td'); tx.each(function () { var height = $(this).outerHeight(true); heights[index] = heights[index] || 0; if (height > heights[index]) heights[index] = height; }); }); tr_copy.each(function (index) { $(this).height(heights[index]); }); } }); /* ----------------------------- * SP Search Bar Up * ----------------------------- */ if(Modernizr.touch){ if(!location.hash){ $window.bind("load", function(){ setTimeout("scrollTo(0,1)",100); }); } } /* ----------------------------- * Form * ----------------------------- */ $("#mailaddress").each(function() { if(Mobile.check()){ $(this).get(0).type = "email"; } else { $(this).css("ime-mode","inactive"); } }); }); /* * JavaScript Pretty Date * Copyright (c) 2011 John Resig (ejohn.org) * Licensed under the MIT and GPL licenses. */ function prettyDate(timeJP) { var diff = (((new Date()).getTime()-timeJP.getTime())/1000)+(new Date().getTimezoneOffset()*60), day_diff = Math.floor(diff/86400); if(isNaN(day_diff) || day_diff < 0 || day_diff >= 31) return "Last year"; return day_diff == 0 && ( diff < 60 && "just now" || diff < 120 && "1 minute ago" || diff < 3600 && Math.floor(diff/60)+" minutes ago" || diff < 7200 && "1 hour ago" || diff < 86400 && Math.floor(diff/3600)+ " hours ago") || day_diff == 1 && "yesterday" || day_diff < 7 && day_diff + " days ago" || day_diff < 31 && Math.ceil(day_diff/7)+ " weeks ago"; } /* ----------------------------- * Mobile Device * ----------------------------- */ var Mobile = {}; Mobile = (function() { return { check: function () { var ua = [ 'iPhone', // Apple iPhone 'iPad', // Apple iPad 'iPod', // Apple iPod touch 'Android', // 1.5+ Android 'dream', // Pre 1.5 Android 'CUPCAKE', // 1.5+ Android 'Windows.Phone', // Windows Phone 'BlackBerry9500', // Storm 'BlackBerry9530', // Storm 'BlackBerry9520', // Storm v2 'BlackBerry9550', // Storm v2 'BlackBerry9800', // Torch 'webOS', // Palm Pre Experimental 'incognito', // Other iPhone browser 'webmate' // Other iPhone browser ]; var pattern = new RegExp(ua.join('|'), 'i'); return pattern.test(navigator.userAgent); }, iOS: function () { var ua = navigator.userAgent; return (/iPhone/.test(ua) || /iPad/.test(ua) || /iPod/.test(ua)) ? true : false; }, lowerAndroid: function () { var ua = navigator.userAgent.toLowerCase(); var ver = parseFloat(ua.substr(ua.indexOf('android')+8,3)); return (ua.indexOf("android") != -1 && (ver < 2.2)) ? true : false; }, urlBar: function() { setTimeout(function(){window.scrollTo(0,1)},100); }, onPageBackReset: function() { var pos; window.onpagehide = function() { pos = window.pageYOffset>0 ? window.pageYOffset+1 : 1; } window.onpageshow = function() { setTimeout(function(){window.scrollTo(0,pos);},100); } } }; })();