var toolTip;
var marker_list = [];
var txt_list = [];
var marker_index = 0;

$(document).ready(function(){ 
	setInit();
	toolTip = $('<div id="toolTip" style=\"z-index:99\"></div>').hide();
	$('body').append(toolTip);
	$('.tips').easyToolTip();
}); 

jQuery.event.add( window, "load", function(){openPage();} );

$(window).resize(function() {
	changeFrame();
});

//ソーシャルボタン
$(function() {
	$('#mixi').socialbutton('mixi_check', {
        button: 'button-1',
		key: 'ea59698803d1dc8b15016031617b0b8980985c8f'
	});
	$('#twitter').socialbutton('twitter', {
		button: 'none'
	});
	$('#facebook').socialbutton('facebook_like', {
		button: 'button_count'
	});
/*
	$('#facebook_share').socialbutton('facebook_share', {
		button: 'button'
	});
*/
});

//左右の枠を拡張
function changeFrame() {
	var height = $('#body_area').outerHeight();
	$('#left_frame').height(height+"px");
	$('#right_frame').height(height+"px");
}
    
$(function() {
	if ( document.getElementById('top_back_area') ) {
		$('#top_back_area').crossSlide(
			{
				speed: 20,
				fade: 3    //in sec
			},
			[
				{ src: 'images/top/1.jpg', dir: 'up'   },
				{ src: 'images/top/2.jpg', dir: 'down'   },
				{ src: 'images/top/3.jpg', dir: 'up'   },
				{ src: 'images/top/4.jpg', dir: 'down'   },
				{ src: 'images/top/5.jpg', dir: 'up'   }
			]
		);
	}
});
    
//トップページの表示
function openPage() {
	changeFrame();
	//初期設定
	var isMSIE = /*@cc_on!@*/false; 
	if ( isMSIE ) {
		$('#top_bijin_image')
			.animate({'top':"+=40px"},{duration:0});
		$('#top_bijin_name')
			.animate({'bottom':"-=30px"},{duration:0});
		$('#top_bijin_pickup')
			.animate({'right':"-=20px"},{duration:0});
		$('#top_fuda_area')
			.animate({'left':"-=10px"},{duration:0});
		$('#top_bijin_image2')
			.animate({'top':"+=40px"},{duration:0});
		$('#top_bijin_name2')
			.animate({'bottom':"-=30px"},{duration:0});
		$('#pankuzu_area')
			.animate({'right':"-=30px"},{duration:0});
		$('#bijin_picture')
			.animate({'right':"-=30px"},{duration:0});
		//画像を動かす
		$('#pankuzu_area').css('visibility','visible');
		$('#top_main_area').css('visibility','visible');
		$('#bijin_picture_area').css('visibility','visible');
		$('#top_bijin_image')
			.animate({'top':"-=40px"},{duration:1200,queue:false});
		$('#top_bijin_name')
			.animate({'bottom':"+=30px"},{duration:500,queue:false});
		$('#top_bijin_image2')
			.animate({'top':"-=40px"},{duration:500,queue:false});
		$('#top_bijin_name2')
			.animate({'bottom':"+=30px"},{duration:500,queue:false});
		$('#top_bijin_pickup')
			.animate({'right':"+=20px"},{duration:500,queue:false});
		$('#top_fuda_area')
			.animate({'left':"+=10px"},{duration:500,queue:false});
		$('#pankuzu_area')
			.animate({'right':"+=30px"},{duration:500,queue:false});
		$('#bijin_picture')
			.animate({'right':"+=30px"},{duration:500,queue:false});
	} else {
		$('#top_bijin_image')
			.animate({'opacity':'0.00'},{duration:0})
			.animate({'top':"+=40px"},{duration:0});
		$('#top_bijin_name')
			.animate({'opacity':'0.00'},{duration:0})
			.animate({'bottom':"-=30px"},{duration:0});
		$('#top_bijin_pickup')
			.animate({'opacity':'0.00'},{duration:0})
			.animate({'right':"-=20px"},{duration:0});
		$('#top_fuda_area')
			.animate({'opacity':'0.00'},{duration:0})
			.animate({'left':"-=10px"},{duration:0});
		$('#top_bijin_image2')
			.animate({'opacity':'0.00'},{duration:0})
			.animate({'top':"+=40px"},{duration:0});
		$('#top_bijin_name2')
			.animate({'opacity':'0.00'},{duration:0})
			.animate({'bottom':"-=30px"},{duration:0});
		$('#pankuzu_area')
			.animate({'opacity':'0.00'},{duration:0})
			.animate({'right':"-=30px"},{duration:0});
		$('#bijin_picture')
			.animate({'opacity':'0.00'},{duration:0})
			.animate({'right':"-=30px"},{duration:0});
		//画像を動かす
		$('#pankuzu_area').css('visibility','visible');
		$('#top_main_area').css('visibility','visible');
		$('#bijin_picture_area').css('visibility','visible');
		$('#top_bijin_image')
			.animate({'opacity':'1.00'},{duration:1200,queue:false})
			.animate({'top':"-=40px"},{duration:1200,queue:false});
		$('#top_bijin_name')
			.animate({'opacity':'1.00'},{duration:500,queue:false})
			.animate({'bottom':"+=30px"},{duration:500,queue:false});
		$('#top_bijin_image2')
			.animate({'opacity':'1.00'},{duration:500,queue:false})
			.animate({'top':"-=40px"},{duration:500,queue:false});
		$('#top_bijin_name2')
			.animate({'opacity':'1.00'},{duration:500,queue:false})
			.animate({'bottom':"+=30px"},{duration:500,queue:false});
		$('#top_bijin_pickup')
			.animate({'opacity':'1.00'},{duration:500,queue:false})
			.animate({'right':"+=20px"},{duration:500,queue:false});
		$('#top_fuda_area')
			.animate({'opacity':'1.00'},{duration:500,queue:false})
			.animate({'left':"+=10px"},{duration:500,queue:false});
		$('#pankuzu_area')
			.animate({'opacity':'1.00'},{duration:500,queue:false})
			.animate({'right':"+=30px"},{duration:500,queue:false});
		$('#bijin_picture')
			.animate({'opacity':'1.00'},{duration:500,queue:false})
			.animate({'right':"+=30px"},{duration:500,queue:false});
	}
}

