//
// common
//


var cbsmc_path2img="http://www.nissan.co.jp/CUBE/PARTS/MINICAR/";
var cbsmc_path2swf="http://www.nissan.co.jp/CUBE/PARTS/MINICAR/";





var cbsmc_bg1,cbsmc_bg2;

if(window.cbsmc_lcid==null){
	cbsmc_lcid = "mc" + String(Math.floor(Math.random() * 1000000));
}

function cbsmc_makeCard (index,mode) {
	if(mode == null){
		mode='';
	}
	// preload img
	cbsmc_bg1=new Image();
	cbsmc_bg1.src=cbsmc_path2img+'minicar_card1_off.jpg';
	cbsmc_bg2=new Image();
	cbsmc_bg2.src=cbsmc_path2img+'minicar_card1.jpg';
	// write html
	document.write('<div id="minicar_card'+index+mode+'box" style="background:#fff url('+cbsmc_path2img+'minicar_card1_off.jpg) no-repeat;" >');
	cbsmc_putSwf(7,cbsmc_path2swf+'minicar_card.swf',150,225,'#FFFFFF',{id:'minicar_card'+index+mode,FlashVars:'colorType=aqua-mint&mode='+mode+'&lcid='+cbsmc_lcid,allowScriptAccess:'always'});
	document.write('</div>');
}

//var cbsmc_layer;
function cbsmc_makeLayer (index,mode) {
	var clSize=cbsmc_getClientSize();
	if(mode == null){
		mode='';
	}
	
//	var tag='<div id="CUBE-BLOGSEAL-MINICAR-'+index+mode+'" style="width:10px;height:10px;position:absolute;left:0px;top:0px;overflow:hidden;"></div>';
//	document.write(tag);

	var oLayer=document.createElement('div');
	oLayer.setAttribute('id','CUBE-BLOGSEAL-MINICAR-'+index+mode);
	oLayer.style.position = 'absolute';
	oLayer.style.left = '0px';
	oLayer.style.top = '0px';
	oLayer.style.width = '10px';
	oLayer.style.height = '10px';
	oLayer.style.overflow = 'hidden';
	//oLayer.style.backgroundColor = '#999999';
	return oLayer;
}

function cbsmc_loopStart (index,mode) {
//	alert('cbsmc_loopStart');
	if(mode == null){
		mode='';
	}
	cbsmc_run(index,mode);
	//dirty
	cbsmc_cardHide(1,null,index,mode);
	cbsmc_cardHide(1,'entry',index,mode);
	//dirty
	this["cbsmc_loopTimer"+index+mode]=setInterval("cbsmc_fitLayer("+index+",'"+mode+"')",100);
}
function cbsmc_loopStop (index,mode) {
//	alert('cbsmc_loopStop');
	clearInterval(this["cbsmc_loopTimer"+index+mode]);
	//dirty
	cbsmc_cardShow(1);
	cbsmc_cardShow(1,'entry');
	//dirty
	var target=cbsmc_getTag('CUBE-BLOGSEAL-MINICAR-'+index+mode);
	target.innerHTML='';
	cbsmc_resizeLayer(index, mode, 10,10);
}

function cbsmc_cardHide (index,mode,curIndex,curMode) {
//	alert('cbsmc_cardHide');
	if(mode == null){
		mode='';
	}
	var id='minicar_card'+index+mode;
	var box=cbsmc_getTag(id+'box');
	if(box!=null){
		var suffix='';
		if(index==curIndex && mode==curMode){
			suffix='_off';
		}
		//background:url(minicar_card1_off.jpg)
//		box.style.backgroundImage='url('+cbsmc_path2img+id+'_off.jpg)';
		box.style.backgroundImage='url('+cbsmc_path2img+'minicar_card1'+suffix+'.jpg)';
	}
	cbsmc_hideById(id);
}
function cbsmc_cardShow (index,mode) {
	if(mode == null){
		mode='';
	}
	var id='minicar_card'+index+mode;
	cbsmc_showById(id);
}

function cbsmc_fitLayer (index,mode) {
	if(mode == null){
		mode='';
	}
	var cbsmc_clSize=cbsmc_getClientSize();
	cbsmc_resizeLayer(index,mode,cbsmc_clSize[0],cbsmc_clSize[1]);
	var scy=cbsmc_getScrollTop();
	cbsmc_moveLayer(index,mode,0,scy);
	return true;
}
function cbsmc_resizeLayer (index,mode,w,h) {
	if(mode == null){
		mode='';
	}
	var target=cbsmc_getTag('CUBE-BLOGSEAL-MINICAR-'+index+mode);
	target.style.width=w+'px';
	target.style.height=h+'px';
}
function cbsmc_moveLayer (index,mode,x,y) {
	if(mode == null){
		mode='';
	}
	var target=cbsmc_getTag('CUBE-BLOGSEAL-MINICAR-'+index+mode);
	target.style.left=x+'px';
	target.style.top=y+'px';
}
function cbsmc_run (index,mode) {
//	alert('cbsmc_run');
	if(mode == null){
		mode='';
	}
	var tag=cbsmc_getSwfTag(7,cbsmc_path2swf+'minicar_run.swf','100%','100%','#FFFFFF',{id:'minicar_run'+index+mode,FlashVars:'colorType=aqua-mint&mode='+mode+'&lcid='+cbsmc_lcid,wmode:'transparent',allowScriptAccess:'always'});
	
	var target=cbsmc_getTag('CUBE-BLOGSEAL-MINICAR-'+index+mode);
//	alert(target);
//	if(target==null){
//		return false;
//	}
	target.innerHTML=tag;
}




//
// lib
//


