// JavaScript Document

// -----------------------------------------------------------------------------------------
// 変数設定

var wrt = document.write;	// バナー表示用にwrite関数を保存しておく
var alts = new Array();		// バナー表示用のバッファ
var loadcomp = 0;			// バナー表示用flag

// セキュアかどうかで読込先ファイルの切り分け
squre_check = location.protocol;
if ( squre_check.indexOf( "https" ) != -1 ) {
    var read_file_heder       = 'https://point.biccamera.com/?nv=member_top_head';      // ヘッダファイルの読込先
    var read_file_footer      = 'https://point.biccamera.com/?nv=member_top_foot';      // フッタファイルの読込先
    var read_file_search      = 'https://point.biccamera.com/?nv=member_top_search';      // 検索バーファイルの読込先
    var read_file_bottom      = 'https://point.biccamera.com/?nv=member_top_bottom';      // ボトムファイルの読込先
    var read_file_questionbox = '/faq/questionbox.html';                                // よくあるご質問ボックスファイルの読込先
    var read_file_guidebox    = '/guide/guidebox.html';                                 // ガイドボックスファイルの読込先
} else {
    var read_file_heder       = 'http://point.biccamera.com/?nv=member_top_head';       // ヘッダファイルの読込先
    var read_file_footer      = 'http://point.biccamera.com/?nv=member_top_foot';       // フッタファイルの読込先
    var read_file_search      = 'http://point.biccamera.com/?nv=member_top_search';      // 検索バーファイルの読込先
    var read_file_bottom      = 'http://point.biccamera.com/?nv=member_top_bottom';      // ボトムファイルの読込先
    var read_file_questionbox = '/faq/questionbox.html';                                // よくあるご質問ボックスファイルの読込先
    var read_file_guidebox    = '/guide/guidebox.html';                                 // ガイドボックスファイルの読込先
}

// -----------------------------------------------------------------------------------------
// ヘッダとフッタを表示します
function showPage() {
    rand_par = getRandomParData( );
    getSomethingDataRequset( read_file_heder       , 'HEADER'      , rand_par );
    getSomethingDataRequset( read_file_footer      , 'FOOTER'      , rand_par );
    getSomethingDataRequset( read_file_search      , 'SEARCH'      , rand_par );
    getSomethingDataRequset( read_file_bottom      , 'BOTTOM'      , rand_par );
    //getSomethingDataRequset( read_file_questionbox , 'QUESTIONBOX' , rand_par );
    //getSomethingDataRequset( read_file_guidebox    , 'GUIDEBOX'    , rand_par );

    loadcomp = 0;
    //setAdBanner('HEADER-BANNER1');	// 1.ヘッダーのバナーを表示します
}

function showPageHeadFoot() {
    rand_par = getRandomParData( );
    getSomethingDataRequset( read_file_heder       , 'HEADER'      , rand_par );
    getSomethingDataRequset( read_file_footer      , 'FOOTER'      , rand_par );
    getSomethingDataRequset( read_file_bottom      , 'BOTTOM'      , rand_par );

    loadcomp = 0;
}


// -----------------------------------------------------------------------------------------
// ヘッダとフッタを表示します
function showPageTitle(ttl) {
    rand_par = getRandomParData( );
    read_file_heder_ttl = read_file_heder + '&ttl=' + encodeURI(ttl);
    getSomethingDataRequset( read_file_heder_ttl   , 'HEADER'      , rand_par );
    getSomethingDataRequset( read_file_footer      , 'FOOTER'      , rand_par );
    getSomethingDataRequset( read_file_questionbox , 'QUESTIONBOX' , rand_par );
    getSomethingDataRequset( read_file_guidebox    , 'GUIDEBOX'    , rand_par );

    loadcomp = 0;
    setAdBanner('HEADER-BANNER1');	// 1.ヘッダーのバナーを表示します
}

// -----------------------------------------------------------------------------------------
// キャッシュよりも新しいものを取得
function getRandomParData( ) {
    var pars = '';
    var msec = (new Date()).getTime();
    pars  = "&cache=" + msec;
    return(pars);
}