(function($){
	// ここからツールチッププラグイン
    $.fn.easyToolTip = function(options){
    
        $(this).filter(function(){
            // titleかaltを持っているものだけに絞る
            return this.title || this.alt;
        }).each(function(){
        
            var self = $(this);
            // titleがあればtitleを、なければaltをターゲットにする
            var target = this.title ? 'title' : 'alt';
            // ターゲットにした属性の値を保存する
            var tipText = self.attr(target);
            var tmpArray = tipText.split( "___" );
			var tipText2 = '<img src="images/comment_top.png" /><div class="tips_area"><div class=\"tips_wrapp\"><div class="top_title">'+tmpArray[0]+'</div><div class="top_comment">'+tmpArray[1]+'</div></div></div><img src="images/comment_bottom.png" />';
            self.hover(function(e){
                // ブラウザのツールチップが表示されるのを防ぐために一時的にtitle(alt)を削除
                self.attr(target,'');
                // toolTipにテキストを入れて表示
				toolTip
                    .html(tipText2)
				xxx = (document.getElementById('toolTip').clientHeight)+10;
				toolTip
                    .stop(true,true)
                    .fadeIn('normal')
                    .css({
                        position: 'absolute',
                        top: (e.pageY-xxx) +"px",
                        left: (e.pageX-30 )+"px"
                    })
			},function(){
                // title(alt)を元に戻す
                self.attr(target,tipText);
                // toolTipを非表示にする
                toolTip.fadeOut('fast');
            }).mousemove(function(e){
                // カーソルに追従させる
				toolTip
                    .html(tipText2)
				xxx = (document.getElementById('toolTip').clientHeight)+10;
				toolTip
                    .stop(true,true)
                    .fadeIn('normal')
                    .css({
                        position: 'absolute',
                        top: (e.pageY-xxx) +"px",
                        left: (e.pageX-30 )+"px"
                });
            });
            
        });
    }
})(jQuery);

function setInit() {
	$(".ps").hover(function(){
		if(this.src.slice( -6, -3 )!="_x."){
			this.src = this.src.substring(0,this.src.length-4)+"_x"+this.src.slice(-4);
		}
	});
	$(".ps").mouseout(function(){
		if(this.src.slice( -6, -3 )=="_x."){
			this.src = this.src.substring(0,this.src.length-6)+this.src.slice(-4);
		}
	});
	$("a.zoom").fancybox({
		'overlayOpacity'	:	0.7,
		'overlayColor'		:	'#FFF',
		'zoomSpeedIn'		:	300,
		'zoomSpeedOut'		:	200,
		'callbackOnShow'	:	true
	});
	$("a.zoom_area").fancybox({
		'overlayOpacity'	:	0.7,
		'overlayColor'		:	'#FFF',
		'zoomSpeedIn'		:	300,
		'zoomSpeedOut'		:	200,
		'callbackOnShow'	:	true,
		'onComplete'	:	function() { setInit(); }
	});
	changeFrame();
	ss_init();
}


/*** 地図 ***/
//地図検索処理
function mainChangeMap() {
	changeMap(0);
}

