/**
* @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 = '