/*--------------------------------------------------
 初期設定
 --------------------------------------------------*/
/*{{{*/
var nPopupImgX                   = 400;                            // ポップアップ画像サイズ
var nPopupImgY                   = 300;
var bPopupBorder                 = true;                           // 画像に枠線をつけるかどうか
    var nPopupBorderWidth        = 1;                              // 枠線のCSS
    var sPopupBorderStyle        = 'solid';
    var sPopupBorderColor        = '#999';
var bPopupBackgroundImage        = true;                           // 画像に背景画像があるかどうか
    var sPopupBackgroundImageSrc = 'common/img/popup-bg.gif';    // 背景画像のパス
    var sPopupBackgroundPadding  = '12px 18px 18px 12px';          // 背景画像表示時の余白CSS
    var nPopupBackgroundPaddingT = 35;                             // 背景画像表示時の余白ピクセル合計値
var sPopupAppearEffect           = "fadeIn";                       // 表示エフェクト   (fadeIn | slideDown | show)
    var nPopupAppearTime         = 0.2;                            // 表示にかかる秒数
var sPopupFadeEffect             = "fadeOut";                      // 非表示エフェクト (fadeOut | slideUp | hide)
    var nPopupFadeTime           = 0.1;                            // 非表示にかかる秒数
        var nPopupAppearTime     = nPopupAppearTime * 1000;
        var nPopupFadeTime       = nPopupFadeTime   * 1000;
var sPopupPageLayout             = "center";                       // テンプレートの左揃え・中央揃え (left|right|center)
    var nPopupLayoutMainWidth    = 730;                              // center以外場合、メインコンテンツの横幅
var nPopupEscapeY                = 30;                             // オンマウスで下に逃げるピクセル数
var nPopupMoveX                  = 0;                            // 位置補正
var nPopupMoveY                  = 0;
var sPopupDummyImg               = "common/img/dummy_popup.gif";   // ダミー画像
var bPopupEscape                 = false;                           // マウスオンで逃げるかどうか
var bPopupFullInfo               = false;                           // 詳細表示をするかどうか
var bDebug                       = false;

// 以下編集不要
var nMouseX                      = 0;
var nMouseY                      = 0;
var popupFlag                    = false;
var popupOver                    = false;
var nPopupPositionX              = 0;
var nPopupPositionY              = 0;
var sImageUrl                    = "";
var sImageHref                   = "";
var sFullInfoTitle               = "";
var sFullInfoMessage             = "";
var sFullInfoUrl                 = "";
/*}}}*/

jQuery(function(){
   /*--------------------------------------------------
    初期化
    --------------------------------------------------*/
    /*{{{*/
    // ポップアップ用HTML設定
    var sPopupWinHtml = '<div class="popup" style="display:none;"><a href=""><img src="'+ sPopupDummyImg +'" border=""></a></div>';
    jQuery("body").append(sPopupWinHtml);

    jQuery('.popup').css({
                          'z-index':  '9999',
                          'position': 'absolute',
                          'width':    nPopupImgX + nPopupBorderWidth * 2,
                          'height':   nPopupImgY + nPopupBorderWidth * 2
                          });

    jQuery('.popup a').css({
                            'border': '0px'
                          });

    // ポップアップdiv追加設定
    if (bPopupBackgroundImage) {
        jQuery('.popup').css({
                              'background-repeat':   'no-repeat',
                              'background-position': 'top left',
                              'background-image':    'url("'+ sPopupBackgroundImageSrc +'")',
                              'padding':             sPopupBackgroundPadding
                              });
    }

    // 詳細情報表示追加設定
    if (bPopupFullInfo) {
        var sAddHtml = '';
        sAddHtml += '<div class="popup_contents">';
        sAddHtml += '<div class="title"></div>';
        sAddHtml += '<div class="message"></div>';
        sAddHtml += '<div class="url">/div>';
        sAddHtml += '</div>';
        jQuery('.popup').append(sAddHtml);
        jQuery('.popup .popup_contents').css({
                                              'font-size':'12px',
                                              'background':'white'
                                              });
        jQuery('.popup .popup_contents .title').css({
                                                     'margin':'10px 0px 0px 0px',
                                                     'background':'white'
                                                     });
    }

    // ポップアップ画像初期設定
    jQuery('.popup img').css({'width': nPopupImgX, 'height': nPopupImgY});

    // 表示画像 追加css設定
    if (bPopupBorder) {
        jQuery('.popup img').css({
                                  'border-width': nPopupBorderWidth + 'px',
                                  'border-color': sPopupBorderColor,
                                  'border-style': sPopupBorderStyle
                                 });
    }

    // for debug
    if (bDebug) {
        jQuery("body").prepend('<div id="debug"></div>');
    }
    /*}}}*/

   /*--------------------------------------------------
    mousemove
    --------------------------------------------------*/
    jQuery().mousemove(function(e){
    /*{{{*/
        nMouseX = e.pageX;
        nMouseY = e.pageY;
        if (bDebug) {
            jQuery("#debug").css({
                                  'width':'200px',
                                  'top':'10',
                                  'left':'10',
                                  'padding':'10px 5px',
                                  'position':'fixed',
                                  'background':'white',
                                  'border':'solid #ccc 1px'
                                 }).html(
                '[debug]<br>'+
                nMouseX +' >= '+ nPopupPositionX +'+'+ nPopupMoveX +'<br>'+
                nMouseX +' <= '+ nPopupPositionX +'+'+ nPopupMoveX +'+'+ nPopupImgX +'+'+ nPopupBackgroundPaddingT +'<br>'+
                nMouseY +' >= '+ nPopupPositionY +'+'+ nPopupMoveY +'<br>'+
                nMouseY +' <= '+ nPopupPositionY +'+'+ nPopupMoveY +'+'+ nPopupImgY +'+'+ nPopupBackgroundPaddingT +'<br>'+
                'sImageUrl :'+ sImageUrl +'<br>'+
                'popupFlag :'+ popupFlag +'<br>'+
                'popupOver :'+ popupOver +'<br>'+
                'nMouseX :'+ nMouseX +'<br>'+
                'nMouseY :'+ nMouseY +'<br>'+
                'nPopupPositionX :'+ nPopupPositionX +'<br>'+
                'nPopupPositionY :'+ nPopupPositionY +'<br>'
            );
        }
    }); 
    /*}}}*/

   /*--------------------------------------------------
    thumbnail hover
    --------------------------------------------------*/
    jQuery('#container .search-result-thum img, #relative_table .relative_sub_table .image_area img').hover(function(){
        /*{{{*/
        popupFlag = true;   // ポップアップされているかどうか
        popupOver = false;  // ポップアップ時にカーソルがのっているかどうか

      /*--------------------------------------------------
        データ取得
        --------------------------------------------------*/
        // 画像取得
        sImageUrl = this.src + "&type=medium";

        // リンク先取得
        sImageHref = jQuery(this).parent('a').attr("href");

        // オプション情報取得
        if (bPopupFullInfo) {
            sFullInfoTitle   = jQuery(this).parent().parent().siblings('.title_area').text();
            sFullInfoMessage = jQuery(this).parent().parent().siblings('.body_area').text();
            sFullInfoUrl     = jQuery(this).parent().parent().siblings('.uri_area').text();

        }

      /*--------------------------------------------------
        表示
        --------------------------------------------------*/
       setTimeout("if(popupFlag){popUpOn();}", 300);
       /*}}}*/
    }, function(){
       /*{{{*/
      /*--------------------------------------------------
        非表示
        --------------------------------------------------*/
        if ( ((popupFlag) && (!popupOver)) || bPopupEscape) {
            popUpOff();
        }
        /*}}}*/
    });

   /*--------------------------------------------------
    popup hover
    --------------------------------------------------*/
    jQuery('.popup').hover(function(){
    /*{{{*/
    /*}}}*/
    }, function(){
    /*{{{*/
        if (popupFlag) {
            popUpOff();
        }
    /*}}}*/
    });
});

