$(document).ready(function(){
var lang = $("#hdnLang").val();
if(lang == undefined){
lang = 'JP';
}
if($("#manualTop")[0] == undefined){
$("#chk_manualTop").parent("li").remove();
}
document.onkeydown = function (e){
var kc = e.keyCode;
var al = document.activeElement;
if($(al).is("input")){
// フォーカスがテキストボックスにある場合
return true;
}else if($(al).parents("#contentAreaWrap").length > 0){
// フォーカスがコンテンツにある場合
var m = Math.ceil($("#content").height() / 20); //スクロール幅
switch(kc){
case 38: // 「↑」
$("#contentArea").scrollTop($("#contentArea").scrollTop()-m);
break;
case 40: // 「↓」
$("#contentArea").scrollTop($("#contentArea").scrollTop()+m);
break;
}
}else if(al.id == 'bookmark' || $(al).parents("#bookmark").length > 0){
// フォーカスが目次にある場合
switch(kc){
case 38: // 「↑」
if($("#btnPrev").is(":visible")){
return myPushState($("#btnPrev").attr('href'));
}
break;
case 40: // 「↓」
if($("#btnNext").is(":visible")){
return myPushState($("#btnNext").attr('href'));
}
break;
}
}
switch(kc){
case 37: // 「←」
if($("#btnPrev").is(":visible")){
$("#btnPrev")[0].click();
}
break;
case 39: // 「→」
if($("#btnNext").is(":visible")){
$("#btnNext")[0].click();
}
break;
}
};
if($.trim($("#footer .copyRight").text()) == ''){
$("#footer .copyRight").text("© "+ (new Date()).getFullYear() +" Shimadzu Corporation. All rights reserved. ");
}
$('#sidetabs a').click(function () {
$(this).tab('show');
return false;
})
// レフトメニュー開閉
$('#btnToggleMenu').click(function () {
$("#sidebar").toggleClass('show');
if($("#sidebar").hasClass('show')){
$("#contentScreen").show();
$($("#sidetabs li.active a").attr("href")).focus();
}else{
$("#contentScreen").hide();
}
});
$("#contentScreen").click(function(){
$(this).hide();
$("#sidebar").removeClass('show');
});
function loadManualTop(){
if($("#manualTop")[0] != undefined){
$("#bookmark a").removeClass('subactive');
$("#bookmark a").removeClass('active');
$("#bookmark .submenu").each(function(){
$(this).prev("a").removeClass('expand');
$(this).slideUp('fast');
});
$("#content").html('');
// コンテンツを表示領域にコピー
$("#content").append($("#manualTop").html());
$("#contentArea").scrollTop(0);
$('#btnPrev').attr('href', '');
$('#btnPrev').hide();
var next = $($("#bookmark .nav-sidebar a")[0]);
$('#btnNext').attr('href', next.attr('href'));
$('#btnNext').show();
$(".pankuzu").remove();
}else{
var id = $("#contentsList section")[0].id;
loadContent(id);
}
}
var before_id = null;
function loadContent(id, hl, hm, refid, hi){
if(id == undefined){
return;
}
// 自身に対応するレフトメニューを特定する
var href = id;
if(refid != undefined){
href += "?refid=" + refid;
}
var leftMenu = $("#bookmark a[href='#" + href + "']");
if(leftMenu.length == 0){
leftMenu = $("#bookmark a[href='#" + id + "']");
if(leftMenu.length == 0){
return;
}
}
// 自身の親メニューにのみサブアクティブクラスを付与する
$("#bookmark a").removeClass('subactive');
leftMenu.parents(".submenu").each(function(){
$(this).prev("a").addClass('subactive');
})
// 自身にのみアクティブクラスを付与する
$("#bookmark a").removeClass('active');
leftMenu.addClass('active');
// 自身とその親以外のサブメニューを全て閉じる
$("#bookmark .submenu").each(function(){
if($(this).prev("a").hasClass('active')){
// 現在表示中のメニューの場合
if($(this).prev("a").hasClass('subClose')){
// サブメニューを閉じる
$(this).prev("a").removeClass('expand');
$(this).slideUp('fast');
}else{
// サブメニューを開く
$(this).prev("a").addClass('expand');
$(this).slideDown('fast');
}
}else if($(this).prev("a").hasClass('subactive')){
// 現在表示中のメニューの親メニューの場合
// サブメニューを開く
$(this).prev("a").addClass('expand');
$(this).slideDown('fast');
}else{
// それ以外のメニューの場合
// サブメニューを閉じる
$(this).prev("a").removeClass('expand');
$(this).slideUp('fast');
}
});
$("#content").html('');
// パンくずを生成
var pankuzu = $('
');
var text = "" + leftMenu.text() + "";
var parents = leftMenu.parents('.submenu');
for(var i = 0 ; i < parents.length ; i ++){
text = '' + $(parents[i]).prev('a').text() + ' > ' + text;
}
if($('#manualTop .model').length > 0){
text = '' + $('#manualTop .model').html().replace(/
/gi, ' ').replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi, '') + " > " + text;
}
pankuzu.html(text);
$(".pankuzu").remove();
$("#contentArea").before(pankuzu);
// パンくずリンクにアクションを設定
$(".pankuzu a").click(function(){
return myPushState($(this).attr('href'));
});
// コンテンツを表示領域にコピー
$("#content").append($("#"+id).html());
//$("#contentArea").scrollTop(0);
// フッターのページングリンク生成
var num = $("#bookmark a").length;
for(var i = 0; i < num ; i++){
if($($("#bookmark a")[i]).hasClass('active')){
// prev
var prev_num = i - 1;
while(!$($("#bookmark a")[prev_num]).hasClass('sectionMenu')){
prev_num --;
if(prev_num <= 0){
break;
}
}
var prev = $($("#bookmark a")[prev_num])[0];
if(prev == undefined){
if($("#manualTop")[0] == undefined){
$('#btnPrev').attr('href', '');
$('#btnPrev').hide();
}else{
$('#btnPrev').attr('href', './index.html');
$('#btnPrev').show();
}
}else{
$('#btnPrev').attr('href', $(prev).attr('href'));
$('#btnPrev').show();
}
// next
var next_num = i + 1;
while(!$($("#bookmark a")[next_num]).hasClass('sectionMenu')){
next_num ++;
if(next_num > num){
break;
}
}
var next = $($("#bookmark a")[next_num])[0];
if(next == undefined){
$('#btnNext').attr('href', '');
$('#btnNext').hide();
}else{
$('#btnNext').attr('href', $(next).attr('href'));
$('#btnNext').show();
}
break;
}
}
// 画像をlightboxで囲う
$("#content img.img-lightbox").each(function(){
$(this).wrap('');
});
autoFixHeightFunc2('#contentArea',['#header','.pankuzu','#footer']);
var targetY = 0;
if(refid != undefined){
var target = $("#content *[id='"+refid+"']")[0];
if(target != undefined){
targetY = target.offsetTop;
}
$(target).effect( 'highlight', '', 2000 );
}
if(before_id == id){
var currentY = $("#contentArea")[0].scrollTop + $(".pankuzu")[0].offsetHeight;
var maxY = $("#contentArea")[0].scrollHeight - $("#contentArea")[0].offsetHeight;
if( ( currentY < targetY && currentY < maxY)
|| ( currentY >= targetY && targetY < maxY)){
$("#contentArea").animate({scrollTop: targetY}, 500, 'swing');
}else{
$("#contentArea").scrollTop(targetY);
}
}else{
$("#contentArea").scrollTop(targetY);
}
// コンテンツ内のリンクにアクションを設定
$("#content a").click(function(){
if($(this).attr("data-lightbox")){
// 画像拡大
return true;
}else if($(this).attr("target") == "_blank"){
return true;
}else if($(this).hasClass("footnoteRef")){
(event.preventDefault) ? event.preventDefault() : event.returnValue = false;
var target = $(this).attr("href");
var tmp = $("");
$(target).append(tmp);
$("#focusInput").focus().remove();
$(target).effect( 'highlight', '', 2000 );
return false;
}else{
return myPushState($(this).attr('href'));
}
});
before_id = id;
}
$(window).on('resize', function(){
autoFixHeightFunc2('#contentArea',['#header','.pankuzu','#footer']);
});
function autoFixHeightFunc2(selecter, exclusions){
var wh = window.innerHeight;
var exh = 0;
for(elm in exclusions){
if($(exclusions[elm]).is(":visible")){
exh += $(exclusions[elm]).outerHeight(true);
}
}
var h = wh - exh;
if(h < 0){
h = 0;
}
$(selecter).height(h);
}
// レフトメニューを閉じる
$("#bookmark .submenu").hide();
// 子要素があるメニューにスタイルを当てる
$("#bookmark ul.submenu").each(function(){
$(this).prev('a').addClass('parent');
});
// レフトメニュー選択時
$("#bookmark a").click(function(){
// 自身のサブメニューの開閉状態を取得
var subVisible = $(this).next(".submenu").is(':visible');
if(subVisible){
$(this).addClass('subClose');
}else{
$(this).removeClass('subClose');
}
// 選択したメニューが末端メニューの場合
if(!$(this).hasClass('parent')){
// レフトメニューを閉じる
$("#contentScreen").click();
}
return myPushState($(this).attr('href'));
});
// レフトメニュータブ選択時
$("#sidetabs > li > a").click(function(){
$($(this).attr('href')).focus();
});
// 前へ/次へナビゲーション選択時
$("#btnPrev, #btnNext").click(function(){
$(".pankuzu").remove();
$("#contentArea").removeAttr('style');
// レフトメニューを閉じる
$("#contentScreen").click();
$("#contentArea").focus();
return myPushState($(this).attr('href'));
});
// ページトップへボタンを表示/非表示する
$("#contentArea").scroll(function(){
var pos = $(this).scrollTop();
if(pos <= 0){
$("#btnScrollTop").fadeOut("slow");
}else{
$("#btnScrollTop").fadeIn("slow");
}
});
// ページトップへボタンを押したとき
$("#btnScrollTop").click(function(){
$("#contentArea").animate({scrollTop:0},"fast");
});
function myPushState(url){
if (window.history && window.history.pushState){
try{
history.pushState(null, document.title, url);
funcHistory(url);
return false;
}catch(e){
return true;
}
}
}
$(window).on("load popstate",function(event){
if (window.history && window.history.pushState){
var url = window.location.href;
funcHistory(url);
}
});
function funcHistory(url){
var hashQuery = GetQueryStringFromHash(url);
if(hashQuery.id != undefined && hashQuery.id.length > 0){
loadContent(hashQuery.id , hashQuery.hl, hashQuery.hm, hashQuery.refid, hashQuery.hi);
}
else{
loadManualTop();
}
}
function GetQueryStringFromHash(url){
var result = {};
var urls = url.split('#');
if(urls[1] == undefined){
return result;
}
var hash = urls[1];
var parameters = hash.split('?');
var command = parameters[0];
if(parameters[1] != undefined){
var q = parameters[1];
var parameters = q.split('&');
for( var i = 0; i < parameters.length; i++ ){
// パラメータ名とパラメータ値に分割する
var element = parameters[i].split( '=' );
var paramName = decodeURIComponent(element[0] );
var paramValue = decodeURIComponent(element[1] );
// パラメータ名をキーとして連想配列に追加する
result[ paramName ] = paramValue;
}
}
if(command == 'search'){
}else{
result['id'] = command;
}
return result;
}
});