dojo.require("dojo.fx");
dojo.require("dojo.fx.easing");

AddSafeLoaderCallback(CustomDecoration_Init);

var slideshow_obj;
var cur_position;
var preload_buffer_area;
function CustomDecoration_Init()
{
	var i=0;
	
	preload_buffer_area = document.createElement('div');
	preload_buffer_area.style.display = 'none';
	var body_obj = document.getElementsByTagName('body')[0];
	body_obj.appendChild(preload_buffer_area);
	
	for(i=0; i<server_export_data_obj.page_data_obj_array.length; i++)
	{
		dojo.byId('custom_decoration_link_wrapper').innerHTML += '<div id="link_'+(i+1)+'" class="custom_decoration_link" onclick="CustomDecoration_SetPagePosition('+(i+1)+');">'+server_export_data_obj.page_data_obj_array[i].link_content+'</div>';
		
		// *** preload the first image for each area (page)
		preload_buffer_area.innerHTML += '<span>'+server_export_data_obj.page_data_obj_array[i].slide_content_array[0]+'</span>';
		
	}
	
	CustomDecoration_SetPagePosition(1);
}

function CustomDecoration_SetPagePosition(position)
{
	cur_position = position;

	if(dojo.byId('custom_decoration_slideshow_wrapper'))
	{
		var ss_config_obj = new SlideShowConfig();
		ss_config_obj.slide_count = server_export_data_obj.page_data_obj_array[position-1].slide_content_array.length;
		ss_config_obj.height = 326;
		ss_config_obj.transition_duration = 500;
		ss_config_obj.slide_duration = 4000;
		ss_config_obj.control_interval_pause_content = '<img src="./images/main_template/pause.jpg" alt="" />';
		ss_config_obj.control_interval_play_content = '<img src="./images/main_template/play.jpg" alt="" />';
		ss_config_obj.control_interval_bar_innerHTML = '> > > >';
		ss_config_obj.main_wrapper_node = dojo.byId('custom_decoration_slideshow_wrapper');
		ss_config_obj.GetSlide_function_ptr = CustomDecoration_GetSlide;
		ss_config_obj.onslidetransition_callback = CustomDecoration_OnSlideTransition;
		ss_config_obj.onslidechange_callback = CustomDecoration_OnSlideChange;
		
		if(slideshow_obj)
		{
			dojo.byId('custom_decoration_slideshow_wrapper').innerHTML = '';
			slideshow_obj.Stop();
			slideshow_obj = null;
		}
		slideshow_obj = new SlideShow(ss_config_obj);
		slideshow_obj.InitDisplay();
	}
	
	slideshow_obj.StartOnSlideTransition(1);
	
	CustomDecoration_MoveLinkHighlighter(position);
	
	// set the text area
	dojo.byId('custom_decoration_text').innerHTML = server_export_data_obj.page_data_obj_array[position-1].text;
	
	//SetTextFromPosition(position);
	//SetSliderFromPosition(position);
}

function CustomDecoration_MoveLinkHighlighter(position)
{
	
	var node = dojo.byId('custom_decoration_link_highlighter');
	var link_node = dojo.byId('link_'+position);
	var HL_parent_box = JSFeature.GetNodeBoundingBox(node.parentNode);
	var link_box = JSFeature.GetNodeBoundingBox(link_node);
	var new_height = (link_box.height + 10);
	var new_top = (link_box.top - HL_parent_box.top) + (link_box.height - new_height)/2;

	var anim_prop = dojo.animateProperty( 
	{
		node: node,
		duration: 1000, // ms to run animation
		delay: 5, // ms to stall before playing
		properties:{
			top: {end:new_top},
			height: {end:new_height}
		},
		easing: dojo.fx.easing.bounceOut
	});

	anim_prop.play();
}

function CustomDecoration_GetSlide(slide_num)
{
	var content_str = server_export_data_obj.page_data_obj_array[cur_position-1].slide_content_array[slide_num-1];
	
	// *** preload next slide
	if(slide_num < server_export_data_obj.page_data_obj_array[cur_position-1].slide_content_array.length-1)
		preload_buffer_area.innerHTML += server_export_data_obj.page_data_obj_array[cur_position-1].slide_content_array[slide_num];
	
	return content_str;
}

function CustomDecoration_OnSlideTransition(slide_num, previous_slide_num)
{
	//console.log('content change from '+previous_slide_num+' to '+slide_num);
}

function CustomDecoration_OnSlideChange(slide_num, previous_slide_num)
{
	//console.log('content change from '+previous_slide_num+' to '+slide_num);
}
