//----------------------------------------------------
// リストの追加
//----------------------------------------------------

/* ツールチップ */

var tooltip=function(){
	var id = 'tt';
	var top = 3;
	var left = -100;
	var maxw = 200;
	var speed = 10;
	var timer = 20;
	var endalpha = 100;
	var alpha = 0;
	var tt,t,c,b,h;
	var ie = document.all ? true : false;
	return{
		show:function(v,w){
			if(tt == null){
				tt = document.createElement('div');
				tt.setAttribute('id',id);
				t = document.createElement('div');
				t.setAttribute('id',id + 'top');
				c = document.createElement('div');
				c.setAttribute('id',id + 'cont');
				b = document.createElement('div');
				b.setAttribute('id',id + 'bot');
				tt.appendChild(t);
				tt.appendChild(c);
				tt.appendChild(b);
				document.body.appendChild(tt);
				tt.style.opacity = 0;
				tt.style.filter = 'alpha(opacity=0)';
				document.onmousemove = this.pos;
			}
			tt.style.display = 'block';
			c.innerHTML = v;
			tt.style.width = w ? w + 'px' : 'auto';
			if(!w && ie){
				t.style.display = 'none';
				b.style.display = 'none';
				tt.style.width = tt.offsetWidth;
				t.style.display = 'block';
				b.style.display = 'block';
			}
			if(tt.offsetWidth > maxw){tt.style.width = maxw + 'px';}
			if(tt.offsetWidth > maxw){left = 100;}else{left = -(tt.offsetWidth/2);}
			
			h = parseInt(tt.offsetHeight) + top;
			clearInterval(tt.timer);
			tt.timer = setInterval(function(){tooltip.fade(1)},timer);
		},
		pos:function(e){
			var u = ie ? event.clientY + document.documentElement.scrollTop : e.pageY;
			var l = ie ? event.clientX + document.documentElement.scrollLeft : e.pageX;
			tt.style.top = (u - h) + 'px';
			tt.style.left = (l + left) + 'px';			
		},
		fade:function(d){
			var a = alpha;
			if((a != endalpha && d == 1) || (a != 0 && d == -1)){
				var i = speed;
				if(endalpha - a < speed && d == 1){
					i = endalpha - a;
				}else if(alpha < speed && d == -1){
					i = a;
				}
				alpha = a + (i * d);
				tt.style.opacity = alpha * .01;
				tt.style.filter = 'alpha(opacity=' + alpha + ')';
			}else{
				clearInterval(tt.timer);
				if(d == -1){tt.style.display = 'none'}
			}
		},
		hide:function(){
			clearInterval(tt.timer);
			tt.timer = setInterval(function(){tooltip.fade(-1)},timer);
		}
	};
}();

/* ツールチップ（イメージ） */

/*
 * Url preview script 
 * powered by jQuery (http://www.jquery.com)
 * 
 * written by Alen Grakalic (http://cssglobe.com)
 * 
 * for more info visit http://cssglobe.com/post/1695/easiest-tooltip-and-image-preview-using-jquery
 *
 */
 
this.tooltipImg = function(){	
	/* CONFIG */
		
		xOffset = 610;
		yOffset = -300;
		
		// these 2 variable determine popup's distance from the cursor
		// you might want to adjust to get the right result
		
	/* END CONFIG */
	$(".tooltipImg").hover(function(e){
		this.t = this.title;
		this.title = "";	
		var c = (this.t != "") ? "<br/>" + this.t : "";
		$("body").append("<table id='tooltipImg'><tr><td><img src='"+ this.rel +"' />"+ c +"</td></tr></table>");
		
		$("#tooltipImg")
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px")
			.fadeIn("fast");						
    },
	function(){
		this.title = this.t;	
		$("#tooltipImg").fadeOut("fast");
    });	
	$(".tooltipImg").mousemove(function(e){
		$("#tooltipImg")
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px");
	});			
};

/* リストの追加 */

function tooltopFadeIn(id){
	$('#tooltipAdd'+id).fadeIn(300);
	setTimeout("tooltopFadeOut("+id+");", 1500);
}

function tooltopFadeOut(id){
	$('#tooltipAdd'+id).fadeOut(500);
}

//----------------------------------------------------
// Twitter
//----------------------------------------------------

function twitterCallback2(twitters) {
  var statusHTML = [];
  for (var i=0; i<twitters.length; i++){
    var icon = twitters[i].user.profile_image_url;
	var username = twitters[i].user.screen_name;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
      return '<a href="'+url+'" target="_blank">'+url+'</a>';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
    });
    statusHTML.push('<li>'+status+'<br /><span><a href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+'">'+relative_time(twitters[i].created_at)+'</a></span></li>');
    //statusHTML.push('<li><div><strong>'+username+'</strong><br />'+status+'<br /><span>'+relative_time(twitters[i].created_at)+'</span></div><a href="http://twitter.com/#!/'+username+'"><img src="/user_data/images/contents/spacer.gif" alt="アイコン" width="48" height="48" style="background-image:url('+icon+');" /></a><br clear="all" /></li>');
  }
  document.getElementById('twitterList').innerHTML = statusHTML.join('');
}