// -----------------------------------------------------------------------------------------
// 指定のhtmlデータをWeb上から取得し、指定の場所にHTMLデータとして表示(同期)
function getSomethingDataRequset( url , location , post_data ) {
    var pars = '';
    pars += post_data;
    var myAjax = new Ajax.Request(
        url, 
        {
            method: 'get', 
            parameters: pars, 
            asynchronous:false, // 同期通信
            evalScripts:true,
            onComplete: function(httpObj){
                $(location).innerHTML = httpObj.responseText;
            }
        });
}

//-----------------------------------------------------------------------------------------
//指定のhtmlデータをWeb上から取得し、指定の場所にHTMLデータとして表示(非同期)
function getSomethingDataRequsetAsync( url , location , post_data ) {
 var pars = '';
 pars += post_data;
 var myAjax = new Ajax.Request(
     url, 
     {
         method: 'get', 
         parameters: pars, 
         asynchronous:true, // 非同期通信
         onComplete: function(httpObj){
             $(location).innerHTML = httpObj.responseText;
         }
     });
}

// -----------------------------------------------------------------------------------------
// フロートウィンドウを表示
function OpenFloatWindow(url, pWidth, pHeight)
{
    var element_name = 'float-window';
    var win = null;
   
    if(document.getElementById(element_name) != null) {
    //if ($(element_name) != null) {
        win = window.parent.Windows.getWindow(element_name);
        window.parent.Windows.removeModalWindow(win);
        win.destroy();
    }

//    win = new Window(element_name, {className: "alphacube",
//                    draggable: false,
//                    minimizable: false,
//                    maximizable: false,
//                    closable: false,
//                    resizable: false,
//                    url: url});
    win = new Window(element_name, {className: "alphacube",
                    draggable: false,
                    minimizable: false,
                    maximizable: false,
                    closable: false,
                    resizable: false });

    win.setDestroyOnClose();
    win.setSize(pWidth, pHeight);
    win.setZIndex(200);

    var ua    = navigator.userAgent;
    var nWidth;
    var nHeight;
    var nHit  = ua.indexOf("MSIE");
    var bIE   = (nHit >=  0);
    var bVer6 = (bIE && ua.substr(nHit+5, 1) == "6");
    var bStd  = (document.compatMode && document.compatMode=="CSS1Compat");

    if (bIE) {
      if (bVer6 && bStd) {
    nWidth = document.documentElement.clientWidth;
      } else {
    nWidth = document.body.clientWidth;
      }
    } else {
      nWidth  = window.innerWidth;
      nHeight = window.innerHeight;
    }
    var scrollTop  = document.body.scrollTop  || document.documentElement.scrollTop;
    var top  = scrollTop + 64;
    var left = nWidth / 2 - pWidth / 2;
    win.setLocation(top, left);

    //setTimeout(function() {win.show(true);}, 1000);
    setTimeout(function() {
        win.setURL(url); 
        win.show(true);
        }, 1000);

    setTimeout(function() {
        duplicate_flg = false;
        }, 1000);
}

// -----------------------------------------------------------------------------------------
// フロートウィンドウを閉じる
function CloseFloatWindow(reload)
{
    reload = reload || "1";
    window.parent.Windows.close('float-window');
    
    if (reload == "1")
    {
        window.parent.document.location.reload();
    }
}

//-----------------------------------------------------------------------------------------
// フロートウィンドウを閉じる
function CloseFloatWindowDetail(loc, reload)
{
    reload = reload || "1";
    window.parent.Windows.close('float-window');
    if (reload == "1")
    {
        window.parent.document.location =  loc.replace('showFloat/1/', '');
    }
    else if(reload == "2"){
        var nextloc = window.parent.document.location.href;
        window.parent.document.location =  nextloc.replace('showFloat/1/', '');
    }else{
        window.parent.document.location.reload();
    }
   
}

//-----------------------------------------------------------------------------------------
//タブ切り替えイベント関数を設定する
function setTabEvent() {
    jQuery.noConflict();
    jQuery("#tab a").click(actionTabEvent);

    // 最初は「店舗カテゴリ」タブが表示されるようにする
    jQuery("#tab2").hide();
    jQuery("#tab1").fadeIn("fast");
}

