function sleep(sec) {
	waitstop = (new Date()).getTime() + (sec*1000);
	while( (new Date()).getTime() < waitstop );
}

function simpleValidation(form) {
	if(form.sender_name.value.length < 2) {
		alert('Please enter your name');
		form.sender_name.focus();
		return false;
	}
	var emailRegEx = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	if(!(emailRegEx.test(form.sender_email.value))) {
		alert('Please enter a valid email address');
		form.sender_email.focus();
		return false;
	}
	if(form.captcha_verify.value.length < 3) {
		alert('The "Spam Check" image is shown just above the form. ' +
		'Please type the three black symbols shown in the image ' +
		'into the Spam Check field.');
		form.captcha_verify.focus();
		return false;
	}

	return true;
}




//---------- For file uploading using SWFUpload ----------\\

var upload_start_function = function(file) {
	$('upload_status').innerHTML = 'Starting transfer of ' + file.name + '...';
	var continue_with_upload = true;
	sleep(2)
	return continue_with_upload;
};

var upload_success_function = function(file, server_data) {
	$('upload_status').innerHTML = file.name + ' uploaded successfully!';
	sleep(1)
};

var upload_progress_function = function(file, bytes_up, bytes_total) {
	var percentage = Math.round(((100*bytes_up)/bytes_total));
	var statstr = percentage + '%';
	$('upload_status').innerHTML = 
	"<div id='upload_status_progress' style='width:"+statstr+
	"'>"+statstr+"</div>";
	//alert('HELLO IAN ' + $('upload_status').innerHTML);
};

var upload_error_function = function(file, error, message) {
	$('upload_status').innerHTML = file.name + ' upload error: ' + 
	message + '('+error+')';
};

var upload_complete_function = function(file) {
	$('upload_status').innerHTML = file.name + ' upload complete.';
	sleep(2)
	if(this.getStats().files_queued==0) {
		$('submitButton').value = 'Upload Finished';

		// select all items in the queue list so that we can
		// know what they were after the fact (files are uploaded
		// separately from the form submission with SWFUpload).
		var files=$('upload_queue_list');
		for(var j=0;j<files.options.length;j++) {
			files.options[j].selected=true;
		}

		var swfupform = $('swfupform');
		// Non-ajax submission:
		swfupform.submit();

		// AJAX submission: (better not to use it here for now)
		//new Ajax.Updater('response_area',
		//  base_url+'upload/pull_file',
		//  {method:'post',evalScripts: true,parameters: swfupform.serialize()});

	}
};

var file_queued_function = function(file) {
	//alert(file.name + ' is in the queue');
	var option = document.createElement('option');
	option.text = file.name;
	option.value = file.name;
	var queueList = $('upload_queue_list');
	queueList.options[queueList.length] = option;
};

var file_queue_error_function = function(file, error, message) {
	alert(file.name + ' can not be queued because: ' + message + '('+error+')');
};

var file_dialog_complete_function = function(numfiles) {
	//var stats = this.getStats();
	if(numfiles > 0) {
		$('upload_queue_list_container').style.display = 'block';
		$('submitButton').style.display = 'block';
	}
};

var swfuSettings = {
	upload_url       : base_url + 'upload/pull_file',
	flash_url        : base_url + 'public/swf/swfupload_f8.swf',
	file_size_limit  : "204800",
	file_post_name   : "userfile",
	file_types	     : "*.jpg;*.gif;*.png;*.pdf;*.doc;*.rtf;*.txt;*.mpg;*.mov;*.wmv;*.mp3;*.jpeg;*.mpeg",
	file_upload_limit: 5,
	file_queue_limit : 2,
	debug            : false,

	swfupload_element_id   : "swfupload_container",
	degraded_element_id    : "plainupload_container",

	file_queued_handler		  : file_queued_function,
	file_queue_error_handler	  : file_queue_error_function,
	file_dialog_complete_handler  : file_dialog_complete_function,
	upload_start_handler	  : upload_start_function,
	upload_progress_handler	  : upload_progress_function,
	upload_error_handler	  : upload_error_function,
	upload_success_handler	  : upload_success_function,
	upload_complete_handler	  : upload_complete_function
};


function doSubmitMultimedia(formelement) {
	try {
		$('upload_status').style.display = 'block';
		swfu.startUpload();
	} catch (ex) {
		alert(ex);
	}
}

function doSubmitTestimonial(form) {
	/*new Ajax.Updater('response_area',
	base_url+'upload/testimonial',
	{method:'post',evalScripts: true,parameters: form.serialize()});
	return true;*/
	new Ajax.Request( base_url+'upload/testimonial', {
		method:'post',evalScripts: true,parameters: form.serialize(),
		onSuccess: function(){
			window.location = base_url+"upload/success";
		}
	});
}


//---------- For tinyMCE ----------\\

/*tinyMCE.init({
	//mode : "textareas",
	//theme : "simple"
	mode : "textareas",
	button_tile_map : true,
	browsers : "msie,gecko,opera",
	dialog_type : "modal",
	theme : "advanced",
	theme_advanced_layout_manager : "SimpleLayout",
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	theme_advanced_buttons1 : "bold,italic,separator,justifyleft,justifycenter,separator,bullist,numlist,separator,undo,redo,separator,link,unlink,separator,charmap,image,separator,code,cleanup,removeformat",
	theme_advanced_buttons2: "",
	theme_advanced_buttons3: "",
	theme_advanced_disable : "underline,strikethrough,justifyright,justifyfull,styleselect,formatselect,indent,outdent,anchor,help,hr,sub,sup"
});*/


//---------- For tab-based content switching ----------\\

// Modified, based on downloads.js 

function setUpPage() {
	$$('.tabItem').each(waitForSelection);
	firstTab = $('tabbedContent').down('.tabItem');
	loadTab(firstTab, 'up_');
}

function deselectAllTabs() {
	$$('.tabItem').each(deselectTab);
	$$('.container').each(hideTabContent);
	$('response_area').innerHTML = '';
}

function deselectTab(tabElement) {
	$(tabElement).removeClassName('selected');
}

function hideTabContent(tabContentElement) {
	$(tabContentElement).style.display = 'none';
}

function waitForSelection(tabElement) {
	Event.observe(tabElement, 'click', loadTabEvent);
}

function loadTab(tabElement, contentIdPrefix) {
	deselectAllTabs();
	tabElement.addClassName('selected');

	if(document.getElementById)
	var tabPageData = document.getElementById('tabPageData');
	else if(document.all)
	var tabPageData = document.all['tabPageData'];
	else if(document.layers)
	var tabPageData = document.layers['tabPageData'];
	tabPageData = $(tabPageData);

	$(contentIdPrefix+tabElement.title).style.display='block';
}

function loadTabEvent(tabEvent) {
	tabElement = Event.element(tabEvent);
	loadTab(tabElement, 'up_');
}