// Restore standard jQuery alias
var $ = jQuery.noConflict();

$(function(){
     $('#display_inner .top_feature_content').not(':first').hide();
    // Corner Radius
    $('.round_corner1').corner("3px");
    $('.round_corner_bottom1').corner("bottom 3px");
	$('ul.cat_nav a').corner("3px");
    
    // LAST SELECTER
    $('div.taglistList li:last').addClass('last');
    // END LAST SELECTER
});

/*
POST TABS
---------------------------------------------------------*/

$(function() {
    $('.toggleTab_cnt').not('.toggleTab_curr_cnt').hide();
    $('.toggleTabLinks').each(function() {
        $(this).click(function() {
            var info = $(this).attr('id').split('_');
            toggleTab_show(info[1], info[0]);
            return false;
        });
    });
});

function toggleTab_show(tab,post){		
		$('.toggleTab_cnt').each(function() {
            $(this).hide();
        });
        $('#toggleTab_'+post + ' .toggleTab_tab').each(function() {
            $(this).removeClass('toggleTab_curr');
        });
        $('#toggleTab_tab_'+tab+'_'+post).addClass('toggleTab_curr');
		$("#toggleTab_"+tab+"_"+post).show();
}

// Switching Tabs and add active class
$(function() {
    $('.info_cont').not('.switchTab_curr').hide();
    $('.switchingTabLinks').each(function() {
        $(this).click(function() {
            $('.switchingTabLinks').parent().removeClass('active');
            $(this).parent().addClass('active');
            var info = $(this).attr('id').split('_');
            toggleDisplay(info[1]);
            return false;
        });
    });
});

function toggleDisplay(num) {
    $('.info_cont').each(function() {
        $(this).removeClass('switchTab_curr').hide();
    });
    $('#switchTab_'+num).addClass('switchTab_curr').show();
}

function initNamespace() {
    $.gp_namespace = {};
}

function subFeatureBoxAutoSelection() {
    $.gp_namespace.subFeatureAnimationCounter = 0;
    $('#display_inner .top_feature_content:visible').fadeOut('slow', function() {
            $(this).next().fadeIn();
            if ($.gp_namespace.subFeatureAnimationCounter == 0) {
                $('#display_inner .top_feature_content:first').detach().appendTo($('#display_inner'));
                var start_item = $('#top_feature_nav a').index($('#top_feature_nav a.active'));
                $('#top_feature_nav a.active').removeClass('active');
                $('#top_feature_nav a').eq((start_item + 1) % $.gp_namespace.itemcounts).addClass('active');
            }
            $(this).css('left', '');
            $.gp_namespace.subFeatureAnimationCounter++;
    });
    initSubFeatureBox();
}

function initSubFeatureBox() {
    $.gp_namespace.itemcounts = $('#top_feature_nav a').size();
    $.gp_namespace.subFeatureTimer = setTimeout('subFeatureBoxAutoSelection()', 8000);
}

function toggle_search() {
    var alt_text = $(this).attr('title');
    var cur_text = $(this).find('em').text();
    $(this).find('em').text(alt_text);
    $(this).attr('title', cur_text);
    $('div.toggle_inner').slideToggle('fast');
}

// DOM is ready
$(function() {
        $('a.category_toggle').toggle(toggle_search,toggle_search);

        // init namespace
        initNamespace();
        /* [Begin] Sub feature rotation system on category page. */
        if ($("#display").length && $('#display_inner .top_feature_content').size() > 1) {
            initSubFeatureBox();
            $('#top_feature_nav a').click(function(){
                    clearTimeout($.gp_namespace.subFeatureTimer);
                    var start_item = $('#top_feature_nav a').index($('#top_feature_nav a.active'));
                    var end_item = $('#top_feature_nav a').index(this);
                    if ((end_item - start_item) == 0) {
                        return false;
                    }
                    $('#top_feature_nav a.active').removeClass('active');
                    $(this).addClass('active');
                    var first_elements = $('#display_inner .top_feature_content').eq(end_item - start_item).prevAll().detach();
                    $(first_elements.toArray().reverse()).appendTo($('#display_inner')).hide();
                    $('#display_inner .top_feature_content:first').fadeIn('slow');

                    return false;
            });
        }
        /* [End] Sub feature rotation system on category page. */
});


