/*-------------------------------------------------------------------- 
 * javascript method: "tuboAdBar"
 * by: fukatomo@TUBOX.Co.,Ltd.
 *
 * Copyright (c) 2009 TUBOX.Co.,Ltd.
 *
 * Version: 1.0, 2009.04.25 
 * Changelog:
--------------------------------------------------------------------*/
(function($) {

$.fn.tuboAdBar = function(options) {
	// オプションのデフォルト設定
	if(!options.headerClass) options.headerClass = 'adHeader';
	if(!options.listClass) options.listClass = 'adList';
	if(!options.linkClass) options.linkClass = 'adLink';
	if(!options.interval) options.interval = 5000;	// 5sec

	return this.each(function(){
		var myelm = this;
		// 広告データの取得先
		var adUrl = options.adurl;
		var adHdr = $(this).find('.' + options.headerClass);
		var adLst = $(this).find('.' + options.listClass);

		// アニメーション用エリアの設定
		var adBarWidth = $(this).width() - adHdr.width();
		var adBarHeight = adLst.text('　').height();
		var adSpan = $('<span>').css('margin-left',adBarWidth + 'px').attr('adNo',0);
		var adUl = $('<ul>');

		adLst.height(adBarHeight).width(adBarWidth).append(adSpan,adUl);

		// 広告データの取得
		$.getJSON(adUrl,function(data){
			var adBarNo = 1;

			for(var no in data){
				if(data[no].url){
					var li = $('<li>').html('<a href="' + data[no].url + '" class="' + options.linkClass + '" target="_blank">' + data[no].title + '</a>');
					adUl.append(li);
				}
			}

			tuboAdShow();
		});

		function tuboAdShow(){
			var adNo = adSpan.attr('adNo');
			var adMargin = $(adSpan).css('margin-left');
			var adHtml = $(adUl).find('li').eq(adNo).html();

			if(!adHtml) adNo = 0;
			adHtml = $(adUl).find('li').eq(adNo).html();
			adNo++;
			$(adSpan).attr('adNo',adNo).html(adHtml).animate({
				marginLeft: 0
			},{
				duration: 300
			}).animate({
				marginLeft: 0
			},{
				duration: options.interval
			}).animate({
				opacity: 0
			},{
				duration: 50
			}).animate({
				opacity: 1
			},{
				duration: 50
			}).animate({
				opacity: 0
			},{
				duration: 50
			}).animate({
				opacity: 1
			},{
				duration: 50
			}).animate({
				marginLeft: adMargin
			},{
				duration: 300,
				complete: function(){
					tuboAdShow();
				}
			});
		}

	});
}

$.fn.tuboAdList = function(options) {
	// オプションのデフォルト設定
	if(!options.listClass) options.listClass = 'adList';
	if(!options.linkClass) options.linkClass = 'adLink';
	if(!options.linkImg) options.imgClass = 'adImg';
	if(!options.interval) options.interval = 5000;	// 5sec

	return this.each(function(){
		var myelm = this;
		// 広告データの取得先
		var adUrl = options.adurl;
		var adLst = $(this).find('.' + options.listClass).attr('adNo',0);

		// アニメーション用エリアの設定
		var adUl = $('<ul>').hide();

		adLst.append(adUl);

		// 広告データの取得
		$.getJSON(adUrl,function(data){
			var adBarNo = 1;

			for(var no in data){
				if(data[no].url){
					var li = $('<li>').html('<a href="' + data[no].url + '" class="' + options.linkClass + '" target="_blank"><img src="' + data[no].img + '" class="' + options.imgClass + '" /><br />' + data[no].title + '</a>');
					adUl.append(li);
				}
			}

			tuboAdShow();
		});

		function tuboAdShow(){
			var adNo = adLst.attr('adNo');
			var adHtml = $(adUl).find('li').eq(adNo).html();

			if(!adHtml) adNo = 0;
			adHtml = $(adUl).find('li').eq(adNo).html();
			adNo++;
			$(adLst).attr('adNo',adNo).css('opacity',1).html(adHtml).animate({
				opacity: 1
			},{
				duration: options.interval
			}).animate({
				opacity: 0
			},{
				duration: 200,
				complete: function(){
					tuboAdShow();
				}
			});
		}
	});
}

})(jQuery);