function changeMap(num) {
	var bounds = map.getBounds();
	var southWest = bounds.getSouthWest();
	var northEast = bounds.getNorthEast();
	var north = northEast.lat();
	var south = southWest.lat();
	var east = northEast.lng();
	var west = southWest.lng();
	var x = (map.getCenter()).lng();
	var y = (map.getCenter()).lat();
	if ( num == undefined ) num = 0;
	//初期設定
	if ( marker_index > 0 ) for ( i=1; i<=marker_index; i++ ) map.removeOverlay(marker_list[i-1]);
	marker_list = [];
	txt_list = [];
	marker_index = 0;
	var par = "n=" + north + "&s=" + south + "&e=" + east + "&w=" + west + "&x=" + x + "&y=" + y + "&no=" + num;
	sendRequest( "POST", "send_map.php", par, true, changeMap_result );
}

function changeMap_result(xmlhttp) {
	//0:OK,1:リストHTML,2:地図,3:現在のno,4:次の有無
	var tmp = xmlhttp.responseText.split("<!--mcstudio-->");
	var maxnum = 20;
	$('#spot_list_area').empty();
	if ( tmp[0] == "OK" ) {
		tmp2 = tmp[1].split("<!--mcmcmc-->");
		//一覧表示
		for ( i=1; i<=tmp2.length; i++ ) $('#spot_list_area').append( tmp2[i-1] );
		if ( Number( tmp[3] ) > 0 || tmp[4] == 'on' ) {
			 $('#spot_list_area').append("<div style=\"padding:8px;text-align:right\">");
			if ( Number( tmp[3] ) > 0 ) $('#spot_list_area').append("<a href=\"#map\" onclick=\"changeMap("+(Number(tmp[3])-maxnum)+",1)\">前の"+maxnum+"件</a>");
			if ( Number( tmp[3] ) > 0 && tmp[4] == 'on' ) $('#spot_list_area').append( " ・ " );
			if ( tmp[4] == "on" ) $('#spot_list_area').append( "<a href=\"#map_area\" onclick=\"changeMap("+(Number(tmp[3])+maxnum)+",1)\">次の"+maxnum+"件</a>" );
			$('#spot_list_area').append( "</div>" );
		}
		//地図表示
		tmp2 = tmp[2].split("<!--mcstudio1-->");
		for ( i=1; i<=tmp2.length; i++ ) makeMarker( tmp2[i-1] );
		setInit();
	} else {
		alert( xmlhttp.responseText );
	}
}

function makeMarker( txt ) {
	var tmp = txt.split("<!--mcmcmc-->");
	if ( tmp.length >= 2 ) {
		var marker = new GMarker(new GLatLng(tmp[0],tmp[1]))
		map.addOverlay(marker);
		GEvent.addListener(marker, 'click', function() {
			marker.openInfoWindowHtml(tmp[2]);
		});
		txt_list.push(tmp[2]);
		marker_list.push(marker);
		marker_index++;
	}
}

function clickMarker( index, tp ) {
	marker_list[index].openInfoWindowHtml(txt_list[index]);
}
	
function map_search( num ) {
	var par = "";
	if ( document.getElementById('s1').checked ) par += ( par!="" ? "&" : "" ) + "tp1=on";
	if ( document.getElementById('s2').checked ) par += ( par!="" ? "&" : "" ) + "tp2=on";
	if ( document.getElementById('s3').checked ) par += ( par!="" ? "&" : "" ) + "tp3=on";
	if ( document.getElementById('s4').checked ) par += ( par!="" ? "&" : "" ) + "tp4=on";
	if ( document.getElementById('s5').checked ) par += ( par!="" ? "&" : "" ) + "tp5=on";
	sendRequest( "POST", "send_search.php", par, true, map_search_result );
}

function map_search_result(xmlhttp) {
	var tmp = xmlhttp.responseText.split("<!--mcstudio-->");
	if ( tmp[1] != "OK" ) {
		alert( xmlhttp.responseText );
	} else {
		changeMap(0,1);
	}
}


