if(!Touch){
    if(!window.parent)
        var Touch={};
    else {
        if(!window.parent.Touch) var Touch={};
        else var Touch=window.parent.Touch;
    }
}



if(!Touch.processCart) Touch.processCart=function(){

    $.getJSON("/cart/?ajax=true&json=true",null,Touch.buildCart);



    $(".productoption").hide();
    $(".productoption").each(function(){
        var class1=$(this).parent().find(".classcategory1").html()*1;
        var options=$(this).html().split("-")
        //筆文字表記変更
        if(
            (class1>=1&&class1<=4)
          ||(class1>=20&&class1<=22)
          ||(class1>=29&&class1<=32)
          ||(class1>=33&&class1<=36)
        ){
            if((location.search+"").indexOf("type=volley")>0){
                $(this).parent().append("筆文字「"+
                    [
                        "なし",
                        "a 最高の一瞬",
                        "b 輝く瞬間",
                        "c めざせ頂点",
                        "d 蘇る感動",
                        "e 優勝",
                        "f 準優勝"
                    ][options[2]*1]
                +"」");
            }
            else if((location.search+"").indexOf("type=legon")>0){
            }
            else {
                $(this).parent().append("筆文字「"+
                    [
                        "なし",
                        "a 最高の一瞬",
                        "b めざせ甲子園",
                        "c 優勝",
                        "d 全員野球",
                        "e 準優勝",
                        "f 一球入魂",
                        "g めざせ頂点",
                        "h 輝く瞬間",
                        "i 蘇る感動"
                    ][options[2]*1]
                +"」");
            }
        }
        //組み番号･並び番号表記変更
        if((class1==0)||(class1<=7)||(class1>=20&&class1<=23)||class1==39){
            $(this).parent().append("組み番号:"+options[0]*1);
            if(class1==7) $(this).parent().append("配置番号:"+options[1]*1);
        }
    });

};



function getSetLimit(id,category1_id){
    var limit=[0,0,3,3,5,5,8,3][id];
    if(id>10) limit=[0,0,3,3,5,5,8][id-9]; //LEGON
    if(id>20) limit=[0,0,3,3,5,5,8,3][id-20]; //VOLLEY
    if(category1_id==39) limit=1; //カレンダー
    return limit;
}



if(!Touch.buildCart) Touch.buildCart=function(data){

    var group=[],last=[],errors=[],temp=data.products||[];
    for(var i=0;i<temp.length;i++) temp[i].rownumber=i;

    //組みポスターを分別
    for(var i=0;i<temp.length;i++){
        if(!temp[i]) continue;
        if((temp[i]['id']*1)<30) //LEGON,VOLLEY
            group.push([temp[i]]);
        if((temp[i]['category1_id']*1)==39) //カレンダー
            group.push([temp[i]]);
    }

    //組みポスターのグループ化
    for(var i=0;i<group.length;i++){
        var setnum=group[i][0].option.split("-")[0];
        for(var j=0;j<temp.length;j++)
            if(temp[j]!=group[i][0])
                if(temp[j].category1_id=="7")
                    if(temp[j].option.split("-")[0]==setnum)
                        group[i].push(temp[j]);
    }

    //組みポスター写真の表示
    for(var i=0;i<group.length;i++){
        var row=$("#carttable tr").eq(group[i][0].rownumber+1);
        row.find("td").css({"borderTop":"3px solid black"});
        for(var j=1;j<group[i].length;j++){
            var row=$("#carttable tr").eq(group[i][j].rownumber+1);
            row.find("td").css({"borderTop":"none","fontSize":"60%","padding-top":"0"})
                .find(".quantity_level,.price,.category_name1,.quantity_num").hide();
        }
    }

    //組みポスター毎の写真数をチェック
    for(var i=0;i<group.length;i++){
        var limit=getSetLimit(group[i][0].id,group[i][0]['category1_id']);
        if(group[i].length<=limit) errors.push({
            row:group[i][0].rownumber,
            message:"写真が"+(limit-(group[i].length-1))+"枚不足しています。<br>\n"
                   +"前のページに戻り、組み込む写真を選んでください。"
        });
    }

    //組みポスター写真があり、ポスター商品が選ばれていない場合
    for(var i=0;i<temp.length;i++){
        if((temp[i].category1_id*1)==7&&(temp[i].id*1)>10){
            var c=0,setnum=temp[i]["option"].split("-")[0];
            for(var j=0;j<group.length;j++){
                var num=group[j][0].option.split("-")[0];
                if(setnum==num) c++;
            }
            if(c<1) errors.push({
                row:temp[i].rownumber,
                message:"ポスターが選択されていません。<br>\n"
                       +"前のページに戻り、組みポスターの商品を選んでください。"
            });
        }
    }

    //エラー行を強調
    if(errors.length>0){
        for(var i=0;i<errors.length;i++){
            $("#carttable tr").eq(errors[i].row+1)
                .find("td").css({background:"#FF3344",color:"white"})
                .eq(2).append('<br><div style="background:white;color:red;padding:4px;font-size:1.1em;font-weight:bold;">'+errors[i].message+'</div>');
        }
        return;
    }



    //LEGON
    var temp=getURLVars();
    if(temp.type){
        if(document.form1){
            document.form1.action=document.form1.action+"?type="+temp.type;
        }
    }

    //購入可能にする
    $("#confirmButton").html('<a href="#">購入手続きへ</a>').click(function(){document.form1.submit();});

}