function cbsmc_showById (id) {
	var target=cbsmc_getTag(id);
//	alert(target);
	if(target==null){
		return false;
	}
	cbsmc_show(target);
}
function cbsmc_hideById (id) {
	var target=cbsmc_getTag(id);
//	alert(target);
	if(target==null){
		return false;
	}
	cbsmc_hide(target);
}
function cbsmc_show (obj) {
	obj.style.visibility="visible";
}
function cbsmc_hide (obj) {
	obj.style.visibility="hidden";
}

function cbsmc_getTag (id) {
//	alert(id);
//	return cbsmc_layer;
	if(document.all){
		return document.all[id];
	}else if(document.getElementById){
		return document.getElementById(id);
	}
}

var body = document['CSS1Compat' == document.compatMode ? 'documentElement' : 'body'];
function cbsmc_getClientSize () {
	if(document.all){
		//return [document.body.clientWidth,document.body.clientHeight];
		return [body.clientWidth,body.clientHeight];
	}else if(document.getElementById){
//		return [window.innerWidth,window.innerHeight];
		return [window.innerWidth-20,window.innerHeight];
	}
}
function cbsmc_getScrollTop () {
	if(document.all){
		//return document.body.scrollTop;
		return body.scrollTop;
	}else{
		return window.pageYOffset;
	}
}






function cbsmc_putSwf(ver,mov,w,h,bgc,param,opt){
	var tag=cbsmc_getSwfTag(ver,mov,w,h,bgc,param,opt);
	if(tag!=false){
		document.write(tag);
	}
}
function cbsmc_getSwfTag(ver,mov,w,h,bgc,param,opt){
	
	// const
	var HISSU={movie:true};
	var ALIAS={movie:'src',id:'name'};
	var VAL_DEF={allowScriptAccess:'sameDomain',quality:'high',bgcolor:'#FFFFFF',loop:'false',menu:'false'};
	var IN_OBJECT={version:true,id:true,width:true,height:true,align:true};
	var ARG_NAME=['movie','width','height','bgcolor'];
	var OPT_DEF={kaigyou:''};
	
	// vars
	var values,version,newAtt;
	var objTag,parTag,embTag;
	var option;
	
	//option
	option={};
	for(var i in OPT_DEF){
		option[i]=OPT_DEF[i];
	}
	if(typeof(opt)=="object"){
		for(var i in opt){
			option[i]=opt[i];
		}
	}
	
	
	
	// values
	values={};
	// set default
	for(var i in VAL_DEF){
		values[i]=VAL_DEF[i];
	}
	if(typeof(param)=="object"){
//		values=param;
		for(var i in param){
			values[i]=param[i];
		}
	}
	
	for(var i=0;i<ARG_NAME.length;i++){
		if(arguments[i+1]!=null){
			values[ARG_NAME[i]]=arguments[i+1];
		}
	}
	
	// hissu
	for(var i in HISSU){
		if(values[i]==null){
			alert('getSwfTag ERROR:'+i+' is undefiend');
			return false;
		}
	}
	
	
	// make string;
	objTag='<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"';
	parTag='';
	embTag='<embed type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"';
	
	// exception
	if(ver!=null){
		if(typeof(ver)==Number){
			version=ver+',0,0,0';
		}else{
			version=ver;
		}
		objTag+='codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + version + '"';
	}
	
	//main
	for(var i in values){
		newAtt=cbsmc_getSwfAttribute(i,values);
		
		// alias or not
		if(ALIAS[i]!=null){
			//alias
			embTag+=cbsmc_getSwfAttributeAlias(i,values,ALIAS[i]);
		}else{
			embTag+=newAtt;
		}
		//obj or param
		if(IN_OBJECT[i]==true){
			//obj
			objTag+=newAtt;
		}else{
			//param
			parTag+=cbsmc_getSwfParam(i,values)+option.kaigyou;
		}
	}
	
	//close tags
	objTag+='>'+option.kaigyou;
	embTag+=' />';
	
	return objTag+parTag+embTag+'</object>';
}


function cbsmc_getSwfAttributeAlias(name,values,alias){
	if(values[name]==null){
		return '';
	}else{
		return ' '+alias+'="'+values[name]+'"';
	}
}
function cbsmc_getSwfAttribute(name,values){
	if(values[name]==null){
		return '';
	}else{
		return ' '+name+'="'+values[name]+'"';
	}
}
function cbsmc_getSwfParam(name,values){
	if(values[name]==null){
		return '';
	}else{
		return '<param name="' + name + '" value="' + values[name] + '" />';
	}
}













//
// addEventListener for IE
//

if (document.all && document.attachEvent) { // MSIE を判別

// イベントオブジェクトの定義
 function eEvent(e) { this.target=e.srcElement; // 着目要素を定義 
  this.cancelBubble=e.cancelBubble;  // キャンセルの定義
  this.keyVal=event.keyCode // キー操作の定義; Mozilla では通用せず !!!
 }

// addEventListener を attachEvent に結び附ける
function document_addEventListener(ev,func,bl) {
  this.attachEvent("on"+ev, function(){
   var e=new eEvent(event); return func(e);});
}

// removeEventListener を detachEvent に結び附ける
function document_removeEventListener(ev,func,bl) {
  this.detachEvent("on"+ev, func);
}

// document 及び window オブジェクトで **EventListener を使えるようにする
 document.addEventListener=document_addEventListener;
 document.removeEventListener=document_removeEventListener;
 window.addEventListener=document_addEventListener;
 window.removeEventListener=document_removeEventListener;

// (X)HTML文書中のすべての要素で **EventListener を使えるようにする
 var ii=document.getElementsByTagName("*");
 for (var i=0;i<ii.length;i++){
   ii[i].addEventListener=document_addEventListener;
   ii[i].removeEventListener=document_removeEventListener;
 }

}
