//<![CDATA[
var map;
var geocoder;
var zoom = 12;
var locmngr = new Array();
var locobj = new clsLocObj();

Ext.onReady(function (){
    resize();
    if (!GMap2){
        Ext.alert('エラー','Google Map APIがロードできませんでした。');
        return;
    }
    map = new GMap2(Ext.get('gmapfld').dom);
    map.addControl(new GLargeMapControl());
    geocoder = new GClientGeocoder();

    var lat = 34.64486, lng = 133.863537;
    var loc = new GLatLng(lat,lng);
    map.setCenter(loc, 16);

    // 初期マーカーの作成
    var iconimage = 'http://oo-com.com/route/markers/marker1.png';
    var gi = new GIcon();
    gi.image = iconimage;
    gi.iconSize = new GSize(20,34);
    gi.printImage = iconimage;
    gi.mozPrintImage = iconimage;
    gi.iconAnchor = new GPoint(9,34);
    var marker = new GMarker(loc,{icon:gi});
    map.addOverlay(marker);

    // 初期ラベルの作成
    var label = new TLabel;
    label.id = 'lblmapdefault';
    label.anchorLatLng = loc;
    label.anchorPoint = 'topLeft';
    label.content = '<div style="padding:3px 5px;font-size:9pt;border:2px solid red;background-color:#ffffff;width:150px;overfflow:hidden;">OO-com株式会社<br />岡山市平野561-1 3F<br />Tel: 086-292-0001<div>';
    label.percentOpacity = 0;
    map.addTLabel(label);
    locobj.addLoc('OO-com株式会社','岡山市平野561-1',loc,marker,label);
});

function clsLocObj(){
    this.locmgr = new Array();
    this.addLoc = function(c,a,p,m,l){
        var obj = new Object;
        obj['cusnm'] = c;
        obj['addr']  = a;
        if (p){
            obj['loc'] = p;
        }
        if (m){
            obj['marker'] = m;
        }
        if (l){
            obj['label'] = l;
        }
        this.locmgr.push(obj);
    }
    this.removeLoc = function(i){
        if ((i < 0) || (i >= this.getCount())) return;
        this.locmgr.splice(i,1);
    }
    this.getCount = function(){
        return this.locmgr.length;
    }
    this.getRec = function(i){
        if ((i < 0) || (i >= this.getCount())) return undefined;
        return this.locmgr[i];
    }
    this.getValue = function(i,c){
        if ((i < 0) || (i >= this.getCount())) return undefined;
        return this.locmgr[i][c];
    }
    this.setValue = function(i,c,v){
        if ((i < 0) || (i >= this.getCount())) return;
        this.locmgr[i][c] = v;
    }
    this.getLocList = function(){
        var loclist = new Array();
        for (i = 0; i < this.getCount(); i++){
            loclist.push(this.locmgr[i]['loc']);
        }
        return loclist;
    }
    this.findLabelFromMarker = function(m){
        for (i = 0; i < this.getCount(); i++){
            if (this.getValue(i,'marker') == m){
                return this.getValue(i,'label');
            }
        }
        return undefined;
    }
    this.findIndexFromMarker = function(m){
        for (i = 0; i < this.getCount(); i++){
            if (this.getValue(i,'marker') == m){
                return i;
            }
        }
        return undefined;
    }
}
//]]>
