﻿// JScript ファイル
var prodDs;
var preSQL;
var pageNo = 0;
var prePageNo = 0;
var slideMode = 0;
var pageMax = 0;
var dataCount = 0;
var prodCount = 0;
var zanCount = 0;
var preWidth;
var postWidth = 20;
var slideInterval;
var slideHtml;
var slideImgs = new Array();
slideImgs[0] = new Image();
slideImgs[0].src = "images/slideShow.gif";
slideImgs[1] = new Image();
slideImgs[1].src = "images/slideShow01.gif";
slideImgs[2] = new Image();
slideImgs[2].src = "images/slideShow02.gif";
function setNaviHtml(title)
{
    var html = "<div id=\"prodGrid\">" + 
		        "<div id=\"selectTitle\">" + title + "</div><div id=\"pageMove\">" + 
		        "<span><img src=\"images/slideShow.gif\" alt=\"スライド表示\" id=\"slideImg\" onclick=\"getSlide()\" /></span>" + 
		        "<img src=\"images/mFirst.gif\" alt=\"先頭\" onclick=\"pageMove(0)\" />" + 
		        "<img src=\"images/mPrev.gif\" alt=\"前へ（←で移動できます）\" onclick=\"pageMove(-1)\"/>" + 
		        "<input id=\"txtPnavi\" type=\"text\" onchange=\"pageTextMove()\" onkeydown=\"handlePageNavi()\"/>" + 
		        "<img src=\"images/mNext.gif\" alt=\"次へ（→で移動できます）\" onclick=\"pageMove(1)\" />" + 
				"<img src=\"images/mLast.gif\" alt=\"最後\" onclick=\"pageMove(10000)\"/>" + 
                "<span id=\"pTotal\"></span></div>" + 
				"</div><div id=\"gridCont\"></div>";
	return html;
}

function getDetailA()
{
    slideMode = 0;
    var slideCount = 15;
    ProductsGridCode.ReturnUpdateDetailInfoA(slideCount, getDetail_callback);
}

function getDetailB()
{
    slideMode = 0;
    var slideCount = 15;
    ProductsGridCode.ReturnUpdateDetailInfoB(slideCount, getDetail_callback);
}

function getDetail_callback(res)
{
    if(res.error != null)
    {
        alert(res.error);
    }
    else
    {
        if(res.value != null && res.value.Tables[0].Rows.length > 0)
        {
            prodDs = res.value;
            setDetail();
        }
        else
        {
            prodDs = null;
            dataCount = 0;
            pageMax = 0;
            pageNo = 0;
            Element.update("gridCont", "<span style=\"font-size: 16px;\">データがありません。</span>");
        }
    }
}

function setDetail()
{
    pageNo = 0;
    prodCount = prodDs.Tables[0].Rows[0].ProdCount;
    dataCount = prodDs.Tables[0].Rows.length;
    var onePageCount = 15;
    var slideCount;
    if(slideMode == 0)
    {
        slideCount = 15;
        showGridData(0);
    }
    if(slideMode == 1)
    {
        onePageCount = 2;
        slideCount = 15;
        showSlideGridData(0);
    }
    else if(slideMode == 2)
    {
        onePageCount = 20;
        slideCount = 20;
        showListGridData(0);
    }
    pageMax = Math.floor(prodCount / onePageCount);
    var amari = prodCount % onePageCount;
    if(amari != 0)
    {
       pageMax++;
    }
    Element.update("pTotal", pageMax.toString());
    document.forms[0].txtPnavi.value = pageNo + 1;
    if(prodCount > slideCount)
    {
        preSQL = prodDs.Tables[0].Rows[0].PreSQL;
        zanCount = slideCount;
        getZanData(preSQL);
    }
}

function getZanData(SQL)
{
    ProductsGridCode.ReturnZanData(SQL, zanCount, getZanData_callback);
}

function getZanData_callback(res)
{
    if(res.error != null)
    {
        alert(res.error);
    }
    else
    {
        var tblZan = res.value.Tables[0];
        var count = tblZan.Rows.length;
        var tbl = prodDs.Tables[0];
        for(var i = 0; i < count; i++)
        {
            tbl.addRow({"Product_ID":tblZan.Rows[i].Product_ID, "P_Code": tblZan.Rows[i].P_Code,
                        "P_Name": tblZan.Rows[i].P_Name, "HMode": tblZan.Rows[i].HMode,
                        "Maker": tblZan.Rows[i].Maker, "Desp1": tblZan.Rows[i].Desp1, "Desp2": tblZan.Rows[i].Desp2, "sPrice": tblZan.Rows[i].sPrice});
        }
        dataCount = prodDs.Tables[0].Rows.length;
        var addCount = 15;
        if(slideMode == 1)
        {
            addCount = 2
        }
        else if(slideMode == 2)
        {
            addCount = 20;
        }
        pageMax = Math.floor(dataCount / addCount);
        amari = dataCount % addCount;
        if(amari != 0)
        {
           pageMax++;
        }
        Element.update("pTotal", pageMax.toString());
        document.forms[0].txtPnavi.value = pageNo + 1;
        zanCount = dataCount;
        if(zanCount < prodCount)
        {
            getZanData(preSQL)
        }
    }
}



