function chkFlaVer(){
	var flashplayer_ver = 0;
	//noIE
	if(navigator.plugins && navigator.mimeTypes['application/x-shockwave-flash']){
		var plugin = navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin;
		//InstalledFlashPlayer
		if(plugin){flashplayer_ver = parseInt(plugin.description.match(/\d+\.\d+/));}
	}
	//IE or no FlashPlayer
	else{
		//IE and has Player
		try{
			var flashOCX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").match(/([0-9]+)/);
			if(flashOCX){flashplayer_ver = parseInt(flashOCX[0]);}
		}catch(e){}
	}
	//Flash Player or versions under 6.
	if(flashplayer_ver <= 6){flashplayer_ver = 0;}
	return flashplayer_ver;
}

$(function(){
	
	jQuery.scope = function(target,func){ return function() {return func.apply(target,arguments);}}; 
	jQuery.log = function(t){try{console.log(t);}catch(e){};};
	
	
	/* Configure --> */
	
	var
	
	requireFlashVersion	= 9 ////*** flashプラグインのバージョンがこれ以下だとスライドショー差し替わります。スライドショーの表示をチェックするには100とか大きい値に書き換えてください。 ***////
	
	,clientFlashVersion	= chkFlaVer()
	,basePath	= "/pc/swf/top/"
	,confPath 	= "/pc/swf/top/xml/banner.xml"
	,btnDef = {
		pref : "/pc/images/btn_"
		,suff : ".gif"
	}
	,swapDomId = "swapArea"
	
	/* <-- Configure */
	
	,imgs = []
	,conf = $('<data>')
	,slideshow = {
		$ : null
		,id : "slideshow"
		,animatingDuration : 1670
		,switchImg	: function(){ //_mode/*:Number*/) {
			
			
			//_mode = (typeof _mode == undefined) ? 5 : _mode;
			var
			mode = 0
			,target_id =  '#'+ slideshow.id
			,ss = $(target_id)
			,strWidth = ss.css('width')
			,strHeight = ss.css('height')
			,$active = $(target_id+' li.active')
			;
			if ( $active.length == 0 ) $active = $(target_id+' li:last');
			
			//ss.data('timerActive',true)
			
			/**/
			 //// need to whiteIn ////
			if(ss.find('.slideOverlay').length===0){
				$overlay = $('<div class="slideOverlay" />');
				$overlay.appendTo(ss)
				$overlay.css({width:strWidth,height:strHeight,opacity: 0.0});
			}else{
				$overlay = ss.find('.slideOverlay');
			}
			
			var $next =  $active.next().next().length ? $active.next() : $(target_id+' li:first');
			
			$active.addClass('last-active');
			
			$active.css({left: 0,top:0});
			$next.css({left: 0,top:0});
			
			switch(mode){
				default:
				//// [MODE] alphaIn ////
					$next
						.css({opacity: 0.0/*, filter: 'alpha(opacity=0)'*/})
						.addClass('active')
						.show()
						.animate({opacity: 1.0}, {
							duration:slideshow.animatingDuration,
							easing:"linear",
							complete:function() {
								$(target_id+' li.last-active')
								//$active
									.hide()
									.removeClass('active last-active');
							}/*,
							step:$.scope(this,function(param){
								$next.css({filter: 'alpha(opacity='+Math.round(param*100)+')'})
							})*/
						});
				//// [MODE] whiteIn ////
					/*$overlay.css({opacity: 1.0,zIndex:1000})
						.animate({opacity: 0.0}, 1000, "linear", function() {
							$overlay.css({zIndex:1});
						});
					$next.css({opacity: 1.0}).addClass('active');
					$active.removeClass('active last-active');*/
			}
			
		}
	}
	,imgLoaded = 0
	,makeNoflashLnk = function(dat,t){
		a = $('<a>');
		var href = dat.find('noflash > '+t).attr('href');
		a.attr('href',href)
		a.attr('target',dat.find('noflash > '+t).attr('target'))
		if(dat.find('noflash > '+t).attr('trackingName') && dat.find('noflash > '+t).attr('trackingType')){
			a.attr('name',dat.find('noflash > '+t).attr('trackingName'))
			a.attr('type',dat.find('noflash > '+t).attr('trackingType'))
			a.click(function(e){cto.tracklink(this);})
		}
		return href!="" ? a : $('<span>');
	}
	,imgsEveryLoaded = $.scope(this,function(e){
		imgLoaded++;
		if(imgs.length<=imgLoaded){
			//// startSlideShow
			slideshow.$ = $('<ol id="'+slideshow.id+'">').css("display","block")
			for(var i=0,n=imgs.length;i<n;i++){
				var img = imgs[i]
				,li = $('<li>')
				,dat = img.data('dat')
				,imglnk = makeNoflashLnk(dat,"background")
				,btn, btnsrc, btnpos, btnlnk
				;
				if(i==0){li.addClass("active");}
				li.append(imglnk)
				imglnk.append(img) 
				
				//ボタンは要素がないときは作らない。
				if(dat.find('noflash > button').length){
					btn = $('<img alt="">')
					btnsrc =  dat.find('noflash > button').attr('src')
					switch(btnsrc){
						case "1": case "detail": case "":
							btnsrc = btnDef.pref + "detail" +btnDef.suff; break;
						case "2": case "more":
							btnsrc = btnDef.pref + "more" +btnDef.suff; break;
						case "3": case "video":
							btnsrc = btnDef.pref + "video" +btnDef.suff; break;
						case "4": case "campaign":
							btnsrc = btnDef.pref + "campaign" +btnDef.suff; break;
						default: break;
					}
					btn.attr('src',btnsrc)
					btnlnk = makeNoflashLnk(dat,"button")
					btnpos = dat.find('noflash > button').attr('position')
					
					switch(btnpos) {
						case "LT":
							btnlnk.css({ top:21,  left:36 })
							break;
						case "LB": default:
							btnlnk.css({ bottom:41, left:36 })
							break;
						case "RT":
							btnlnk.css({ top:21, right:36})
							break;
						case "RB":
							btnlnk.css({ right:36, bottom:41})
							break;
					}
					
					li.append(btnlnk)
					btnlnk.append(btn) 
					btnlnk.addClass('slideshow_inner_btn')
				}
				
				imglnk.addClass('slideshow_inner_bg')
				
				slideshow.$.append(li)
			}
			
			$('#'+swapDomId).html( slideshow.$ );
			
			var  intervaltime = parseInt(conf.find("config > columnSpan").text())*1000;
			setInterval( slideshow.switchImg,  intervaltime + slideshow.animatingDuration )
			//$.log(intervaltime)
		};
	})
	;
	
	
	if(clientFlashVersion < requireFlashVersion){
	//flashのバージョンが指定より低い
		
		//load config xml
		$.ajax({
			url: confPath
			,cache: false
			//,dataType:"xml"
			,error : function(xhr,status){$.log(status)}
			,success : $.scope(this,function(dat,type){
				conf = $(dat);
				//$.log(conf.find("config > columnSpan").text())
				var i,img,imgsrc
				,arr = conf.find("items > item")
				,n = arr.length
				;
				for(i = 0;i<n;i++){
					
					img = $('<img alt="">')
						.data('dat', arr.eq(i))
						.data('id', i)
					
					imgs[i] = img;
					
					imgs[i].bind('load',imgsEveryLoaded);
					
					imgsrc =  arr.eq(i).find('noflash > background').attr('src')
					if(imgsrc==""){
						imgsrc = arr.eq(i).find('background').attr('src');
						if(imgsrc.substr(0,1)!="/" && imgsrc.indexOf('http://')!=0 && imgsrc.indexOf('https://')!=0) imgsrc = basePath+imgsrc;
					}
					img.attr('src',imgsrc)
					//$.log(img)
				}
			})
		});//end ajax()
		
	}else{
	
		var flashvars = {confPath:confPath};
		var params = {
				menu: "false",
				quality: "best",
				scale: "noscale",
				salign: "lt",
				wmode: "transparent",
				allowFullScreen: "true",
				base: basePath
		};
		var attributes = {};
		swfobject.embedSWF(basePath+"preloader.swf", swapDomId, "792", "312", String(requireFlashVersion), basePath+"expressInstall.swf", flashvars, params, attributes);
	
	}

})
