﻿
(function($) {

	$(function() {
		$.kawaraban.twitter();
		$.kawaraban.banner();
		$.kawaraban.rollover();
		$.kawaraban.Pagetop();
		$.kawaraban.c_close();
	});

	//---------------------------------------------------------------------
	$.kawaraban = {
				
		//twitter
		twitter: function(){
			$("#twit").empty();
			//jsonpリクエスト
			$.ajax({
				dataType: "json",
				url: "http://twitter.com/statuses/user_timeline/tokyo_kawaraban.json?callback=?",
				timeout: 2000,
				error: function(){
					$("#twit").html("<li>データの読み込みに失敗しました。</li>");
				},
				success: function (data) {
					$("#twit").empty();
					var my_id = "tokyo_kawaraban";			// 対象ユーザID
					var item_max = 5;	// 表示件数
					var timeline_list = new Array();
					var cnt = 1;// 表示件数カウンタ初期化
					var html;
				
				  for (var i = 0; i < data.length; i++){
					var text  = data[i]['text'];	// つぶやき
					if (text.match(/^@/)) { continue; }
					//if (text) text = text.substr(0,52);
					
					if (cnt > item_max) { break; }　//最大件数超えたら
					
					cnt++;
					
					// 投稿日時処理
					var created_at = data[i]['created_at'].split(" ");
					// 投稿日時 (Mon Dec 01 14:24:26 +0000 2008)
					var post_date = created_at[1] + " " + created_at[2] + ", " + created_at[5] + " "+ created_at[3];
					// 投稿日時変換
					// (Dec 01, 2008 14:24:26)
					
					var date = new Date(post_date);	// 日付文字列 -> オブジェクト変換
					date.setHours(date.getHours() + 9);	// UTC -> JST (+9時間)
					
					var year = date.getFullYear();
					var mon = date.getMonth() + 1;
					var day = date.getDate();
					var time = date.getHours();
					var minu = "00" + date.getMinutes();
					minu = minu.substr(minu.length-2,2); 
					
					var out_date = year + "/" + mon + "/" + day + " "+ time + ":" + minu;	// 日付組み立て(MM/DD)
					html ='<li><a href="http://twitter.com/tokyo_kawaraban" target="_blank"><span>' + out_date + '</span>' + text + '</a></li>';
					$("#twit").append(html);
				  }
				 
				 //twitter scroll 呼び出し
				 $("#twit").liScroll({travelocity: 0.04});
				}
			
			});
			
			//twitter scroll
			jQuery.fn.liScroll = function(settings) {
				settings = jQuery.extend({
				travelocity: 0.05
				}, settings);		
				return this.each(function(){
						var $strip = jQuery(this);
						$strip.addClass("newsticker")
						var stripWidth = 0;
						var $mask = $strip.wrap("<div class='mask'></div>");
						var $tickercontainer = $strip.parent().wrap("<div class='tickercontainer'></div>");								
						var containerWidth = $strip.parent().parent().width();	//a.k.a. 'mask' width 	
						$strip.find("li").each(function(i){
						stripWidth += jQuery(this, i).width();
						});
						$strip.width(stripWidth);			
						var defTiming = stripWidth/settings.travelocity;
						var totalTravel = stripWidth+containerWidth;								
						function scrollnews(spazio, tempo){
						$strip.animate({left: '-='+ spazio}, tempo, "linear", function(){$strip.css("left", containerWidth); scrollnews(totalTravel, defTiming);});
						}
						scrollnews(totalTravel, defTiming);				
						$strip.hover(function(){
						jQuery(this).stop();
						},
						function(){
						var offset = jQuery(this).offset();
						var residualSpace = offset.left + stripWidth;
						var residualTime = residualSpace/settings.travelocity;
						scrollnews(residualSpace, residualTime);
						});	
				});	
			};//twitter scroll
		},//twitter
		
		//バナーの読み込み
		banner: function() {
			 $.ajax({
				url: '/xml/banner.xml',
				type: 'GET',
				dataType: 'xml',
				timeout: 2000,
				error: function(){
					alert("データの読み込みに失敗しました。");
				},
				success: function(xml){
					//top banner
					$("p#tbnr").empty();
					var top = $(xml).find("top");
					top.each(function(){
						var alt = $(this).find("alt").text();
						var image = $(this).find("image").text();
						var url= $(this).find("url").text();
						//dom構築
						var html = '<a href="'+ url +'" target="_blank"><img src="'+ image +'" width="466" height="58" alt="'+ alt +'" /></a>';
						$("p#tbnr").append(html);
					});
					
					//sponser banner
					$("ul#sbnr").empty();
					var sponcer = $(xml).find("sponcer");
					sponcer.each(function(){
						var alt = $(this).find("alt").text();
						var image = $(this).find("image").text();
						var url= $(this).find("url").text();
						
						//dom構築
						var html = '<li><a href="'+ url +'" target="_blank"><img src="'+ image +'" width="146" height="38" alt="'+ alt +'" /></a></li>';
						$("ul#sbnr").append(html);
					});

				} //success
			});//$.ajax
		},
		
		//ロールオーバー
		rollover: function() {
			var preLoad = new Object();
			$('img.rollover,input.rollover').not("[src*='_o.']").each(function(){
				var imgSrc = this.src;
				var fType = imgSrc.substring(imgSrc.lastIndexOf('.'));
				var imgName = imgSrc.substr(0, imgSrc.lastIndexOf('.'));
				var imgOver = imgName + '_o' + fType;
				preLoad[this.src] = new Image();
				preLoad[this.src].src = imgOver;
				$(this).hover(
					function (){ this.src = imgOver; },
					function (){ this.src = imgSrc; }
				);
			});
		},
		
		//ページ内リンク
		Pagetop: function(){ 
			$('a[href^=#p]').click(function () {
				$(this).blur();
				$('html,body').animate({ scrollTop: 0 }, 300);
				return false;
        	});
		},
		
		//コメント閉じる
		c_close: function() {
			$("p#commentClose a").click(function () {
			  if ( $("div#comment").css("display") !== "none" ){
				  $(this).html("コメントを見る");
			  }else {
				  $(this).html("コメントを閉じる");
			  }
			  $("div#comment").slideToggle();
			  return false;
			});

		}
				
	};
})(jQuery);