function showGridData(start)
{
    var tbl = prodDs.Tables[0];
    var pPlus = 15;
    var html = "";
    if(dataCount > 0)
    {
        var period = start + pPlus;
        if(dataCount < period)
        {
           period = dataCount;
        }
        var html = "<table style=\"width: 95%;\">";
        for(var i = start; i < period; i++)
        {
            var maker = tbl.Rows[i].Maker;
            var pNo = tbl.Rows[i].Product_ID;
            var pCode = tbl.Rows[i].P_Code;
            var pName = tbl.Rows[i].P_Name;
            var hNo = tbl.Rows[i].HMode;
            var desp1 = tbl.Rows[i].Desp1;
            var desp3 = tbl.Rows[i].Desp2;

            html += "<tr><td class=\"prodTitle\" colSpan=\"3\">";
            html += getHMode(hNo) + "<span style=\"font-size: 11px; color: #333333\">&nbsp; &nbsp;&nbsp;" + pCode + "</span><span style=\"font-size: 14px; color: #0033FF;\">&nbsp; &nbsp;&nbsp;" + pName + "</span></td></tr>";
            html += "<tr><td>";
            html += "<img src=\"photos/" + pCode + ".jpg\" alt=\"クリックで拡大\" style=\"cursor: pointer;\" onclick=\"getProdOne(" + pNo + ")\" onerror=\"setSorry(this, 'S')\"/></td>";
            html += "<td>" + desp1 + "</td>";
            html += "<td>" + desp3 + "</td><tr>";
        }
        html += "</table>"
        
    }
    else
    {
       html = "<span style=\"font-size: 16px;\">データがありません。</span>";
    }
    Element.update("gridCont", html);
    $("gridCont").scrollTop = 0;
}

function showSlideGridData(start)
{
     if(postWidth == 20)
     {
         Element.update("gridCont", "");
         var sizeObj = Element.getDimensions("gridCont");
         preWidth = sizeObj.width;
         var tbl = prodDs.Tables[0];
         var html = "";
         if(dataCount > 0)
         {
             var period = start + 2;
             if(dataCount < period)
             {
                period = dataCount;
             }
             html = "<table style=\"width: 95%;\">";
             for(var i = start; i < period; i++)
             {
                 html += "<tr><td class=\"prodTitle\" colSpan=\"3\">";
                 var maker = tbl.Rows[i].Maker;
                 var pNo = tbl.Rows[i].Product_ID;
                 var pCode = tbl.Rows[i].P_Code;
                 var pName = tbl.Rows[i].P_Name;
                 var hNo = tbl.Rows[i].HMode;
                 var desp1 = tbl.Rows[i].Desp1;
                 var desp3 = tbl.Rows[i].Desp2;
                 html += getHMode(hNo) + "<span style=\"font-size: 11px; color: #333333\">&nbsp; &nbsp;&nbsp;" + pCode + "</span><span style=\"font-size: 14px; color: #0033FF;\">&nbsp; &nbsp;&nbsp;" + pName + "</span></td></tr>";
                 html += "<tr><td>";
                 html += "<img src=\"photos/" + pCode + ".jpg\" alt=\"クリックで拡大\" style=\"cursor: pointer;\" onclick=\"getProdOne(" + pNo + ")\" onerror=\"setSorry(this, 'S')\"/></td>";
                 html += "<td>" + desp1 + "</td>";
                 html += "<td>" + desp3 + "</td><tr>";
             }
             html += "</table>"
             
         }
         else
         {
            html = "<span style=\"font-size: 16px;\">データがありません。</span>";
         }
         slideHtml = html;
         $("gridCont").style.width = "20px";
         $("gridCont").style.backgroundColor = "#f5f5f5";
         slideInterval = setInterval("addGridWidth()", 20);
     }
}

function addGridWidth()
{
    postWidth += 100;
    if(postWidth >= preWidth)
    {
        postWidth = 20;
        $("gridCont").style.width = (preWidth - 3).toString() + "px";
        $("gridCont").style.backgroundColor = "#FFFFFF";
        Element.update("gridCont", slideHtml);
        clearInterval(slideInterval);
    }
    else
    {
        $("gridCont").style.width = postWidth.toString() + "px";
    }
}

