/**
* @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 = '';
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]["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);
}
}
};
})();