function relative_time(time_value) {
  var values = time_value.split(" ");
  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
  var parsed_date = Date.parse(time_value);
  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
  delta = delta + (relative_to.getTimezoneOffset() * 60);

  if (delta < 60) {
    return '1分以内';
  } else if(delta < 120) {
    return '1分前';
  } else if(delta < (60*60)) {
    return (parseInt(delta / 60)).toString() + '分前';
  } else if(delta < (120*60)) {
    return '約1時間前';
  } else if(delta < (24*60*60)) {
    return '約' + (parseInt(delta / 3600)).toString() + '時間前';
  } else if(delta < (48*60*60)) {
    return '1日前';
  } else {
    return (parseInt(delta / 86400)).toString() + '日前';
  }
}

//----------------------------------------------------
// 画像プレビュー
//----------------------------------------------------

function imgPreview(myID,myMode,myImage){
    var org_action = document.getElementById('form').action;
	document.getElementById('preview_img'+myID).innerHTML = '<img src="/user_data/js/img/loading.gif" width="24" height="24" alt="画像読み込み中" class="loading" />';
	if(myImage){
		document.getElementById('form').action = '/user_data/js/preview.php?id='+myID+'&mode='+myMode+'&image='+myImage;
    }else{
		document.getElementById('form').action = '/user_data/js/preview.php?id='+myID+'&mode='+myMode;
    }
    document.getElementById('form').target = 'preview_iframe'+myID;
    document.getElementById('form').submit();
    document.getElementById('form').action = org_action;
    document.getElementById('form').target = '_self';
}

/* メイン検索のリセット */
    function resetMainSearch() {
        for(i=0;i<document.hoge.elements.length;i++) {
           if(document.hoge.elements[i].name == "genre[]") {
                document.hoge.elements[i].checked = false;
           }
		   if(document.hoge.elements[i].name == "area[]") {
                document.hoge.elements[i].checked = false;
           }
		   if(document.hoge.elements[i].name == "line[]") {
                document.hoge.elements[i].checked = false;
           }
		   if(document.hoge.elements[i].name == "station[]") {
                document.hoge.elements[i].checked = false;
           }
		   if(document.hoge.elements[i].name == "item[]") {
                document.hoge.elements[i].checked = false;
           }
        }
    }

/*縞模様テーブル*/
function doZebra () {
	var tables = document.getElementsByTagName("table");
	for (var i = 0; i < tables.length; i++) {
		if (tables[i].className.match(/zebra/)) {
			zebra(tables[i]);
		}
	}
}
function zebra (table) {
	var current = "odd";
	var trs = table.getElementsByTagName("tr");
	for (var i = 0; i < trs.length; i++) {
		trs[i].className += " " + current;
		current = current == "even" ? "odd" : "even";
	}
}
window.onload = doZebra;

/**
 * クロスフェードするロールオーバー処理
 * rollover2.js
 * Copyright (c) 2007 KAZUMiX
 * http://d.hatena.ne.jp/KAZUMiX/20071017/rollover2
 * 
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * 
 * 更新履歴
 * 2009/06/02 ブラウザの「戻る」でフェード状態が残っている場合に対処
 * 2007/10/17 公開
 */

(function(){
   // ページ遷移時に透明にする用
   var rolloverImages = [];
   
   function setRollOver2(){
     if(!document.images){return;}
     var imgs = document.images;
     var insert = [];
     for(var i=0,len=imgs.length; i<len; i++){
       var splitname = imgs[i].src.split('_out.');
       if(splitname[1]){
         var rolloverImg = document.createElement('img');
         rolloverImages.push(rolloverImg);
         rolloverImg.src = splitname[0]+'_in.'+splitname[1];
         var alpha = 0;
         rolloverImg.currentAlpha = alpha;
         rolloverImg.style.opacity = alpha/100;
         rolloverImg.style.filter = 'alpha(opacity='+alpha+')';
         rolloverImg.style.position = 'absolute';

         //ロールオーバー・アウト処理それぞれを設定
         addEvent(rolloverImg,'mouseover',function(){setFader(this,100);});
         addEvent(rolloverImg,'mouseout',function(){setFader(this,0);});

         // 後で追加するために追加場所と共に保存しておく
         // この時点で追加するとdocument.imagesが書き換わって不都合
         insert[insert.length] = {position:imgs[i],element:rolloverImg};
       }
     }
     // ↑で作ったロールオーバー画像を追加
     for(i=0,len=insert.length; i<len ;i++){
       var parent = insert[i].position.parentNode;
       parent.insertBefore(insert[i].element,insert[i].position);
     }

     // ページ遷移時にはフェード状態をクリアする
     addEvent(window,'beforeunload', clearRollover);
   }

   // 指定要素を指定透明度にするためのフェードアニメを設定する関数

   function setFader(targetObj,targetAlpha){
     targetObj.targetAlpha = targetAlpha;
     if(targetObj.currentAlpha==undefined){
       targetObj.currentAlpha = 100;
     }
     if(targetObj.currentAlpha==targetObj.targetAlpha){
       return;
     }
     if(!targetObj.fading){
       if(!targetObj.fader){
         targetObj.fader = fader;
       }
       targetObj.fading = true;
       targetObj.fader();
     }
   }

   // アルファ値をターゲット値に近づける関数
   // ターゲット値になったら終了

   function fader(){
     this.currentAlpha += (this.targetAlpha - this.currentAlpha)*0.2;
     if(Math.abs(this.currentAlpha-this.targetAlpha)<1){
       this.currentAlpha = this.targetAlpha;
       this.fading = false;
     }
     var alpha = parseInt(this.currentAlpha);
     this.style.opacity = alpha/100;
     this.style.filter = 'alpha(opacity='+alpha+')';
     if(this.fading){
       var scope = this;
       setTimeout(function(){fader.apply(scope)},25);
     }
   }
   
   // すべてのロールオーバー画像をを透明にする関数（遷移時用）

   function clearRollover(){
     for(var i=0,len=rolloverImages.length; i<len; i++){
       var image = rolloverImages[i];
       image.style.opacity = 0;
       image.style.filter = 'alpha(opacity=0)';
     }
   }

   // イベントを追加する関数

   function 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);});
     }
   }

   addEvent(window,'load',setRollOver2);

 })();


/*
	ロールオーバーのエフェクト用
	jQuery Blend v1.1
	(c) 2009 Jack Moore - www.colorpowered.com - jack@colorpowered.com
	Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
*/

(function($){
    /*
        Blend creates a 2nd layer on top of the target element.
        This layer is faded in and out to create the effect.  The orignal, bottom layer
        has it's class set to 'hover' and remains that way for the duration to
        keep the CSS :hover state from being apparent when the object is moused-over.
    */
    
    $.fn.blend = function(options, callback) {
	
	var settings = $.extend({}, $.fn.blend.settings, options);
        
        $(this).each(function(){
            
            var $this = $(this),
		$target = $(settings.target ? settings.target : this),
		$hover,
		target = [],
		i,
		length,
		style = {},
		active = false,
		out = 0,
		opacity = settings.opacity,
		properties = [
		    'background-color',
		    'background-image',
		    'background-repeat',
		    'background-attachment',
		    'background-position',
		    'background-position-x',
		    'background-position-y'
		];
	    
	    length = properties.length;
            
            if($target[0].style.position != 'absolute'){
                $target.css({position:'relative'});   
            }
            
            if(!$target.hasClass('hover')){
                $target.wrapInner('<div style="position:relative" />');
            }
	    
	    for (i=0; i<length; i++){
		target[i] = $target.css(properties[i]);
	    }
	    
	    $target.addClass("hover");
	    
	    style = {};
		style.position='absolute';
		style.top=0;
		style.left=0;
		style.width=$target.css('width');
		style.height=$target.css('height');
		for (i=0; i<length; i++){
		    style[properties[i]] = $target.css(properties[i]);
		}
	    
	    //checks to see if blend has already been applied to an element.
            if($target.find(".jsblend").length === 0){
                $hover = $('<div class="jsblend" />').css(style);
		
		if(settings.top){
		    $hover.appendTo($target);
		} else {
		    $hover.prependTo($target);
		}
            } else {
                $hover = $target.find(".jsblend");
            }
	    
	    style = {};
		for (i=0; i<length; i++){
		    style[properties[i]] = target[i];
		}
	    
	    $target.css(style);
            
            if(settings.reverse){
                out = settings.opacity;
                opacity = 0;
            }
            $hover.css({opacity:out});
            
            function pulse(o){
                if(active){
                    $hover.fadeTo(settings.speed, o, function(){
                        pulse(o==out?opacity:out);
                    });
                }
            }
	    
            if(settings.pulse && settings.active){
                active = true;
                pulse(opacity);
	    } else if(settings.pulse){
                $this.hover(function(){
                    active = true;
                    pulse(opacity);
                }, function(){
                    active = false;
                    $hover.stop(true).fadeTo(settings.speed, out);
                });
            } else {
                $this.hover(function(){
                    $hover.stop().fadeTo(settings.speed, opacity);
                }, function(){
                    $hover.stop().fadeTo(settings.speed, out);
                });
            }
	    
        });
        return this;
    };
    
    $.fn.blend.settings = {
        speed : 500,
        opacity : 1,
        target : false,
        reverse : false,
	pulse : false,
	active : false,
	top : false
    };
    
})(jQuery);

/* ブレンド */

$(document).ready(function(){

	/* サブナビ */
	$("ul#subNavi a").blend({speed:300});
	
	/* タブナビ */
	$("ul#tabNavi a").blend({speed:300});
	
	/* ヘッダ */
	$("ul#headerNavi a").blend({speed:300});
	
	/* カテゴリ */
	$("ul#categoryMenu li").blend({speed:300});
	
	/* ヘッダ管理画面 */
	$("ul#headerNaviAdmin a").blend({speed:300});
	
	/* ヘッダマスター画面 */
	$("ul#headerNaviMaster a").blend({speed:300});
	
});

/* マウスオーバー */

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
