<!--

/*
** Bluewire Media Pty Ltd
** Project Leader: Sarah Hyne
** Developer: Jake Pospischil
** Registration class & initialization script
** Instantiates registration form automatically on DomReady
*/

// showRegistration function (for Flash interactivity)
var registration = 0;
function showRegistration() {
	registration.show();	
}

// instantiate registration form on DomReady
window.addEvent("domready", function() {
	
	registration = new Registration({
		formContainer: $(Registration.FORM_CONTAINER_ID),
		closeButton: $(Registration.CLOSE_BUTTON_ID)
	});
	
});

// registration class definition
var Registration = new Class({
	
	// registration parameters
	Implements: Options,
	options: {
		formContainer: null,
		openButton: null,
		closeButton: null
	},
	
	// registration constructor
	initialize: function(options) {
		this.setOptions(options);
		
		// tween for form alpha
		this.formFade = new Fx.Tween(options.formContainer, {
			property: "opacity",
			unit: "",
			link: "cancel",
			duration: Registration.REGISTER_FADE_DURATION,
			transition: Fx.Transitions.Quad.easeOut
		});
		
		// hide form on close button press
		this.options.closeButton.addEvent("click", function() {
			this.formFade.start(0).chain(function() {
				
				// show flash objects (from slimbox.js)
				["object", window.ie ? "select" : "embed"].forEach(function(tag) {
					Array.forEach(document.getElementsByTagName(tag), function(el) {
						el.style.visibility = "visible";
					});
				});
				
				this.options.formContainer.setStyle("display", "none");			   
			}.bind(this));
		}.bind(this));
		
	},
	
	// show form
	show: function() {
		
		// hide flash objects (from slimbox.js)
		["object", window.ie ? "select" : "embed"].forEach(function(tag) {
			Array.forEach(document.getElementsByTagName(tag), function(el) {
				el.style.visibility = "hidden";
			});
		});
		
		this.options.formContainer.setStyle("display", "block");
		this.formFade.set(0);
		this.formFade.start(1);
	}
	
});

// registration form configuration
Registration.FORM_CONTAINER_ID = "formContainer";
Registration.CLOSE_BUTTON_ID = "closeLink";
Registration.REGISTER_FADE_DURATION = 1000;