Event.observe(window, 'load', load);

var popupMap;
var updaterMap;

function load() {
    prefPopupObj     =  new PrefPopup(document.body);
    cityPopupObj     =  new CityPopup(document.body);
    townPopupObj     =  new TownPopup(document.body);
    linePopupObj     =  new LinePopup(document.body);
    stationPopupObj  =  new StationPopup(document.body);
    featurePopupObj  =  new FeaturePopup(document.body);
    nminsLinePopupObj    =  new NminsLinePopup(document.body);
    nminsStationPopupObj = new NminsStationPopup(document.body);

    prefValueUpdaterObj     =  new PrefValueUpdater();
    cityValueUpdaterObj     =  new CityValueUpdater();
    townValueUpdaterObj     =  new TownValueUpdater();
    lineValueUpdaterObj     =  new LineValueUpdater();
    stationValueUpdaterObj  =  new StationValueUpdater();
    featureValueUpdaterObj  =  new FeatureValueUpdater();
    nminsLineValueUpdaterObj    =  new NminsLineValueUpdater();
    nminsStationValueUpdaterObj = new NminsStationValueUpdater();

    popupMap = {
        prefUpdate   :  prefPopupObj,
        cityUpdate   :  cityPopupObj,
        townUpdate   :  townPopupObj,
        lineUpdate   :  linePopupObj,
        stationUpdate:  stationPopupObj,
        featureUpdate:  featurePopupObj,
        nminsLineUpdate  :  nminsLinePopupObj,
        nminsStationUpdate : nminsStationPopupObj
    };


    updaterMap = {
        pref      :  prefValueUpdaterObj,
        city      :  cityValueUpdaterObj,
        town      :  townValueUpdaterObj,
        line      :  lineValueUpdaterObj,
        station   :  stationValueUpdaterObj,
        feature   :  featureValueUpdaterObj,
        nminsLine     :  nminsLineValueUpdaterObj,
        minsStation: nminsStationValueUpdaterObj
    };

    try {
        $A(document.getElementsByClassName('updateItem')).each(function(anchor) {
            anchor.observe('click', function(e) {
                for (var key in popupMap) {
                    if (anchor.id.match(key, 'i')) {
                        popup = popupMap[key];
                        break;
                    }
                }
                if (!popup.isBaseArea() && popup.isDependingOnBaseArea() && popup.getParameters() == '') {
                    popupMap['prefUpdate'].initDialog();
                    popupMap['prefUpdate'].setNextPopup(popup);
                    popupMap['prefUpdate'].updateContents(popupMap['prefUpdate'].getParameters());
                    popupMap['prefUpdate'].initMouseEvent();
                } else {
                    popupMap['prefUpdate'].setNextPopup(null);
                    popup.initDialog(anchor.href);
                    popup.updateContents(popup.getParameters());
                    popup.initMouseEvent();
                }
            }.bind(this));
        });
    } catch (e) {
        alert(e.toString());
    }
}




