//--------------------------------------
// 設定が必要
var gred_img_width = 195; // 通常の画像サイズ
var gred_img_height = 141; // 通常の画像サイズ
var gred_img_zoom = 2.0; // 拡大比率
var gred_start_x = -128; // 画像表示開始位置(４つの先頭)
var gred_start_y = 73// 画像表示開始位置(４つの先頭)
var gred_margin = 32; // 画像の隙間 pixel
var gred_step = 5; // アニメーション時の分割精度 ５％づつ移動
var gred_interval = 10; // アニメーション変更インターバル(msec)
var gred_stop_interval = 4000; // アニメーションが一時停止する時間(msec)
var gred_zoom_start = -1;
//--------------------------------------

var gred_elements = document.getElementsByName("anim"); // イメージエレメント配列
var gred_img_info = new Array(gred_elements.length);
var gred_anim_index = 0;
var gred_rotate_count = 0;
// アニメーションの方向
var gred_anim_direction = false;
// アニメーションさせるか
var gred_animating = true;

var GredImgRect = function(top, left, w, h) {
  this.top = top;
  this.left = left;
  this.w = w;
  this.h = h;
}

function gred_anim_init() {
	gred_elements = getDiscoveryArea().getElementsByTagName('div');
	
	x = gred_start_x;
	y = gred_start_y;
	for(i = 0; i < gred_elements.length; ++i) {
		if(i != gred_zoom_start) {
			tmp_width = gred_img_width;
			tmp_height = gred_img_height;
		} else {
			tmp_width = gred_img_width * gred_img_zoom;
			tmp_height = gred_img_height * gred_img_zoom;
		}
		tmp_left = x - (tmp_width/2);
		tmp_top = y - (tmp_height/2);
		var rect = new GredImgRect(tmp_top, tmp_left, tmp_width, tmp_height);
	
		x += (gred_img_width+gred_margin);
		
		gred_img_info[i] = rect;
		
		gred_elements[i].style.position = 'absolute';
		if(document.all){
			gred_elements[i].style.top = tmp_top;
			gred_elements[i].style.left = tmp_left;
		}
		else{
			gred_elements[i].style.top = tmp_top+"px";
			gred_elements[i].style.left = tmp_left+"px";		
		}
		gred_elements[i].parentNode.style.left = '';
		gred_elements[i].parentNode.style.top = '';
		gred_elements[i].parentNode.style.position = '';
	}
	
//	document.getElementById('discover_loading').style.display = 'none';
	
	setTimeout("gred_anim_Animation(" + gred_anim_direction + ")", 5000);
}

function gred_anim_setImgPosition(index, st_rect, end_rect, div, right, change) {
	div = div/100.0;
	
	offset_y = (end_rect.top - st_rect.top)*div;
	offset_x = (end_rect.left - st_rect.left)*div;
	offset_w = (end_rect.w - st_rect.w)*div;
	offset_h = (end_rect.h - st_rect.h)*div;
	
	tmp_index = (index+gred_rotate_count)%gred_elements.length;
	
	if(change){
		newImage(gred_rotate_count+1, new GredImgRect(st_rect.top+offset_y+"px", st_rect.left+offset_x+"px", st_rect.w+offset_w, st_rect.h+offset_h));
	}
	else{
		img = gred_elements.item(tmp_index);
	
		img.style.top = st_rect.top+offset_y+"px";
		img.style.left = st_rect.left+offset_x+"px";
		img.width = st_rect.w+offset_w;
		img.height = st_rect.h+offset_h;
	}
}

function gred_anim_Animation(right) {
	if(!gred_animating){
		return;
	}
	gred_anim_direction = right;
	for(i = 0; i < gred_elements.length; ++i) {
		st_index = i;
		if(right){
			en_index = st_index + 1;
		}
		else{
			en_index = st_index - 1;
		}
		if(en_index >= gred_elements.length){
			en_index = 0;
		}
		if(en_index < 0){
			en_index = gred_elements.length - 1;
		}
		
		var anim_index;
		var change = false;
		if(right && st_index == gred_elements.length - 1){
			if(gred_anim_index != 0){
				continue;
			}
			anim_index = 100;
			change = true;
		}
		else if(!right && st_index == 0){
			if(gred_anim_index != 0){
				continue;
			}
			anim_index = 100;
			change = true;
		}
		else{
			anim_index = gred_anim_index;
		}
		
		gred_anim_setImgPosition(i,gred_img_info[st_index],gred_img_info[en_index],anim_index, right, change);
	}

	gred_anim_index += getAmimationStep();
	if(gred_anim_index > 100) {
		gred_anim_index = 0;
		if(right){
			gred_rotate_count--;
			if(gred_rotate_count < 0) gred_rotate_count = gred_elements.length - 1;
		}
		else{
			gred_rotate_count++;
			if(gred_rotate_count >= gred_elements.length){
				gred_rotate_count = 0;
			}
		}
		setTimeout("gred_anim_Animation(" + gred_anim_direction + ")", gred_stop_interval);
	} else {
		setTimeout("gred_anim_Animation(" + gred_anim_direction + ")", gred_interval);
	}
}

function getAmimationStep(){
	if(gred_anim_index < 10 || gred_anim_index > 90){
		return 1;
	}
	else if(gred_anim_index < 20 || gred_anim_index > 80){
		return 2;
	}
	else if(gred_anim_index < 30 || gred_anim_index > 70){
		return 3;
	}
	else{
		return 4;
	}		
}