/**
 * scrollsmoothly.js
 * Copyright (c) 2008 KAZUMiX
 * http://d.hatena.ne.jp/KAZUMiX/20080418/scrollsmoothly
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * 
 * 更新履歴
 * 2009/02/12
 * スクロール先が画面左上にならない場合の挙動を修正
 * 2008/04/18
 * 公開
 *
*/

   var ss_easing = 0.25;
   var ss_interval = 20;
   var ss_d = document;
   var ss_targetX = 0;
   var ss_targetY = 0;
   var ss_targetHash = '';
   var ss_scrolling = false;
   var ss_splitHref = location.href.split('#');
   var ss_currentHref_WOHash = ss_splitHref[0];
   var ss_incomingHash = ss_splitHref[1];
   var ss_prevX = null;
   var ss_prevY = null;

   // ドキュメント読み込み完了時にss_init()を実行する
   ss_addEvent(window, 'load', ss_init);

   // ドキュメント読み込み完了時の処理
   function ss_init(){
     // ページ内リンクにイベントを設定する
     ss_setOnClickHandler();
     // 外部からページ内リンク付きで呼び出された場合
     if(ss_incomingHash){
       if(window.attachEvent && !window.opera){
         // IEの場合はちょっと待ってからスクロール
         setTimeout(function(){scrollTo(0,0);ss_setScroll('#'+ss_incomingHash);},50);
       }else{
         // IE以外はそのままGO
         scrollTo(0, 0);
         ss_setScroll('#'+ss_incomingHash);
       }
     }
   }

   // イベントを追加する関数
   function ss_addEvent(eventTarget, eventName, func){
     if(eventTarget.addEventListener){
       // モダンブラウザ
       eventTarget.addEventListener(eventName, func, false);
     }else if(window.attachEvent){
       // IE
       eventTarget.attachEvent('on'+eventName, function(){func.apply(eventTarget);});
     }
   }
   
   function ss_setOnClickHandler(){
     var links = ss_d.links;
     for(var i=0; i<links.length; i++){
       // ページ内リンクならスクロールさせる
       var link = links[i];
       var splitLinkHref = link.href.split('#');
       if(ss_currentHref_WOHash == splitLinkHref[0] && ss_d.getElementById(splitLinkHref[1])){
         ss_addEvent(link, 'click', ss_startScroll);
       }
     }
   }

   function ss_startScroll(event){
     // リンクのデフォルト動作を殺す
     if(event){ // モダンブラウザ
       event.preventDefault();
       //alert('modern');
     }else if(window.event){ // IE
       window.event.returnValue = false;
       //alert('ie');
     }
     // thisは呼び出し元になってる
     ss_setScroll(this.hash);
   }

   function ss_setScroll(hash){
     // ハッシュからターゲット要素の座標をゲットする
     var targetEle = ss_d.getElementById(hash.substr(1));
     if(!targetEle)return;
     //alert(scrollSize.height);
     // スクロール先座標をセットする
     var ele = targetEle;
     var x = 0;
     var y = 0;
     while(ele){
       x += ele.offsetLeft;
       y += ele.offsetTop;
       ele = ele.offsetParent;
     }
     var maxScroll = ss_getScrollMaxXY();
     ss_targetX = Math.min(x, maxScroll.x);
     ss_targetY = Math.min(y, maxScroll.y);
     ss_targetHash = hash;
     // スクロール停止中ならスクロール開始
     if(!ss_scrolling){
       ss_scrolling = true;
       ss_scroll();
     }
   }

   function ss_scroll(){
     var currentX = ss_d.documentElement.scrollLeft||ss_d.body.scrollLeft;
     var currentY = ss_d.documentElement.scrollTop||ss_d.body.scrollTop;
     var vx = (ss_targetX - currentX) * ss_easing;
     var vy = (ss_targetY - currentY) * ss_easing;
     var nextX = currentX + vx;
     var nextY = currentY + vy;
     if((Math.abs(vx) < 1 && Math.abs(vy) < 1)
       || (ss_prevX === currentX && ss_prevY === currentY)){
       // 目標座標付近に到達していたら終了
       scrollTo(ss_targetX, ss_targetY);
       ss_scrolling = false;
//       location.hash = ss_targetHash;	//mcstudio on comment
       ss_prevX = ss_prevY = null;
       return;
     }else{
       // 繰り返し
       scrollTo(parseInt(nextX), parseInt(nextY));
       ss_prevX = currentX;
       ss_prevY = currentY;
       setTimeout(function(){ss_scroll()},ss_interval);
     }
   }
   
   function ss_getDocumentSize(){
     return {width:Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), height:Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)};
   }

   function ss_getWindowSize(){
     var result = {};
     if(window.innerWidth){
       var box = ss_d.createElement('div');
       with(box.style){
         position = 'absolute';
         top = '0px';
         left = '0px';
         width = '100%';
         height = '100%';
         margin = '0px';
         padding = '0px';
         border = 'none';
         visibility = 'hidden';
       }
       ss_d.body.appendChild(box);
       var width = box.offsetWidth;
       var height = box.offsetHeight;
       ss_d.body.removeChild(box);
       result = {width:width, height:height};
     }else{
       result = {width:ss_d.documentElement.clientWidth || ss_d.body.clientWidth, height:ss_d.documentElement.clientHeight || ss_d.body.clientHeight};
     }
     return result;
   }
   
   function ss_getScrollMaxXY() {
     if(window.scrollMaxX && window.scrollMaxY){
       return {x:window.scrollMaxX, y:window.scrollMaxY};
     }
     var documentSize = ss_getDocumentSize();
     var windowSize = ss_getWindowSize();
     return {x:documentSize.width - windowSize.width, y:documentSize.height - windowSize.height};
   }
   