/*--------------------------------------------------
 関数名: popUpOn()
 機能  : ポップアップを表示する
 --------------------------------------------------*/
/*{{{*/
function popUpOn() {
   /*--------------------------------------------------
    表示設定
    --------------------------------------------------*/
    // ウィンドウサイズ取得
    if (jQuery.browser.opera) {
        nWindowSizeX = window.innerWidth;
        nWindowSizeY = window.innerHeight;
    } else {
        nWindowSizeX = jQuery(window).width();
        nWindowSizeY = jQuery(window).height();
    }

    // スクロールサイズ取得
    var nScrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
    var nScrollY = document.documentElement.scrollTop || document.body.scrollTop;

    // ポップアップ位置決定
    nPopupPositionX = 0;
    nPopupPositionY = 0;
    nPopupPositionX = (nWindowSizeX / 2) - (nPopupImgX / 2) + nScrollX;
    nPopupPositionY = (nWindowSizeY / 2) - (nPopupImgY / 2) + nScrollY;

    // 追加位置設定
    if (sPopupPageLayout == "left") {
        var nPopupLayoutX = (nPopupLayoutMainWidth / 2) - (nPopupImgX / 2);
        nPopupPositionX = nPopupLayoutX;
    } else if (sPopupPageLayout == "right") {
        var nPopupLayoutX = (nWindowSizeX / 2) + ((nPopupLayoutMainWidth - (nPopupImgX + nPopupBackgroundPaddingT)) / 2);
        nPopupPositionX = nPopupLayoutX;
    }

    // 直接指定補正
    nPopupPositionX = nPopupPositionX + nPopupMoveX;
    nPopupPositionY = nPopupPositionY + nPopupMoveY;

    // マウスに重なっている場合位置を調整する
    if ( nMouseX >= nPopupPositionX &&
         nMouseX <= nPopupPositionX + nPopupImgX + nPopupBackgroundPaddingT &&
         nMouseY >= nPopupPositionY &&
         nMouseY <= nPopupPositionY + nPopupImgY + nPopupBackgroundPaddingT ) {
         if (bPopupEscape) {
             nPopupPositionY = nMouseY + nPopupEscapeY;
         }
         popupOver = true;
    } else {
         popupOver = false;
    }

    jQuery('.popup').css({
                          'top':     nPopupPositionY,
                          'left':    nPopupPositionX
                          });

    // 画像設定
	jQuery('.popup img').attr("src", sPopupDummyImg).attr("src", sImageUrl);

    // リンク先設定
	jQuery('.popup a').attr("href", sImageHref);

    // 追加設定
    if (bPopupFullInfo) {
        jQuery('.popup .title').html(sFullInfoTitle);
        jQuery('.popup .message').html(sFullInfoMessage);
        jQuery('.popup .url').html(sFullInfoUrl);
    }

    eval('jQuery(".popup").'+ sPopupAppearEffect +'('+ nPopupAppearTime +')');
}
/*}}}*/

/*--------------------------------------------------
関数名: popUpOff()
機能  : ポップアップを非表示にする
--------------------------------------------------*/
/*{{{*/
function popUpOff() {
    popupFlag = false;
    popupOver = false;
    eval('jQuery(".popup").'+ sPopupFadeEffect +'('+ nPopupFadeTime +')');
}
/*}}}*/

// vim: set syntax=javascript fdm=marker sw=4 ts=4:

