/*
 * jQuery LiveTip Plugin v 0.1
 * 
 *
 * Copyright (c) 2009 Atarimarket
 *
 * Date: 2009-07-21
 * 
 */
//変数
jQuery.extend({
	//モジュール実行
	loopTip: function(){
		if(liveLog==liveObject.length-1){
			//永久ループ回避
			liveStatus="stop";
		}
		if(liveObject.length==0){
			//対象アイテムが無い場合
			liveStatus="stop";
		}
		if(liveStatus=="play"){
			liveCount = (liveCount<(liveObject.length-1)) ? liveCount+1 : 0;
			$.doTip(liveCount,liveObject.length);
		}else if(liveStatus=="stop"){
			
		}
	},
	
	//吹き出し表示実行
	doTip: function(number,maximum){
		var obj=liveObject[number];
		$(obj[0]).addTip(obj[1],number,maximum);
	}
});

jQuery.fn.extend({
	//吹き出し型生成
	formatTip: function() {
		var obj=this.html();	
		var upper="<table id='tip_table' cellpadding='0' cellspacing='0' width='170'><tr><td id='tip_tl'></td><td id='tip_top'></td><td id='tip_tr'></td></tr><tr><td id='tip_body' colspan='3'>";
		var under="</td></tr><tr><td id='tip_bl'></td><td id='tip_bottom'></td><td id='tip_br'></td></tr></table>";
		this.html(upper+obj+under);
		return obj;
	},
	
	//吹き出し表示処理
	addTip: function(interval,number,maximum) {
		var obj= this;
		var tip= $('.tip',obj);
		var pos= obj.offset();
		var addTop=-(tip.outerHeight());
		var addLeft=(obj.outerWidth())-50;
		var i=number+1;
		var random_i=(maximum-i)*Math.random();
		var interval=500*(random_i+1);
		
		var random_j=Math.random();
		var delay=1000*(random_j+1);
		
		var random_k=Math.random();
		var duration=(250*random_k)+500;
		
		if($('.tip-inner',tip).is(':parent')){
			liveLog=0;
			//表示要素がある場合
			var src = tip.formatTip();
			tip.addClass('tip-positon');
			$('.tip-positon').css({'top':pos.top+addTop+20,'left':pos.left+addLeft,'zIndex':10001});
			tip.animate({'height':'show','top':pos.top+addTop,'left':pos.left+addLeft},750,'easeOutBack',function(){
				$(this).oneTime(interval, function() {
					obj.removeTip(src,delay);	
				});	
			});
		}else{
			//表示要素がない場合はスキップ
			liveLog++;
			$.loopTip();
		}
	},
	
	//吹き出しの削除処理
	removeTip: function(restore,delay) {
		var obj=this;
		var tip=  $('.tip',obj);
		tip.slideUp(400,function(){									
			tip.removeAttr("style");
			tip.html(restore);
			tip.removeClass('tip-positon');
			$(this).oneTime(delay, function() {
					$.loopTip();
			});
			
		});
	}
	
});	