	$(document).ready(function() {
		var thumbUrl;
		var thumbFilePath;
		var intervalID;

		// cache selectors
		$peekURL = $('#peek_url');
		$peekSize = $('#peek_size');
		$formPeek = $('#formPeek');
		$formPeekWrapper = $('#formPeekWrapper');
		$errMessage = $('#errMessage');

		// initialize
		$formPeekWrapper.slideUp(100);
		$errMessage.slideUp(100);

		$("form input").keypress(function (e) {
			if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
				clickHandler();
				e.preventDefault();
				return false;
			} else {
				return true;
			}
		});

		$('#btnPeek').click(clickHandler)

		function clickHandler() {
			// clear previous err message
			$errMessage.slideUp(100);
			// stop checking for previous thumbnail (if that ever happened)
			window.clearInterval(intervalID);
			if ($peekURL.val() != '')
			{	
				$.get("code/ajaxProcessFormPeek.php?url=" + $peekURL.val() + "&size=" + $peekSize.val() + '&' + Math.random(), function(data) {

						switch (data.STATUS) {
							case 'file_generated':	
								// thumb available, change image src 
								$formPeek.attr("src", "code/ajaxOutputImage.php?" + data.FORM_PEEK_SRC);
								$formPeekWrapper.slideDown(1000, "swing");
								// clear interval, stop checking thumb availability
								window.clearInterval(intervalID);
							break;
							case 'url_broken':	
								$formPeekWrapper.slideUp(100);
								$errMessage.slideDown(200, "swing");
								// url broken, stop checking thumb availability
								window.clearInterval(intervalID);
							break;
							case 'pending':
								// thumb pending, not yet generated
								// set default image src 
								$formPeek.attr("src", "code/ajaxOutputImage.php?" + data.FORM_PEEK_SRC);
								$formPeekWrapper.slideDown(1000, "swing");
								// store thumb url and path
								thumbUrl = data.THUMB_URL;
								thumbFilePath = data.THUMB_FILE_PATH;
								// set interval to check availability later 
								intervalID =  window.setInterval(refreshFormPeek, 2000); 
							break;
						}
					},
					'json'
				);
			
			}
		}

		function refreshFormPeek() {
			// check to see if thumb file is available now
			$.get("code/ajaxCheckThumbExists.php?path=" + thumbFilePath + "&url=" + thumbUrl + "&" + Math.random(), function(data) {
				
				switch (data) {
					case 'file_generated':	
						// thumb available, change image src 
						$('#formPeek').attr("src", "code/ajaxOutputImage.php?" + thumbFilePath);
						// clear interval, stop checking thumb availability
						window.clearInterval(intervalID);
					break;
					case 'url_broken':	
						// url broken, stop checking thumb availability
						window.clearInterval(intervalID);
						// display err message
						$formPeekWrapper.slideUp(100);
						$errMessage.slideDown(200, "swing");
					break;
				}
			});
			
		}


	})

