/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 * @author Ariel Flesler
 * @version 1.4.2
 *
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 */
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);


hongwanjiGmap = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ];

/* CVS PARSER: MINI DATABASE */
var cvs = function( op ) {

    var o = $.extend( {}, { keys: false }, op );

    var db = [],
        idx = {
            '東京都': [],
            '神奈川県': [],
            '千葉県': [],
            '埼玉県': [],
            '茨城県': [],
            '静岡県': [],
            '山梨県': [],
            '栃木県': [],
            '群馬県': []
        },
        key = o.keys;

    var checkPrefecture = function( address ) {
        if ( address.match(/^東京都/) ) { return  '東京都'; }
        else if ( address.match(/^神奈川県/) ) { return '神奈川県'; }
        else if ( address.match(/^千葉県/) ) { return '千葉県'; }
        else if ( address.match(/^埼玉県/) ) { return '埼玉県'; }
        else if ( address.match(/^茨城県/) ) { return '茨城県'; }
        else if ( address.match(/^静岡県/) ) { return '静岡県'; }
        else if ( address.match(/^山梨県/) ) { return '山梨県'; }
        else if ( address.match(/^栃木県/) ) { return '栃木県'; }
        else if ( address.match(/^群馬県/) ) { return '群馬県'; }
        else { return false; }
    },
    getPrefectureID = function( pft ) {
        var pftID = {
            '東京都': '0',
            '神奈川県': '1',
            '千葉県': '2',
            '埼玉県': '3',
            '茨城県': '4',
            '静岡県': '5',
            '山梨県': '6',
            '栃木県': '7',
            '群馬県': '8'
        };
        return pftID[ pft ] || false;
    };
	
	var datas = o.data.replace( /\r/g, '' ).replace( /\n/g, '__BR__' );

    for ( var i = 0, rows = datas.split('__BR__'); i < rows.length; i++ ) {

        var arr = [], extra = '';
        for ( var j = 0, cells = rows[ i ].split(","); j < cells.length; j++ ) {
            var val = cells[ j ].toString().replace(' ', '').replace('　','').replace('null','').replace(/\"/g,'').replace(/\'/g,'');
            if ( !val || ( val == '' ) || ( val == 'null' ) ) { val = ' '; }
            arr.push( val || '' );
            var newIndex = key[ val  ] || false;
            if ( newIndex ) {
                idx[ val  ] = idx[ val  ] || [];
                idx[ val  ].push( i );
                extra = newIndex;
             }
            if ( j == 4 ) {
                var pft = checkPrefecture( val );
                if ( pft ) {
                    idx[ pft ].push( i );
                }
            }
        }
        arr[ 1 ] = extra;
        // arr.push( parseInt( getPrefectureID( pft ), 10 ) );
        db.push( arr );
    }

    return {
        getData: function() {
            return db;
        },
        getRowsFromIndex: function( index ) {
            var curDbIdx = idx[ index ] || false;
            if ( !curDbIdx ) {
                return false;
            }
            var res = [];
            for ( var i = 0 ; i < curDbIdx.length; i++ ) {
                res.push( db[ curDbIdx[ i ] ] );
            }
            return res;
        }
    };

};

/* GOOGLE MAP */
$.gmap = {};
$.gmap.o = [];
$.gmap.op = {};
$.gmap.defaults = {
    data: {},
    lat: 0,
    lon: 0,
    zoom: 6,
    tab: 0,
    tabTitle: 'null'
};

$.fn.gmap = function( op ) {

    var s = this.serial = $.gmap.o.length;
    var o = $.extend( {}, $.gmap.defaults, op );
    $.gmap.o[ s ] = $.gmap.op = o;

    var $data = o.data;

    return this.each(function(){

        var map = new GMap2( $(this).get( 0 ));
        var prefecture = new GLatLng( o.lat, o.lon );

        // Google Maps Default Map Controls
        map.addControl( new GSmallMapControl() );
        map.addControl( new GMapTypeControl() );
        map.setCenter( prefecture, o.zoom );

        var icons = {
            'red': new GIcon( G_DEFAULT_ICON ),
            'blue': new GIcon( G_DEFAULT_ICON ),
            'grey': new GIcon( G_DEFAULT_ICON )
        };

        var host = "http://www.kaikyou.net/mt/mt-static/images/honganji/",
            loc = document.location.href;
        if ( loc.indexOf('localhost') != -1 ) {
            host = "http://localhost:8888/www/test/google-map/images/";
        }

        var templateClassName = {
                //'red': 'kyoukai',
                'red': 'fukyoujo',
                'grey': 'temple'
        }, tabTitle = o.tabTitle;
        var templateStyles = [{
                url: host + 'icon_group_small.png',
                width: 30,
                height: 29,
                opt_anchor: [7, 0],
                opt_textColor: '#FFFFFF'
            }, {
                url: host + 'icon_group_big.png',
                width: 38,
                height: 35,
                opt_anchor: [10, 0],
                opt_textColor: '#FFFFFF'
            }];

        // Red bubble
        icons.red.shadow = false;
        icons.red.image = host + "icon_red.png";
        icons.red.printImage = host + "icon_red.gif";
        icons.red.iconSize = new GSize( 20, 48 );
        icons.red.imageMap = [ 2, 2, 18, 2, 18, 46, 2, 46 ];
 
        //Blue bubble bubble
        icons.blue.shadow = false;
        icons.blue.image = host + "icon_blue.png";
        icons.blue.printImage = host + "icon_blue.gif";
        icons.blue.iconSize = new GSize( 21, 48 );
        icons.blue.imageMap = [ 2, 2, 18, 2, 18, 46, 2, 46 ];
 
        //Grey bubble
        icons.grey.shadow = false;
        icons.grey.image = host + "icon_gray.png";
        icons.grey.printImage = host + "icon_gray.gif";
        icons.grey.iconSize = new GSize( 19, 48 );
        icons.grey.imageMap = [ 2, 2, 18, 2, 18, 46, 2, 46 ];

        // Info Panel
        var markers = [];
        window.activeMarker = false;
        window.centerMarker = false;

        var $infoPanel = $( '<div id="gmap-temple-' + o.tab  + '" class="gmap-temple" style="display:none;"><div class="gmap-temple-header"></div><div class="gmap-temple-wrapper"></div><div class="gmap-temple-footer"></div></div>' );
        $( '<span class="gmap-temple-close"><strong><em><a id="close-info-panel' + o.tab + '"></a></em></strong></span>' )
             .click(function(){
                  window.activeMarker = false;
                  $infoPanel[ $.browser.msie ? 'hide' : 'fadeOut' ]().removeClass('active');
             })
             .appendTo( $infoPanel );
        $infoPanel.appendTo( map.getPane( G_MAP_FLOAT_SHADOW_PANE ) );


        for ( var i = 0; i < $data.length; i++ ) {
            var $d = ( ( $data[ i ] || [] )!= '' ) ? $data[ i ] : [],
                lat = $d[ 11 ] || false,
                lon = $d[ 10 ] || false;
        	if ( $d.length !=  13 ) {
                if ( window.console ) {
                    console.log( 'Error at row' + i );
                }
			}
			else {
                if ( lat && lon ) { 
                    var point = new GLatLng( parseFloat( lat ), parseFloat( lon ) );
                    var markerOptions = { icon: icons[ $d[ 1 ] ]   }; // { icon: icons[ $d[ $d.length - 2 ] ]  };
                    var marker = new GMarker( point, markerOptions );
                    marker.gmapInfo = $(
                        '<h3>' + $d[ 0 ] +'</h3>'
                        + '<p>〒' + $d[3] + $d[4] + $d[5]
                        + ( ( $d[6] != ' ' ) ? '<br />TEL: '+$d[6] : '' )
                        + ( ( $d[7] != ' ' ) ? '<br />FAX: '+$d[7] : '' )
                        + '<a href="http://maps.google.com/maps?hl=ja&ie=UTF8&z=17&q=' + $d[ 11 ]+ 'N,' + $d[ 10 ] + 'E(' + $d[ 0 ] + ')" target="_blank" class="mapIcon">大きな地図で確認する</a>'
                        + '</p>'
                    );
                    // + ( ( $d[12] != ' ' ) ? '<br />'+$d[ 12 ] : '' )
                    marker.gmapInfoType = templateClassName[ $d[ 1 ] ];
                    marker.gTempleName = $d[ 0 ];
                    map.addOverlay( marker );
                    markers.push( marker );
                }
            }
        }
        
        var openTempleLayout = function( mk, zm ) {
            var pos = { };
            pos.curr = mk.getLatLng();
            pos.center = map.getCenter();
            if ( !zm ) {
                // User is clicking the google map
            }
            else {
                // User is clicking the table
                map.setZoom( parseInt( zm, 10 ) );
            }
            var refreshInfoPanel = function() {
                var markerOffset = map.fromLatLngToDivPixel( mk.getPoint() );
                $( 'div.gmap-temple-wrapper', $infoPanel ).html( mk.gmapInfo.clone() );
                $infoPanel.removeClass('ui-temple-temple ui-temple-kyoukai ui-temple-fukyoujo')
                    .addClass( 'ui-temple-' + mk.gmapInfoType )
                    .css({
                        top: ( markerOffset.y - 28 ) + 'px',
                        left: ( markerOffset.x  + 12 )+ 'px'
                    })[ $.browser.msie ? 'show' : 'fadeIn' ]();
                if ( pageTracker ) {
                    pageTracker._trackPageview( '/temples/map/' + tabTitle + '/' + mk.gTempleName );
                    var mapFromGoogle = function() {
                        pageTracker._trackPageview( '/outgoing/map/' + tabTitle + '/' + mk.gTempleName );
                    };
                    $infoPanel.find('a.mapIcon').bind('click', mapFromGoogle );
                }
            };
            if ( ( pos.curr.lat() != pos.center.lat() ) && ( pos.curr.lng() != pos.center.lng() ) ) {
                var moveEnd = GEvent.addListener( map, "moveend", function() {
                    refreshInfoPanel();
                    GEvent.removeListener(moveEnd);
                });
                if ( $infoPanel.hasClass('active') ) {
                    if ( $.browser.msie ) {
                        $infoPanel.hide();
                        map.panTo( pos.curr );
                    }
                    else {
                        $infoPanel.fadeOut(function(){
                            map.panTo( pos.curr );
                        });
                    }
                }
                else {
                    $infoPanel.addClass('active');
                    map.panTo( pos.curr );
                }
            }
            else {
                var markerOffset = map.fromLatLngToDivPixel( mk.getPoint() );
                $infoPanel.css({
                    top: ( markerOffset.y - 28 ) + 'px',
                    left: ( markerOffset.x  + 12 ) + 'px'
                })[ $.browser.msie ? 'show' : 'fadeIn' ]();
            }
            window.activeMarker = mk;
            window.centerMarker = true;
        };

	   //if ( o.tab > 0 ) {
          var $dataList = $( this ).find( 'table' );
          var sIdx = [], cIdx = [], tabId = o.tab;
            if ( $dataList.length < 1 ) {
                var list = ['<table id="templeList' + tabId + '" class="temple-list"><tbody>' ];
                for ( var i = 0; i < $data.length; i++ ) {
                    var $d = $data[ i ];
                    list.push(
                        '<tr id="row-' + tabId + '-' + i + '" class="' + templateClassName[ $d[ 1 ] ] + '">'
                        + '<td class="templeName" nowrap="nowrap">' + $d[ 0 ] + '</td>'
                        + '<td class="address">〒' + $d[ 3 ] + $d[ 4 ] + $d[ 5 ] + '</td>'
                        + '<td class="mapIcon"><a href="#gmap-temple-' + o.tab  + '">Google Map</a></td>'
                        + '<td nowrap="nowrap" class="telNumber' + ( ( $d[ 6 ] != ' ' ) ? '">TEL&nbsp;' + $d[ 6 ] : ' nobg">&nbsp;' ) + '</td>'
                        + '<td nowrap="nowrap" class="faxNumber' + ( ( $d[ 7 ] != ' ' ) ? '">FAX&nbsp;' + $d[ 7 ] : ' nobg">&nbsp;' ) + '</td>'
                        + '<td class="mail'  + ( ( ( $d[ 13 ] || ' ' ) != ' ' ) ? '"><a href="mailto:' + $d[ 13 ] + '">メール</a>' : ' nobg">&nbsp;' ) + '</td>'
                        + '<td class="website' + ( ( ( $d[ 12 ] || ' ' ) != ' ' ) ? '"><a href="' + $d[ 12 ]  + '"　title="' + $d[ 12 ].replace( 'http:\/\/','' ).replace( 'www\.','' ) + '">ホームページ</a>' : ' nobg">&nbsp;' ) + '</td>'
                        + '</tr>'
                    );
                    sIdx.push( $d[ 0 ]　+ $d[ 2 ] + $d[ 3 ] + $d[ 4 ] + $d[ 5 ] + $d[6] + $d[7] );
                    cIdx.push( templateClassName[ $d[ 1 ] ] );
                }
                list.push( '</tbody></table>' );
                var $parent =  $( this ).parent();
                var htmlCallBack = function() {
                    $( '<div id="table-wrapper' + tabId + '" class="table-wrapper" />' )
                        .html( list.join('') )
                        .appendTo( $parent );

                    $( 'td.mapIcon a', $parent ).bind('click', function() {
                        var $id = $(this).parent().parent().attr('id');
                        if ( $id ) {
                            var $idKeys = $id.split('-');
                            if ( $idKeys.length >= 2 ) {
                                openTempleLayout( markers[ $idKeys[ $idKeys.length - 1 ] ], 17 );
                            }
                        }
                        $(window).scrollTo('#header', {duration: 100});
                        return false;
                    });

                    // GA gmap button
                    $( 'td.mapIcon a' ).bind('click', function(){
                        if ( pageTracker ) {
                            pageTracker._trackPageview( '/temples/map/' + tabTitle + '/' +  $('td:first-child', $(this).parent().parent() ).text() );
                        }
                    });
                    
                    var $rows = $( 'table tr', $parent ),
                        $activeRows = [];
                    
                    //var $categoryInputs = $('input.radio', $parent ),
                    var $keywordInput = $('input.keywords', $parent ),
                        search = {
                            category: '',
                            keyword: ''
                        };

                    var refreshResults = function( skip ) {
                        //var category = search.category,
                        var keyWord = search.keyword,
                            results = [];
                        /*if ( !skip ) {
                            if ( category != '' ) {
                                var $bufferRows = [];
                                for ( var i=0; i< cIdx.length; i++ ) {
                                    var row = $rows[i] || false;;
                                    if ( row ) {
                                        if ( cIdx[ i ] == category ) {
                                            row.style.display = '';
                                            $bufferRows.push( i );
                                        }
                                        else {
                                            row.style.display = 'none';
                                        }
                                    }
                                    else {
                                        if ( cIdx[ i ] == category ) {
                                            $bufferRows.push( i );
                                        }
                                    }
                                };
                                $activeRows = $bufferRows;
                            }
                            else {
                                $activeRows = [];
                            }
                        }
                        else if ( $activeRows.length > 0 ) {
                            for ( var i=0; i<$activeRows.length; i++ ) {
                                var row = $rows[ $activeRows[i] ];
                                if ( row ) {
                                    row.style.display = '';
                                }
                            }
                        }*/
                        if ( keyWord != '' ) {
                            if ( $activeRows.length > 0 ) {
                                for ( var i=0; i<$activeRows.length; i++ ) {
                                    var j = $activeRows[i],
                                        row = $rows[j] || false;
                                    if ( row ) {
                                        if ( sIdx[ j ].indexOf( keyWord ) != -1 ) {
                                            row.style.display = '';
                                            results.push( j );
                                        }
                                        else {
                                            row.style.display = 'none';
                                        }
                                    }
                                    else {
                                        if ( sIdx[ j ].indexOf( keyWord ) != -1 ) {
                                            results.push( j );
                                        }
                                    }
                                }
                            }
                            else {
                                for ( var i=0; i<$rows.length; i++ ) {
                                    var row = $rows[i] || false;
                                    if ( row ) {
                                        if ( sIdx[ i ].indexOf( keyWord ) != -1 ) {
                                            row.style.display = '';
                                            results.push( i );
                                        }
                                        else {
                                            row.style.display = 'none';
                                        }
                                    }
                                    else {
                                        if ( sIdx[ i ].indexOf( keyWord ) != -1 ) {
                                            results.push( i );
                                        }
                                    }
                                }
                            }
                        }
                        if ( keyWord == '' ) {
                            for ( var i=0; i<$rows.length; i++ ) {
                                var row = $rows[i] || false;
                                if ( row ) {
                                    row.style.display = '';
                                }
                            }
                            $activeRows = [];
                        }
                        /*if ( ( category == '' ) && ( keyWord == '' ) ) {
                            for ( var i=0; i<$rows.length; i++ ) {
                                var row = $rows[i] || false;
                                if ( row ) {
                                    row.style.display = '';
                                }
                            }
                            $activeRows = [];
                        }*/
                        if ( results.length == 1 ) {
                            openTempleLayout( markers[ results[0] ], 17 );
                        }
                    };

                    /*$categoryInputs.bind('click', function() {
                        search.category = $(this).val().toLowerCase();
                        window.setTimeout(function() {
                            refreshResults( false );
                        }, 100 );
                    });*/

                    $keywordInput.bind('keyup', function() {
                        search.keyword = $(this).val();
                        window.setTimeout(function() {
                            refreshResults( true );
                        }, 100 );
                    }).bind('blur', function() {
                        if ( search.keyword == '' ) {
                            $(this).prev().removeClass('active');
                        }
                    });
                    
                    $keywordInput.prev().bind('click', function() {
                        $(this).addClass('active');
                        $keywordInput.focus();
                    });

                };

                setTimeout( htmlCallBack, 250 ); // Delay for poor browsers
            }
        //}
        //else {
        //    var $parent =  $( this ).parent();
        //    $parent.html('');
        //}

        var defaultCallBack = function() {
            if ( !window.activeMarker ) {
                    $infoPanel.hide().removeClass('active');
                    window.activeMarker = false;
            }
            else {
                if ( window.activeMarker.isHidden() ) {
                    $infoPanel[ $.browser.msie ? 'hide' : 'fadeOut' ]().removeClass('active');
                    window.activeMarker = false;
                }
                else {
                    var moveEnd = GEvent.addListener( map, "moveend", function() {
                        var markerOffset = map.fromLatLngToDivPixel( window.activeMarker.getPoint() )
                        $infoPanel.css({
                           top: ( markerOffset.y - 28 ) + 'px',
                           left: ( markerOffset.x  + 12 ) + 'px'
                        });
                        GEvent.removeListener(moveEnd);
                    });
                    map.setCenter( window.activeMarker.getLatLng() );
                }
            }
        };

        for ( var i=0;i<markers.length; i++ ) {
            GEvent.addListener( markers[i], "click", function(){
                openTempleLayout( this, false );
            });
        };

        GEvent.addListener( map, "zoomend", function() {
            setTimeout( defaultCallBack, 500 );
        });

        GEvent.addListener( map, "dragend", function() {
            window.centerMarker = false;
        });


        var initClusterMarker = function() {
            new MarkerClusterer( map, markers, {
                maxZoom: 16,
                gridSize: 40,
                styles: templateStyles
            });
        };
        window.setTimeout( initClusterMarker, 250 );

        hongwanjiGmap[ o.tab ] = map;

    });

}

$.updateMap = {
    perform: function( o ) {
        var $curMap = o.map || false;
        if ( $curMap ) {
            $curMap.updateMap({
                tab: o.tab,
                mapSettings: {
                    zoom: o.zoom,
                    lat: o.lat,
                    lon: o.lon,
                    idx: o.tit
                },
                action: o.action
            });
        }
    },
    init: function( $nav ) {
        $nav.each(function( i ) {
            var $el = $( this );
            $el.bind( 'click', function() {
                if ( $el.parent().hasClass('ui-tabs-selected') ) {
                    $.updateMap.perform({
                        map: $( '#' + $el[0].href.split( '#' )[ 1 ] + ' div.map' ),
                        tab: i,
                        zoom: parseInt( $el.attr('zoom'), 10 ),
                        lat: parseFloat( $el.attr('lat') ),
                        lon: parseFloat( $el.attr('lon') ),
                        tit: $el.attr('title'),
                        uiControls: true,
                        action: 'reset'
                    });
                }
                else {
                    if ( pageTracker ) {
                        pageTracker._trackPageview( '/temples/map/' + $(this).attr('title') );
                    }
                }
            });
        });
    }
};
$.updateMap.o = [];
$.updateMap.op = {};
$.updateMap.defaults = {
    tab: 0,
    mapSettings: {},
    action: 'load'
};

$.fn.updateMap = function( op ) {

    var s = this.serial = $.updateMap.o.length;
    var o = $.extend( {}, $.updateMap.defaults, op );
    $.updateMap.o[ s ] = $.updateMap.op = o;

    var $curMap = $( this ),
        mapSettings = o.mapSettings;

    if ( o.action == "load" ) {
        return $curMap.gmap({
            data: window.db.getRowsFromIndex( mapSettings.idx ), // ( o.tab > 0 ) ? window.db.getRowsFromIndex( mapSettings.idx ) : window.db.getData(),
            lat: mapSettings.lat,
            lon: mapSettings.lon,
            zoom: mapSettings.zoom,
            tab: o.tab,
            tabTitle: mapSettings.idx
        }).attr("isloaded","on");
    }
    else {
        var $parent = $curMap.parent();
        /*var $cat = $parent.find('input.radio:eq(0)');
        $cat[0].checked = true;
        $cat.trigger('click');*/
        var $key = $parent.find('input.keywords');
        if ( $key.size() > 0 ) {
	        $key[0].value = '';        
    	    $key.trigger('keyup');
        	$key.prev().removeClass('active');
        }
        var googleMap = hongwanjiGmap[ o.tab ];
        if ( googleMap ) {
            $parent.find('div.gmap-temple').hide().removeClass('active');
            window.activeMarker = false;
            if ( googleMap.getZoom() != mapSettings.zoom ) {
                googleMap.setZoom( parseInt( mapSettings.zoom, 10 )  );
            }
            googleMap.panTo( new GLatLng( mapSettings.lat, mapSettings.lon ) );
            return $curMap;
        }
    }

}

/* LAUNCHER */
$(document).ready(function(){

    $.get( 'http://www.kaikyou.net/2011/12/22/111222temples.csv', function( data ) {

        // Ajaxx get the templates data
        window.db = new cvs({
            data: data,
            keys: {
                '教会': 'grey',
                '布教所': 'red',
                '寺': 'grey'
            }
        });

        var initGmaps = function() {
            // Google Map Update Plugin
            $.updateMap.init( $( 'div#tabs ul:eq(0) a' ) );

            // jQuery UI Tabs + Callback with gmap plugins
            var $tabs = $( 'div#tabs' ).tabs({
                selected: 0,
                show: function( event, ui ) {
                    var $link = $( ui.tab ),
                        op = {
                            map: $( '#' + $link[0].href.split( '#' )[ 1 ] + ' div.map' ),
                            tab: ui.index,
                            zoom: parseInt( $link.attr('zoom'), 10 ),
                            lat: parseFloat( $link.attr('lat') ),
                            lon: parseFloat( $link.attr('lon') ),
                            tit: $link.attr('title')
                        };
                    if ( !op.map.attr('isloaded') ) {
                        op.action = 'load';
                    }
                    else {
                        op.action = 'reset';
                    }
                    $.updateMap.perform( op );
                }
            });

        };

        $.getScript('/js/markerclusterer_packed.js', initGmaps );
        
        $('form').submit(function(){
        	return false;
        });

    });
});
