/**
 * 街はぴ - JavaScript - ゼンリン:シンプルマップ表示JavaScript
 *
 * @package happy-town
 * @author Hideyuki Kagasawa <kagasawa@web-prom.net>
 * @copyright Copyright (C) 2009 Pencil Co.,Ltd All Rights Reserved.
 */


/**
 * @brief ゼンリン:シンプルマップクラス
 */
var zSimpleMapObj = {

    /**
     * @brief ゼンリンマップオブジェクト
     * @type <object>
     */
    zMap : null,

    /**
     * @brief 中心に表示するIconイメージ
     * @type <string>
     */
    iconImage : 'image/map_img/map_icon_writer.png',
    landmarkIconImage : 'image/map_img/map_icon_land.png',

    /**
     * @brief コンストラクタ
     */
    constructor : function(mapId, lon, lat, iconLon, iconLat, lv) {
        // MAPオブジェクト生成
        this.zMap = new ZdcMap( $(mapId).get()[0] );

        // 見栄えの良い地図で再生成
        this.zMap.setMapType('4');
        this.zMap.reflashMap();

        // 位置と縮尺を指定する
        this.zMap.setMapLocation(new ZdcPoint(lon ,lat), lv);
        // スケールバーウィジットを追加する
        this.zMap.addMapScaleBar(new ZdcScaleBar(2));
        // 中心点アイコンウィジットを追加する
        //this.zMap.addMapCenter(new ZdcMapCenter());
        // 地図コントロールを追加する
        //this.zMap.addMapControl(new ZdcControl('1'));

        // アイコンを作成する
        this.makeIcon(iconLon, iconLat, $('BASE').attr('href') + this.iconImage);

        // フリースクロール地図を固定する
        this.zMap.dragOff();
        // ホイール操作を無効化
        this.zMap.setWheelOff();

      //this.zMap.addZdcWait( 10, 20, loading );

    },


    /**
     * @brief ランドマーク用コンストラクタ
     */
    landmark : function(mapId, lon, lat, iconLon, iconLat, lv) {
        // MAPオブジェクト生成
        this.zMap = new ZdcMap( $(mapId).get()[0] );

        // 見栄えの良い地図で再生成
        this.zMap.setMapType('4');
        this.zMap.reflashMap();

        // 位置と縮尺を指定する
        this.zMap.setMapLocation(new ZdcPoint(lon ,lat), lv);
        // スケールバーウィジットを追加する
        this.zMap.addMapScaleBar(new ZdcScaleBar(2));
        // 中心点アイコンウィジットを追加する
        //this.zMap.addMapCenter(new ZdcMapCenter());
        // 地図コントロールを追加する
        //this.zMap.addMapControl(new ZdcControl('1'));
        //

        // アイコンを作成する
        this.makeIcon(iconLon, iconLat, $('BASE').attr('href') + this.landmarkIconImage);

        // フリースクロール地図を固定する
        this.zMap.dragOff();
        // ホイール操作を無効化
        this.zMap.setWheelOff();

      //this.zMap.addZdcWait( 10, 20, loading );
    },

    makeIcon: function(iconLon, iconLat, iconimage) {

        // ユーザレイヤを作成する
        var userlay = new ZdcUserLayer();
        userlay.setLayerScale(10,18); // レイヤを1/5万から1/1500で動作させる
        userlay.setLayerType('manual'); // 縮尺レベル変更時にレイヤを自動削除する

        // アイコンを生成する
        //var icon = new ZdcIcon(); // ディフォルトのアイコンを利用する

        var icon = new ZdcIcon();
        icon.size = new ZdcSize(34, 31);
        icon.shadowsize = new ZdcSize(22, 18);
        icon.offset = new ZdcPixel(-8, -21);
        icon.shdoffset = new ZdcPixel(8,2);
        icon.msgoffset = new ZdcPixel(0, -15);
        icon.image = iconimage;
        //icon.shadowimage = '../img/usericon/shadow.png';
        //icon.changeimage = '../img/usericon/iconc.png';
        icon.changesize = new ZdcSize(32, 24);
        icon.changeoffset = new ZdcPixel(-3, -5);


        // マーカで緯度経度とアイコンを紐付ける
        var mark = new ZdcMarker(new ZdcPoint(iconLon, iconLat), icon);

        // ユーザレイヤにマーカを追加する
        userlay.addMarker(mark);

        // 地図にユーザレイヤを追加する
        this.zMap.addUserLayer(userlay);
      
    }

}
