function init_upload (hash, upload_select_image){
	
	var num_files_uploaded_success = 0;
	var num_files_uploaded_error = 0;
	var num_files_selected = 0;
	var error_message;
	var item;
	
	$("#uploadify").uploadify({
		'uploader': './resources/swf/uploadify.swf',
		'script':	'./backend/ajax/upload_file.php',
		'cancelImg': './resources/img/cancel-upload.png',
		'buttonImg': upload_select_image,
		'width': 320,
		'simUploadLimit': 1,
		'height': 36,
		'sizeLimit': 5242880,
		'wmode': 'transparent',
		'folder':	'../../tmp/',
		'queueID': 'file_queue',
		'buttonText': 'Select Files',
		'auto': false,
		'multi': true,
		'fileExt': '*.gif;*.png;*.jpg;*.jpeg;*.bmp;',
		'fileDesc': '*.gif;*.png;*.jpg;*.jpeg;*.bmp;',
		'queueSizeLimit': 10,
		'displayData': 'none',		
		
		/* Queue full */
		'onQueueFull': function (event,queueSizeLimit) {	
			return false;			
		},
		
		/* Uploading */
		'onProgress' :	function(event, queueID, fileObj, data) {
			
			$('#uploadify'+queueID+' .percentage').html(' - <strong>'+data.percentage+'%</strong>');
			$('#uploadify'+queueID).addClass('progress_upload');
			
			/* Finished */
			if (data.percentage == 100){
				$('#uploadify'+queueID).addClass('progress_thumbnail');
				$('#uploadify'+queueID+' .percentage').html(' - <strong>Creating thumbnails</strong>');
			}			
			return true;
		},	
		
		/* Thumbnails created */		
		'onComplete': function(event, queueID, fileObj, response, data) {	

			/* Done */
			if (response == 'upload_success'){
				num_files_uploaded_success++;				
				$('#uploadify'+queueID).addClass('progress_success');
				$('#uploadify'+queueID+' .percentage').html(' - <strong>Uploaded successfully!</strong>');
				return true;
			}else{
				error_message = '';
				num_files_uploaded_error++;
				
				if (response === 'error_invalid_extension'){
					error_message = ' : Unsupported file extension';
				} else if (response == 'error_invalid_dimensions'){
					error_message = ' : Corrupt image file';
				} else if (response == 'error_file_too_large'){
					error_message = ' : File too large';
				} else if (response == 'error_max_files_for_upload') {
					error_message = ' : To many files at once';
				}				
				
				$('#uploadify'+queueID).addClass('progress_error');
				$('#uploadify'+queueID+' .percentage').html(' - <strong>Upload Error</strong>'+error_message);
			
				$('#uploadify'+queueID+' .cancel a').attr('href', '#');
				$('#uploadify'+queueID+' .cancel a').click(function(){
					$('#uploadify'+queueID).fadeOut('slow', function(){
						$(this).remove();
						return false;	
					});			
				});
				$('#uploadify'+queueID+' .cancel').show();
				return false;
			}
		},		
		
		/* Files selected */
		'onSelect': function (event, queueID, fileObj){
			num_files_selected = num_files_selected + 1;
			$('#start_upload').show();
			return true;
		},		
		
		/* File removed */
		'onCancel': function (event, queueID, fileObj){
			
			/* Decreases selected files */
			if (num_files_selected > 0){
				num_files_selected = num_files_selected - 1;
			}			
			
			/* No files remaining */
			if (num_files_selected <= 0){
				$('#start_upload').hide();
			}	else {
				/* All remaining files uploaded */
				if (num_files_selected == num_files_uploaded_success){
					location.href = "/u/"+hash;			
				}				
			}	
			return true;
		},
		
		/* Upload error */
		'onError': function (event, queueID, fileObj, errorObj){
			$('#uploadify'+queueID).addClass('progress_error');
			$('#uploadify'+queueID+' .percentage').html(' - Upload Error');
			return false;
		},
		
		/* All finished */
		'onAllComplete': function(event, data){
			if (num_files_uploaded_success > 0){
				location.href = "/u/"+hash;
			}
			return true;
		}
	});
	
	/* Upload started */
	$("#start_upload").click(function(){		
		var galleryid = '', thumb_sizeid = '';
		
		$("#start_upload").hide();
				
		if ($('#galleryid option:selected').length){
			galleryid = $('#galleryid option:selected').val();
		}		

		if ($('#thumb_sizeid option:selected').length){
			thumb_sizeid = $('#thumb_sizeid option:selected').val();
		}    
		
		$('#uploadify').uploadifySettings('scriptData', { 'hash' : hash, 'galleryid': galleryid, 'thumb_sizeid': thumb_sizeid});
		$('#uploadify').uploadifyUpload();		
	});
}

$(document).ready(function(){

	/* Check if flash enabled */	
	var hasFlash = false;
	
	try{
	  var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
	  if(axo){
		  hasFlash = true;
	  }	
	}catch(e){
	  if(navigator.mimeTypes ["application/x-shockwave-flash"] != undefined) {
		  hasFlash = true;
	  }
	}

	if ( ! hasFlash){
		$('#browser_no_flash').show();
	}		

	/* Create new gallery */
	$("#button_new_gallery").click(function(){	
							
		$("#dialog_new_gallery").dialog("destroy");	
		$('#error_new_gallery').hide();						
						
		var dialog_buttons = {};
		
		dialog_buttons[dict.message_cancel] =  function(){
			$(this).dialog('close');
		}
						
		dialog_buttons[dict.message_create_gallery] =  function(){
			var this_dialog = $(this);							
			
			$.get
			(
				'/backend/ajax/create_gallery.php?title=' + encodeURIComponent($('#title_new_gallery').val()) + '&description=' + encodeURIComponent($('#description_new_gallery').val()), 
				function(response) {	
					var parts = response.split ('|');	
					var galleryid = '';
																						
					if (parts.length == 2){
						response = parts[0];
						galleryid = parts[1];
					}
										
					var message = '';
								
					switch (response) {
						case 'not_logged_in':	
							message = dict.message_not_logged_in;
						break;
										
						case 'gallery_title_missing':
							message = dict.message_enter_gallery_title;
						break;
												
						case 'gallery_title_too_long':
							message = dict.message_gallery_title_too_long;
						break;
											
						case 'gallery_title_exists':
							message = dict.message_gallery_title_exists;
						break;
											
						case 'gallery_description_missing':
							message = dict.message_enter_gallery_description;
						break;			
												
						case 'gallery_description_too_long':									
							message = dict.message_gallery_description_too_long;
						break;
												
						case 'gallery_created':
							$('#galleryid').append(new Option($('#title_new_gallery').val(),galleryid, false, true) );
							this_dialog.dialog('close');											
							return false;
						break;
												
						default:
							message = dict.message_gallery_could_not_be_created;
						break;
					}							
					$('#error_new_gallery p').html(message); 
					$('#error_new_gallery').show();									
				}							
			); 
			

		}							
						
		$("#dialog_new_gallery").dialog({modal: true, height:500, width:600, buttons: dialog_buttons});
		return false;
	});									
	
		/* Upload spinner */			
	$("#uploader").submit(function (){
		$('#upload_work_area').hide();
		$('#upload_spinner').show();
		return true;
	});
});						

