//v2.0

// Effect configuring
var ee_gallery_config_frames	= 20;
var ee_gallery_config_frame_time   = 40;
var ee_gallery_config_time_to_wait = 5000;
var ee_gallery_config_rotate_mode = 0;

// Image-indicator
var ee_gallery_vars_img_amount = document.getElementById("gallery_images_list").getElementsByTagName("img").length;
var ee_gallery_vars_current_image = 0;
var ee_gallery_vars_prev_current_image = ee_gallery_vars_img_amount-1;

// This vatiable save current effect-frame
var fr_counter = 0;

function js_gallery_first_img() {
	if(ee_gallery_vars_img_amount == 1) {
		document.getElementById("gallery_img_0").style.display = 'block';
	}
	if (ee_gallery_vars_img_amount > 1) {       
		var next_img = document.getElementById("gallery_img_"+ee_gallery_vars_current_image);
		next_img.style.zIndex = 2;
		js_gallery_opacity(next_img, 0);
		next_img.style.display = 'block';
		js_gallery_effect_first();
		setTimeout('js_gallery_rotate_next()', ee_gallery_config_time_to_wait);
	}
}

function js_gallery_effect_first() {
	var next_img = document.getElementById("gallery_img_"+ee_gallery_vars_current_image);
	fr_counter++;
	js_gallery_opacity(next_img, fr_counter/(ee_gallery_config_frames));
	if (fr_counter < ee_gallery_config_frames) {
		setTimeout('js_gallery_effect_first()',ee_gallery_config_frame_time);
	}
	else {
		fr_counter = 0;
		return true;
	}
} 

function js_gallery_effect() {
	var prev_img = document.getElementById("gallery_img_"+ee_gallery_vars_prev_current_image);
	fr_counter++;
	js_gallery_opacity(prev_img, (ee_gallery_config_frames-fr_counter)/ee_gallery_config_frames);
	if (fr_counter < ee_gallery_config_frames) {
		setTimeout('js_gallery_effect()',ee_gallery_config_frame_time);
	}
	else {
		prev_img.style.zIndex=0;
		js_gallery_opacity(prev_img, 1);
		var next_img = document.getElementById("gallery_img_"+ee_gallery_vars_current_image);
		next_img.style.zIndex=2;
		fr_counter = 0;
		return true;
	}
} 

function js_gallery_rotate_next() {
	if(ee_gallery_config_rotate_mode == 0) {
		ee_gallery_vars_prev_current_image = ee_gallery_vars_current_image;
		if (ee_gallery_vars_current_image < ee_gallery_vars_img_amount-1) {
			ee_gallery_vars_current_image++;
		} else {
			ee_gallery_vars_current_image=0;
		}
		js_gallery_replace();
		setTimeout('js_gallery_rotate_next()', ee_gallery_config_time_to_wait);
	}
}

function js_gallery_replace() {
	for(var i=0; i<ee_gallery_vars_img_amount; i++) {
		document.getElementById("gallery_img_"+i).style.zIndex=0;
	}
	var prev_img = document.getElementById("gallery_img_"+ee_gallery_vars_prev_current_image);
	var next_img = document.getElementById("gallery_img_"+ee_gallery_vars_current_image);

	prev_img.style.zIndex=2;
	next_img.style.zIndex=1;
	next_img.style.display='block';
	js_gallery_opacity(prev_img, 1);

	js_gallery_effect();
}

function js_gallery_effect() {
	var prev_img = document.getElementById("gallery_img_"+ee_gallery_vars_prev_current_image);
	fr_counter++;
	js_gallery_opacity(prev_img, (ee_gallery_config_frames-fr_counter)/ee_gallery_config_frames);
	if (fr_counter < ee_gallery_config_frames) {
		setTimeout('js_gallery_effect()',ee_gallery_config_frame_time);
	}
	else {
		prev_img.style.zIndex=0;
		js_gallery_opacity(prev_img, 1);
		var next_img = document.getElementById("gallery_img_"+ee_gallery_vars_current_image);
		next_img.style.zIndex=2;
		fr_counter = 0;
		return true;
	}
} 

function js_gallery_opacity(img_canvas_some, up_img_opacity) {
	img_canvas_some.style.opacity = up_img_opacity;
	img_canvas_some.style.filter = "alpha(opacity="+Math.round(up_img_opacity*100)+")";
}

onload = function() {
	js_gallery_first_img();
}