/*
	varsion: 2008-01-15
	requires: prototyp.js (ver1.6), ODEKAKEBanner0*Data.js
*/
/*
	// 入力データ例
	ODEKAKE_BANNER_DATA02 = {
		"info": 
			[
				{
				"img": "/odekake/images/index_bn001.gif",
				"alt": "【JS】Banner Area",
				"url": "http://www.tobu.co.jp/rail/jigyou/",
				"target": "1"
				},
					：
			]
	};

	// HTML出力例
	<a target="_blank" href="http://www.tobu.co.jp/rail/jigyou/">
		<img alt="【JS】Banner Area" src="/odekake/images/index_bn001.gif"/>
	</a>
		：
*/


/*
  設定
----------------------------------------------------*/

// バナーデータの書き出し先のブロックIDと、対応するデータのオブジェクト名を登録
var ODEKAKE_BANNER_PARAM = [
	{
		"targetId" : "odekake-banner01",
		"objName"  : "ODEKAKE_BANNER_DATA01",
		"max"      : 1
	},
];


/*
  テンプレート設定＆書き出し
----------------------------------------------------*/

document.observe("dom:loaded", function() {

	if( !ODEKAKE_BANNER_PARAM.length ) return;


	ODEKAKE_BANNER_PARAM.each(function(p){

		if( p && p.max && typeof window[p.objName] != "undefined" ){
			var id = p.targetId;
			var data = window[p.objName];
			var max = p.max;
			if( $(p.targetId) && data.length ){
				// HTMLテンプレート
				var ODEKAKE_BANNER_TMPL_BODY = new Template(
					'<a href="#{url}"#{target}>'
					+'<img src="#{img}" alt="#{alt}" />'
					+'</a>'
				);
				// JSONデータ中の値で、別の値に変換して出力するものをここで処理。case "***"の***部分がJSON中のパラメータ名に対応。
				function setTemplateProperty(data){
					for( var p in data ){
						switch(p){
							case "target":	// 1: 別ウィンドウ || 0: 同ウィンドウ
											data[p] = (data[p] == "1")?
													' target="_blank"' :
													'';
											break;
							default:
											break;
						}
					}
					return data;
				}
				// テンプレートの切り替え＆データのセット
				var htmlStr = "";
				data.each(function(item,i){
					if( i >= max ) throw $break;
						htmlStr += ODEKAKE_BANNER_TMPL_BODY.evaluate(setTemplateProperty(item));
				});

				// 書き出し
				$(id).innerHTML = htmlStr;
				$(id).style.display = "block";

			}
		}
	});


});



/*
  対象の要素を非表示に設定
  指定した複数のセレクタにまとめてスタイルを適用。
  一つ目のCSSファイル中にルールを追記
----------------------------------------------------*/

(function( selectors ){

	if( selectors && selectors.constructor == Array ){
		var str = '';
		var rule = '{display: none;}';
		var sheet = document.styleSheets[0];
		if( !selectors.length || !sheet || !rule ) return;

		if( Prototype.Browser.WebKit ){
			selectors.each(function(selector){
				str += selector + rule;
			});
			document.write( '<style type="text/css">' + str + '</style>' );
		}
		else if( sheet.insertRule ){
			selectors.each(function(selector){
				sheet.insertRule( selector+rule, sheet.cssRules.length );
			});
		}
		else if( sheet.addRule ){
			selectors.each(function(selector){
				sheet.addRule(selector, rule);
			});
		}
	}

})( [
	"#"+ODEKAKE_BANNER_PARAM[0].targetId
] );



