/* CLIQUE */
/* Photo Uploader Pattern Javascript
----------------------------------------------------------------------------- */


	(function($) {

	$.fn.cliquePhotoUploader = function(parameters) {
	
		var defaults = {
		
		};

		var parameters = $.extend(defaults, parameters);


/* PRESERVE CHAINING
----------------------------------------------------------------------------- */

		return this.each(function(index) {
	
			var $this = $(this);
			

/* UPLOADING
----------------------------------------------------------------------------- */

	
			$this.find('input[type=file]').each(function() {
			
				$(this).attr('size','15');		
		
			});

			$this.find('input[type=file]').change(function() {
		
				$this.find('fieldset input').attr('checked', 'checked');
				$this.find('div.details input[type=text]').val('Untitled Photo');
		
				var tag = window.location.toString().split('/')[4];
				var topic = window.location.toString().split('/')[5];
				
				$this.find('ul.photos, div.browse p').remove();
				$this.find('.widget-photo.browse').append('<em class="uploading">Uploading ...</em>');
		
				$('form[name=photo_modify_form]').ajaxForm();
				$('form[name=photo_modify_form]').ajaxSubmit(function() {
				
					$this.find('.browser').load('/widget-photos/' + tag + '/' + topic, function() {
					
						// REASSIGN ACTION TO THUMBNAILS (jQuery's live() function doesn't work - v1.3.2)
						actions();
					
					});
		
				});
		
			});
	
			// KILL DEFAULT FORM BEHAVIOR
			$('div.placeholder a.upload').click(function() { return false; });

			
/* FUNCTION: ACTIONS
----------------------------------------------------------------------------- */

			
			function actions() {
			
				$this.find('ul.photos a').click(function() {
				
					var url = $(this).children('img').attr('src').replace('thumb.','');
					insertMarkup($this, '\r![Photo]' + '(' + url + ')\r', '');
					return false;
				
				});
			
			}
			
			actions();
	

/* FUNCTION: INSERT MARKUP
----------------------------------------------------------------------------- */

		
			function insertMarkup($this, prefix, suffix) {
		
				var $textarea = $this.find('textarea');
				var scrollPos = $textarea.scrollTop();
				var body = $textarea.val();
				var range = $textarea.getSelection();
				var selection = range.text;
				var before = body.substr(0, range.start);
				var after = body.substr(range.end, body.length);
				
				$textarea.val(before + prefix + selection + suffix + after);
				$textarea.scrollTop(scrollPos);

				return false;
		
			}


/* END PLUG-IN
----------------------------------------------------------------------------- */


		});

	};

	})(jQuery);