//-----------------------------------------------------------------------------------------
//タブ切り替えイベント関数を設定する
function setTab2Event() {
    jQuery.noConflict();
    jQuery("#tab a").click(actionTabEvent);

    // 最初は「店舗カテゴリ」タブが表示されるようにする
    jQuery("#tab1").hide();
    jQuery("#tab2").fadeIn("fast");
}

//-----------------------------------------------------------------------------------------
//タブ切り替えを行うイベント関数
function actionTabEvent() {
    var indexoftab = "";
    var tab = "";

    jQuery.noConflict();

    indexoftab = jQuery("#tab a.active").attr("href").indexOf("#");
    tab = jQuery("#tab a.active").attr("href").substring(indexoftab);
    jQuery(tab).hide();

    jQuery("#tab a.active").removeClass("active");
    jQuery(this).addClass("active");

    indexoftab = jQuery(this).attr("href").indexOf("#");
    tab = jQuery(this).attr("href").substring(indexoftab);
    jQuery(tab).fadeIn("fast");

    return false;
}

//-----------------------------------------------------------------------------------------
// バナー表示
function setBanner(banner_id) {
    var random=Math.random();
    document.write('<scr'+'ipt language="JavaScript1.1" src="https://ad.nttnavi.co.jp/js.ng/site=bicpm&spacedesc='+banner_id+'&transactionID='+random+'?" charset="shift_jis">');
    document.write('</scr'+'ipt>');
}

//-----------------------------------------------------------------------------------------
// バナー表示 (with Ajax)
function setAjaxBanner(banner_id, div_id) {
    var random=Math.random();
    var src = "https://ad.nttnavi.co.jp/js.ng/site=bicpm&spacedesc=" + banner_id + "&transactionID=" + random + "?";
    var script = document.createElement('script');
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('charset', 'shift_jis');
    script.setAttribute('src', src);
    document.getElementById(div_id).appendChild(script);
    if ( div_id == 'HEADER-BANNER' ) {
        addEvent(getBanner);
    } else if ( div_id == 'OSUSUME1_DIV' ) {
        addEvent(getBanner_os1);
    } else if ( div_id == 'OSUSUME2_DIV' ) {
        addEvent(getBanner_os2);
    } else if ( div_id == 'OSUSUME3_DIV' ) {
        addEvent(getBanner_os3);
    } else if ( div_id == 'OSUSUME4_DIV' ) {
        addEvent(getBanner_os4);
    }
}

// -----------------------------------------------------------------------------------------
// ヘッダー、おすすめバナーを表示する関数をイベントに登録します
function addEvent(fn) {
	if(alts.length <= 0){
		settm(addEvent, 10, fn);
	}else{
		fn();
	}
}

//-----------------------------------------------------------------------------------------
// バナーをAdサーバーから取得します
function setAdBanner(id){
	if(loadcomp == 0){
		loadcomp = 1;
	    alts = new Array();
		document.write = newwrite;
		eval(document.getElementById(id).innerHTML);
	}else{
		settm(setAdBanner, 15, id);
	}
}

//-----------------------------------------------------------------------------------------
// IEでも引数が渡せるようにしたsetTimeout関数です
function settm() {
   var func = Array.prototype.shift.apply(arguments);
   var msec = Array.prototype.shift.apply(arguments);
   var args = arguments;
   return setTimeout(function() { func.apply(null, args); }, msec);
}

// -----------------------------------------------------------------------------------------
// ヘッダーのバナーを表示します
function getBanner(){
    getBannerWrite('HEADER-BANNER');
}

// -----------------------------------------------------------------------------------------
// おすすめ１のバナー表示関数
function getBanner_os1(){
    getBannerWrite('OSUSUME1_DIV');
}

// -----------------------------------------------------------------------------------------
// おすすめ２のバナーを表示します
function getBanner_os2(){
    getBannerWrite('OSUSUME2_DIV');
}

// -----------------------------------------------------------------------------------------
// おすすめ３のバナーを表示します
function getBanner_os3(){
    getBannerWrite('OSUSUME3_DIV');
}

// -----------------------------------------------------------------------------------------
// おすすめ４のバナーを表示します
function getBanner_os4(){
    getBannerWrite('OSUSUME4_DIV');
}

