/**
 * リンクグループ
 * data/グループ名.jsonで各リンクを用意
 *
 * @var array
 */

var urlGroup = [
'first_campaign',
'first_event',
'first_publicityHandout',
'first_campaignFriend',
'ccnetChannel_index',
'ccnetChannel_indexFull',
'ccnetChannel_cStation',
'ccnetChannel_monthly',
'ccnetChannel_weekly',
'ccnetChannel_streaming',
'ccnetChannel_ccnetChannelProgram',
'ccnetChannel_guideChannelProgram',
'campaign',
'information',
'catv_channelLineUp',
'catv_serviceMenu',
'catv_serviceMenuFull',
'catv_serviceMenuOption',
'userService_pcProtectionPlus',
'userService_mailSecurity',
'userService_login',
'userService_login2',
'userService_webMail',
'userService_mailSecurity01',
'isp_optionService',
'isp_serviceGuidePrice',
'support_login',
'support_ccnetCablePhoneCharge',
'earthquake_index',
'earthquake_indexFull',
'earthquake_attention',
'earthquake_construction',
'earthquake_flow',
'earthquake_machinesTreatment',
'earthquake_price',
'earthquake_stipulation',
'earthquake_system',
'form_index',
'form_indexFull',
'form_changeispcoursePrivacyInfo',
'form_connectpcPrivacyInfo',
'form_application',
'form_catvoption',
'news_publicityHandout',
'news_event',
'news_campaignFriend',
'news_newsSpocourse',
'news_news20thhd3',
'news_newsNewchjazidai',
'news_newsOptionkntv',
'news_newsOption12next',
'phone_price',
'phone_priceSet',
'phone_priceCheck',
'faq_mailSecurity01',
'serviceGuide_internet',
'ispServicePrice20111201',
'phone_priceSet_20111201',
'program_guide'
]


var area;
Event.observe(window, 'load', function(){

    Shadowbox.init({
        handleOversize: "drag"
    });

    Cookie.init({
        name: 'ccnet',
        expires: 90,
        path : '/'
    });

    area = new areaClass();
});

