$(function()
{
var rt_path = (function()
{
$("script").each(function()
{
if($(this).prop("src").match(/p\-calendar\-L\-en.js/i))
{
rt_path = $(this).prop("src").replace("p-calendar-L-en.js", "");
return;
}
});
return rt_path;
})();
var g = (function()
{
var r = new Array();
if(location.search.length > 1) for(var i = 0, gs = location.search.substr(1).split("&"); i < gs.length; ++i)
{
var g = gs[i].split("=");
r[g[0]] = g[1];
}
return r;
})();
var outline = function()
{
return '
'
//+ ''
+ ''
;
};
var ym = function(y, m)
{
var month = ['January','February','March','April','May','June','July','August','September','October','November','December'];
//$("#p-calendar-L-ym").html(y + "年" + m + "月");
$("#p-calendar-L-ym").html(month[m-1] + " " + y);
$("#calendar_month").html( month[m-1]);
var d = new Date(y + "/" + m + "/01"), cmpl = d.getYear() < 2000 ? 1900 : 0;
//前月
var td = new Date(d.getYear() + cmpl, d.getMonth() - 1);
//$("#p-calendar-L-prev").html(td.getMonth() + 1 + "月");
var prev_m = td.getMonth() + 1;
$("#p-calendar-L-prev").html(month[prev_m - 1]);
//翌月
var td = new Date(d.getYear() + cmpl, d.getMonth() + 1);
//$("#p-calendar-L-next").html(td.getMonth() + 1 + "月");
var next_m = td.getMonth() + 1;
$("#p-calendar-L-next").html(month[next_m - 1]);
};
var wk_line = function()
{
return '' + "\n"
+ 'Sun | '
+ 'Mon | '
+ 'Tue | '
+ 'Wed | '
+ 'Thu | '
+ 'Fri | '
+ 'Sat | ' + "\n"
+ '
' + "\n"
;
};
var day = function(y, m)
{
var d = new Date(y, m - 1, 1), t = new Date(y, m, 0), w = "";
var concert_name = [], concert_id = [];
var html = '';
//コンサート情報を取得
$.ajax
({
async: false
,type: "POST"
,cache: false
,timeout: 10000
,url: rt_path + 'ajax_get_concert.php'
,data:
{
"y": y
,"m": m
,"lang": "_e"
}
,dataType: "json"
}).done(function(r)
{
if(r.ret)
{
$.each(r.calendar, function(ii, row)
{
concert_id[row.d] = row.id;
concert_name[row.d] = row.name;
});
$.each(r.detail, function(ii, row)
{
var link_url = row.url
? '' + (row.url_text ? row.url_text : row.url) + ''
: ''
;
var img_flyer = row.is_flyer
? ''
: ''
;
var link_detail = row.is_body
? 'More information'
: ''
;
var link_kyotoconcerthall = row.is_kyotoconcerthall
? ' Kyoto Concert Hall'
: ''
;
var month = ['January','February','March','April','May','June','July','August','September','October','November','December'];
html+= ''
+ '' + row.d + '' + row.w_e + '
'
// + '' + row.m + '月' + row.d + '日' + row.w + '
'
+ '' + row.w_e + ', ' + month[ row.m - 1] + ' ' + row.d + '
'
+ ''
+ '
'
+ '
' + row.name + link_kyotoconcerthall + '
'
+ '
'
+ 'Opening time | ' + row.time_start + ' |
'
+ 'Hall | ' + row.hall + ' |
'
+ 'Artists | ' + row.conductor + ' ' + row.costar + ' |
'
+ 'Program | ' + row.program + ' |
'
+ (row.ticket || row.charge
? 'Ticket | ' + row.ticket + ((row.ticket && row.charge) ? ' ' : '') + row.charge + ' |
'
: ''
)
+ (link_url || row.contact
? 'Contact | ' + link_url + ((link_url && row.contact) ? ' ' : '') + row.contact + ' |
'
: ''
)
+ ''
+ '
'
+ '
'
+ '
' + img_flyer + '
'
+ link_detail
+ '
'
/*
+ '' + row.name + '
'
+ row.date_e + ' ' +row.time_start + '
'
+ '
'
+ 'Hall:' + row.hall + '
'
+ 'Artists:' + row.conductor + '
' + row.costar + '
'
+ (row.program
? 'Program:' + row.program + '
'
: ''
)
+ (row.ticket && row.charge
? 'Ticket:' + row.ticket + '
' + row.charge + '
'
: ''
)
+ (link_url && row.contact
? 'Contact:' + link_url + '
' + row.contact + '
'
: ''
)
+ link_kyotoconcerthall + '
'
+ link_detail + '
'
+ img_flyer + '
'
*/
+ ''
;
});
}
});
for(var i = 1 - d.getDay() % 7, wk = 0, l = t.getDate() + ((6 - t.getDay()) % 7); i <= l; ++i, wk = ++wk % 7)
{
var a_front = concert_name[i] ? '' : '';
var a_rear = concert_name[i] ? '' : '';
w += (wk == 0 ? '' : "")
+ ''
+ (i > 0 ? (i <= t.getDate() ? ' ' + a_front + i + a_rear + ' ' : '') : '')
+ (concert_name[i] ? a_front + concert_name[i] + a_rear : '')
+ ' | '
+ (wk == 6 ? "
" : "")
;
}
$("#calendar_main").append(w);
$("#event_detailbox").append(html ? '' : html);
};
$("#p-calendar-L").html(outline());
$("#calendar_main").append(wk_line());
//if(sessionStorage.getItem("y") && sessionStorage.getItem("m"))
//{
// var d = new Date(sessionStorage.getItem("y") + "/" + sessionStorage.getItem("m") + "/01");
// var cmpl = d.getYear() < 2000 ? 1900 : 0;
//}
//else
//{
var d = new Date, cmpl = d.getYear() < 2000 ? 1900 : 0;
//}
//var my = (d.getYear() + cmpl) - 2008, mm = 8;//2008.09まで表示
var my = (d.getYear() + cmpl) - 2009, mm = 10;//2009.11まで表示
//var my = (d.getYear() + cmpl) - $('#event_oldest_last_month_y').text(), mm = $('#event_oldest_last_month_m').text();//最古イベント年月まで表示
//var min = new Date(d.getYear() + (cmpl - my), mm), max = new Date(d.getYear() + (cmpl + 1), d.getMonth());
//var min = new Date(d.getYear() + (cmpl - my), mm), max = new Date(d.getYear() + (cmpl + 1), d.getMonth() + 2);//15ヶ月先まで表示
var min = new Date(d.getYear() + (cmpl - my), mm), max = new Date(d.getYear() + (cmpl + 1), d.getMonth() + 11);//24ヶ月先まで表示
ym(d.getYear() + cmpl, d.getMonth() + 1);
day(d.getYear() + cmpl, d.getMonth() + 1);
var reset = function(y, m, td)
{
ym(y, m);
$(".p-calendar-L-date").remove();
$(".detailbox").remove();
day(y, m);
//$("a[rel*=leanModal]").leanModal({top: 20, overlay : 0.5, closeButton: ".modal_close"});
};
$("#p-calendar-L-prev").click(function()
{
var td = new Date(d.getYear() + cmpl, d.getMonth() - 1);
if(td.getYear() + cmpl >= min.getYear() + cmpl && (td.getYear() + cmpl != min.getYear() + cmpl || td.getMonth() >= min.getMonth()))
{
reset(td.getYear() + cmpl, td.getMonth() + 1, d = td);
var ssy = td.getYear() + cmpl;
var ssm = td.getMonth() + 1;
//sessionStorage.setItem("y", ssy);
//sessionStorage.setItem("m", ssm);
}
});
$("#p-calendar-L-next").click(function()
{
var td = new Date(d.getYear() + cmpl, d.getMonth() + 1);
if(td.getYear() + cmpl <= max.getYear() + cmpl && (td.getYear() + cmpl != max.getYear() + cmpl || td.getMonth() <= max.getMonth() + 1))
{
reset(td.getYear() + cmpl, td.getMonth() + 1, d = td);
var ssy = td.getYear() + cmpl;
var ssm = td.getMonth() + 1;
//sessionStorage.setItem("y", ssy);
//sessionStorage.setItem("m", ssm);
}
});
if(g["y"] != "" && g["m"] != "")
{
var gy = ~~g["y"], gm = ~~g["m"];
if
(
min.getYear() + cmpl <= gy && gy <= max.getYear() + cmpl
&& (gy != min.getYear() + cmpl || gm - 1 >= min.getMonth())
&& (gy != max.getYear() + cmpl || gm - 1 <= max.getMonth() + 1)
) reset(gy, gm, d = new Date(gy, gm - 1));
}
});