//カートJSONデータを文字列に
function seriarize(group){
    var ret="";
    for(var i=0;i<group.length;i++){
        if(!group[i]) continue;
        ret+="[\n";
        for(var j=0;j<group[i].length;j++){
            if(!group[i][j]) continue;
            ret+="[\n";
            for(var k in group[i][j]){
                ret+=k+":"+group[i][j][k]+",\n";
            }
            ret+="],\n";
        }
        ret+="],\n";
    }
    return ret;
}




//カート情報取得
function getCart(callback){
    var group=[];
    $.getJSON("/cart/?ajax=true&json=true",null,function(data){
        var last=[],temp=data.products||[],count=temp.length;
        for(var i=0;i<temp.length;i++){
            if((temp[i].id*1)<30)
                group.push([temp[i]]);
            if((temp[i]['category1_id']*1)==39) //カレンダー
                group.push([temp[i]]);
        }
        for(var i=0;i<group.length;i++){
            var setnumber=group[i][0].option.split("-")[0];
            for(var j=0;j<temp.length;j++)
                if(temp[j]!=group[i][0])
                    if(temp[j].category1_id=="7")
                        if(temp[j].option.split("-")[0]==setnumber)
                            { group[i].push(temp[j]); count--; }
        }
        if(count>0) $("#cart").append("(商品点数:"+count+")");
        //if(!Touch.group) Touch.group=group;
        Touch.group=group;
        if(!callback) return;
        if(typeof(callback)!='function') return;
        callback();
    });
    return group;
}



//組みポスターの最大組
function getMaxSetNumber(group){
    if(!group||!group.length) return;
    var max=0;
    for(var i=0;i<group.length;i++){
        var num=(group[i][0].option.split("-")[0])*1;
        if(num>max) max=num;
    }
    return max;
}



//商品ID
function getProductID(){
    var temp=location.search.split("?");
    if(temp.length<1) return;
    for(var i=0,a=temp[1].split("&");i<a.length;i++){
        var b=a[i].replace(/amp;/,"").split("=");
        if(b[0]=="product_id") return b[1];
    }
}



//ページ番号
function getPageNo(){
    var temp=location.search.split("?");
    if(temp.length<2) return;
    for(var i=0,a=temp[1].split("&");i<a.length;i++){
        var b=a[i].replace(/(amp;)*/,"").split("=");
        if(b[0]=="pageno") return b[1];
    }
}


//カテゴリID
function getCategoryID(){
    var temp=location.search.split("?");
    if(temp.length<2) return;
    for(var i=0,a=temp[1].split("&");i<a.length;i++){
        var b=a[i].replace(/(amp;)*/,"").split("=");
        if(b[0]=="category_id") return b[1];
    }
}


//規格1をグループ化表示
function groupCategory(field,cat){
    if(cat=="1") return;
    for(var i=0;i<field.length;i++){
        var temp=field.eq(i).find("option");
        if(temp.length<7) return;
        temp.slice(1,2).wrapAll('<optgroup label="■写真"></optgroup>');
        temp.slice(2,6).wrapAll('<optgroup label="■ポスター"></optgroup>');
        temp.slice(6).wrapAll('<optgroup label="■その他"></optgroup>');
        var obj=field.eq(i).find("option[value='7']");
/*
        if(cat && cat.indexOf("1553")<0)
            obj.after('<option value="7">ラミっ子</option>');
*/
        if(Touch.group.length>0){
            obj.after('<option value="set">組み込む写真を選ぶ</option>');
        }

    }
}


function removeField(){
    for(var i=0,a=arguments;i<a.length;i++){
        a[i].parent().prevAll("dt").eq(0).remove();
        a[i].remove();
    }
}

function hideField(obj){
    for(var i=0,a=arguments;i<a.length;i++){
        a[i].parent().prevAll("dt").eq(0).hide();
        a[i].hide();
    }
}

function showField(obj){
    for(var i=0,a=arguments;i<a.length;i++){
        a[i].parent().prevAll("dt").eq(0).show();
        a[i].show();
    }
}