var areaClass = Class.create();
areaClass.prototype = {
    initialize : function() {

        areaCookie = Cookie.getData('area');

        //トップ用
        if( $('topSelectAreaBox') ){
            if(areaCookie){
                this.topSelectedAreabox(areaCookie);
            }else{
                this.topUnselectAreabox();
            }
        }

        //下層ページ用
        if( $('underSelectAreaBox') ){
            if(areaCookie){
                this.underSelectedAreabox(areaCookie);
            }else{
                this.underUnselectAreabox();
            }
        }

        //リンク上書き処理
        this.changeUrl(areaCookie);
    },


    selectWindow : function(){
        var html = '<div id="wrapper Top">'
        +'<div id="areaBox">'
        +   '<h3>お住まいの地域を選択してください</h3>'
        +   '<div style="text-align:center; padding-bottom:10px;"><p style="font-size14px;">地域によってサービス内容等が異なりますので、お住まいの地域をご選択ください。</p></div>'
        +   '<img src="/pic/area/news_campaign_03.png" alt="" />'
        +   '<div class="areaL">'
        +       '<h4>愛知県</h4>'
        +       '<ul>'
        +           '<li><a href="#" id="areaName_kasugai">春日井市</a></li>'
        +           '<li><a href="#" id="areaName_komaki">小牧市</a></li>'
        +           '<li><a href="#" id="areaName_midori">名古屋市緑区</a></li>'
        +           '<li><a href="#" id="areaName_toyoake">豊明市</a></li>'
        +           '<li><a href="#" id="areaName_nisshin">日進市</a></li>'
        +           '<li><a href="#" id="areaName_togo">東郷町</a></li>'
        +           '<li><a href="#" id="areaName_inuyama">犬山市</a></li>'
        +           '<li><a href="#" id="areaName_fuso">扶桑町</a></li>'
        +           '<li><a href="#" id="areaName_toyokawa">豊川市</a></li>'
        +       '</ul>'
        +       '<h4>岐阜県</h4>'
        +       '<ul>'
        +           '<li><a href="#" id="areaName_kakamigahara">各務原市</a></li>'
        +           '<li><a href="#" id="areaName_minokamo">美濃加茂市</a></li>'
        +           '<li><a href="#" id="areaName_kawabe">川辺町</a></li>'
        +           '<li><a href="#" id="areaName_shirakawa">白川町</a></li>'
        +           '<li><a href="#" id="areaName_yaotsu">八百津町</a></li>'
        +           '<li><a href="#" id="areaName_yoro">養老町</a></li>'
        +           '<li><a href="#" id="areaName_motosu">本巣市</a></li>'
        +       '</ul>'
        +       '<h4>三重県</h4>'
        +       '<ul>'
        +           '<li><a href="#" id="areaName_kawagoe">川越町</a></li>'
        +           '<li><a href="#" id="areaName_asahi">朝日町</a></li>'
        +           '<li><a href="#" id="areaName_tado">桑名市多度町</a></li>'
        +       '</ul>'
        +   '</div>';
        return html+'</div>';
    },



    //トップ用未選択表示ボックス
    topUnselectAreabox : function()
    {
        //var aElem = document.createElement('a');
        //aElem.id = 'topSelectAreaLink';
        //aElem.innerHTML = '選択リンク';
        //aElem.href = '#';

        var str = '<a href="#" id="topSelectAreaLink">選択リンク</a>';
        Element.update('topSelectAreaBox',str);


        //イベントリスナー
        Event.observe('topSelectAreaLink', 'click', function(){
            Shadowbox.open({
                player: 'html',
                content: area.selectWindow(),
                width:  670,
                height: 600,
                options: {
                    onFinish: function(){
                        $H(areaList).each(function(item){
                            Event.observe( $('areaName_'+item.key) , 'click', function(){
                                Cookie.setData('area', item.key);
                                Shadowbox.close();
                                area.topSelectedAreabox(item.key);
                                return false;
                            });
                        });
                    }
                }
            });
            return false;
        });


        //Element.update('topSelectAreaBox',aElem);

    },


    //トップ用選択済み表示ボックス
    topSelectedAreabox : function(areaCookie){
        var html = '<div id="topSelectedAreabox">'
        + '<p>' + areaList[areaCookie] + '</p><br />'
        + ' <a href="#" id="reselect"></a>'
        + ' <a href="#" id="reset"></a></div>';

        $('topSelectAreaBox').innerHTML = html;

        //再選択
        Event.observe($('reselect'), 'click', function(){
            Shadowbox.open({
                player: 'html',
                content: area.selectWindow(),
                width:  670,
                height: 600,
                options: {
                    onFinish: function(){
                        $H(areaList).each(function(item){
                            Event.observe( $('areaName_'+item.key) , 'click', function(){
                                Cookie.setData('area', item.key);
                                Shadowbox.close();
                                area.topSelectedAreabox(item.key);
                                return false;
                            });
                        });
                    }
                }
            });
        });

        //リセット
        Event.observe($('reset'), 'click', function(){
            Cookie.removeData('area');
            area.topUnselectAreabox();
        });
    },


    //下層ページ用未選択表示ボックス
    underUnselectAreabox : function()
    {
        var aElem = document.createElement('a');
        aElem.id = 'underSelectAreaLink';
        aElem.innerHTML = '選択リンク';
        aElem.setAttribute('href', '#');




        //イベントリスナー
        Event.observe(aElem, 'click', function(){
            Shadowbox.open({
                player: 'html',
                content: area.selectWindow(),
                width:  670,
                height: 600,
                options: {
                    onFinish: function(){
                        $H(areaList).each(function(item){
                            Event.observe( $('areaName_'+item.key) , 'click', function(){
                                Cookie.setData('area', item.key);
                                Shadowbox.close();
                                area.underSelectedAreabox(item.key);
                                area.changeUrl(item.key);
                                return false;
                            });
                        });
                    }
                }
            });
        });

        Element.update('underSelectAreaBox',aElem);
    },



    //下層ページ用選択済み表示ボックス
    underSelectedAreabox : function(areaCookie){
        var html = '<div id="underSelectedAreabox">'
        + '<p>' + areaList[areaCookie] + '</p>'
        + ' <a href="#" id="reselect"></a>'
        + ' <a href="#" id="reset"></a></div>';

        $('underSelectAreaBox').innerHTML = html;


        //再選択
        Event.observe($('reselect'), 'click', function(){
            Shadowbox.open({
                player: 'html',
                content: area.selectWindow(),
                width:  670,
                height: 600,
                options: {
                    onFinish: function(){
                        $H(areaList).each(function(item){
                            Event.observe( $('areaName_'+item.key) , 'click', function(){
                                Cookie.setData('area', item.key);
                                Shadowbox.close();
                                area.underSelectedAreabox(item.key);
                                return false;
                            });
                        });
                    }
                }
            });
        });


        //リセット
        Event.observe($('reset'), 'click', function(){
            Cookie.removeData('area');
            area.underUnselectAreabox();
            area.changeUrl();
        });
    },



    redirect : function( group ){
        //地域選択されてる
        if(areaCookie){
            new Ajax.Request('/js/data/' +group+'.json',{
                method:'get',
                onSuccess: function(req){
                    var json = req.responseText.evalJSON();

                    if(json[areaCookie].url && json[areaCookie].title){
                        document.location.href = json[areaCookie].url;
                        return false;
                    }
                }
            });
        }
    },


    //リンク上書き処理
    changeUrl : function(areaCookie){

        //var elements = document.getElementsByClassName('arealink');
        //var elems = $A(elements);

        urlGroup.each(function(group){
            var className = '.'+group+'Change';

            var elems = $$(className);
            elems.each(
                function(item){


                    //地域選択されてる
                    if(areaCookie){
                        new Ajax.Request('/js/data/' +group+'.json',{
                            method:'get',
                            onSuccess: function(req){
                                var json = req.responseText.evalJSON();

                                if(json[areaCookie].url && json[areaCookie].title){
                                    item.setAttribute('href', json[areaCookie].url );
                                    item.setAttribute('title', json[areaCookie].title );
                                }
                            }
                        });



                    //地域選択してないので
                    //エリア選択ウィンドウ
                    }else{

                        item.setAttribute('href', '#' );
                        item.setAttribute('title', 'エリア選択' );

                        //イベントリスナー
                        Event.observe(item, 'click', function(){
                            Shadowbox.open({
                                player: 'html',
                                content: area.selectWindow(),
                                width:  670,
                                height: 600,
                                options: {
                                    onFinish: function(){
                                        $H(areaList).each(function(i){
                                            Event.observe( $('areaName_'+i.key) , 'click', function(){
                                                Cookie.setData('area', i.key);

                                                new Ajax.Request('/js/data/' +group+'.json',{
                                                    method:'get',
                                                    onSuccess: function(req,e){
                                                        var json = req.responseText.evalJSON();

                                                        if(json[i.key].url){
                                                            document.location.href = json[i.key].url;
                                                            return false;
                                                        }
                                                    }
                                                });

                                            });
                                        });
                                    }
                                }
                            });
                        });
                    }
                });
        });
    }
}