function initialize(mapCanvas, lat, lng) {

    var latlng = new google.maps.LatLng(parseFloat(lat), parseFloat(lng));
    
    var mapOptions = {
        zoom: 17,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        scrollwheel: false
    };
    var map = new google.maps.Map(mapCanvas, mapOptions);

    var marker = new google.maps.Marker({
        position: latlng, 
        map: map
    }); 
    /*var circleOptions = {
        center: latlng,
        fillColor: '#0066FF',
        fillOpacity: 0.1,
        map: map,
        radius: 100,
        strokeColor: '#0066FF',
        strokeOpacity: 0.6,
        strokeWeight: 2
    };
    var circle = new google.maps.Circle(circleOptions);*/
    /*
    google.maps.event.addListener(circle, 'dragend', function() {
        var circle = this.getPosition();
    });*/
}

function fillCities(id) {
    var lookup;
    var city;
    var prefecture_id;
    if (id == 'rentals_prefecture') {
        lookup = '#rentals_url_citylookup';
        city = 'select#rentals_city';
        prefecture_id = $('#rentals_prefecture option:selected').attr('value');
    } else {
        lookup = '#forsale_url_citylookup';
        city = 'select#forsale_city';
        prefecture_id = $('#forsale_prefecture option:selected').attr('value');
    }
    $(city).html('');
    if (prefecture_id == 'JP') {
        return;
    }

    var url = $(lookup).val();
    jQuery.getJSON(url + '?' + 'prefecture=' + prefecture_id + '&callback=?', function(data) {
            // Display subarea list or text + hidden field
            if (data.cities.length > 1) {
                var list = data.cities;
                var select = '';
                for (var i = 0; i < list.length; i++) {
                    select += '<option value="' + list[i].city_id + '">' + list[i].city + '</option>';
                }
                $(city).html(select);
            }
    });
}

$(function(){
     // For IE
     if($.browser.msie){
          $('div.shadow').remove();
     }
     if($('div.map_canvas').hasClass('detail_map') == true){
        var breakdown_url = $('div.show_map a#001_btn').attr('href').split('/');
        var lat = breakdown_url[jQuery.inArray('lat', breakdown_url) + 1];
        var lng = breakdown_url[jQuery.inArray('lng', breakdown_url) + 1];
         $('div#001 div.map_canvas').each(function() {
             initialize(this, lat , lng);
             $('div#001 div.shadow').css("display","block");
             $('div#001 div.map_canvas').addClass('selected');
         });
     } else {
         $('div.map_canvas').css('display','none');
     }
     $("a.slide_btn").click(function(){
            var slideNum = $(this).attr('id').split('_',1)[0];
            if($('div#' + slideNum + ' div').hasClass('selected') == true){
                $('div#' + slideNum + ' div.map_canvas').removeClass('selected');
                $('div.show_map a#' + slideNum +'_btn').text('Show Map');
                $('div#' + slideNum + ' div.map_canvas').slideUp('fast');
                $('div#' + slideNum + ' div.shadow').fadeOut();
            } else {
                $('div.map_canvas').removeClass('selected');
                $('div.map_wrapper div.map_canvas').slideUp('fast');
                $('div#' + slideNum + ' div.map_canvas').addClass('selected');
                $('div#' + slideNum + ' div.shadow').fadeIn();
                $('div#' + slideNum + ' div.map_canvas').slideDown('fast', function() {
                        if ($('div#' + slideNum + ' div.map_canvas div').size() == 0) {
                            var breakdown_url = $('div.show_map a#' + slideNum +'_btn').attr('href').split('/');
                            var lat = breakdown_url[jQuery.inArray('lat', breakdown_url) + 1];
                            var lng = breakdown_url[jQuery.inArray('lng', breakdown_url) + 1];
                            $('div#' + slideNum + ' div.map_canvas').each(function() {
                                    initialize(this, lat , lng);
                            });
                        }
                });
                //shadow attr
                $('div.map_wrapper div.shadow').css("display","none");
                $('div#' + slideNum + ' div.shadow').css("display","block");
                // text attr
                $('div.show_map a').text('Show Map');
                $('div.show_map a#' + slideNum +'_btn').text('Close Map');
            }
            return false;
    });

    fillCities('forsale_prefecture');
    fillCities('rentals_prefecture');
    $('#rentals_prefecture,#forsale_prefecture').change(function(){
            fillCities($(this).attr('id'));
    });

    $('form.propertysearch h2.category_title a').click(function(){
        if ($(this).hasClass('active')) {
            return false;
        }
        var to_hide = $(this).parents('form');
        if (to_hide.attr('id') == 'forsale_search_form') {
            to_show = '#rentals_search_form';
        } else {
            to_show = '#forsale_search_form';
        }
        to_hide.hide();
        $(to_show).show();
        return false;
    });
});