function showListGridData(start)
{
     Element.update("gridCont", "");
     var tbl = prodDs.Tables[0];
     var html = "";
     if(dataCount > 0)
     {
         var period = start + 20;
         if(dataCount < period)
         {
            period = dataCount;
         }
         html = "<table style=\"width: 95%;\"><tr>";
         var p = 0;
         for(var i = start; i < period; i++)
         {
             var maker = tbl.Rows[i].Maker;
             var pNo = tbl.Rows[i].Product_ID;
             var pCode = tbl.Rows[i].P_Code;
             var pName = tbl.Rows[i].P_Name;
             var hNo = tbl.Rows[i].HMode;
             var desp1 = tbl.Rows[i].Desp1;
             var desp3 = tbl.Rows[i].Desp2;
             var sPrice = tbl.Rows[i].sPrice;
             html += "<td class=\"listTD\">";
             html += "<img src=\"photos/" + pCode + ".jpg\" alt=\"クリックで拡大\" style=\"cursor: pointer; width: 100px;\" onclick=\"getProdOne(" + pNo + ")\" onerror=\"setSorry(this, 'S')\"/>" + 
                        "<br />" + pName + "<br />";
             if(sPrice == "完売")
             {
                html  += "　　　" + "<span class=\"skanbai\">" + sPrice + "</span></td>";
             }
             else
             {
                html  += "　　　　" + "<span class=\"sprice\">" + sPrice + "</span></td>";
             }
             
             if(p == 4 || p == 9 || p == 14 || p == 19)
             {
                html += "</tr><tr>";
             }
             p++;
         }
         html += "</tr></table>"
         
     }
     else
     {
        html = "<span style=\"font-size: 16px;\">データがありません。</span>";
     }
     Element.update("gridCont", html);
}

function slideCancel()
{
    pageNo = 0;
    dataCount = prodDs.Tables[0].Rows.length;
    pageMax = Math.floor(dataCount / 15);
    var amari = dataCount % 15;
    if(amari != 0)
    {
        pageMax++;
    }
    Element.update("pTotal", pageMax.toString());
    document.forms[0].txtPnavi.value = pageNo + 1;
    $("slideImg").src = slideImgs[0].src;
    slideMode = 0;
    showGridData(0);
}

function getSlide()
{
    if(slideMode == 0)
    {
        pageNo = 0;
        dataCount = prodDs.Tables[0].Rows.length;
        pageMax = Math.floor(dataCount / 2);
        var amari = dataCount % 2;
        if(amari != 0)
        {
            pageMax++;
        }
        Element.update("pTotal", pageMax.toString());
        document.forms[0].txtPnavi.value = pageNo + 1;
        $("slideImg").src = slideImgs[2].src;
        slideMode = 1;
        showSlideGridData(0);
    }
    else if(slideMode == 1)
    {
        pageNo = 0;
        dataCount = prodDs.Tables[0].Rows.length;
        pageMax = Math.floor(dataCount / 20);
        var amari = dataCount % 20;
        if(amari != 0)
        {
            pageMax++;
        }
        Element.update("pTotal", pageMax.toString());
        document.forms[0].txtPnavi.value = pageNo + 1;
        $("slideImg").src = slideImgs[1].src;
        slideMode = 2;
        showListGridData(0);
    }
    else
    {
        slideCancel();
    }
}

function pageMove(mCount)
{
    var oneCount = 15;
    if(mCount == 0)
    {
        pageNo = 0;
    }
    else if(mCount == 10000)
    {
        pageNo = pageMax - 1;
    }
    else
    {
        pageNo += mCount;
        if(pageNo < 0)
        {
            pageNo = 0;
        }
        else if(pageNo > (pageMax - 1))
        {
            pageNo = pageMax - 1;
        }
    }
    if(slideMode == 1)
    {
        oneCount = 2;
    }
    else if(slideMode == 2)
    {
        oneCount = 20;
    }
    var start = pageNo * oneCount;
    if(prePageNo != pageNo)
    {
        if(slideMode == 0)
        {
            showGridData(start);
        }
        else if(slideMode == 1)
        {
            showSlideGridData(start);
        }
        else
        {
            showListGridData(start);
        }

        document.forms[0].txtPnavi.value = pageNo + 1;
        prePageNo = pageNo;
    }
    
}
function slidePageNavi(evt)
{
    evt = (evt) ? evt : ((window.event) ? event: null);
    if(evt)
    {
        if(evt.keyCode == 39)
        {
            pageMove(1);
        }
        else if(evt.keyCode == 37)
        {
            pageMove(-1);
        }
    }
}

document.onkeydown=slidePageNavi;