//LEGON用
$(function(){
    if(category()!="LEGON") return;
    $("#posterset a").attr("href","/products/list.php?category_id=8").css({background:"url(/user_data/packages/new/img/button.sets.legon.gif) 0 0 no-repeat"});
    $("#order_info_links a").eq(1).css({background:"url(/user_data/packages/new/img/bloc/arrow.4.gif) center left no-repeat"});
    $("#snap a").attr("href","/user_data/photo_legon.php");
    $("#posters a").attr("href","/user_data/poster_legon.php");
    $("#frame a").attr("href","/user_data/frame_legon.php");
    $("#price a").attr("href","/user_data/price_legon.php");
    $("#category_second").remove();
    $("#find_team_bloc").remove();
    if(location.href.indexOf("category.php")<0){
        $.get(
            "/user_data/packages/new/bloc/legon_category.tpl",
            null,
            function(d){$("#rightcolumn #cart").after(d);}
        );
    }
    $("a[href='/cart/index.php'],a#purchase").attr("href","/cart/index.php?type=legon");
});



//バレー用
$(function(){
    if(category()!="VOLLEY") return;
    $("#posterset a").attr("href","/products/list.php?category_id=9");
    $("#snap a").attr("href","/user_data/photo_volley.php");
    $("#posters a").attr("href","/user_data/poster_volley.php");
    $("#frame a").attr("href","/user_data/frame_volley.php");
    $("#price a").attr("href","/user_data/price_volley.php");
    $("#category_second").remove();
    $("#find_team_bloc").remove();
    $("a[href='/cart/index.php'],a#purchase").attr("href","/cart/index.php?type=volley");
});



//オートコンプリート
$(function(){
    if($("#find_team").length>0){
        $('#find_team_submit').attr('disabled','disabled');
        var data;
        $.getJSON("/products/category.2.php?category_id=3",function(d){
            var names=$.map(d.related,function(i){return i.name});
            var urls=$.map(d.related,function(i){return i.url});
            new Suggest.Local("find_team","find_team_names",names,{
                dispMax:0,interval:1000,
                callback:function(v){
                    var url=urls[$.inArray(v,names)];
                    if(url==""||url.isNaN){
                        $('#warning').html('一致する学校・チーム名がありません。名称の一部を入力しなおしてみてください。');
                        return false;
                    }
                    $('#warning').html('');
                    $('#find_team_submit').removeAttr('disabled');
                    $("#find_team_url").val(url);
            }});
        });
        $("#find_team_form").submit(function(){
            var temp=$("#find_team_url").val();
            if(temp==""||temp.isNaN){
                $('#warning').html('一致する学校・チーム名がありません。名称の一部を入力しなおしてみてください。');
                return false;
            }
            $('#warning').html('');
            location.href="/products/"+temp;
            return false;
        });
    }
});



//画像保護
$(function(){
    //$("#two_maincolumn img").ImageProtector();
    $("img").bind("contextmenu",function(e){return false;});
    $(document).bind('reveal.facebox',function(){$("img").bind("contextmenu",function(e){return false;});});
});



//QueryString取得
function getURLVars(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}



//学校ID取得
function getTeamID(){
    var ids=getCategoryID();
    if(!ids) return;
    return ids.split(",").sort()[0];
}

//種目判定
function category(){
    var a=getTeamID();
    if(!a) return;
    a=a*1;
    if(gameTypeID==5022||a==8) return "LEGON";
    if(gameTypeID==1924||gameTypeID==1925||a==9) return "VOLLEY";
    if(gameTypeID==5105) return "SOCCER";
    return "";
}

//サブウィンドウ設定
var fancyOption={
    type:'iframe',
    overlayOpacity:0.7,
    margin:0,
    padding:0,
    width:900,
    height:520,
    titleShow:false,
    scrolling:'no',
    onComplete:function(){
        $('#fancybox-paginate-left,#fancybox-paginate-right').remove();
        if(!this.orig||this.orig.length<0) return;
        var base=$('.pagenavi').eq(0).find('a:not([href])').parent();
        var navi=function(sibling,pos,str){
            if(sibling.length<1) return;
            var temp=sibling.eq(0).find('a');
            var style={position:'absolute',background:'white',color:'blue',width:'7em',top:'50%'};
            style[pos]='4px';
            $('<a href="'+temp.attr('href')+'">'+str+'</a>')
            .attr({id:'fancybox-paginate-'+pos})
            .css(style)
            .appendTo('#fancybox-outer');
        };
        if($(this.orig[0])[0]==$('#photolist .item:first a')[0]){
            navi(base.prevAll('li:has(a:not([id]))'),'left','前のページへ');
        }
        if($(this.orig[0])[0]==$('#photolist .item:last a')[0]){
            navi(base.nextAll('li:has(a:not([id]))'),'right','次のページへ');
        }
    },
    onClosed:function(){
        (loadCart||function(){}).call();
    }
};



