
window.addEvent('load', function() {


	var swiffy = new FancyUpload2($('demo-status'), $('demo-list'), {
		url: $('url').get('value'),
		fieldName: 'photoupload',
		path: '/resources/flash/Swiff.Uploader.swf',
		limitSize: 2 * 1024 * 1024, // 2Mb
		onLoad: function() {
			$('demo-status').removeClass('hide');
			$('demo-fallback').destroy();
		},
		// The changed parts!
		debug: true, // enable logs, uses console.log
		target: 'demo-browse' // the element for the overlay (Flash 10 only)
	});

	/**
	 * Various interactions
	 */

	$('demo-browse').addEvent('click', function() {
		/**
		 * Doesn't work anymore with Flash 10: swiffy.browse();
		 * FancyUpload moves the Flash movie as overlay over the link.
		 * (see opeion "target" above)
		 */
		 filter = {'Images (*.jpg, *.jpeg, *.gif, *.png)': '*.jpg; *.jpeg; *.gif; *.png'};
		 swiffy.options.typeFilter = filter;
		swiffy.browse();
		return false;
	});

	/**
	 * The *NEW* way to set the typeFilter, since Flash 10 does not call
	 * swiffy.browse(), we need to change the type manually before the browse-click.
	 */
	/*$('demo-select-images').addEvent('change', function() {
		var filter = null;
		if (this.checked) {
			filter = {'Images (*.jpg, *.jpeg, *.gif, *.png)': '*.jpg; *.jpeg; *.gif; *.png'};
		}
		swiffy.options.typeFilter = filter;
	});

	$('demo-clear').addEvent('click', function() {
		swiffy.removeFile();
		return false;
	});*/

	$('demo-upload').addEvent('click', function() {
		swiffy.upload();
		return false;
	});

	//find every <form> on the page
	$$('form').each(function(form) {
	
		//add onSubmit event to each form
		form.addEvent('submit', function() {
			
			var errors = 0;
			//validate all required fields
			
			form.getElements('textarea.validate').each(function(input) {
				console.log(input.value);
				if(input.value == '') { input.addClass('error').morph({ 'border-color': '#f00', 'background-color': '#ffebe8' }); errors++; }
				else if(input.hasClass('error') && input.value != '') { input.removeClass('error').morph({ 'border-color': '#fc0', 'background-color': '#000' }); }
			});
			if(errors)
			{
				//if there is a message to display, have it fade in
				var error_msg = form.getElement('.error-message-box');
				if(error_msg) {
					error_msg.setStyles({ 'opacity': '0', 'display': 'block' });
					error_msg.morph({ 'opacity': '1' });
				} else {
					//else, inject a new element
					var error_msg_div = new Element('div', { 'class': 'error-message-box', 'html': 'Please complete required fields!' });
					error_msg_div.inject(form.getElement('h4'), 'after');
					error_msg_div.setStyles({ 'opacity': '0', 'display': 'block' });
					error_msg_div.morph({ 'opacity': '1' });
				}
				return false;
			}
			//if no errors, it submits successfully, else does nothing
			return errors ? false : true;
		});
	});
});
