// JavaScript Document
var current_item = undefined;
var continue_button = undefined;

function init() {
	continue_button = $$('div#continue a').first();
		
	$$('a[id^=link_]').invoke('observe','click', animateForm);
	continue_button.observe('click', function(e) { 
		saveFormData(); 
		e.stop(); 
		return false; 
	});
	
	$$('form#extra-products-form select[name^=want_]')
		.invoke('observe', 'change', function(e) {
			var img = $(e.element().name.gsub('want_',''));
			if(e.element().value == 1)
			{
				img.src = img.src.gsub(img.id, img.id + '_checked');
			}
			else
			{
				img.src = img.src.gsub(img.id + '_checked', img.id);
			}
		});
}

function displayDefaults() {
	setTimeout( function() { 
			current_item = $('form_data_migration');
			openForm(current_item); 
			$('content_data_migration').show();
	}, 100);
}

function saveFormData() {
	new Ajax.Request('scripts/save_extra_products_form.php', {
		method:'post',
		parameters: $('extra-products-form').serialize(true),
		onSuccess: function() {
			window.location = continue_button.href;
		}
	});
}

function animateForm(e) {
	
	var elem = e.element();
	
	if(elem.tagName != 'A')
		elem = elem.up('a');
	
	// if a form is already open, close it and open the selected form
	if(current_item != undefined) 
	{
		// hide content for prevous form
		$('content_' + current_item.id.gsub('form_', '')).hide();
		closeForm(current_item);

		// the form clicked was already open, do not reopen it
		if(current_item.id.gsub('form_','') != elem.id.gsub('link_', ''))
		{
			current_item = $('form_' + elem.id.gsub('link_', ''));
			openForm(current_item);
		}
		// if the form clicked was the last form closed, allow it to reopen
		else if(current_item.id.gsub('form_','') == elem.id.gsub('link_', '') && !current_item.visible())
		{
			openForm(current_item);	
		}
	}
	// else open selected form
	// should never get here because data migration is open on page load
	else
	{
		current_item = $('form_' + elem.id.gsub('link_', ''));
		openForm(current_item);
	}
	
	// show content for this form
	$('content_' + elem.id.gsub('link_', '')).show();
	
	e.stop();
	return false;
}

function openForm(elem) {
	Effect.BlindDown(elem, {duration:0.4,queue:'end'});	
}

function closeForm(elem) {
	Effect.BlindUp(elem, {duration:0.4,queue:'end'});	
}

function hideContent(elem) {
	elem.hide();
}

Event.observe(document, 'dom:loaded', init);
Event.observe(window, 'load', displayDefaults);