/*
	diary_scroll.js
	(4JQ)
			written by k
*/

var SCROLL_MON_UNIT	= 272;
var SCROLL_MON_SP	= 15;

var ST_MONTH		= 4;	// 200904

var g_dry_mon_x		= 0;
var g_sc_mon_id;
var g_target_x		= 0;


/*(function($) {
	alert($(".next_mounth a").html());
	$(".next_mounth a").click(function(){
        alert(  "popup"  );
        return false;
    });	  
});*/




$(document).ready(function(){
	$(".next_mounth").click(function(){
        next_mounth(SCROLL_MON_SP);
        return false;
	});
	
	$(".prev_mounth").click(function(){
        prev_mounth(SCROLL_MON_SP);
        return false;
	});
	
	
	set_def_mouth();
   
});



//--------------------------------
//	set_def_mouth
//　
//--------------------------------
function set_def_mouth()
{
	var st_month = 4;
	
	var n;
	var $target;
	var id;
	
	var year, month;
	
	var elms;
	var elm;
	var str;
	
	var url;
	var file;
	
	url		= k_getThisURL();
	file	= k_getFileName( url );
	
	//alert(file);
	
	$target = $("#date_link dd .date[href*='"+ file +"']");
	
	$( $target )[0].style.color = '#FF6600';
	
	//alert($target.length);
	
	if( file == "index.html" )
	{
		n = $('#date_link dd').length - 1;	
		$target = $('#date_link dd')[n].parentNode;
		id = $( $target ).attr('id')
		
		year	= id.substr( 1, 4 );
		month	= id.substr( 5, 2 );
	}
	else
	{
		year	= file.substr( 1, 4 );
		month	= file.substr( 5, 2 );
	}
	//alert( 'year = ' + year );
	//alert( 'month = ' + month );
	
	g_target_x = ( month - ST_MONTH ) * SCROLL_MON_UNIT;
	
	
	elm			= document.getElementById("date_link");
	
	str			= getStyle( elm, "left" );
	g_dry_mon_x = str.replace( "px", "" );
	
	//alert( 'g_target_x = ' + g_target_x );
	elm.style.left = -g_target_x + 'px';
	
	
	/*g_target_x	= -SCROLL_MON_UNIT * ( Math.floor( Math.abs(g_dry_mon_x) / SCROLL_MON_UNIT ) + 1 );

	if(	g_dry_mon_x > g_target_x-1 )
	{
		g_sc_mon_id = window.setInterval( "scroll_left_mon("+sp+");", 20 );
	}
	*/
}


//--------------------------------
//	next
//--------------------------------
function next_mounth( sp )
{
	var elms;
	var elm;
	var str;
	
	
	elm			= document.getElementById("date_link");
	
	str			= getStyle( elm, "left" );
	g_dry_mon_x = str.replace( "px", "" );
	g_target_x	= -SCROLL_MON_UNIT * ( Math.floor( Math.abs(g_dry_mon_x) / SCROLL_MON_UNIT ) + 1 );

	if(	g_dry_mon_x > g_target_x-1 )
	{
		g_sc_mon_id = window.setInterval( "scroll_left_mon("+sp+");", 20 );
	}
	
}

function scroll_left_mon( sp )
{
	var elms;
	var elm;
	var str;
	var x;
	var far;
	var xx;
	var gxx;
	var ratio;
	

	// 現在の値
	elm		= document.getElementById("date_link");
	str		= getStyle( elm, "left" );
	x		= str.replace( "px", "" );

	// calc
	// g_target_xとxの符号が同じ場合
	if( ( g_target_x >= 0 && x >= 0 ) || ( g_target_x < 0 && x < 0 ) )
	{
		far = Math.abs( Math.abs(g_target_x) - Math.abs(x) );	
	}
	else
	{
		far = Math.abs(g_target_x) + Math.abs(x);
	}
	ratio	= ( far / SCROLL_MON_UNIT );
	ratio	= ( ratio < 0.1 ) ? 0.1 : ratio;
	x		= x - ( sp * ratio );
	
	// 更新
	if( x < g_target_x )
	{
		x	= g_target_x;
		str = x + "px";
		elm.style.left = str;
		window.clearInterval( g_sc_mon_id );
		//alert( "end=" + str );
	}
	else
	{
		str	= x + "px";
		elm.style.left = str;
	}
}


//--------------------------------
//	prev
//--------------------------------
function prev_mounth( sp )
{
	var elm;
	var str;
	var work;
	
	elm			= document.getElementById("date_link");
	
	str			= getStyle( elm, "left" );
	g_dry_mon_x	= str.replace( "px", "" );
	
	work		= ( Math.abs(g_dry_mon_x) / SCROLL_MON_UNIT );
	//alert("work="+work);
	if( ( work - Math.floor( work ) ) > 0 )
	{
		work = Math.floor( work );	
	}
	else
	{
		work -= 1;	
	}
	g_target_x	= -SCROLL_MON_UNIT * work;

	//alert(g_target_x);

	if(	g_dry_mon_x < g_target_x )
	{
		g_sc_mon_id = window.setInterval( "scroll_right_mon("+sp+");", 20 );
	}
}

function scroll_right_mon( sp )
{
	var elms;
	var elm;
	var str;
	var x;
	var far;
	var xx;
	var gxx;
	var ratio;
	

	// 現在の値
	elm		= document.getElementById("date_link");
	str		= getStyle( elm, "left" );
	x		= Number( str.replace( "px", "" ) );

	// calc
	// g_target_xとxの符号が同じ場合
	if( ( g_target_x >= 0 && x >= 0 ) || ( g_target_x < 0 && x < 0 ) )
	{
		far = Math.abs(Math.abs(x) - Math.abs(g_target_x) );	
	}
	else
	{
		far = Math.abs(g_target_x) + Math.abs(x);
	}
	//alert("far="+far);
	//alert("g_target_x="+g_target_x);

	ratio	= ( far / SCROLL_MON_UNIT );
	ratio	= ( ratio < 0.1 ) ? 0.1 : ratio;
	x		= x + ( sp * ratio );
	
	// 更新
	if( x > g_target_x )
	{
		x	= g_target_x;
		str = x + "px";
		elm.style.left = str;
		window.clearInterval( g_sc_mon_id );
		//alert( "end=" + str );
	}
	else
	{
		str	= x + "px";
		elm.style.left = str;
	}
}


