function CBinfo(type, pos, ctx, opt){
    var item_id = ctx ? ctx._itemId : undefined;
    if(item_id === undefined){
	return;
    }

    var elem = $("#item" + item_id + " .mv_sync_img.active:first");

    if(type == "active"){
	elem.fadeIn(0);
    }
    else if(type == "fg_effect_begin"){
	var fadeTime = opt ? opt.fadeTime : undefined;
	if(fadeTime === undefined){
	    fadeTime = 0;
	}
	elem.fadeOut(fadeTime);
    }
    else if(type == "bg_effect_begin"){
	var fadeTime = opt ? opt.fadeTime : undefined;
	if(fadeTime === undefined){
	    fadeTime = 0;
	}
	elem.fadeIn(fadeTime);
    }
    else if(type == "inactive"){
	// nothing todo
    }
}

function MainVisualEffect(base, default_image){
    var width = "600px";
    var height = "240px";
    var backgroundColor = "#ffffff";

    backgroundColor = "#e0e0e0";

    var containerClassName = "mainvisual_container";
    var fadeoutTime = 1000;
    var pauseTime = 7000;

    //         pauseTime = 2000;

    // classが"mv_layer" で idがmvNN の物をlist
    var mv_list = $(".mv_layer[id^=mv]");
    var valid_mv_list = [];
    for(var i=0; i<mv_list.length; i++){
	if($(mv_list[i]).attr("id").match(/^mv(\d{2})$/)){
	    valid_mv_list.push(RegExp.$1);
	}
    }

    valid_mv_list = valid_mv_list.sort();

    var ctx = [];
    for(var i=0; i<valid_mv_list.length; i++){
	var item_id = valid_mv_list[i];

	ctx[i] = {};
	ctx[i].id = "mv_container_" + item_id;
	//ctx[i]["class"] = "mv_container_class_" + item_id;

	// あらかじめhtmlに定義した(非表示の) htmlを chiildに設定する
	ctx[i].load = function(args){return "#mv" + args.pos;};
	ctx[i].loadArgs = {pos:item_id};

	ctx[i].activeCB = CBinfo;
	ctx[i].effectCB = CBinfo;
	ctx[i].inactiveCB = CBinfo;

	ctx[i]._itemId = item_id;
    }

    var obj = new RotateLayer(width, height, ctx,
			      {containerClassName:containerClassName,
			       fadeoutTime:fadeoutTime,
			       pauseTime:pauseTime,
			       css:{backgroundColor:backgroundColor}
			      });
    if(!obj.start(base)){
	$(default_image).css("display", "inline");
	return null;
    }
    return obj;
}
