function fileDialogComplete(numFilesSelected, numFilesQueued) {
	
	try {
		/* I want auto start the upload and I can do that here */
		this.startUpload();
	} catch (ex)  {
        log(ex);
	}

}//end fileDialogComplete



function uploadStart(file) {
	
	try {
		/* I don't want to do any file validation or anything,  I'll just update the UI and
		return true to indicate that the upload should start.
		It's important to update the UI here because in Linux no uploadProgress events are called. The best
		we can do is say we are uploading.
		 */
		log("Uploading....");
	}
	catch (ex) {}
	
	return true;
	
}//end uploadStart



function uploadProgress(file, bytesLoaded, bytesTotal) {
	
	try {
		var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);
		if(percent == 100)
			$("#progress").text("resizing...");
		else
			$("#progress").text(percent + "%");
		log(percent + " % uploaded");
	} catch (ex) {
		log(ex);
	}

}//end uploadProgress



function uploadSuccess(file, serverData) {
	
	try {
		$("#photo_preview").html($(serverData).html());
		log("photo: " + $(serverData).html());
		$("#progress").text("resizing..."); //100% uploaded now waiting on resize
	} catch (ex) {
		log(ex);
	}

}//end uploadSuccess



function queueError(file, errorCode, message) {
	
	try {
		switch (errorCode) {
		case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
			alert(message);
			break;
		case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
			alert("The file exceeds the 3MB limit");
			break;
		case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
			alert("The selected file is empty");
			break;
		case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
			alert("The selected file must be a .jpg, .gif or .png");
			break;
		default:
			alert("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		}
	} catch (ex) {
        log(ex);
    }

}//end queueError



function uploadError(file, errorCode, message) {
	
	try {
		switch (errorCode) {
		case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
			alert("Error uploading file: " + file.name + ". Try again, or a different file.");
			log("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
			log("Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.IO_ERROR:
			log("Error Code: IO Error, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
			log("Error Code: Security Error, File name: " + file.name + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
			log("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
			log("Error Code: File Validation Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		default:
			log("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
			break;
		}
	} catch (ex) {
        log(ex);
    }

}//end uploadError



function uploadComplete(file) {
	
	log("Complete: uploadComplete");
	$("#progress").text("Done");	
	
}//end uploadComplete



function log(message)
{
	if(window.console)
	{
		console.log(message)
	}
	
}//end log



$(document).ready(function(){
	
	var base_url = "http://48stories.com";
	//var base_url = "http://192.168.1.100:3000";
		
	var settings_object = { 
		upload_url : base_url + "/story_image", 
		flash_url : base_url + "/flash/swfupload.swf", 
		
		file_size_limit : "3 MB",
		file_types_description: "JPG, GIF or PNG",
		file_post_name : "Filedata", 
		file_types : "*.jpg;*.gif;*.png",
		
		button_placeholder_id : 'btn_upload_replacement',
		button_image_url : base_url + "/images/btn_upload_photo.jpg", 
		button_width : 94, 
		button_height : 29, 
		button_action : SWFUpload.BUTTON_ACTION.SELECT_FILE, 
		button_disabled : false, 
		button_cursor : SWFUpload.CURSOR.HAND, 
		button_window_mode : SWFUpload.WINDOW_MODE.TRANSPARENT, 
		
		
		file_dialog_complete_handler : fileDialogComplete,
		file_queue_error_handler : queueError, 
		upload_start_handler : uploadStart,
		upload_progress_handler : uploadProgress,
		upload_error_handler : uploadError,
		upload_success_handler : uploadSuccess,
		upload_complete_handler : uploadComplete,
		
		debug : false
	}; 
	
	try{
		swfu = new SWFUpload(settings_object); 
	}catch(e){ log(e); }
	
});//end ready