// -----------------------------------------------------------------------------------------
// バナー表示用のwrite関数
function newwrite(s){
    alts.push(s);
}

// -----------------------------------------------------------------------------------------
// バナー表示関数
function getBannerWrite(iD){
    var newDiv = document.createElement('div');
    newDiv.innerHTML = alts.join("");
    delete alts;
    document.getElementById(iD).appendChild(newDiv);

    document.write = wrt;
    loadcomp = 0;
}

// -----------------------------------------------------------------------------------------
// cookieセット
function writeCookieNonsequre( key , value_data , set_domain , path , expire_time  ) {

    // キーと値を設定
    var tmp = "";
    tmp  =  key + "=" + escape( value_data ) + ";";
    tmp += "domain="  + set_domain           + ";";
    tmp += "path="    + path                 + ";";
    tmp += "expires=" + expire_time          + ";";

    document.cookie = tmp;
}


// -----------------------------------------------------------------------------------------
// cookie削除
function deleteCookie(key) {
    document.cookie = key + "=" + "xx; expires=Tue, 1-Jan-1980 00:00:00;";
}

// -----------------------------------------------------------------------------------------
// cookie読込
function readCookie( key ) {

    // cookieの取り出しと初期設定
    var tmp1 = " " + document.cookie + ";";
    var tmp2 = "";
    var loc1 = 0;
    var loc2 = 0;
    var loc3 = 0;
    var len = tmp1.length;

    while (loc1 < len) {
        loc2 = tmp1.indexOf( ";", loc1 );
        tmp2 = tmp1.substring( loc1 + 1 , loc2 );
        loc3 = tmp2.indexOf( "=" );
        if (tmp2.substring( 0, loc3 ) == key) {
            return ( tmp2.substring( loc3 + 1 , loc2 - loc1 - 1 ));
        }
        loc1 = loc2 + 1;
    }
    return("");
}



//-----------------------------------------------------------------------------------------
//店舗・商品検索共通submit未入力チェック
function SubmitShopCheck()
{
 CheckForm = document.forms['form_s'];
 if( CheckForm.search_text.value == "") {
     alert("検索条件を入力してください！");
     return false;
 }
 CheckForm.submit();
 return true;
}

//-----------------------------------------------------------------------------------------
//商品・商品カテゴリ検索submit未入力チェック
function SubmitGoodsCheck(form,view)
{
 CheckForm = document.forms['search_goods'];
	if (view == 1){
 if( CheckForm.search_text.value == ""
  && CheckForm.pricerange.selectedIndex == 0
  && CheckForm.category_id.selectedIndex == 0
  && CheckForm.shop_name.value == "" ) {
     alert("検索条件を入力してください！");
     return false;
 }
	}else{
		if( CheckForm.search_text.value == ""
		     && CheckForm.pricerange.selectedIndex == 0
		     && CheckForm.shop_name.value == "" ) {
		        alert("検索条件を入力してください！");
		    return false;
		}
	}
 CheckForm.submit();
 return true;
}

//-----------------------------------------------------------------------------------------
//商品・商品カテゴリ検索セレクトボックス初期選択処理
function selectedStartValue(form, value)
{
	if(form){
        var len = form.length;
        for (var i = 0; i < len; i++) {
            if (form.options[i].value == value) {
                form.options[i].selected = true;
            }
        }
    }
}

//-----------------------------------------------------------------------------------------
// 画像サイズ調整
function imageAutoReSize( inImage , maxW, maxH )
{
    var maxRatio = maxW / maxH;
    var TmpImage = new Image();
    TmpImage.src = inImage.src;
    var TmpW = TmpImage.width;
    var TmpH = TmpImage.height;
    var TmpRatio = TmpW / TmpH;
    if ( !TmpW ) {
        inImage.width = maxW;
        return;
    }
    if (TmpW < maxW && TmpH < maxH) {
        inImage.width = TmpW;
        inImage.height = TmpH;
        return new Array(inImage.width, inImage.height);
    }

    if(TmpRatio < maxRatio){
        inImage.width = Math.floor(maxH * TmpRatio);
        inImage.height = maxH;
    } else {
        inImage.width = maxW;
        inImage.height = Math.floor(maxW / TmpRatio);
    }
}


